Автоматизация тестирования пользовательского интерфейса десктоп приложений
Секция: Технические науки
лауреатов
участников
лауреатов
участников
LII Студенческая международная научно-практическая конференция «Молодежный научный форум: технические и математические науки»
Автоматизация тестирования пользовательского интерфейса десктоп приложений
Быстрое развитие сферы информационных технологий привело к усилению конкуренции между производителями программного обеспечения и повышению внимания к качеству программного обеспечения. Таким образом, тестирование стало неотъемлемой частью процесса создания программного обеспечения. Тестирование позволяет определить, соответствует ли программный продукт предъявляемым к нему требованиям, выявить ситуации, в которых поведение программы является неправильным, нежелательным или не соответствующим спецификации. Своевременное выявление и исправление ошибок уменьшает риски и снижает затраты на разработку программного обеспечения.
В данной работе рассматривается тестирование десктоп приложений. Эти приложения представляют собой программы, устанавливаемые и предназначенные для работы на отдельных рабочих станциях или персональных компьютерах, не требующие для своей работы доступа к интернету. Особенностью данного типа приложений является зависимость от операционной системы, прямой доступ к локальной файловой системе, а также необходимость предварительной установки на каждый компьютер. В отличие от веб-приложений, к ним можно получить доступ только на том компьютере, на котором они установлены [1].
Для тестирования этих приложений существуют специфические особенности:
– тестирование установки;
– тестирование установки обновлений;
– тестирование деинсталляции;
– тестирование совместимости на разных ОС.
При тестировании инсталляции необходимо проверить созданы ли нужные папки и ярлыки в системе при установке, также правильно ли размещены программы в файловой системе. В процессе тестирования обновлений проверяется отсутствие повреждений пользовательских данных после установки обновлений, а также доступность созданных ранее файлов.Тестирование деинсталляции позволяет проверить, удалены ли файлы и ярлыки после удаления программы, вместе с тем проверяются папки текущего пользователя системы на наличие остаточных файлов программы и т.д. Неотъемлемой частью является проверка совместимости на разных ОС.
Так как обычно полное тестирование невозможно или трудно реализуемо, задача тестировщика подобрать данные и последовательность действий, на которых с наибольшей вероятностью могут проявиться ошибки тестируемой программы.
Автоматизация тестирования позволяет ускорить процесс тестирования, в особенности такие аспекты:
− часто используемую функциональность, где риски возникновения ошибок достаточно велики;
− рутинные операции (проверка форм, в которых необходимо заполнять огромное количество полей);
− сложно доступные места в системе, такие как запись данных в базу, бекэнд процессы;
− проверка корректного поиска данных;
− проверки с использованием математических расчетов, длинные end-to- end сценарии.
При анализе целесообразности создания систем автоматизированного тестирования важно оценить: насколько сложно эту работу выполнять вручную, как часто будут выполняться эти тесты, необходимо ли увеличивать скорость выполнения тестов, если тесты нужно автоматизировать, то нужно ли это делать со всеми тестами, или достаточно автоматизировать лишь некоторые из них. Основные задачи, которые решаются внедрением автоматизированного тестирования – это снижение времени, нужного для тестирования и повышение качества тестирования. Автотесты также дают возможность минимизировать присутствие человеческого фактора при тестировании [2].
В рамках проекта для построения полного и непрерывного процесса тестирования организованы следующие виды тестирования:
– юзабилити тестирование – проверка работы с точки зрения пользователя;
– регрессионное тестирование – непрерывная проверка существующих сценариев;
– конфигурационное тестирование и совместимости – проверка работы программы при различных конфигурациях (различные версии продукта, разные конфигурации компьютера);
– smoke тестирование – проверка базового функционала программы.
Стоит сказать, что в данной работе рассматривается тестирование через визуальную форму (интерфейс пользователя).
В настоящее время большинство масштабных проектов по разработке программного обеспечения в процессе проверки качества использует совместно функциональное и автоматизированное тестирование. Кроме того, создается собственный инструментарий TAF (Test Automation Framework), который позволяет одновременно тестировать несколько решений, построенных на различных технологиях.
При разработке тестового фреймворка была выбрана методология DDT.
Методология тестирования, управляемого данными (DDT) применяется в автоматизации тестирования программного обеспечения, представляет собой тестирование, выполнение и верификация которого производится на основе данных, хранящихся в БД или любых других источниках данных. Обычно сравнивают эталонные данные с теми, что на выходе получает система из метода (функции, программы и т.п.). Тестирование, управляемое данными, подразумевает разделение тестов и данных, которые в них проверяются. Тесты получают эталонные данные из некого источника и сравнивают их с результатами, полученными при тестировании объекта [3]. Преимуществом Data Driven Testing является простота добавления дополнительных входных значений в таблицу при обнаружении или добавлении новых разделов в тестируемый продукт или систему.
Для хранения тестовых, а также входных значений для них использован MTM (Microsoft Test Manager).
В MTM создан текущий проект, а в нем содержится план тестирования. В рамках одного проекта может существовать несколько планов тестирования. По этой причине разнообразные требования, сценарии тестирования, тест-кейсы и т.д. хранятся в общем хранилище TFS (Team Foundation Server), а план тестирования позволяет организовать работу с некоторыми из них. Автоматические тест-кейсы связываются определенными идентификаторами с тестовыми методами.
Для написания тестовых сценариев использована технология под названием Coded UI Test и язык программирования C#.
Coded UI – это решение для автоматизации тестирования интерфейса. Позволяет автоматизировать как web-приложения, так и desktop-приложения. Данное решение включают функциональное тестирование элементов управления пользовательского интерфейса. Тестирование с использованием Coded UI подразумевает запись последовательности действий с помощью специального инструмента Coded UI Test Builder и дальнейшую проверку результатов [4].
Структура программы при использовании Coded UI Test сформирована по типу паттерна Page Object, который является одним из наиболее полезных архитектурных решений в автоматизации. Данный шаблон проектирования помогает инкапсулировать работу c отдельными элементами страницы, что позволяет уменьшить количество кода и его поддержку. Если, к примеру, дизайн одной из страниц изменён, то нам нужно будет переписать только соответствующий класс, описывающий эту страницу. Такой подход значительно уменьшает объем повторяющегося кода, потому что одни и те же объекты страниц можно использовать в различных тестах. Основное преимущество Page Object заключается в том, что в случае изменения пользовательского интерфейса, можно выполнить исправление только в одном месте, а не исправлять каждый тест, в котором этот интерфейс используется.
Залог успеха использования автоматизации тестирования заключается в тщательном анализе предметной области, правильной организации процесса тестирования, написании эффективного и устойчивого к изменениям тестового фреймворка. Таким образом, использование Coded UI Test для автоматизации тестовых скриптов позволяет минимизировать количество кода, организовать четкую структуру тестового фреймворка, тем самым упростить задачу написания тестовых сценариев, повысить эффективность работы автоматизированных тестировщиков.