Тестирование программ - утомительное, однообразное занятие, не вызывающее у большинства разработчиков ПО особой радости. Поэтому многие компании, специализирующиеся на производстве программных продуктов и оказании консультационных услуг, берут тестирование на себя.
И вот теперь появилась альтернатива. Гораздо удобнее - как для разработчиков, так и для пользователей - применять средства автоматического тестирования. Один из таких продуктов - SQA Suite TeamTest Edition 5.1 компании SQA, которая недавно слилась с фирмой Rational Software и с этой весны использует в своих продуктах название Rational.
Применение автоматических средств тестирования дает еще и полезный побочный эффект: по ходу проектирования тестов для прогонки в автоматическом режиме программист сможет выявить недостатки концепции продукта и ошибки в ее реализации еще до завершения разработки. Например, в приложении, которое я писал, когда задумывал настоящий обзор, был настраиваемый экран ввода информации о клиенте. Но я забыл предусмотреть в нем проверку того, не присвоил ли оператор текущему клиенту номер, уже зарезервированный для другого. По ходу создания испытательных процедур для этого экрана я обнаружил свою оплошность и устранил ее, даже не приступая к тестированию с помощью SQA Suite.
SQA Suite TeamTest Edition состоит из двух основных компонентов. Это, во-первых, SQA Manager, располагающийся на более высоком уровне и предназначенный для создания тестов и управления их хранением. Во-вторых, SQA Robot, осуществляющий регистрацию реального выполнения приложения и манипуляций пользователей (с помощью мыши и с клавиатуры) по ходу выполнения тестов. Данная запись используется затем для сравнения с результатами, полученными при повторении теста в автоматическом режиме. Если обнаружится отличие, можно уже вручную попытаться определить, что стало его причиной: дефект или внесенное усовершенствование.
Ведение списка дефектов и отслеживание их дальнейшей судьбы возложено на SQA Manager. Сам я работу этого продукта не проверял, но в документации утверждается, что редакция SQA Suite Client-Server Edition обеспечивает еще и дополнительную функцию тестирования приложения при различных уровнях нагрузки.
SQA Suite работает в среде Windows 3.x, Windows 95 и Windows NT версий 3.51 и более поздних. В 32-разрядных редакциях Windows пакет обеспечивает тестирование как 16-, так и 32-разрядных приложений. Для написания настоящей статьи я установил его на машине со 100-МГц процессором Pentium под управлением Windows 95, к которой был подключен 21-дюймовый монитор производства корпорации NEC Technologies, работавший в режиме 1280х1024. Наличие монитора с высоким графическим разрешением для тестирования необязательно, но определенно делает разработку и тестирование приложений более удобными. Базовый пакет SQA Suite TeamTest Edition 5.1 занимает около 30 Мбайт дискового пространства. Для обучающих и демонстрационных материалов требуется дополнительное место.
Если нужно получить информацию о дефектах с разбивкой по разработчикам, при описании структуры приложения, охватывающей программные и исполняемые модули, а также документы, включенные в состав проекта, каждому ее элементу можно назначить своего "владельца" - ответственного за него разработчика. SQA Suite будет использовать эту информацию при отслеживании судьбы обнаруженных дефектов.
Следующий этап - создание на основе сформулированных требований набора процедур тестирования. Каждая такая процедура состоит из шагов и контрольных точек, в которых проверяется корректность поведения ПО. Например, одна из процедур тестирования может открывать форму данных о клиенте, вторая - редактировать эти данные, третья - нажимать кнопку Add (новый клиент) и заполнять поля формы информацией о новом клиенте.
SQA Manager предоставляет своему пользователю ряд диалоговых окон, специально предназначенных для проектирования процедур тестирования, задания способа контроля соответствия ПО зафиксированным требованиям и оформления плана испытаний в виде документа, содержащего описания тестов. Комплект SQA Manager включает более 80 готовых форм отчетов, а также средства создания нестандартных отчетов по любой информации, с которой работает SQA Suite.
В целом SQA Manager хорошо организован и тщательно проработан, однако ограничение длины названий процедур тестирования восьмью символами раздражает. Я бы предпочел иметь возможность дать процедуре развернутое описательное имя вместо того шифрокода, которым меня ограничивает SQA.
SQA Robot зафиксирует все манипуляции мышью и нажатия на клавиши клавиатуры, а также идентификационную информацию об окнах, которые появлялись на экране, в виде текста на языке Basic (пользователь может по своему усмотрению выбирать диалект: SQABasic или Visual Basic). Применение Basic позволяет создавать тесты без помощи SQA Robot и самостоятельно редактировать записанные им последовательности.
Кроме того, можно ввести в тест дополнительные исходные условия, чтобы провести проверку более тщательно. Например, если вы считаете необходимым, чтобы первой в списке клиентов стояла компания CustomBytes Inc., можно проинструктировать SQA Robot относительно проверки этого условия.
SQA позволяет задавать в качестве параметров тестирования не только буквенно-цифровые объекты данных, но и меню, списки, предназначенные для работы с данными элементы управления OCX/ActiveX (такие, как координатные сетки), невизуальные объекты, различные свойства объектов, а также проверять наличие тех или иных файлов и окон. Если вас интересует производительность программы на определенном отрезке исполнения испытательной процедуры, можно задать точки начала и остановки таймера системы. Варьирование начальных условий тестирования делает проверку работоспособности приложения более надежной.
Благодаря использованию для генерации процедур языка программирования Basic пользователь может самостоятельно разработать сценарий, объединяющий несколько тестов. Например, создав три отдельные процедуры тестирования работы формы, нетрудно запрограммировать трехкратное ее открытие, каждый раз с заданием соответствующих исходных условий, и закрытие перед переходом к следующему этапу. Все эти процедуры открытия, подготовки условий, тестирования и закрытия объединяются сценарием, что напоминает использование подпрограмм в программе.
После создания процедуры тестирования можно применять ее к создаваемому приложению с помощью SQA Robot. Если какое-либо окно не откроется или необходимая при некотором начальном условии информация окажется недоступной, это событие будет зафиксировано. Если обнаруженный дефект программы заключается в неоткрытии окна или открытии не того окна, фиксируется также внешний вид экрана, что пригодится для последующего анализа.
Главной особенностью SQA Robot является полная автоматизация тестирования. Система может полностью протестировать приложение, в то время как программист занимается чем-либо еще. Периодически обращаясь к исполняющемуся в фоновом режиме модулю SQA Robot, он контролирует, какая часть тестов уже выполнена. С помощью таймеров проверяется также скорость исполнения тестируемого приложения. Результаты помещаются в удобный для просмотра регистрационный журнал.
Для каждого из обнаруженных несоответствий пользователю приходится самому определять, не стал ли его причиной неадекватный либо устаревший тест: со временем приложение вполне могло измениться и перестало удовлетворять зафиксированному сценарию. В последнем случае следует модернизировать тест, приведя его в соответствие с новыми требованиями к приложению. Если же дело в ошибке тестируемой программы, SQA Suite позволяет сформировать отчет об обнаруженных дефектах и направить его ответственному за определенные компоненты приложения программисту. Уведомить последнего об этом можно с помощью MAPI-совместимой почтовой системы.
Все испытательные процедуры, наборы исходных условий и журналы регистрации хранятся в репозитории SQA Test Repository, который представляет собой БД, управляемую СУБД Sybase SQL Anywhere или Microsoft Access. Обычно репозиторий размещается в распределенной системе таким образом, чтобы быть доступным всем ее пользователям.
В целом SQA Suite обладает очень широкими возможностями настройки при создании предназначенных для автоматического исполнения тестов. Единственный недостаток системы - ограничение в восемь символов на длину идентификаторов планов тестирования и тестовых процедур. Недавнее приобретение Rational у Microsoft ее продукта Visual Test дает основания рассчитывать на скорое внесение в SQA Suite дополнительных усовершенствований. Rational планирует интегрировать новые возможности в свой пакет в текущем году.
Коротко о продукте
Преимущества: удобен в работе; поддерживает детальное сравнительное тестирование свойств OCX- и ActiveX-объектов; использует расположенный на сервере масштабируемый репозиторий с информацией о тестах и обнаруженных дефектах; тесно интегрирован с рядом популярных средств разработки.