.docx | |
---|---|
report | report |
Провести интеграционное тестирование программы, осуществляющей вычисление системы функций (в соответствии с вариантом).
Функция определяется как:
x <= 0 : (((((tan(x) - sec(x)) - csc(x)) ^ 2) - tan(x)) * ((sin(x) / tan(x)) - (tan(x) / cos(x))))
x > 0 : (((((log_2(x) ^ 2) / ln(x)) / log_3(x)) ^ 3) * (ln(x) / (log_3(x) / (log_10(x) / log_2(x)))))
- Все составляющие систему функции (как тригонометрические, так и логарифмические) должны быть выражены через базовые (тригонометрическая зависит от варианта; логарифмическая – натуральный логарифм).
- Структура приложения, тестируемого в рамках лабораторной работы, должна выглядеть следующим образом (пример приведён для базовой тригонометрической функции
sin(x)
):
- Обе «базовые» функции (в примере выше –
sin(x)
иln(x)
) должны быть реализованы при помощи разложения в ряд с задаваемой погрешностью. Использовать тригонометрические / логарифмические преобразования для упрощения функций запрещено. - Для каждого модуля должны быть реализованы табличные заглушки. При этом, необходимо найти область допустимых значений функций, и, при необходимости, определить взаимозависимые точки в модулях.
- Разработанное приложение должно позволять выводить значения, выдаваемое любым модулем системы, в
сsv
файл вида «X, Результаты модуля (X)», позволяющее произвольно менять шаг наращиванияХ
. Разделитель в файлеcsv
можно использовать произвольный.
- Разработать приложение, руководствуясь приведёнными выше правилами.
- С помощью
JUnit 5
разработать тестовое покрытие системы функций, проведя анализ эквивалентности и учитывая особенности системы функций. Для анализа особенностей системы функций и составляющих ее частей можно использовать сайт www.wolframalpha.com. - Собрать приложение, состоящее из заглушек. Провести интеграцию приложения по 1 модулю, с обоснованием стратегии интеграции, проведением интеграционных тестов и контролем тестового покрытия системы функций.
- Текст задания, систему функций.
- UML-диаграмму классов разработанного приложения.
- Описание тестового покрытия с обоснованием его выбора.
- Графики, построенные по
csv
-выгрузкам, полученным в процессе интеграции приложения. - Выводы по работе.
- Цели и задачи интеграционного тестирования. Расположение фазы интеграционного тестирования в последовательности тестов; предшествующие и последующие виды тестирования ПО.
- Алгоритм интеграционного тестирования.
- Концепции и подходы, используемые при реализации интеграционного тестирования.
- Программные продукты, используемые для реализации интеграционного тестирования. Использование
JUnit
для интеграционных тестов. - Автоматизация интеграционных тестов. ПО, используемое для автоматизации интеграционного тестирования.
Тригонометрические функции:
Класс | Зависимости | Формула |
---|---|---|
Sine |
— | Ряд Тейлора |
Cosine |
Sine |
sin(π/2 - x) |
Cosecant |
Sine |
1/sin(x) |
Secant |
Cosine |
1/cos(x) |
Tangent |
Sine + Cosine |
sin(x)/cos(x) |
Cotangent |
Sine + Cosine |
cos(x)/sin(x) |
Логарифмические функции:
Класс | Зависимости | Формула | Особенности реализации |
---|---|---|---|
NaturalLogarithm |
— | Ряд Тейлора для ln(1+x) |
Использует преобразование аргумента через (x-1)/(x+1) |
BaseNLogarithm |
NaturalLogarithm |
logₐ(x) = ln(x)/ln(a) |
Поддерживает произвольное основание через конструктор |
Ссылка | Описание |
---|---|
github.com/RedGry/ITMO/TPO/ТПО 2 - Подготовка.pdf | Подготовка к защите ЛР 2 |
github.com/band-of-four/cheatsheets/testing/lab2.md | Ответы на вопросы с se.ifmo.ru |
youtu.be/nU1Rvo8YyeY | Лекция ТПО #3. Модульное и интеграционное тестирование |
katalon.com/blog/integration-testing | What is Integration Testing? Definition, How-to, Examples |
guru99.com/equivalence-partitioning-boundary-value-analysis.html | Boundary Value Analysis and Equivalence Partitioning |
site.mockito.org | Примеры с Mockito |
www.baeldung.com/parameterized-tests-junit-5 | Guide to JUnit 5 Parameterized Tests |
mathworld.wolfram.com/TaylorSeries.html | Разложение тригонометрических функций в ряды Тейлора |
wikipedia.org/wiki/Natural_logarithm | Ряды для натурального логарифма и преобразования между разными основаниями |
Проект доступен с открытым исходным кодом на условиях Лицензии MIT.
Авторские права 2025 Max Barsukov
Поставьте звезду ⭐, если вы нашли этот проект полезным.