Разработка критериев анализа систем автоматизации тестирования |
29.09.2008 18:59 |
Автор: Панкратов Вячеслав Средства автоматизации процессов тестирования представлены на рынке очень широким кругом компаний производителей. Автоматизация тестирования затрагивает всё более глубокие технические процессы разработки ПО и всё глубже интегрируется в процесс его производства.
Статья затрагивает вопросы классификации средств тестирования и предлагает систему анализа основанную на оценке качественных характеристик инструментария и сопутствующих условий внедрения и использования. Рассмотрен широкий спектр критериев: от набора функционала, который реализован в инструменте, до оценки уровня зрелости самой компании производителя и службы поддержки. План.
1.Поддерживаемые процессы тестирования.Так как система автоматизации тестирования тесно связана с реальными процессами разработки программных систем, а также опирается на определённые процессы тестирования, при анализе необходимо в первую очередь обращать внимание на поддержку инструментом или набором инструментария определённых процессов/технологий тестирования и жизненного цикла разработки ПО. Итак, первый критерий анализа: Поддерживаемые процессы тестирования.Стоит оговориться, что на данном этапе развития рынка систем автоматизации тестирования, существует два подхода к построению инструментария тестирования. Одним типом можно считать продукты, которые охватывают все технологии тестирования, обработку разноплановой информации, которая описывает этапы разработки и требования к программному продукту, а также осуществляют поддержку процессов генерации проектной документации. Другой тип инструментария можно оценивать как узкопрофильный, то есть не охватывающий все этапы тестирования и жизненного цикла ПО, а осуществляющий полноценную поддержку какого-либо важного функционала. К примеру, в последнее время получили широкое распространение так называемые bug-tracking системы, то есть системы управления ошибками. Для более полного анализа стоит разносить в процессе оценки инструменты разных типов, по разным категориям, одновременно расширяя набор критериев для узкоспециализированных инструментов. Рассмотрим более подробно технологии и процессы тестирования программного обеспечения, которые могут поддерживаться инструментальными средствами тестирования.
Поддержка этих процессов является важным критерием, при оценке системы автоматизирования тестирования. 2. Поддерживаемые типы тестов.Вторым критерием анализа, логично было бы выделить поддержку различных типов тестов, которые автоматизируются системой. Сообществом тестировщиков и практической работой, выделены основные типы тестов, описание которых поддаётся формализации. Рассмотрим их.
Наличие функционала, который позволит автоматизировать выполнение определённого типа тестов, является вторым критерием анализа инструментария средств автоматизации тестирования. 3. Поддерживаемые технологии.Под технологиями будем понимать — организованную совокупность процессов, элементов, устройств и методов, используемых для обработки информации. К примеру, технологии .NET, CORBA, OLE, COM, DCOM, COM+ и т.д. Под поддержкой технологий инструментарием тестирования будем понимать возможность записи и воспроизведения тестовых скриптов, которые будут производить тестовые вызовы элементов программного кода выполненных в стандартах той или иной технологии. Следует оговориться, что уровень поддержки той или иной технологии существенно различается на уровне реализации тестовых скриптов. К примеру, большинство производителей инструментальных средств тестирования реализуют возможность записи и воспроизведения скриптов имитирующих действия пользователя по отношению к пользовательскому интерфейсу, то есть поддерживаются возможности выбора из набора графического интерфейса программы определённого элемента (контрола) и передачи ему фокуса с последующим выполнением нажатия. Такая поверхностная поддержка, конечно, производит впечатление на потенциального заказчика (довольно эффектно выглядит к примеру автоматическое заполнение многостраничных форм регистрации за несколько секунд, даже с генерацией случайных данных из заданного диапазона), но без возможности непосредственной работы с объектной моделью приложения, этот функционал остаётся лишь красивым дополнением к системе автоматизированного тестирования, но не её основой. Приведём пример: Есть форма с элементом выпадающий список. Количество элементов списка определяется количество записей в таблице базы данных и есть динамически изменяемая величина. Значения элементов списка представляют, к примеру числовые данные. Список отсортирован не по величине значений, а по дате последнего изменения этого значения. Задача: при выполнении тестового скрипта выбрать из выпадающего списка максимальное (или минимальное) значение. Напомним что список не отсортирован по величине, и выбрать первый или последний элемент, координаты которого можно рассчитать не получится. Кроме того, количество элементов списка также величина динамическая - выбор последнего элемента затруднён. Нужно получить список всех значений из списка, заполнить ими массив, отсортировать, найти нужное значение. Обратиться к элементу «список», споцизионироваться на нужный элемент (задача не просто решаемая перемещением курсора мышки на определённую координату), имитировать нажатие. Без возможности доступа к объектной модели элемента такая задача не решается в приемлемые сроки. Как результат встречаются скрипты которые в подобной ситуации просто выбирают какое-то (неуправляемое) значение. Общая картина работы такого тестового скрипта напоминает тыканье слепого в интерфейс пользователя, чем заполнение формы тестовыми данными. Суть поддержки той или иной технологии инструментом тестирования состоит в возможности работать через средства инструмента с объектной моделью приложения, вызовами процедур и методов из тестовых скриптов, генерации вводимых данных на основе анализа диапазона передаваемых параметров. Говоря неформальным языком, поддерживаемой можно считать такую технологию, при работе с которой инструмент как минимум “видит” объектную модель приложения, выполненного согласно стандартов технологии. Если в описании инструмента заявлено, что с его помощью можно проводить тестирование приложений выполненных с поддержкой практически всех технологий, следует внимательно уточнять уровень этой самой поддержки, потому что в большинстве случаев компания разработчик имеет в виду именно запись/воспроизведение имитационных сценариев. Такая поддержка никоим образом не охватывает непосредственно тестирование серверных компонентов или сервисов приложений, выполняющих бизнес-логику приложений. Также практически невозможно оценить в целом уровень производительности приложений моделируя пользовательскую нагрузку имитацией реальных действий пользователя через пользовательский интерфейс. Отдельно хотелось бы оговорить специализированные инструменты, которые поддерживают технологии работы с данными, серверные компоненты и сервера баз данных. В целом картина на рынке таких инструментов отличается от состояния дел на рынке инструментов для тестирования функциональности. Суть таких инструментов, не только создать нагрузку на сервер базы данных (для этого существует отдельный класс так называемых нагрузочных и стрессовых инструментов), с тем чтобы зафиксировать время отклика и/или выполнения того или иного запроса или вызова. Средства которые поддерживают технологию какой-то определённой СУБД (Oracle, Informix, DB2, MS SQL) должны обладать не только функционалом вызова к примеру хранимых процедур, или подобной функциональностью, которая будет создавать нагрузку и анализировать поведения сервера, но в идеале и проводить анализ конфигурации серверного окружения, структур и схем хранения данных, контроль за следованием стандартам обращений к данным с тем. Результатом работы такого средства может служить сгенерированный набор аналитических данных на основе которых сервер или окружение будет конфигурироваться под конкретную архитектуру базы данных и возможно настраиваться согласно выбранной технологии реализации клиентского приложения. Указанные требования накладывают существенные ограничения на функциональность подобных средств. Зачастую компания производитель поддерживает на глубоком уровне только одну конкретную СУБД, разработка инструмента ведётся в тесной интеграции с компанией разработчиком самой СУБД с учётом особенностей архитектуры и технологических решений. Инструментарий получается довольно узкоспециализированный и дорогостоящий, его применения оправдано в случае внедрения долгосрочных промышленных систем автоматизации или систем повышенной отказоустойчивости. 4. Интеграция с системами разработки.Наравне с интеграцией процесса тестирования в процессы проектирования и разработки ПО, современные средства автоматизации процессов тестирования должны предоставлять механизмы интеграции с системами разработки. Под системами разработки ПО будем понимать не только саму среду разработки (development environment) уровня Visual Studio и Delphi, но и инструменты планирования и управления процессом разработки (к примеру Microsoft Project Manager, DevPartner, Rational Unified Process), документооборота и управления ошибками, конфигурациями (Borland StarTeam, Rational ClearQuest ) и средства централизованного хранения и изменения данных (Visual Source Safe, CVS). Виды интеграции. Какие сервисы может предоставить современная система автоматизации тестирования в разрезе взаимодействия с системой разработки?
Таким образом система автоматизации тестирования в идеальном случае должна иметь возможность интеграции со всеми типами систем разработки ПО и иметь достаточную гибкость конфигурирования, которая позволит использовать её с используемыми средствами хранения и обработки данных. Что даёт тесная интеграция с технической точки зрения? Преимущества использования среды автоматизации тестирования выдержанной в рамках общих требований к системе разработки и использующей схожие технологии хранения данных:
Выбор системы автоматизации должен происходить на этапе выбора технологии разработки и инструментария процесса разработки. Построение системы автоматизации тестирования происходит параллельно с построением среды и инфраструктуры разработки. Система, выбранная из нескольких аналогичных по функционалу, но более органично интегрируемая с инструментарием и обеспечением системы разработки, даёт более широкие возможности использования и как следствие повышает окупаемость вложений. 5. Техническая и документальная поддержка компанией разработчиком.Под критерием технической и документальной поддержки будем понимать уровень организации процесса сопровождения инструментария со стороны компании разработчика. Документальная поддержка.В комплект приобретённого инструмента должен входить пакет сопроводительной документации, который включает описание технических возможностей и требований к окружению системы (system requirements), руководство пользователя (user guide), системного администратора (installation guide) и в некоторых случаях руководство администратора системы (process manager guide). Комплект документации должен быть предоставлен в печатном и электронном виде, кроме того стоит обратить внимание на локализацию документации, так как документация предоставленная на родном для покупателей / разработчиков языке будет гораздо быстрее обработана. Самым удобным и эффективным в работе, можно считать электронный вид документации выполненный по типу MSDN или TechNet. Конечно, такой вариант оформления сопроводительной документации применим при достаточно большом объёме. Такая система требует отдельной инсталляции, является по сути своей отдельным программным продуктом и подходит под классификацию не как документация, а скорее как база знаний. Такого типа система документации позволяет строить более сложные запросы и базируется не только на описании программного продукта или технологии, но включает в себя также и статьи схожей тематики, описания наиболее часто встречаемых проблем, информацию о тематических ресурсах в сети internet. Техническая поддержка.Под технической поддержкой будем понимать возможность обратиться в службу технической поддержки воспользовавшись одним из электронных средств связи или телефоном. Особо стоит обратить внимание на круглосуточную поддержку при приобретении средств у западных производителей, так как из-за разницы во времени запросы в службу поддержки могут прийтись на ночное время. Аналогичным критерием при оценке уровня тех поддержки служит поддержка 365 дней в году, так как обращение в службу поддержки должны обрабатываться и в дни религиозных праздников или выходных дней той страны в которой работает служба поддержки. Уровень доступности поддержки принято оценивать по шкале 365/7/24 – кол-во дней в году / кол-во дней в неделю / кол-во часов в сутки. К факторам оценки уровня технической поддержки стоит отнести:
Критическим может оказаться любой из приведённых факторов, так как служба поддержки не может считаться полноценной, если она не доступна круглосуточно и не работает в ожидаемых и заявленных рамках. 6. Обучение и сертификация персонала, работающего с набором инструментов и/или методологией.Время, затраченное персоналом на обучение работе с инструментом, является на этапе внедрения инструмента или технологии тестирования одним из ключевых моментов на который стоит обращать внимание при разработке планов использования приобретаемого инструмента. Компания производитель поставляющая средства автоматизированного тестирования, кроме самой продажи средств должна обеспечивать и сервис для обучения персонала (непосредственных тестировщиков, системных администраторов, администраторов самих систем автоматизации) и менеджеров (руководителей отделов и проектных менеджеров) принципам работы и функциональности, предлагаемой в инструменте. С развитием методик тестирования, также становится всё более необходимым обучение новым методам и подходам в тестировании. Зачастую производитель выходит на рынок не только с инструментом или линейкой интегрированных средств, но и выводит новую методику, воплощая её в оригинальном программном решении. Кроме того, так как сложные системы автоматизации тестирования на данном этапе развития представляют собой не только среду для проведения тестирования, но и инструмент разработки тестовых скриптов, управления тестовыми сценариями и оценки качества программных продуктов, стоит говорить об обучении нескольких рангов пользователей:
Для того, что бы обучение работе с инструментом или методикой могло служить критерием оценки инструмента, нужно определиться с перечнем предоставляемых производителями инструментария услуг, которые могут быть отнесены к разряду обучения:
Курсы и обучение специалистов оказывают прямое влияние на эффективность использования приобретённого и внедрённого инструмента, то есть являются фактором, который влияет на возврат инвестиций в проект автоматизации в целом. Сертификация же является отличным стимулирующим средством в процессе обучения специалиста технологии или работе с инструментом. 7. Представительство компании-разработчика в странах ближнего зарубежья.Почему критерий наличия у компании разработчика представительства в странах ближнего зарубежья (а в идеальном случае и в стране где находится компания, которая приобретает средство автоматизации) настолько важен? Одной из причин, по которой компания-разработчик должна иметь представительство или компанию, которая представляет продукты на отечественном рынке, является цена приобретаемого за границей продукта. В самом деле, на современном этапе развития платёжных систем, сложности при переводе денег, даже для частного лица, в другую страну не может служить поводом для отказа от приобретения инструмента. Одним из моментов, который стоит учитывать, это увеличение стоимости самого инструмента, а стало быть и сроков его окупаемости, в случае переводов за границу и затрат на доставку. В нашей стране вопросы также возникают вокруг процесса получения самого продукта, если он в целях безопасности не передаётся по каналам связи, а высылается почтой. «Растамаживание» программного обеспечения также является фактором увеличивающим его стоимость. А так как серьёзные программные продукты идут в поставке с документацией и дополнительными компонентами, комплект поставки может составлять не один десяток носителей типа компакт-диск. Стоимость услуг растамаживания продукта определяется количеством компакт дисков. Прибавим сюда компакт с рекламой и презентацией и вполне реально получаем солидную прибавку к стоимости продукта, цена которого нас устраивала вначале. В пользу важности этого аргумента может послужить тот факт, что многие компании в СНГ и в Украине в частности переводят подписки на продукцию компании Microsoft в план поставки на DVD носителях. Как известно, DVD носители вмещают до 5 Гб полезной информации, а стало быть могут служить заменой примерно 7-ми компакт-дискам. Зачастую, гораздо выгоднее установить несколько дополнительных приводов для чтения DVD дисков, чем платить за растаможку примерно 150 компактов ежеквартального обновления подписки от Microsoft. Немаловажным моментом также является тот факт, что компания уже работает на рынке, где вы готовы потреблять её продукт, что может служить большим плюсом при оценке уровня зрелости самой компании-производителя и её продуктов в часности. Итак второй фактор, это уровень зрелости компании, который поддаётся оценке по наличию компании представителя. По наличию представительства также можно судить о качестве локализации продукта на родной для разработчиков и тестировщиков вашей компании язык. О важности такого атрибута любого программного продукта как локализованная версия программы и сопроводительной документации говорилось в предыдущем разделе. Идеальным случаем представительства можно считать компанию, которая осуществляет не только продажу и консультации по продукту, но также оказывает услуги поддержки пользователей. Кроме того, что можно рассчитывать на службу поддержки, к которой можно обратить на родном или родственном языке (имеет смысл для стран СНГ, где русский язык получил широкое распространение), время запросов пользователей будет отличаться не более чем на несколько часов от времени работы службы поддержки, если даже сама служба работает не круглосуточно. 8. Практическое применение критериев.Полезность и актуальность любого исследования в работоспособности разработанных в его результате решений. Приведём пример решённой практической задачи, которая на определённом этапе взросления структуры тестирования и обеспечения качества в компании встала перед автором этой статьи. При постановке задачи на выбор инструмента, были применены все группы критериев, в результате чего ,были выделены наиболее важные группы критериев. В двух словах нужно было предложить средство, которое обеспечивало бы потребности по функционалу, которые были сформулированы на этапе разработки планов тестирования, и было приемлемым решением по критерию цена/качество. В существующем процессе разработки уже были привлечены инструменты обеспечивающие следующие задачи разработки:
Основные функциональные требования к системе автоматизации тестирования:
Нефункциональные требования к системе:
Обзор рынка производителей дал довольно обширный список производителей и инструментов. Во многом определиться с кругом компаний помогли критерии задачи, которые касались технологии разработки. Многие из сравнительно недорогих инструментов, от молодых компаний, в данных версиях «не умели» работать с объектной моделью приложений выполненных в технологии Microsoft .NET. Среди производителей достаточно мощных линеек инструментов выделились следующие компании:
Проведя анализ представленной на рынке продукции по ценовому критерию, из обзора были практически полностью исключены инструменты компании Rational и CompuWare. Продукты компании Mercury Interactive представляли интерес с той точки зрения, что достаточно высокая цена компенсировалась наличием в России учебно-сертификационных центров компании. Программа подготовки специалистов, кроме достаточно широко охвата материала, была выделена по критерию удобства: существует возможность проведения тренингов и семинаров на территории заказчика с выездом необходимых специалистов центра. Практически все компании имели достаточно мощную сеть ресурсов по работе с пользователями, однако особо была отмечена структура конференций компании AutomatedQA. Оценка инструментов функционального тестирования по степени зрелости компаний и по программам технической поддержки не смогли выявить явных лидеров. Проведя анализ полученных демонстрационных версий в работе с пилотным проектом, выполненным специально для этих целей, были получены оценки по критериям удобства использования инструментов и также предварительные оценки простоты изучения методологий тестирования заложенных в возможности инструментов. Анализ технических возможностей, особенно поддержка объектной модели приложений в технологии Microsoft .NET позволили выделить в качестве бесспорных лидеров два продукта: TestComplete от AutomatedQA.Corp и QuickTest от Mercury Interactive. Оба продукта предлагают разработчикам тестовых скриптов глубокую поддержку специфичных контролов Microsoft .NET. В результате сравнения списков поддерживаемых элементов, продукт QuickTest опередил своего конкурента по количеству типов поддерживаемых контролов. Однако при более детальном анализе используемых в разрабатываемой системе элементов, выяснилось, что в TestComplete присутствует полноценная поддержка всех необходимых типов элементов управления. Сравнив условия лицензирования (все подобные средства очень растут в цене с увеличением количества рабочих мест) и условия предоставления следующих версий, TestComplete вышел победителем в гонке. Таким образом, инструмент от компании AutomatedQA, TestComplete был выбран из списка инструментов функционального тестирования и рекомендован руководству проекта как оптимально подходящий. Рассмотрев материалы исследования, компанией было принято решение и приобретении данного инструмента. Материал опубликован: Tags: |