Содержание.
Что.
Автоматизация тестирования это "...использование ПО для управления выполнением тестов, сравнения ожидаемых и реальных результатов, создания предусловий для выполнения тестов, а также других действий связанных с контролем и отчётностью по тестированию.". На практике об автоматизации часто говорится в узком смысле - автоматизация ручных функциональных тестовых случаев, что обычно означает использование ГИП (графического интерфейса пользователя), т.е. автоматизированные тесты имитируют действия пользователя путём генерирования таких событий как движение "мышью", нажатия, щелчки, ввод с клавиатуры. В широком смысле автоматизация тестирования включает такие вещи как например генерация ежедневных отчётов, рассылка их по электронной почте, наполнение БД тестовыми данными и т.д. .
Некоторые разновидности автоматизации:
Почему.
Будем честны - люди ленивы и склонны становится всё менее внимательными при выполнении одних и тех же действий изо дня в день, снова и снова. Таким образом идея сделать некоего "робота", который будет делать всю нудную и рутинную работу вместо человека - такая идея звучит очень и очень привлекательно.
Зачем.
Успешная автоматизация тестирования решает сразу несколько задач:
- Уменьшение времени на тестирование (чаще всего речь идёт о регрессионном тестировании);
- Делает тестирование более заметным и прозрачным (например можно легко получать замечательно оформленные отчёты по прогону тестов каждый день и таким образом постоянно "держать руку на пульсе" качества продукта);
- Увеличение тестового покрытия (авто-тесты позволяют покрыть большее количество комбинаций за то же время и с возможностью одновременно отслеживать такие параметры как потребление памяти, процессорного времени, дискового пространства и пр.);
- Тестировщики уделяют больше времени сложным сценариям и исследовательскому тестированию;
- Исключение некоторых человеческих ошибок при прогоне тестов.
Где и когда.
Об автоматизации стоит задуматься когда:
- процесс тестирования включает строго определённые последовательности часто повторяемых действий, которые выполняются шаг за шагом без особых изменений и при этом требуют относительно много времени;
- у вас огромное количество сборок и версий для тестирования (например планируется выпустить 64 версии в течении 10 лет);
- необходимо протестировать/изучить поведение системы при определённых условиях(например при 100 000 активных пользовательских сессиях);
- у вас нет ГИПа.
Автоматизация может принести нулевой результат когда:
- процессы тестирования неопределенны и/или хаотичны;
- бизнес-логика недостаточно определена или выверена;
- ГИП нестабилен;
- набор функций системы ещё не определён(разработка прототипа);
- лица принимающие финансово-технические решения до конца не понимают структуру стоимости автоматизации и какие ресурсы для неё необходимы.
Как.
По определению, автоматизация тестирования производится с помощью ПО. Это могут быть внешние библиотеки, компоненты и инструменты или инструменты разработанные внутри проекта или фирмы. Говоря о непосредственно тестировании в рамках автоматизации, существует два больших класса: специализированные инструменты (такие как QTP, TestComplete, LoadRunner) и коммерческие или открытокодовые библиотеки/компоненты(xUnit-ы, Selenium, JMeter). Каждый из классов имеет свои "за" и "против".
Специализированные инструменты:
- в большинстве случаев крайне дороги;
- требуют специального обучения;
- разработанные тесты может быть трудно поддерживать и развивать из-за отсутствия у всех членов команды нужного опыта (например разработчикам может быть трудно быстро начать писать авто-тесты по причине незнакомого языка, среды и т.д.);
- возможны трудности в обновлении/расширении функций таких инструментов (отдельные лицензии например).
+ обычно отличная тех. поддержка со стороны производителя;
+ обученным людям необязательно иметь навыки программирования.
Библиотеки/компоненты:
- требуют навыков программирования;
- документация часто плохая или отсутствует;
+ очень расширяемы - почти всегда можно дописать недостающую функциональность самостоятельно;
+ могут использоваться практически всеми членами проектной команды;
+ часто с открытым кодом и бесплатны.
Ссылки:
[1] http://en.wikipedia.org/wiki/Automated_testing
[2] http://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[3] http://openquality.ru/software-testing/automation.php
[4] http://automated-testing.info/
Содержание.