Реферат по теме выпускной работы
Содержание
- Введение
- 1. Актуальность темы
- 2. Цель и задачи исследования, планируемые результаты
- 3. Анализ технологий автоматизированного тестирования программ
- 3.1 Построения сценариев тестирования иерархического оконного интерфейса программы
- Выводы
- Список источников
Введение
В современной IT-сфере крупные компании нуждаются в технологиях и средствах проверки качества разрабатываемого программного продукта. Качественно валидировать новый функционал программного обеспечения, писать общую документацию, тест-планы проверки функционала, критерии входа и выхода из тестирования, конкретные тестовые случаи для разрабатываемого функционала помогает отрасль Quality Assurance (QA) [1].
1. Актуальность темы
Актуальность данной отрасли состоит в том, чтобы решать проблему поддержания качества продукта в целом. В основном, это делается ручным тестированием программных продуктов, поступаемых от отдела разработки. Но в таком подходе могут быть следующие недостатки:
- человеческий фактор;
- скорость проверки функционала;
- невозможность пройти сложные тестовые сценарии;
- трудоемкость повторного регрессионного тестирования;
- невозможность проведения нагрузочного тестирования вручную.
2. Цель и задачи исследования, планируемые результаты
Недостатки ручного тестирования частично решает автоматизированное тестирование продукта. Задачи и преимущества данного подхода:
- скорость выполнения тест-кейсов может в разы и на порядки превосходить возможности человека;
- отсутствует влияние человеческого фактора в процессе выполнения тест-кейсов (усталости, невнимательности);
- средства автоматизации способны выполнить тест-кейсы, непосильные для человека в силу своей сложности, скорости или иных факторов;
- средства автоматизации способны собирать, сохранять, анализировать, агрегировать и представлять в удобной для восприятия человеком форме колоссальные объёмы данных;
- средства автоматизации способны выполнять низкоуровневые действия с приложением, операционной системой, каналами передачи данных.
Поэтому основной целью работы является анализ эффективности автоматизированного тестирования оконного интерфейса программной системы, сравнение актуальных инструментов для автоматизации тестирования, описание платформы для автоматизированного тестирования, описание примеров построения пользовательских сценариев [2].
3. Анализ технологий автоматизированного тестирования программ
Для рассмотрения основных инструментов были рассмотрены наиболее современные виды написания кода приложения: BDD (Behavior-driven development) и TDD (Test-driven development) [3].
Основной идеей BDD-методологии является совмещение в процессе разработки чисто технических интересов и интересов бизнеса, позволяя тем самым управляющему персоналу и программистам говорить на одном языке. Для общения между этими группами персонала используется предметно-ориентированный язык, основу которого представляют конструкции из естественного языка, понятные неспециалисту, обычно выражающие поведение программного продукта и ожидаемые результаты.
В свою очередь TDD — техника разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода к соответствующим стандартам. Данная техника в большинстве случаев не ориентирована на тестирование пользовательских интерфейсов оконного интерфейса.
В основном, автоматизаторы тестирования интерфейсов пользуются BDD-инструментами. BDD подход совместно с инженерными практиками позволяет отказаться от legacy-документации, содержащей неактуальную информацию и получать новую документацию налету, хранить ее вместе с проектом.
Пример циклов разработки с использованием BDD и TDD подходов изображен на рис. 1.
Рассмотренные подходы основаны на применении следующих инструментов автоматизации тестирования.
Selenium — Java-приложение, которое может анализировать файлы определенной структуры, чтобы находить команды для управления браузером и команды для выполнения определенных действий и проверок. Основные плюсы: инструмент является бесплатным, поддерживает много языков программирования, портативность, кроссплатформенность, кроссбраузерность (с использованием Selenium Grid), интегрируется с веб-автоматизацией и мобильной автоматизацией тестирования, чаще всего применяется с BDD.
Watir — это инструмент для автоматизации тестирования, который используется для тестирования веб-приложений. Это библиотека Ruby с открытым исходным кодом. Так как базовым протоколом инструмента является OLE, то он умеет взаимодействовать с Microsoft IE (что, к сожалению, не могут большинство других инструментов автоматизации). Основные плюсы: кроссбраузерность, взаимодействует с BDD-фреймворками и фреймворками для юнит-тестирования. Из минусов можно отметить то, что инструмент помогает автоматизировать только веб-интерфейсы, используется с языком Ruby, чаще всего применяется с BDD [3].
Katalon Studio — это эффективный инструмент для автоматизации процесса тестирования веб-приложений, мобильных приложений и веб-сервисов. Katalon Studio является потомком таких фреймворков, как Selenium и Appium. Он перенял у последних множество преимуществ, связанных с интегрированной автоматизацией тестирования ПО, чаще всего применяется с BDD.
Unified Functional Testing или UFT — это популярный коммерческий инструмент для функционального тестирования. Он предоставляет полный набор функций для тестирования API, веб-сервисов, а также для тестирования графического интерфейса десктопных, мобильных и веб-приложений на всех существующих платформах, чаще всего применяется с TDD.
TestComplete — это эффективный инструмент для тестирования десктопных, мобильных и веб-приложений. TestComplete поддерживает различные языки сценариев. Тестировщики могут выполнять тестирование с использованием ключевых слов и управляемое данными тестирование, чаще всего применяется с BDD [4].
Сравнительная характеристика рассмотренных инструментов автоматизации тестирования интерфейсов изображена на рис. 2.
3.1 Построения сценариев тестирования иерархического оконного интерфейса программы
Наиболее сложным объектом для тестирования является пользовательский интерфейс [5]. Поэтому задача автоматизированного тестирования оконного интерфейса была решена новыми программными средствами — платформой, использующей следующие инструментальные средства: JavaScript, TypeScript, Selenium WebDriver, Jasmine, Protractor, Node JS, Gulp.
Jasmine — это BDD фреймворк для тестирования JavaScript кода.
Selenium WebDriver — это драйвер браузера, который позволяет разрабатывать программы, управляющие поведением браузера.
Protractor — e2e тест-фреймворк сделанный на основе WebDriverJS, который приходит на смену первоначальным e2e тестам AngularJS [6].
Этой платформой предусмотрено в начале спроектировать сценарий в виде полноценного тестового случая. После этот сценарий представляется в виде псевдокода, но по шаблону выбранного инструмента автоматизации тестирования. Автоматизация процесса направлена на максимально точное покрытие тестовых сценариев программным кодом (скриптом). Шаблон построение сценариев изображен на рис. 3.
Таким образом практически все тесты позволяют валидировать определенные шаги, также эмулировать пользовательские сценарии.
В качестве примера рассмотрим сценарий взаимодействия пользователя с сайтом ДонНТУ с целью тестирования его интерфейса. Пользователь заходит на страницу и должен ждать, пока она загрузится. Он понимает, что страница загрузилась тогда, когда, например, появляется кнопка Регистрация
. После чего он кликает на эту кнопку и ожидает появления окна с формой ввода данных. Соответственно, если что-то из этого не отобразится на пользовательском интерфейсе, то автоматизированный тест даст об этом знать.
Для такого способа реализации данного сценария необходимо псевдокод перевести в программный код, который будет выполняться в среде инструмента автоматизации. Таким образом, автоматизатор тестирования может настраивать параметры запускаемого драйвера браузера (разрешение окна, режим), указывать только те спецификации, которые хочет проверить автоматизированными тестами, настраивать вывод данных после прохождения теста, устанавливать время, после которого тест завершится в случае его падения.
Выводы
При анализе эффективности автоматизированного тестирования оконного интерфейса программной системы были рассмотрены основные проблемы тестирования, подходы к эффективному автоматизированному тестированию пользовательских интерфейсов, подготовка базы для покрытия тестовых случаев автоматизированными тестами.
В качестве рассматриваемых подходов к разработке автоматизированных тестов были выбраны методологии BDD и TDD, а также применён один из самых современных инструментов для автоматизации тестирования – Selenium Webdriver. Разработан шаблон написания тестовых сценариев на псевдокоде, который автоматически транслировался в программный код (скрипт). Выполнена апробация разработанной платформы на тестировании оконного интерфейса реального сайта. Таким образом, предложен способ, обеспечивающий высокую эффективность автоматизированного тестирования оконного интерфейса программных систем.
При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: май 2020 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.
Список источников
- Специальность QA Software Tester или кто такой Quality Assurance Engineer — Режим доступа: https://itvdn.com/ru/specialities/qa — Загл. с экрана;
- Автоматизированное тестирование. Обоснование применения автоматизации в тестировании, её основные преимущества и недостатки. — Режим доступа: http://www.protesting.ru/automation/functional/whytoauto.html — Загл. с экрана;
- Каковы основные различия между TDD и BDD? - unit-testing | Qaru – Режим доступа: http://qaru.site/questions/50262/what-are-the-primary-differences-between-tdd-and-bdd — Загл. с экрана;
- Лучшие инструменты для автоматизации тестирования в 2017 году: фреймворки для автоматизации тестирования – Режим доступа: https://geteasyqa.com/ru/blog/best-automation-testing-tools/ — Загл. с экрана;
- Тестирование пользовательского интерфейса - QA evolution – Режим доступа: https://qaevolution.ru/testirovanie-po/vidy-testirovaniya-po/testirovanie-polzovatelskogo-interfejsa/ — Загл. с экрана;
- Разворачиваем автоматизацию за пару часов: TypeScript, Protractor, Jasmine – Режим доступа: https://habr.com/ru/post/451522/ — Загл. с экрана;
- Что такое Selenium WebDriver? – Режим доступа: https://habr.com/ru/post/152971/ — Загл. с экрана.