71 lines
3.4 KiB
Markdown
71 lines
3.4 KiB
Markdown
# Лабораторная работа #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
|
||
```
|
||
|
||

|
||
|
||
Тестовое покрытие: изолированные тесты каждой сущности + интеграционный тест полной сцены.
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
./gradlew test
|
||
```
|
||
|
||
Отчёт: `build/reports/tests/test/index.html`
|
||
|
||
## Технологии
|
||
|
||
- Java 21
|
||
- JUnit 5.10.2
|
||
- Gradle |