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

Введение

Разработка программного обеспечения нередко замедляется и усложняется в процессе отслеживания ошибок программного кода и его последующем ручном тестировании. При увеличении объёма программного кода также увеличивается сложность многократного ручного тестирования, так как необходимо тестировать проект целиком.

Для решения вопроса об уменьшении затрачиваемого времени разработчики пользуются программными средствами для автоматизированного тестирования. Особенную ценность приобретает возможность автоматизированного тестирования для больших коммерческих проектов, в разработке которых участвует большое количество разработчиков. При покрытии кода автоматизированными тестами, упрощается локализация ошибок и отладка программного кода, так как автоматизированные тесты дают возможность тестировать отдельно взятые программные модули. Такой тип автоматизированного тестирования называется модульным тестированием.

В целях повышения эффективности контроля реализации и обнаружения ошибок в программном коде был создан продукт – среда автоматизированного модульного тестирования.

В выпускной квалификационной работе проведен анализ сред автоматизированного тестирования и требования к среде автоматизированного модульного тестирования. Описан разработанный программный продукт.

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

Глава 1. Анализ проблемы и постановка задачи

  1. Анализ предметной области

Автоматизированное тестирование программного обеспечения – процесс тестирования на этапе контроля качества при разработки программного обеспечения. Для выполнения автоматизированных тестов используются программные средства, что помогает сократить время тестирования и упростить его процесс.

Для визуального представления разных уровней и общего объёма автоматизированных тестов для программного обеспечения используют концепцию «Пирамида тестов».

Оригинальная пирамида тестов Майка Кона состоит из трёх уровней (снизу вверх):

Рисунок 1.1 – Пирамида тестов Майка Кона

На первом уровне пирамиды находятся модульные тесты, на втором уровне сервисные тесты, а на третьем – тесты для пользовательского интерфейса.

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

  • Скорость выполнения тестов уменьшается снизу вверх (от модульных – до тестов пользовательского интерфейса).

  • Изолированность тестируемых объектов уменьшается снизу вверх (от модульных - до тестов пользовательского интерфейса).

Также пирамида закладывает два важных принципа для разработки автоматизированных тестов:

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

  • Чем выше уровень тестов по иерархии пирамиды, тем меньше тестов для него необходимо.

Дадим определения для типов тестирования:

UI тесты или тесты пользовательского интерфейса – вид тестирования исследования, выполняемого с целью определения, удобен ли некоторый искусственный объект (такой как веб-страница, пользовательский интерфейс приложения) для его предполагаемого применения конечным пользователем. Действия пользователя должны инициировать правильные события, данные должны представляться пользователю, а состояние UI должно изменяться ожидаемым образом.

Сервисное тестирование в определении Майка Кона – это тестирование служб приложения отдельно от его пользовательского интерфейса.

Модульное тестирование, или юнит-тестирование (англ. unit testing) – процесс в разработке программного обеспечения, позволяющий осуществлять проверку отдельного модуля программного кода с соответствующими ему входными данными на корректность выдаваемого результата.

В качестве модуля, в зависимости от языка программирования, может выступать функция, модуль, пакет, класс или объект. Как правило, разработчиком пишутся тесты для каждой нетривиальной функции или метода.

Важной особенностью модульного тестирования является, то, что модули тестируются в изоляции от всех других компонентов. Это идеально подходит для алгоритмических и функциональных задач.

Использование модульных тестов в разработке позволяет быстро определить и локализовать появление ошибок при очередном изменений программного кода. Так же модульные тесты помогают при выявлении регрессии, то есть к появлению ошибок в уже оттестированных местах программы.