Автоматизация тестирования
Автоматизация функционального регрессионного тестирования позволяет существенным образом сократить затраты на тестирование ПО и значительно снизить сроки данных работ.
Одной из основных задач обеспечения качества ПО является проведение регрессионного тестирования, ресурсоемкость которого может доходить до 90% от общего объема работ, связанных с тестированием новых версий.
В ходе автоматизации выполняются следующие задачи:
- анализ объектов автоматизации,
- выбор средств автоматизации тестирования,
- определение автоматизируемых компонент,
- разработка архитектурного решения,
- разработка и отладка скриптов,
- проведение регрессионного тестирования;
- обучение специалистов проектных команд работе со средствами автоматизации, а также практикам эксплуатации разработанной инфраструктуры тестирования.
Автоматизация тестирования дает ряд ощутимых преимуществ, таких как:
- снижение стоимости итерации тестирования,
- увеличение скорости тестирования без ущерба для результата,
- повышение надежности систем за счет улучшения качества тестирования,
- уменьшение количества дефектов в функциональности систем,
- обеспечение возможности многократного использования разработанных тестовых сценариев без увеличения стоимости тестирования,
- обеспечение прозрачности информации о качестве принимаемых изменений к программному обеспечению,
- усиление контроля процесса обеспечения качества,
- прозрачность и простота планирования времени для проведения тестирования программного обеспечения,
- использование передовых технологий в сфере обеспечения качества,
- сокращение времени на проведение тестирования программного обеспечения,
- минимизация влияния человеческого фактора на процесс тестирования.
В большинстве проектов по разработке и тестированию программного обеспечения применяется автоматическое тестирование с использованием как коммерческих инструментов: QuickTest Pro, WinRunner, TestComplete, Rational Functional Tester, Rational Robot, - так и opensource-продуктов: Selenium, Watir, WatiN и др. Некоторые из них были подробно рассмотрены в лабораторной работе №4.
Заключение
В ходе выполнения работы были закреплены методы тестирования программного обеспечения. На основе спецификации с использованием метода «черного ящика» были сформированы допустимые и недопустимые классы эквивалентности, то есть набор ситуаций, в которых программа ведет себя одинаковым (корректным/некорректным, соответственно) образом.
Несколько модулей программы (в терминах объектно-ориентированного программирования – методов класса) были протестированы методом «белого ящика». При этом для написания модульных тестов использовался фреймворк NUnit. Несколько объединенных, уже протестированных модулей были подвергнуты интеграционному тестированию для проверки их взаимодействия.
Дополнительно были рассмотрены методика проведения регрессионного тестирования и некоторые средства автоматизации проведения тестов.
Рисунок 9 подтверждает, что все созданные тесты выполняются успешно, то есть программа работает в соответствии со своей спецификацией.
Рисунок 9. Результаты запуска тестов в среде NUnit
[1] Если не указано иное, считается, что источник входных данных (файл или клавиатура) не важен
[2] Формат описания данных и иные ограничения приведены в главе “Ограничения”