QA Automation, часть вводная
January 10, 2012 | Posted by Andrey Rebrov under Практики, Статьи |
Вводная часть
[Часть первая – читайте здесь.]
В последнее время я все больше вовлекаюсь в процесс автоматизации QA в своей работе, так что мне захотелось немного рассказать о том, что же для меня QA и почему мне хочется его как можно больше автоматизировать. Сразу хочу оговориться, что все о чем я буду писать касается agile процессов, но по идее может быть перенесено и на традиционные методологии.
Для кого эти статьи? Для всей agile команды вцелом, так как качество продукта в agile процессе это задача всей команды без исключений.
Начнем с того, что же такое QA. Приведу цитату из книги Agile Software Testing and Quality Assurance Questions and Answers :
Software quality assurance is an integral part of the entire software development process – monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and focuses on the prevention of system errors.
Другими словами QA это процесс, когда все от сбора требований до поддержки запущенного приложения делается качественно. И, вполне оченвидно, что это задача всей команды.
С какими задачами приходится сталкиваться, когда вовлекаешься в процесс QA:
- сбор и поддержка требований (вне зависимости от способа управления ими);
- управление и поддержка environment (базы, сервера);
- написание тест-кейсов, юзер-стори и так далее;
- написание и запуск различных тестов (unit, performance, integration и т.д.);
- написание кода;
- поставка приложения конечному заказчику;
- ….
Так как никогда не бывает такого, что вся работа обязательно увлекательная, интересная, насыщенная и творческая, то в какой-то момент начнут возникать скучные и однотипные задачи, которые и следует автоматизировать, чтобы осталось время на увлекательные, интересные, насыщенные, ну вы поняли.
Итак, что поддается автоматизации (из личного опыта):
- запуск unit- и integration-тестов, написанных разработчиками, после каждого коммитами (как бы CI);
- тестирование базы данных (тоже вприницпе CI)
- установка приложения на требуемый сервер (идеальный интерфейс с одной кнопкой “Установить”);
- сборка installation pack так же в один клик, с включением документации, мануалов и прочей радости;
- сбор и рассылка статистики кода (Clover, Cobertura при поддержке Sonar для java-разработчиков)
- запуск регрессионных тестов;
- составление отчета по итогам тестирования (включая трейсинг багтрекеров и прочих сред трекинга тест-кейсов);
- мониторинг “здоровья” приложения и раннее распознавание болезней.
И еще ряд приятных мелочей.
Само собой, что все эти активности должны быть тесно связаны межуд собой, чтобы получилась ясная картина ситуации на проекте, а не абстрактное полотно.
Соответственно, что я планирую описать в следующих постах:
- рассмотрю несколько CI серверов, расскажу про их фишки и как их можно нестандартно использовать;
- напишу пару постов о том, какая приятная вещь связка TestNG + WebDriver (Selenium 2);
- отдельный пост посвящу отчетам и их генерации в приятном виде;
- уподоблюсь Роме Юфереве и расскажу про страничку здоровья приложения и manageability.
Все это будет в контексте java разработки, но если будет время и желание постараюсь покрыть еще какие-нибудь языки.
Pingback: QA Automation, часть 1: CI сервер наше все | AgileRussia()
Pingback: Упорядочиваем виды тестирования - Agile Testing Quadrants | AgileRussia()
Pingback: QA Automation, часть 2: Автотестирование - Начало. | AgileRussia()