Автоматизация тестирования
Издержки тестирования
Чем больше трудозатрат вкладывается в процесс тестирования, тем меньше ошибок в продукте остается незамеченными (A).
Со временем, по мере обнаружения более сложных ошибок и дефектов (В), эффективность низкозатратных методов падает вместе с количеством обнаруживаемых ошибок (С).
Таком образом, соответствующие методы тестирования имеют свою нишу, где они хорошо обнаруживают ошибки, тогда как вне ниши их эффективность падает. Поэтому необходимо совмещать различные методы и стратегии отладки и тестирования с целью обеспечения запланированного качества программного продукта при ограниченных затратах, что может быть достигнуто использованием процесса управления качеством программного продукта.
На практике используются следующие методы тестирования и отладки, упорядоченные по связанным с их применением затратам:
-статические методы тестирования
-модульное тестирование
-интеграционное тестирование
-системное тестирование
-тестирование реального окружения и реального времени
_
Автоматизация тестирования
Фазы процесса тестирования
Впроцессе тестирования целесообразно выделить следующие фазы:
-определение целей (требований к тестированию): какие части системы будут тестироваться, какие аспекты их работы будут выбраны для проверки, каково желаемое качество и т.п.
-планирование: создание графика (расписания) разработки тестов для каждой тестируемой подсистемы; оценка необходимых человеческих, программных
иаппаратных ресурсов; разработка расписания тестовых циклов.
-разработка тестов, то есть тестового кода для тестируемой системы, если необходимо - кода системы автоматизации тестирования и тестовых процедур (выполняемых вручную)
-выполнение тестов - реализация тестовых циклов.
-анализ результатов.
После анализа результатов возможно повторение процесса тестирования,
начиная с планирования, разработки тестов или даже с уточнения и/или переопределения целей.
Автоматизация тестирования
Тестовый цикл
Тестовый цикл – это цикл исполнения тестов, включающий выполнение тестов и анализ результатов тестового процесса.
Тестовый цикл включает следующую последовательность действий:
1)Проверка готовности системы и тестов к проведению тестового цикла
2)Подготовка тестовой машины в соответствии с требованиями, определенными на этапе планирования (например, полная очистка
ипереустановка системного программного обеспечения). Конфигурация тестовой машины, так же, как и срез системы, должны быть однозначно воспроизводимыми.
3)Воспроизведение среза системы.
4)Прогон тестов в соответствии с задокументированными процедурами.
5)Сохранение тестовых протоколов (test log)
6)Анализ протоколов тестирования и принятие решения о том прошел или не прошел каждый из тестов (Pass/Fail)
7)Анализ и документирование результатов цикла.
Автоматизация тестирования
Планирование тестирования
Тестовый план - это документ или набор документов, содержащий:
1)Тестовые ресурсы.
2)Перечень функций и подсистем, подлежащих тестированию.
3)Тестовую стратегию, включающую:
-анализ функций и подсистем с целью определения наиболее слабых мест, то есть областей функциональности тестируемой системы, где появление дефектов наиболее вероятно
-определение стратегии выбора входных данных для тестирования
-определение потребности в автоматизированной системе тестирования
идизайн такой системы
4)Расписание тестовых циклов
5)Фиксацию тестовой конфигурации: состава и конкретных параметров аппаратуры и программного окружения
6)Определение списка тестовых метрик, которые на тестовом цикле необходимо собрать и проанализировать, например, метрик, оценивающих степень покрытия тестами набора требований, степень покрытия кода тестируемой системы, количество и уровень серьезности дефектов, объем тестового кода и другие характеристики.
Автоматизация тестирования
Типы тестирования
В тестовом плане определяются и документируются различные типы тестов. Типы тестов могут быть классифицированы по двум категориям:
-по тому, что подвергается тестированию (по виду подсистемы или продукта)
-по способу выбора входных данных
Типы тестирования по виду подсистемы или продукта:
1)Тестирование основной функциональности, когда тестированию подвергается собственно система, являющаяся основным выпускаемым продуктом
2)Тестирование инсталляции включает тестирование сценариев первичной инсталляции системы, сценариев повторной инсталляции (поверх уже существующей копии), тестирование деинсталляции, тестирование инсталляции в условиях наличия ошибок в инсталлируемом пакете, в окружении или в сценарии и т.п.
3)Тестирование пользовательской документации включает проверку полноты и понятности описания правил и особенностей использования продукта, наличие описания всех сценариев и функциональности, синтаксис и грамматику языка, работоспособность примеров и т.п.