- •Расчетно-пояснительная записка к выпускной квалификационной работе
- •Задание по подготовке выпускной квалификационной работы
- •Введение
- •Глава 1. Анализ проблемы и постановка задачи
- •Анализ предметной области
- •Содержательная постановка проблемы
- •Обзор и анализ существующих программных продуктов
- •Формальная постановка задачи
- •Структура решения задачи, декомпозиция задачи на подзадачи
- •Глава 2. Анализ моделей и методов решения
- •2.1. Ручное тестирование.
- •2.2. Автоматизированное тестирование
- •3.3. Алгоритм выполнения модульных тестов
- •Глава 4. Программное обеспечение
- •Язык программирования и инструментальные средства разработки
- •Описание структуры программного продукта
- •Глава 5. Оценка качества решения
- •5.1. Тестирование по
- •5.2. Вычислительный эксперимент
- •Заключение
- •Список используемых источников
- •Приложение а Техническое задание
- •Приложение б Руководство программиста
- •Приложение в Руководство пользователя
- •Приложение г Метрическая оценка качества решения
Содержательная постановка проблемы
Цель: повышение эффективности контроля реализации и обнаружения ошибок программного обеспечения посредством разработки математического и программного обеспечения автоматизированного модульного тестирования.
Задачи:
Ознакомиться с процессом проведения модульного тестирования.
Провести обзор и последующий анализ существующих сред модульного тестирования.
Провести анализ существующих инструментальных средств разработки автоматизированных тестов для веб-приложений.
Разработать программную среду, обеспечивающую создание, выполнение и анализ модульных тестов.
Провести тестирование и оценку эффективности разработанного программного продукта.
Обзор и анализ существующих программных продуктов
Mocha – многофункциональная среда тестирования JavaScript для программ Node.js с поддержкой браузера, асинхронным тестированием, отчетами о покрытии тестами и использованием любой библиотеки утверждений. Первый выпуск среды Mocha состоялся 22 ноября 2011 года. Mocha в настоящий момент является самой широко используемой библиотекой.
Преимущества
Большое количество расширений для использования в уникальных сценариях тестирования.
Тесты могут выполняться последовательно и имеют гибкую отчетность.
Недостатки
Применяет сторонние инструменты, что усложняет настройку среды.
JEST – среда тестирования JavaScript, поддерживаемая Meta (ранее Facebook), разработанная и созданная Кристофом Наказавой с упором на простоту поддержку больших веб-приложений.
Преимущества
Прост в настройке и использовании, подходит для начинающих пользователей.
Является самым быстрым в применении к большим проектам со множеством файлов тестов благодаря реализации интеллектуального механизма параллельного тестирования.
Недостатки
Сложности при подключении сторонних библиотек к проекту тестирования.
Jasmine – основанная на поведении среда разработки для модульного тестирования JavaScript. Она используется для тестирования как синхронного, так и асинхронного кода JavaScript. Имеет простой синтаксис, которым может быть написан любой тест. Первый выпуск среды Jasmine состоялся 14 сентября 2010 года.
Преимущества
Обладает большим отзывчивым сообществом. Для Jasmine существует множество публикаций.
Недостатки
Для тестирования приложений в браузере требует дополнительной установки сторонних библиотек.
AVA – минималистичная среда модульного тестирования JavaScript для программ Node.js Тесты проводятся параллельно и последовательно. Параллельные тесты запускаются без перерыва. AVA также поддерживает асинхронное тестирование.
Преимущества
Высокая скорость выполнения автоматических тестов, так как тесты запускаются параллельно в виде отдельных процессов Node.js.
Удобна при использовании в процессе разработки, так как среда позволяет быстро тестировать изменённый код.
Недостатки
Не рассчитана для тестирования компонентов пользовательского интерфейса.
Таблица 1.1. – Сравнение сред модульного тестирования
|
Mocha |
JEST |
Jasmine |
AVA |
Язык программирования |
JavaScript |
JavaScript, TypeScript |
JavaScript |
JavaScript, TypeScript |
Встроенные функции утверждения теста |
- |
+ |
+ |
+ |
Тестирование структуры модели представления |
- |
+ |
- |
+ |
Асинхронные тесты |
+ |
+ |
+ |
+ |
Параллельное выполнение тестов |
- |
+ |
- |
+ |
Возможность замены функций у проверяемого модуля |
- |
+ |
- |
- |
Наличие системы отслеживания изменений файлов |
- |
+ |
- |
+ |
Анализ покрытия кода тестами |
- |
+ |
- |
- |
Простота освоения |
+ |
- |
+ |
- |
В ходе выполнения анализа сред модульного тестирования был выявлен лидер. Jest обладает богатым функционалом и при этом прост в использовании, что даёт возможность быстрого старта для начинающих. Но отсутствует одновременно простая в освоении и с наличием встроенных функций утверждений среда.