Автоматическое тестирование с использованием Rational Robot

Источник: softpoint

Данная статья посвящена использованию средства Rational Robot для автоматизированного тестирования в среде 1С. Хотя конечно, эти механизмы можно использовать на любых платформах и клиентских приложениях.
Rational Robot является частью общего процесса тестирования и разработки RUP. Однако всю технологию целиком я рассматривать в данной статье не буду.
Рассмотрим использование Rational Robot в контексте автоматизированного тестирования графического интерфейса 1С и в контексте тестирования производительности.

Использование подобных средств, как правило, не окупается на небольших ИТ системах для которых не критично отсутствие некоторого функционала ввиду его неработоспособности вследствие ошибок допущенных при доработке системы. Однако на больших ИТ системах с интенсивными темпами разработки и большим количеством связей между объектами использование подобного механизма автоматического тестирования просто необходимо.
Использование Rational Robot позволяет не только уменьшить людские ресурсы на тестирование, но и качественно выйти на другой уровень конечному продукту разработки с точки зрения его работоспособности и надежности.

Рассмотрим использование Rational Robot на простом примере.

Предположим в организации необходимо, что бы всегда при любом изменении конфигурации операторы с утра смогли бы выставлять клиентам счета на оплату или банковские документы.
Изменение процедуры в глобальном модуле может привести к тому, что при вводе нового документа будет возникать ошибка. Возможно, на исправление ошибки программисту необходимо максимум 5 минут, но проблема от этого не становится меньше. Исходя из своего опыта, я могу сказать, что подобная ошибка может привести к получасовой остановке выписки первичной документации. Причин на это может быть много, и все их перечислять я не буду.

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

Если Константа.Ошибка = 1 Тогда
    Д=СоздатьОбъект("вв");
КонецЕсли;

Сначала запишем текст скрипта в Rational Robot.
Для этого необходимо инициализировать запись скрипта, и после чего выполнить все действия с документами. В моем случае, я вводил новый документ вводил в нем необходимые реквизиты, записывал его и после чего считал тест выполненным и прерывал запись скрипта.
Результат теста Rational Robot записывает в виде скрипта на SQABasic:

Как мы видим, в скрипт записываются API команды - такие как нажатия клавиш, установка значений на контролах их названия и т.п.

Соответственно, после того как мы записали скрипт теста, мы можем его использовать в системе автоматического тестирования. Rational Robot будет последовательно исполнять записанные ранее нами команды, и в зависимости от успешности их исполнения заносить результаты в отчет.
Логика успешности определяется тестировщиком. Например, если при нажатии на кнопку «Новый» форма документа открывается - значит, эта часть теста прошла удачно, а если нет, то в отчет записывается информация, что тест не пройден.
Логика обработки результатов может быть существенно более сложная, чем в приведенном выше примере.

Итак, после того как я записал тест, запускаю его на воспроизведение при установленной константе Ошибка = 0. В этом случае Rational Robot выполняет последовательность действий и выдает отчет об успешном выполнении теста (забавно смотреть как кнопки сами нажимаются и вводится информация в соответствующие контролы).

В случае если мы установим константу Ошибка в значение 1 и запустим тест - то отчет будет другим:

В данном отчете мы можем просмотреть все ошибки в удобном интерфейсе. Так же при возникновении ошибки снимается скриншот экрана (настривается) с ошибкой которую прямо из отчета можно просмотреть.

Этот скриншот открывается после нажатия в отчете на строке об ошибке с предупреждением.
В данном случае мы можем увидеть, что ошибка произошла из за того, что создается несуществующий в системе объект.
Настройки воспроизведения, обработки и записи скриптов для автоматического тестирования устанавливаются в специальных опциях.


Итак, предварительно записав тесты в особо критичных к ошибкам областях системы, мы можем после каждого изменения конфигурации автоматически запускать их и получать развернутые отчеты.

Тестировать можно не только на предмет ошибок, но и на предмет производительности системы. И действительно, когда пользователь говорит что «у меня документ скролинг экранной формы тормозит» или «поиск отрабатывает долго» - проверить анализируя трэйсы SQL(к тому же верия 1С может быть вообще DBF) довольно сложно. С помощью Rational Robot можно настроить автоматические тесты которые будут писать в файл показания счетчиков. Анализируя потом этот файл можно проводить подробный анализ системы с точки зрения реакции системы на то или иное действие пользователя.

Кроме этого, через Rational Robot можно настроить запись трассы по ODBC или по другим протоколам.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=9108