Обзор сред автоматизации тестирования.

Рассмотрим некоторые понятия, которые используются в современных средах автоматизации тестирования.

Требование - это формализованное описание свойств системы.

Виды требований:

Бизнес-требования

Функциональные требования

Нефункциональные требования

Тестовые требования

Тестовое требование - это формализованное описание свойств системы, которые необходимо протестировать.

Критерии к тестовым требованиям:

• Корректность;

• Недвусмысленность;

• Полнота;

• Непротиворечивость;

• Упорядоченность по важности и стабильности;

• Проверяемость (верифицируемость или тестопригодность);

• Модифицируемость;

• Трассируемость;

• Понятность.

Тестовый сценарий - это последовательность ДЕЙСТВИЙ для достижения фактического результата.

Состав тестового сценария

• Название

• Предварительные условия

• Необходимые действия

• Ожидаемый результат

• Полученные результаты

• Отметка о прохождении

• Сценарий должен быть прост и понятен всем: неопытному тестировщику, программисту, бизнес-пользователю.

Тестовый набор - набор тестов, которые принадлежат к одной функциональности.

Дефект - отклонение от фактического результата от ожидаемого результата.

Минимальные данные о дефекте:

• краткое описание

• дата

• автор (обнаруживший дефект)

• ссылка на систему и ее версию (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) М. Маран - Лекции МЭИ.