![](/user_photo/_userpic.png)
- •Расчетно-пояснительная записка к выпускной квалификационной работе
- •Задание по подготовке выпускной квалификационной работы
- •Введение
- •Глава 1. Анализ проблемы и постановка задачи
- •Анализ предметной области
- •Содержательная постановка проблемы
- •Обзор и анализ существующих программных продуктов
- •Формальная постановка задачи
- •Структура решения задачи, декомпозиция задачи на подзадачи
- •Глава 2. Анализ моделей и методов решения
- •2.1. Ручное тестирование.
- •2.2. Автоматизированное тестирование
- •3.3. Алгоритм выполнения модульных тестов
- •Глава 4. Программное обеспечение
- •Язык программирования и инструментальные средства разработки
- •Описание структуры программного продукта
- •Глава 5. Оценка качества решения
- •5.1. Тестирование по
- •5.2. Вычислительный эксперимент
- •Заключение
- •Список используемых источников
- •Приложение а Техническое задание
- •Приложение б Руководство программиста
- •Приложение в Руководство пользователя
- •Приложение г Метрическая оценка качества решения
Описание структуры программного продукта
На рисунке 4.1. приведена структура разрабатываемой среды автоматизированного модульного тестирования.
Рисунок 4.1 – Структура программного продукта
Глава 5. Оценка качества решения
5.1. Тестирование по
Проведено тестирование ПО в нормальных, исключительных и экстремальных условиях.
Тестирование в нормальных условиях
Проведем тестирование функции возведения в степень и функции суммы массивов с формированием HTML отчёта.
Напишем модульные тесты для функции возведения в степень:
Рисунок 5.1 – Исходный код модульных тестов
Напишем модульные тесты для функции суммы массивов:
Рисунок 5.2 – Исходный код модульных тестов
Произведем ввод команды u-tests с указанием пути директории модульных тестов и флага для формирования отчёта.
Рисунок 5.3 – Команда запуска модульных тестов
Результат выполнения модульных тестов в виде отчета в формате HTML представлен на рисунке 5.4.
Рисунок 5.4 – Отчёт о прохождении модульных тестов
При вводе корректных входных данных среда автоматизированного модульного тестирования работает без ошибок.
Тестирование в экстремальных условиях
Проведем тестирование функции возведения в степень и функции суммы массивов с формированием HTML отчёта. Создадим ситуацию, когда все тесты в первом модуле будут провалены, а во втором все пройдены. Создадим вложенность в модульных тестах.
Для модульных тестов со вложенной иерархией отчёт формируется корректно:
Рисунок 5.5 – Иерархия тестов в отчёте
Корректно отображается информация о статусе, количество проведенных тестов и описание ошибок. При большом объёме информации в отчёте появляется прокрутка страницы.
Рисунок 5.6 – Сообщения об ошибках выполнения в отчёте
Тестирование в исключительных условиях
При тестировании в исключительных условиях были проверены случаи, когда введены некорректные или пустые значения.
Произведем ввод команды u-tests без указания пути директории модульных тестов.
Рисунок 5.7 – Команда выполнения без указания
пути директории модульных тестов
После вызова без указания пути директории модульных тестов, среда автоматизированного модульного тестирования остановит работу и выдаст сообщение об отсутствии путей.
Произведем ввод команды u-tests с ошибкой в пути директории модульных тестов.
Рисунок 5.8 – Команда выполнения с ошибкой
в пути директории модульных тестов
После вызова с ошибкой пути директории модульных тестов, среда автоматизированного модульного тестирования остановит работу и выдаст сообщение об ошибке.
5.2. Вычислительный эксперимент
Проведем вычислительный эксперимент для сравнения временных затрат на ручное и автоматизированное тестирования. Автоматизированное тестирование будет проводиться с использованием разработанного ПО.
Формулы расчета временных затрат тестирования:
,
где Tm – временные затраты на ручное тестирование, сек.;
Tr – время на ручное прохождение одного тест-кейса, сек.;
I – количество тест-кейсов, ед.;
K – количество запусков, ед.
,
где Ta – временные затраты на автоматизированное тестирование с использованием разработанного ПО, сек.;
Td – время на разработку одного автоматизированного теста, сек.;
Tex – время на выполнение одного автоматизированного теста, сек.;
Tan – время на анализ результатов, сек.
Для эксперимента в качестве тестируемого приложения был выбран модуль возведения в степень.
Было проведено 10 проверок, то есть I = 10 ед.
При проведении проверок выявлено, что в среднем ручное прохождение одного тест-кейса занимает 30 сек. На те же проверки с помощью автоматизированных тестов уходит в среднем 0,001 секунды. Время на анализ результатов занимает максимум 1 минуту. Время на написание занимает 3 минуты.
Результаты вычислительного эксперимента показаны в таблице 5.1.
Таблица 5.1 – Результаты вычислительного эксперимента
Количество запусков |
1 |
3 |
5 |
10 |
20 |
30 |
Временные затраты на ручное тестирование, сек |
300 |
900 |
1500 |
3000 |
6000 |
9000 |
Временные затраты на автоматизированное тестирование, сек |
1860,01 |
1980,03 |
2100,05 |
2400,1 |
3000,2 |
3600,3 |
На рисунке 5.9 показана диаграмма по результатам эксперимента.
Рисунок 5.9 – Диаграмма временных затрат на тестирование
По результатам эксперимента видно, что в начале на автоматизированное тестирование тратится чуть больше времени, чем на ручное, так как время уходит на разработку теста, выполнение и анализ результатов. Но с увеличением количества запусков тестирования затраты времени на ручное тестирование увеличивается. А затраты времени на автоматизированное тестирование растет очень медленно, так как выполнение автоматизированного тестирования происходит очень быстро. Следовательно, эффективность использования разработанного программного продукта очень большая.