инструменты и технологии Встречайте: RS-ATM! Сергей Байстрюк заместитель технического директора Департамента банковского ПО RS-Bank Не так давно компания R-Style Softlab анонсировала выпуск универсального инструмента записи и воспроизведения событий RS-Application Testing Machine (RS-ATM). Новый функционал доступен в третьей сборке АБС RS-Bank v. 5.5, а также в 31‑ой сборке АБС RS-Bank V.6 и входит в базовые дистрибутивы обеих систем. Цель статьи – познакомить пользователей и администраторов АБС семейства RS-Bank с этим инструментом, а также с планами по его развитию. 74 RS-CLUB МАЙ–АВГУСТ 2012 Первое знакомство с инструментом Для продуктов, вышедших на рынок и имеющих солидную клиентскую базу, наряду с функциональным развитием ключевым фактором успеха является технологическое совершенствование. На этапе эксплуатации автоматизированных банковских систем компания-разработчик и банки, являющиеся пользователями ее продуктов, выступают как партнеры. И это очень важно, ведь простота взаимодействия компании и банка, а также скорость ее реакции на запросы заказчика и качество предоставляемых решений служат залогом успеха отношений. Перед началом эксплуатации новых версий ПО банки стараются снизить риски, возникающие в результате существенных изменений Встречайте: RS-ATM! инструменты и технологии RS-ATM (Application Testing Machine) представляет собой механизм, c помощью которого в процессе работы с АБС (RS-Bank v. 5.5 или RS-Bank V.6) записывается детальный log-файл в формате XML, содержащий все действия пользователя. Впоследствии этот скрипт можно воспроизвести в пакетном режиме, чтобы в деталях эмулировать работу пользователя в АБС в системе. Обычно с этой целью они проводят приемочную проверку (тестирование). Поскольку все продукты линеек RS-Bank имеют открытую архитектуру, они легко и гибко кастомизируются в соответствии с уникальными потребностями каждого банка. Но этого недостаточно: необходимо проверить также совместимость клиентских доработок с новыми версиями систем. Подобная потребность побудила компанию R-Style Softlab открыть пользователям наших продуктов доступ к внутреннему инструменту, который уже на протяжении нескольких лет используется нами для тестирования RS-Bank v. 5.5 в рамках процесса непрерывной интеграции (Continuous Integration1). Правда, для этого нам пришлось потрудиться и спроектировать данный инструмент в виде отдельного модуля, что позволило подключить его и к RS-Bank V.6, а также учесть ряд дополнительных требований. Так появился инструмент RS-ATM. RS-ATM (Application Testing Machine) представляет собой механизм, c помощью которого в процессе работы с АБС (RS-Bank v. 5.5 или RS-Bank V.6) записывается детальный log-файл в формате XML, содержащий все действия пользователя. Впоследствии этот скрипт можно воспроизвести в пакетном режиме, чтобы в деталях эмулировать работу пользователя в АБС (рис. 1). В банках возможности нового инструмента можно использовать: Рис. 1. Простейший XML-скрипт, записанный RS-ATM. Вызов панели с информацией о программе для подготовки описания обнаруженной в АБС проблемы, чтобы передать его в службу поддержки R-Style Softlab; для создания набора регрессионных скриптов – тестовых сценариев. Передача XML-скрипта в службу поддержки позволяет банку сократить накладные расходы на детальное описание действий, воспроизводящих сценарий появления обнаруженной ошибки. При проектировании RS-ATM в него был заложен ряд общих требований, перечислим некоторые из них. Механизм должен уметь воспроизводить записанные события (XML-скрипт) в пакетном режиме. 1 Под непрерывной интеграцией следует понимать практику разработки программного обеспечения, которая заключается в регулярной автоматической сборке продукта и его последующем автоматизированном тестировании для скорейшего выявления и устранения функциональных и интеграционных проблем. (Примеч. авт.) МАЙ–АВГУСТ 2012 RS-CLUB 75 инструменты и технологии Должна предусматриваться возможность записи скрипта при воспроизведении ранее записанного скрипта. Записанный скрипт должен при идентичных на момент его записи условиях (имеется в виду состояние БД) воспроизводиться без модификации. Необходимо иметь возможность на одном дисплее в параллельном режиме проигрывать неограниченное количество скриптов2 . Идентичность работы механизма в консольном режиме3 и режиме EasyWin. Механизм должен работать как в двухуровневой архитектуре, так и в трехуровневой (на сервере приложений). Возможность помимо воспроизводимых при проигрывании действий (событий) регистрировать также и диагностические события. Как работает RS-ATM? Механизм RS-ATM (запись и / и ли воспроизведение скрипта) активируется путем ввода опций в командной строке запуска процесса startbnk.exe. С этой целью здесь появились два новых параметра: / rec:<путь к записываемому файлу>; / play:<путь к проигрываемому файлу>. Эти параметры (воспроизводимый и записываемый файлы скрипта) можно задать как по отдельности, так и одновременно. В последнем случае запись 2 Разумеется, «неограниченное количество» ограничено характеристиками операционной системы и возможностями аппаратной платформы. (Примеч. авт.) 3 На практике данное требование применимо только к системе RS-Bank v. 5.5, поскольку RS-Bank V.6 в консольном режиме не используется. (Примеч. авт.) 76 RS-CLUB МАЙ–АВГУСТ 2012 … … … … <ProcWindow resname="BSACNT1" lbrname="BANK.LBR"> <Header> "Список открытых лицевых счетов" </Header> <ProcWindow resname="EDACNT1" lbrname="BANK.LBR"> <Header> "Ввод лицевого счета" </Header> <ProcField Number="5"> <Text> "Недопустимое значение" </Text> <KeyEvent key="ENTER"> </KeyEvent> </ProcField> <MsgWindow result="27"> </MsgWindow> </ProcWindow> <ProcField Number="1"> <KeyEvent key="ESC"> </KeyEvent> </ProcField> </ProcWindow> Рис. 2. Пример иерархического контекста событий будет осуществляться по результатам проигрывания. Сравнение исходного и результирующего скриптов позволяет отследить разницу в поведении различных версий АБС, а также диагностировать изменения, связанные с кастомизацией системы. При записи скрипта регистрируются следующие действия пользователя: выбор пунктов меню; навигация по полям; ввод текстовой информации; нажатие «горячих» и функциональных клавиш. Также фиксируются сведения о текущем контексте действий по иерархическому принципу. Например, в случае последовательного вызова нескольких панелей будет создано столько же Встречайте: RS-ATM! инструменты и технологии вложенных тэгов. Появление информационного сообщения также добавляет новый уровень вложенности (рис. 2). Безопасность Механизм не регистрирует и не воспроизводит действия пользователя, связанные с его авторизацией в системе. Чтобы ввести имя пользователя и пароль, необходимо либо воспользоваться параметрами командной строки, либо перед проигрыванием или записью скрипта указать авторизационные данные в интерактивном режиме. Производительность Если сравнить производительность механизма RS-ATM с аналогичным внешним инструментом (например, с TestComplete), то при воспроизведении сценариев, в которых подавляющая часть операций относится к интерактивной работе пользователя, выигрыш достигает десятков раз. Подобная эффективность складывается из двух факторов: во‑первых, воспроизведение осуществляется непосредственно на сервере приложений, во‑вторых, нет необходимости в дополнительной синхронизации работы объектов пользовательского интерфейса и инструмента. Планы на будущее У команды разработчиков богатые планы по дальнейшему совершенствованию нового механизма RS-ATM. Уже в обозримом будущем его функциональность будет существенно расширена. В частности, в нем будут реализованы: механизм настроечных профилей, позволяющий гибко регулировать наборы событий, подлежащих регистрации RS-ATM; работа с RSL будет включать: – регистрацию событий вызова макросов, – добавление в скрипт непосредственных вызовов макросов, – передачу параметров при вызове макросов; проверку условий и циклы; мониторинг работы с БД; мониторинг событий прикладного уровня (например, создание или удаление объекта типа «Счет»). Также планируется разработка специальной интерактивной среды, с помощью которой можно будет создавать, классифицировать и хранить различные версии тестов и эталонных данных, организовывать регулярные запуски наборов тестов и анализировать их результаты. МАЙ–АВГУСТ 2012 RS-CLUB 77