Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ МО417 Ибрагимова КБ 24.06.docx
Скачиваний:
63
Добавлен:
14.09.2022
Размер:
4.85 Mб
Скачать

Приложение б Руководство программиста

Назначение и условия применения

Назначение программы

Среда автоматизированных модульных тестов предназначена для разработчиков в целях упрощения проверки на корректность отдельных модулей исходного кода программы.

Функции, выполняемые программой

Среда автоматизированных модульных тестов предоставляет следующие возможности:

  • Загрузки и исполнения заданных файлов тестов формата .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.

В случае, если не преданы пути к файлам модульных тестов, программа завершается с текстом ошибки «Не указаны пути к тестам».