Обзор сред автоматизации тестирования.
Рассмотрим некоторые понятия, которые используются в современных средах автоматизации тестирования.
Требование - это формализованное описание свойств системы.
Виды требований:
Бизнес-требования
Функциональные требования
Нефункциональные требования
Тестовые требования
Тестовое требование - это формализованное описание свойств системы, которые необходимо протестировать.
Критерии к тестовым требованиям:
• Корректность;
• Недвусмысленность;
• Полнота;
• Непротиворечивость;
• Упорядоченность по важности и стабильности;
• Проверяемость (верифицируемость или тестопригодность);
• Модифицируемость;
• Трассируемость;
• Понятность.
Тестовый сценарий - это последовательность ДЕЙСТВИЙ для достижения фактического результата.
Состав тестового сценария
• Название
• Предварительные условия
• Необходимые действия
• Ожидаемый результат
• Полученные результаты
• Отметка о прохождении
• Сценарий должен быть прост и понятен всем: неопытному тестировщику, программисту, бизнес-пользователю.
Тестовый набор - набор тестов, которые принадлежат к одной функциональности.
Дефект - отклонение от фактического результата от ожидаемого результата.
Минимальные данные о дефекте:
• краткое описание
• дата
• автор (обнаруживший дефект)
• ссылка на систему и ее версию (build)
• приоритет (Priority)
• серьезность проблемы (Severity)
• описание (предусловия, шаги для воспроизведения, ожидаемый результат, действительный результат)
• состояние, статус
Классификация по типу: Ошибки в функциональности
• ошибки эргономики модуля или бизнес-процесса
• ошибки документирования
• ошибки производительности
• ошибки локализации
• ошибки совместимости
• ошибки безопасности
Степени критичности:
• Максимальная критичность
• Высокая критичность
• Нормальная критичность
• Низкая критичность
Жизненный цикл дефектов. |
Система трекинга багов — это инфраструктура, позволяющая:
• создавать,
• хранить,
• просматривать и
• модифицировать информацию
Каждый баг, занесенный в СТБ, представляет собой виртуальную учетную карточку.
Обычно
Рассмотрим несколько известных баг-трекинговых систем:
• BUGS
• Bugzilla
• JIRA
• Trac
• Track Studio
• Продукты HP
BUGS - the Bug Genie
www.thebuggenie.com
Это свободная система отслеживания ошибок. Для управления предоставляется веб-интерфейс. Система кроссплатформенная, написана на PHP.
BUGS предоставляет базовый набор инструментов для регистрации ошибок, расстановки приоритетов, формировании задач для разработчиков.
Система позволяет:
• оповещать всех, кто может быть связан с ошибкой.
• отслеживать ошибки в зависимости от версии и конфигурации ПО.
• сохранять ошибки в единую БД, представляющую собой базу знаний об ошибках в проекте. Далее по этой БД можно формировать подробные отчеты.
• устанавливать blocker bugs - ошибки, которые могут блокировать выпуск релиза.
В последних версиях разработчики BUGS улучшили формат отчетов. Что особенно приятно: BUGS обладает user-friendly интерфейсом. Для работы с этой BTS вам не потребуется копаться в горах мануалов.
Недостаток BUGS - отсутствие распределенной многопользовательской работы. Невозможно работать удаленно с несколькими серверами или несколькими БД. В силу этого можно рекомендовать, BUGS для небольших команд разработчиков.
Bugzilla
www.bugzilla.org
Bugzilla - это одна из наиболее популярных систем багтрэкинга. Bugzilla является свободным ПО и распространяется по Mozilla Public License.
Bugzilla пользуются более 800 (!) компаний по всему миру.
Система позволяет:
• отслеживать ошибки и изменения кода
общаться с членами команды
• размещать и описывать патчи
• производить контроль качества продуктов
Система предоставляет отличную базу знаний для ошибок, по которой можно весьма легко формировать отчеты. Bugzilla имеет стандартный веб- интерфейс.
Bugzilla можно интегрировать с другими программами, для управления проектами:
• CVS
• Perforce SCM
• Subversion
• Tinderbox/Tinderbox2
К недостаткам Bugzilla можно отнести сложность установки, зависимость от модулей Perl, сложность администрирования и несколько неприглядный интерфейс
JIRA
www. atlassian. com/software/j ira/
JIRA обладает на сегодняшний день наиболее широкой функциональностью среди систем отслеживания ошибок. В целом JIRA повторяет архитектуру Bugzilla.
Процесс баг трэкинга следующий:
• Создаваясь, сообщение обязательно имеет Assignie - ответственного, адресата
• Каждому Issue можно поставить приоритет важности, адресовать на себя, добавить комментарий.
• Сообщения можно установить статус IN PROGRESS - в начале работы над ним, и соответственно указав, когда работы над ним закончены.
Аккаунты пользователей управляются как администратором, так и самим пользователем. Пользователи могут быть объединены в группы. При чём как отдельному пользователю так и группе можно запретить/разрешить одно вполне конкретное действие.
JIRA идеально подходит для крупных проектов, с большим штатом тестировщиков. Используя JIRA можно работать под различными ОС, создавать и вести «схемы безопасности» для каждого из проектов.
Эта BTS обладает одним существенным недостатком: она платная.
Trac
trac.edgewall.org
Trac - это открытое ПО, являющиеся одновременно инструментом для управления проектом и системой отслеживания ошибок.
Интерфейс Trac фактически представляет wiki. Система использует в работе SVN репозиторий, так что использовать его имеет смысл только вместе с svn.
Возможности системы:
• разделение проекта на этапы (milestones)
• контроль выполнения (roadmap)
• все изменения по проекту заносятся на временную шкалу (timeline)
• поддержка RSS
Отчеты об ошибках можно заносить в тикеты. Среди прочего Trac позволяет: учет ошибок, замечаний, пожеланий с возможностью фильтрации и занесение соответственно в milestone, roadmap.
Trac является кроссплатформенной системой. Эту систему можно рекомендовать широкому кругу разработчиков, которые хотят внедрить комплексную систему управления проектами, включающую отслеживание ошибок.
Track Studio является отечественным продуктом и разработан российской компанией «ГРАН»
В отличие от JIRA, оптимизированной для работы с внешними клиентами, Track Studio позволяет эффективно организовать работу внутри компании (например, обработку обращений клиентов). Track Studio позволяет эффективно управлять тысячами проектов: проекты можно организовывать в иерархию, можно делать поиск проектов по параметрам, к проектам можно прикладывать файлы, для проектов можно создавать пользовательские поля (дата релиза, клиент, номер договора) и многое другое. Одно из преимуществ состоит в том, что Track Studio хорошо поддерживает БД Oracle.
В Track Studio сложно осуществлять интеграцию с другими средами разработки. Кроме того у программы достаточно сложный интерфейс.
Цены на Track Studio начинаются от $500, что является существенным преимуществом по сравнению с JIRA.
HP LoadRunner, HP QuickTest Professional, HP Quality Center
На рынке ПО для тестировщиков также существует и решение от НР(Компания HP совершила крупнейшую сделку по приобретению Mercury Interactive Corp., в результате которой их детище - HP Software - интегрирует возможности Mercury в сфере управления и тестирования приложений с обширным портфелем решений HP для управления ИТ). В состав ПО входит
• HP Quality Center
• HP QuickTest Professional
• HP LoadRunner
HP Quality Center представляет собой законченную интегрированную систему для обеспечения управления процессами контроля качества на всех этапах разработки ПО.
В HP Quality Center включены средства организации и проведения тестирования (ручного).
HP Quality Center содержит пять модулей, тесно интегрированных между собой и обеспечивающих непрерывность процесса тестирования:
1. Management — в данном модуле
регистрируются релизы программного обеспечения, подлежащие тестированию. Сущность «Release» может иметь дочернюю сущность «Cycle», означающую цикл тестирования.
2. Requirements management — в данном модуле описываются требования. Как правило, каждому требованию
соответствует одна сущность «Requirement». Допускается многократная вложенность требований, а также различные типы требований (в том числе, создаваемые пользователями).
3. Test Plan — в данном модуле создаются планы тестирования. Есть возможность генерации иерархии тестов напрямую из иерархии требований. Тесты могут быть описаны вплоть до шагов, в которых определяется ожидаемое состояние системы.
4. Test Lab — в данном модуле отдельные тесты объединяются в последовательности, задаются условия запуска тестов в зависимости от успешности запуска предыдущих, создаётся расписание запуска тестов, осуществляется запуск тестов вручную.
5. Defects management — данный модуль представляет собой систему отслеживания ошибок, интегрированную со всеми другими модулями. То есть, возможно зарегистрировать ошибку как в требовании (модуль Requirements), так и в тесте или шаге теста (Test Plan), так и в конкретном запуске теста (Test Lab).
HP QuickTest Professional (QTP) — один из ведущих инструментов автоматизации функционального тестирования, является флагманским продуктом компании HP в своей линейке. Для разработки автоматизированных тестов QTP использует язык VBScript, и поддерживает следующие технологии: Windows® Presentation Foundation, Web services, Macromedia Flex, Ajax, Delphi, .NET, J2EEWeb, Visual Basic, ActiveX, Java, Oracle, SAP Solution, TE, PowerBuilder, Siebel, PeopleSoft, VisualAge, Stingray.
Компания HP рекомендует использование QTP в интеграции с HP Quality Center для установления связи тестов с требованиями, хранения тестов, управления их запуском, формирования отчётов.
В отличие от ряда других продуктов для автоматизации функционального тестирования (например, IBM Rational Robot), QTP позволяет контролировать генерируемый текст скрипта в процессе записи действий пользователя, за счёт чего снижается время, необходимое для разработки теста.
В QTP информация обо всех объектах экранного интерфейса сохраняется в специальный репозиторий (Object Repository), что новому пользователю может показаться непрозрачным. Умолчания по выбору существенных свойств каждого типа объектов экранного интерфейса могут быть настроены отдельно, например, окно может определяться заголовком, а столбец таблицы — шириной и порядковым номером в таблице.
Существует встроенный механизм сравнения текстовых данных с использованием регулярных выражений.
Так же существует возможность записи теста, и последуюшим воспроизведением, редактированием как уже было сказано на языке VBScript.
HP LoadRunner — утилита для автоматизированного нагрузочного тестирования. Программа может выполнять как тестирование различных приложений, так и тестирование сайтов различного уровня сложности. Подключая виртуальных пользователей выполняющих различные скрипты (действия), по различным сценариям. Программа имеет соответствующие наборы инструментов для проведения тестирования. Так же в состав HP LoadRunner входит набор инструментов для работы по различным протоколам с приложением (удаленно, через прокси-сервер и т.п.)
HP LoadRunner состоит из следующих приложений:
■ Virtual User Generator (VuGen) — служит для разработки нагрузочных скриптов.
■ Load Generator — служит для генерации нагрузки (генерации виртуальных пользователей).
■ Controller — служит для разработки и запуска сценариев нагрузки.
■ Analysis — служит для анализа результатов нагрузочного тестирования.
Основной недостаток у такого решения - цена.
Выводы
Мы рассмотрели несколько решений для автоматизации процесса тестирования (и автоматизированного тестирования). Отметим, что тестирование проектов можно и проводить и без помощи специальных средств(например, редактировать тестовые случаи в блокноте, а тест - сьюиты хранить в папках). Но это неудобно для тестирования больших проектов, при работе а команде более двух человек.
Все рассмотренные продукты предназначены для тестирования функциональности(регрессионное тестирование, тестирование нового функционала), так же выполняют коммуникативную функию(тестировщик - разработчик).
Так же решения, такие как HP Software предполагают взаимодействие разработчиков и различных тестировщиков обычных, ручных(не автоматических, которые обычно тестируют функционал(регрессионное тестирование, тестирование нового функционала)), автоматизаторов тестирования(разрабатывают автоматизированные скрипты), нагрузочных, тестировщиков и, наконец, самих разработчиков.
Выводы
В этой работе были рассмотрены основные виды тестирования, классификация видов тестирования, история тестирования, некоторые инструменты для тестирования
Литература:
1) wikipedia.ru
2) Р. Савин - тестированиеdot-com М. «Дело» 2007. 312
3) М. Маран - Лекции МЭИ.