| gradle/wrapper | ||
| src | ||
| build.gradle | ||
| gradlew | ||
| gradlew.bat | ||
| images.png | ||
| README.md | ||
| settings.gradle | ||
Лабораторная работа #1 — Модульное тестирование
Дисциплина: Тестирование ПО
Вариант: 342582
Автор: Карпов А.
Структура проекта
src/main/java/ru/akarpov/tpo1/
├── task1/SecFunction.java — разложение sec(x) в ряд Тейлора
├── task2/BTree.java, BTreeNode.java — B-дерево (maxDegree = 3)
└── task3/ — доменная модель (8 классов)
src/test/java/ru/akarpov/tpo1/
├── task1/SecFunctionTest.java — 10 тестов
├── task2/BTreeTest.java — 16 тестов
└── task3/DomainModelTest.java — 12 тестов
Задание 1 — sec(x)
Реализовано разложение sec(x) в степенной ряд через числа Эйлера:
sec(x) = Σ E_{2n} · x^{2n} / (2n)!, n = 0..6
Тестовое покрытие: нулевой аргумент, чётность функции, сравнение с 1/cos(x) по таблице значений, сходимость ряда, граница сходимости (|x| → π/2), невалидные аргументы.
Задание 2 — B-дерево
Реализовано B-дерево с maxDegree = 3 (до 2 ключей на узел) с операциями insert, find, delete.
Тестирование методом белого ящика: в алгоритме выделены характерные точки (CREATE_ROOT, SPLIT_ROOT, INSERT_INTO_LEAF, DELETE_FROM_INTERNAL, MERGE_CHILDREN и др.), которые логируются в trace-список. Тесты проверяют последовательность прохождения точек для заданных наборов данных.
Задание 3 — Доменная модель
Текст: «Артур смотрел по сторонам с ужасом и изумлением. Перед ними, на расстоянии, которое он был не в состоянии ни оценить, ни даже осознать, рядами висели в пространстве сумрачные сферические тела, окруженные непонятными конструкциями, сплетенными из металла и света.»
Выделенные сущности: Person, Emotion, Distance, Space, SphericalBody, Construction, Material, Observation.
Person (Артур)
├── чувствует → Emotion (HORROR, AMAZEMENT)
├── не может оценить → Distance (incomprehensible)
└── смотрит → Observation
├── Space
│ └── rows of SphericalBody (сумрачные)
│ └── Construction (непонятные)
│ └── Material (METAL, LIGHT)
└── Distance
Тестовое покрытие: изолированные тесты каждой сущности + интеграционный тест полной сцены.
Запуск
./gradlew test
Отчёт: build/reports/tests/test/index.html
Технологии
- Java 21
- JUnit 5.10.2
- Gradle
