воскресенье, 2 октября 2011 г.

Автоматизация тестирования: через терни к звездам?

Давно собираюсь поделиться собственным опытом вхождения в автоматизацию тестирования и использование его в промышленной разработке. Ну вот созрел. Поделиться есть чем, все-таки опыта более 3-х лет. Понятны достоинства и недостатки. Понятны подводные камни и способы их избежать.

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

Я как человек науки привык сначала исследовать поле деятельности, понять перспективы, правильные и неправильные пути. И по началу автоматизация меня не привлекла. Слишком сложно, слишком долго, много требуется первичных высокопрофессиональных навыков. Кроме того, много критики в публицистике: книгах, интернет-печати, на форумах, в блогах. С другой стороны ежедневные повторения одного и того же в ручном режиме, монотонно повторяя один чек-лист за другим, бессилие перед Горой "руды", которую следует перелопатить и желательно, нет НУЖНО, было лопатить ежедневно - все это + мудрое и настойчивое наставничество руководителя проекта, его вера в чудо автоматизации, привело нас к однозначной ставке на автоматизацию тестирования.

Это было обусловлено и  объективными причинами. Ранее отсутствие систематического тестирования, скудость ресурсов на тестирование, многообразный функционал тестируемой системы, значительные изменения, потребность резкого расширения рынка - все это потребовало предотвращения того довольно большого количества ошибок, которое возникало при очередном обновлении клиента на новый релиз. Ставка была сделана на постепенное расширение покрытия (требований) и регрессию. А специфика выпуска и поддержания релизов (фактически одновременно поддерживаются три релиза по порядку) требовало быстрых и относительно недорогих мероприятий.

Среди средств автоматизации мы выбрали TestComplete. По честности сказать, особо выбирать-то и не пришлось. Почитали обзоры, форумы, поговорили. Скачали демоверсию, месяц ее погоняли. Решили покупаем. Купили и не жалеем. Тем более, что в конце концов пришли к выводу, что вполне по зубам все-то же делать, используя, например, ту же Visual Studio.

Первые опыты были далеки от совершенства. Первая версия была 6.5. Первая проблема, с которой мы тогда столкнулись, как нам сделать наше тестируемое приложение открытым, чтобы обеспечить доступ к непосредственно к объектам и их методам. Рекомендации на форумах предлагали особую компиляцию тестируемой программы. Это в разы увеличивало ее размеры, существенно сказывалось на производительности тестового стенда и устойчивости взаимодействия ТС и тестируемого приложения.
Вторая проблема, во многом перекликалась с первой. При тестировании через графический интерфейс нам часто приходилось обрабатывать координатные клики. О, вы просто не представляете, какие эмоции у нас вызывали самые незначительные изменения в расположении элементов на формах. Другой момент - это регионы. Никогда не пользуйтесь регионами. Это зло, зло! Ну в некоторых ситуациях, конечно, иначе никак.
Первые 40 или 50 тестовых процедур, охватывающих три наиболее важных направления, увидели свет примерно через пару месяцев работы. Первый ночной полностью автоматический (без участия человека) прогон дал просто ошеломляющие результаты. Простая систематичность и скрупулезность проверки роботом показали свое преимущество. Было чертовски осознавать, что ты сумел удивить окружающих. Правда, они это не показывали. Можно было догадаться по второстепенным признакам.
Следует отметить, что сразу нами были заложены верные принципы . В данном случае это довольно универсальные процедуры, управляемые данными. Мы скармливали таким процедурам хорошо подобранными парами данные - результаты. Причем эти же процедуры использовались для начального получения результатов, которые потом анализировались. Результат анализ приводил либо к описанию дефекта, либо к получению ожидаемого результат для автотестов, либо к идеям расширения тестовых ситуаций и поиску нужных тестовых данных.

Тут я поехал в командировку на учебу в Воронеж. А когда вернулся ... Ну это будет продолжением серии :о)



Комментариев нет:

Отправить комментарий