
- •Расчетно-пояснительная записка к выпускной квалификационной работе
- •Задание по подготовке выпускной квалификационной работы
- •Введение
- •Глава 1. Анализ проблемы и постановка задачи
- •Анализ предметной области
- •Содержательная постановка проблемы
- •Обзор и анализ существующих программных продуктов
- •Формальная постановка задачи
- •Структура решения задачи, декомпозиция задачи на подзадачи
- •Глава 2. Анализ моделей и методов решения
- •2.1. Ручное тестирование.
- •2.2. Автоматизированное тестирование
- •3.3. Алгоритм выполнения модульных тестов
- •Глава 4. Программное обеспечение
- •Язык программирования и инструментальные средства разработки
- •Описание структуры программного продукта
- •Глава 5. Оценка качества решения
- •5.1. Тестирование по
- •5.2. Вычислительный эксперимент
- •Заключение
- •Список используемых источников
- •Приложение а Техническое задание
- •Приложение б Руководство программиста
- •Приложение в Руководство пользователя
- •Приложение г Метрическая оценка качества решения
Приложение б Руководство программиста
Назначение и условия применения
Назначение программы
Среда автоматизированных модульных тестов предназначена для разработчиков в целях упрощения проверки на корректность отдельных модулей исходного кода программы.
Функции, выполняемые программой
Среда автоматизированных модульных тестов предоставляет следующие возможности:
Загрузки и исполнения заданных файлов тестов формата .test.js;
Написания модульных тестов, предоставляя инструментарий описания модульного теста и набор методов-утверждений;
Выполнения модульных тестов;
Формирования отчёта с возможностью выбора формы (HTML документ, текстовый документ, JSON файл).
Условия, необходимые для выполнения программы
Для выполнения программного обеспечения на операционной системе должен быть установлен Node.js версии 16.15.0 и выше.
Характеристики программы
Программный продукт представляет собой Node.js пакет.
Обращение к программе
Обращение программы осуществляется запуском в командной строке операционной системы исполняемого скрипта (bat, ps1 или sh), который генерируется пакетным менеджером npm во время установки пакета программного обеспечения.
Входные и выходные данные
Входные данные
Входные данные необходимо предоставить в виде аргументов командной строки:
Пути к файлам и папкам через запятую, содержащие модульные тесты;
Формат документа отчёта:
--html – HTML документ,
--json – JSON файл,
--txt – Текстовый документ (txt),
Файл назначения документа отчёта;
Флаг для указания вывода отчёта в командную строку.
Выходные данные
Выходными данными данного программного продукта является отчет о результатах тестирования модулей в выбранном пользователем формате (HTML документ, текстовый документ, JSON файл).
Структура программы
Описание программы
Программный продукт реализован на платформе Node.js на языках TypeScript, HTML и CSS.
Для демонстрации общей структуры иерархии разрабатываемой среды автоматизированных тестов была спроектирована диаграмма классов на языке графического описания для объектного моделирования в области разработки программного обеспечения UML.
Рисунок Б.1 – Диаграмма классов
В таблице Б.1 приведено краткое описание каждого класса и интерфейса данного программного обеспечения.
Таблица Б.1 – Описание классов и интерфейсов программы
Класс\Интерфейс |
Описание класса |
IConfig |
Данный интерфейс предназначен для описания объекта с настройками работы программного обеспечения. |
IOutput |
Данный интерфейс предназначен для описания объекта путей файлов тестов. |
Runner |
Данный класс предназначен для вызовов методов загрузки, исполнения и формирования отчетов модульных тестов. |
Loader |
Данный класс предназначен для получения путей файлов тестов, загрузки и выполнения скриптов и предоставляет функции добавления работ, которые выполняются не посредство до или после выполнения модульного теста. |
Assert |
Данный класс предназначен для выполнения проверок внутри модульных тестов и предоставляет методы-утверждения для написания модульных тестов. |
AssertResult |
Данный класс предназначен для описания объекта результата выполнения метода-утверждения. Объект класса содержит в себе успешность выполнения тестов, описание ошибки при провале теста и проверяемое значение. |
StandartAssertResult |
Данный класс наследуется от класса AssertResult и предназначен для расширения объекта результата выполнения метода-утверждения. В объект класса добавляется ожидаемое значение проверки. |
ITest |
Данный интерфейс предназначен для описания объекта теста. |
Test |
Данный класс является реализацией интерфейса ITest и предназначен для выполнения, получение результата и сброса результата модульного теста. |
Продолжение таблицы Б.1
ITestResult |
Данный интерфейс предназначен для описания объекта результата теста. |
IGroupResults |
Данный интерфейс предназначен для описания объекта результата группы тестов. |
GroupTest |
Данный класс является реализацией интерфейса ITest и предназначен для выполнения, получение результата, сброса результата, получение общего количества и количества успешно выполненных модульных тестов группы модульных тестов. |
AbstractReporter |
Данный абстрактный класс предназначен для предоставления общих методов для формирования отчётов о прохождении модульных тестов. |
HtmlReporter |
Данный класс наследуется от класса AbstractReporter и предназначен для предоставления методов для формирования отчёта о прохождении модульных тестов в формате HTML. |
JsonReporter |
Данный статичный класс наследуется от класса AbstractReporter и предназначен для предоставления методов для формирования отчёта о прохождении модульных тестов в формате JSON. |
TextReporter |
Данный статичный класс наследуется от класса AbstractReporter и предназначен для предоставления методов для формирования отчёта о прохождении модульных тестов в формате TXT и вывода в командную строку. |
Методы
Методы класса Runner:
prepareConfig – метод формирования конфигурации программы по аргументам командной строки.
run – метод запуска основной части программы.
Методы класса Loader:
getAllScripts – метод получения файлов тестов в указанных директориях.
loadScripts – метод загрузки полученных файлов тестов.
loadGroupTest – метод формирования группы тестов.
loadTest – метод формирования модульного теста.
addHandler – метод добавления работы в список работ группы тестов, помеченной как текущая.
Методы класса Test:
run – метод запуска теста.
getResult – метод получения результата прохождения теста.
reset – метод сброса результата теста.
Методы класса GroupTest:
run – метод запуска группы тестов.
getResult – метод получения результата прохождения группы тестов.
getTestsCount – метод получения количества тестов в группе тестов.
getSuccessTestCount – метод получения количества успешно выполненных тестов в группе тестов.
addGroup – метод добавления группы тестов в группу тестов.
addTest – метод добавления теста в группу тестов.
addHandler – метод добавления работ в список работ группы тестов.
_runHandlers – приватный метод запуска выбранного типа работ группы тестов.
Методы класса HtmlReporter:
render – метод отрисовки отчёта в формате HTML.
writeReportFile – метод записи отчёта в файл формата HTML.
_renderGroup – приватный метод отрисовки групп тестов в виде строки.
_renderFailedTests – приватный метод отрисовки ошибок при выполнении тестов в виде строки.
_renderTotalInfo – приватный метод отрисовки информации о прохождениии тестов в виде строки.
Методы класса JsonReporter:
render – метод отрисовки отчёта в формате JSON.
writeReportFile – метод записи отчёта в файл формата JSON.
Методы класса TextReporter:
render – метод отрисовки отчёта в формате TXT.
_renderGroup – приватный метод отрисовки групп тестов в виде строки.
_renderTotalInfo – приватный метод отрисовки информации о прохождениии тестов в виде строки.
_renderFailedTests – приватный метод отрисовки ошибок при выполнении тестов в виде строки.
Сообщения
Сообщения для программиста об ошибках программы являются стандартными сообщениями об ошибках для языка JavaScript в среде Node.js.
В случае, если не преданы пути к файлам модульных тестов, программа завершается с текстом ошибки «Не указаны пути к тестам».