Skip to content

Commit abc0b3c

Browse files
committed
feat: report added
1 parent eff1350 commit abc0b3c

3 files changed

Lines changed: 160 additions & 0 deletions

File tree

39.9 KB
Loading
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
#set page(
2+
paper: "a4",
3+
margin: (left: 25mm, right: 15mm, top: 20mm, bottom: 20mm),
4+
)
5+
6+
#set text(
7+
font: "JetBrains Mono",
8+
size: 11pt,
9+
)
10+
11+
#set par(
12+
leading: 1.4em,
13+
justify: true,
14+
)
15+
16+
#set heading(numbering: "1.")
17+
18+
#let organization = "ФГБОУ высшего профессионального образования «Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики»"
19+
#let faculty = "Факультет программной инженерии и компьютерной техники (ФПИиКТ)"
20+
21+
#let subject_title = "Тестирование программного обеспечения"
22+
23+
#let student_name = "Малышев Михаил Александрович"
24+
#let group = "Группа P3311"
25+
26+
#let teacher_name = "Наумова Надежда Александровна"
27+
28+
#let year = "2026"
29+
30+
#align(center)[
31+
#v(10mm)
32+
#text(weight: "bold")[#organization]
33+
#v(3mm)
34+
#faculty
35+
#v(25mm)
36+
37+
#text(weight: "bold", size: 16pt)[Отчёт по лабораторной работе №1]
38+
#v(6mm)
39+
#text(weight: "bold")[#subject_title]
40+
#v(2mm)
41+
]
42+
43+
#v(30mm)
44+
45+
#align(right)[
46+
Выполнил: #student_name \
47+
#group \
48+
\
49+
Преподаватель практики: #teacher_name
50+
]
51+
52+
#v(25mm)
53+
54+
#align(center)[
55+
#year
56+
]
57+
58+
#pagebreak()
59+
60+
= Задание
61+
62+
1. Для указанной функции провести модульное тестирование разложения функции в степенной ряд. Выбрать достаточное тестовое покрытие.
63+
2. Провести модульное тестирование указанного алгоритма. Для этого выбрать характерные точки внутри алгоритма, и для предложенных самостоятельно наборов исходных данных записать последовательность попадания в характерные точки. Сравнить последовательность попадания с эталонной.
64+
3. Сформировать доменную модель для заданного текста. Разработать тестовое покрытие для данной доменной модели
65+
Вариант:
66+
- Функция sin(x)
67+
- Программный модуль для работы c B деревьями (количество элементов в ключе - до 5, http://www.cs.usfca.edu/~galles/visualization/BTree.html)
68+
- Описание предметной области:
69+
```
70+
В эту ночь "Золотое Сердце" летел, оставляя световые годы между собой и туманностью Конской Головы. Зафод, расположившись под небольшой пальмой на мостике, пытался вправить себе мозги солидными порциями пангалактического бульк-бластера. Форд и Триллиан сидели в уголке, обсуждая жизнь и ее последствия. Артур лежал у себя в каюте и листал фордов экземпляр "Путеводителя по Галактике для автостопщиков". Поскольку ему предстояло здесь жить, рассудил он, пора было начинать знакомиться с местными обычаями.
71+
```
72+
73+
= Ход работы
74+
75+
*Ссылка на Pull Request:*
76+
#link("https://github.com/mip3x/itmo-labs/pull/46")
77+
78+
== Задание 1
79+
80+
Для функции $sin(x)$ реализовано разложение в ряд Тейлора и подготовлены модульные тесты на корректность вычислений с разными входными значениями и значениями точности $epsilon$.
81+
82+
Тестовое покрытие включает:
83+
- проверку граничных случаев для $epsilon$ (нулевое и отрицательное значение);
84+
- проверку характерных классов для $x$ (малые значения, средние значения, значения вблизи $pi/2$, $pi$, $3pi/2$, а также достаточно большое $x$);
85+
- сравнение результата разложения со стандартной библиотечной функцией $sin(x)$ с заданной допустимой погрешностью;
86+
87+
#figure(
88+
image("sin-plot.svg", width: 90%),
89+
caption: [График функции $sin(x)$]
90+
)
91+
92+
== Задание 2
93+
94+
Для модуля B-дерева реализованы и протестированы ключевые операции:
95+
- вставка элементов с поддержкой повторов ключей;
96+
- поиск элемента в дереве;
97+
- симметричный обход (in-order);
98+
- удаление элемента;
99+
100+
При тестировании были выбраны характерные наборы данных:
101+
- пустое дерево и одиночная вставка;
102+
- последовательные вставки, приводящие к разделению узла (split);
103+
- неупорядоченные вставки с проверкой, что итоговый обход остается отсортированным;
104+
- серия вставок с проверкой поиска существующих и отсутствующих ключей;
105+
- отдельная проверка поведения на дублирующихся значениях;
106+
107+
== Задание 3
108+
109+
По заданному тексту сформирована доменная модель сцены с основными сущностями:
110+
- космический корабль ("Золотое Сердце");
111+
- персонажи (Зафод, Форд, Триллиан, Артур);
112+
- небесный объект ("туманность Конской Головы");
113+
- книга;
114+
115+
В модели отражены действия и состояния персонажей (обсуждение, чтение, употребление напитка), а также состояние полета корабля и расстояние до небесного объекта
116+
117+
Для доменной модели разработаны модульные тесты:
118+
- проверка корректной сборки сцены фабрикой;
119+
- проверка ограничений доменной логики (например, допустимость параметров методов);
120+
121+
#figure(
122+
image("domain-model.png", width: 95%),
123+
caption: [Диаграмма доменной модели]
124+
)
125+
126+
= Заключение
127+
128+
В ходе лабораторной работы реализованы и протестированы:
129+
- вычисление $sin(x)$ через степенной ряд;
130+
- модуль B-дерева;
131+
- доменная модель предметной области;
132+
133+
Для каждой части варианта выбрано практическое тестовое покрытие, включающее граничные и характерные случаи. Результаты модульного тестирования подтвердили корректность основной функциональности и соответствие реализованных компонентов требованиям задания.

0 commit comments

Comments
 (0)