t.me/atinfo_chat Telegram группа по автоматизации тестирования

Переход с TestComplete на Selenium (часть 1: TestComplete)


(Mykhailo Poliarush) #1

Как и во многоих проектах, автоматизация в моём случае внедрялась наскоком, спонтанно. Инструмент выбирался исходя из нескольких факторов: в первую очередь - это опыт работы автоматизатора с тем или иным инструментарием, во вторую - применим ли этот опыт к текущему проекту. О лицензировании речь не шла - нужно было создать прототип фреймворка для того, чтобы показать заказчику, что автоматизация применима в данном случае и что будет экономить время, обеспечивать повышение качества тестирования и, соответственно, приносить прибыль.

Из набора TestComplete, QTP, SilkTest корректно с ext, gwt-ext приложением отработал только TestComplete, поэтому автоматизировать стали при помощи этого инструмента.

Чуть подробнее о приложении: WEB-приложение, GUI реализован с использованием gwt и ext библиотек, сразу бросилась в глаза проблема с динамическими id у объектов, изменить которые на статические у команды разработчиков не было желания/времени (поэтому предыдущие попытки автоматизировать тестирование не увенчались успехом). Серверная часть - Oracle, для доступа к бизнесс логике полностью используется GUI.

Для автоматизации был выделен набор существущих ручных тесткейсов, которые необходимо проходить при каждой новой сборке (позже из их частей был составлен смоктест). Каждый тест в отдельности покрывал все варианты создания/редактирования сущности (аккаунт, контакт, кредит), включая позитивные и негативные проверки. В среднем, вручную, каждый кейс занимал около 2х часов работы одного тестировщика, так что целью автоматизации было свести время прохождения до 2х часов работы сервера для проверки всех сущностей.

Был выбран подход, когда каждый объект системы покрывался классом с гетером, сетером и кастомными свойствами. Позже эти объекты должны группироваться в формы, с которыми и будет работать непосредственно тест, проверяющий функциональность.

На реализацию пилотного теста ушёл приблизительно месяц, в результате чего каждый контролл имел вид: