Разработка системы автоматизированного тестирования интерфейса пользователя для Dansensor
Заказчик: Dansensor
Сайт: http://dansensor.com/
Отрасль: Электроника и аппаратное обеспечение
Специалистам АстроСофт удалось создать адекватную систему автоматического тестирования, которая справляется с задачами, поставленными заказчиком, а также позволяет сократить трудозатраты тестеров до разумного минимума. Тестеры занимались только поиском реальных дефектов в логике работы программы, базовая функциональность и правильность работы системы меню проверялась автоматикой.
Ситуация
Компания АстроСофт разработала встроенное ПО для автономных газоанализаторов PBI Dansensor. Качество программного обеспечения проверяется тестовой лабораторией разработчика. С целью оптимизации рутинных операций и снижения издержек было решено разработать систему автоматизированного тестирования.
Оборудование, для проверки ПО которого требовалась система тестирования, имеет собственный процессор, работает под управлением ОС Linux. Для общения с пользователем используется цветной ЖК-экран 320х200 точек и клавиатура на 8 клавиш. На экране отображается меню, при помощи клавиш производится выбор его пунктов. Числа редактируются либо при помощи клавиш «увеличить-уменьшить», либо путём отображения 10 цифр на экране и их выбора клавишами «вверх», «вниз», «влево», «вправо», «ввод».
Необходимо было разработать специализированную «прошивку» для этого устройства, выполняющую функции, заданные заказчиком. При этом количество пунктов меню так велико, что проводить постоянную проверку программного обеспечения вручную нецелесообразно. Ежедневная автоматизированная проверка работоспособности всех ранее сделанных наработок является залогом того, что в будущем не придётся переписывать программу, восстанавливая работу ранее сделанных, но случайно испорченных функций.
Решение
Самым простым решением в данной ситуации стало бы расширение специализированного функционала программы для листания пунктов меню. Однако в этом случае работа устройства будет не полностью имитировать поведение пользователя. При работе с аппаратурой желательно проверять даже этот факт. Кроме того, следует проверять, что при определённых условиях некоторые пункты меню заблокированы и не могут быть выбраны. По этой причине было решено полностью имитировать действия пользователя.
Для имитации нажатия кнопок было изготовлено устройство, подключаемое параллельно основной клавиатуре. Если пользователь замыкает контакты, надавливая на них пальцем, то устройство делает то же самое при помощи транзисторных ключей К561КТ3.
Для проверки реакции устройства на нажатие кнопки в нём запущена независимая программа, делающая образы экрана (скриншоты) и передающая их по сети в тестирующую ЭВМ.
Сначала тестирующая ЭВМ проходит обучение. Оператор при помощи специальной программы в визуальном режиме формирует скрипты, например, «Нажимать кнопку ВНИЗ, пока экран не примет такой вид». В качестве эталонного вида задаётся фрагмент экрана с выбранным пунктом меню. Единожды запустив обучающую программу, оператор задаёт алгоритм дальнейшего тестирования. В целом тестирование состоит именно в поиске образов экранов, содержащих эталонные изображения. Размер изображения может быть равен всему экрану, либо какому-то его фрагменту, который тестирующая программа пытается обнаружить в произвольном участке копии экрана.
В дальнейшем эта же методика была перенесена на автоматизированное тестирование интерфейса пользователя программно-аппаратного комплекса системы наведения при помощи спутниковой навигации Precision Navigation and Recognition System (PNRS). Эта программа работает на PC под управлением ОС Windows, поэтому никаких специальных устройств не потребовалось. Тестирующая программа работает параллельно с основной, делает копии экрана, находит координаты требуемых пунктов меню или пиктограмм на панели инструментов, после чего имитирует щелчок мышью по заданным координатам при помощи механизма Hooks ОС Windows.
Результат
Специалистам АстроСофт удалось создать адекватную систему автоматического тестирования, которая справляется с задачами, поставленными заказчиком, а также позволяет сократить трудозатраты тестеров до разумного минимума. Тестеры занимались только поиском реальных дефектов в логике работы программы, базовая функциональность и правильность работы системы меню проверялась автоматикой.
Используемые технологии
Аппаратура эмулятора клавиатуры сделана на основе контроллера AtMega8 фирмы Atmel. Она подключается к PC через переходник USB-UART. «Прошивка» сделана так, что устройство может управляться при помощи текстовых команд через любой терминал. «Прошивка» контроллера разработана на ассемблере. Имитация нажатия кнопок осуществляется типовыми ключами К561КТ3. Для получения образов экрана написана программа для ОС Linux на языке Си. Тестовая программа написана на языке С++ в среде Visual Studio 8.0. Она общается с программой на Linux через механизм SOCKETS.
Система тестирования интерфейса под Windows разработана на языке C++ в среде Visual Studio 8.0 и использует механизм Windows Hooks для имитации нажатия кнопок мыши. В виду того, что тестирование интерфейса проводилось давно, программа испытывалась только под управлением Windows XP. Возможно, новые меры безопасности Windows 7 потребуют корректировки работы с Windows Hooks.
Скачать