Фреймворк для автоматизации тестирования: Archiархитектура и типы

⚡ Умное резюме

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

  • 📐 Основное определение: Фреймворк — это набор рекомендаций, а не правил, обеспечивающих повторное использование, переносимость и снижение затрат на техническое обслуживание.
  • 🇧🇷 Линейное программирование: Создание системы записи и воспроизведения — самый быстрый, но самый сложный в обслуживании процесс, поскольку данные остаются жестко закодированными.
  • 🧱 Тестовая библиотека Archiтекстура: Общие этапы превращаются в многократно используемые функции, вызываемые скриптом драйвера, что повышает уровень повторного использования за счет сокращения времени планирования.
  • 📊 Управление данными: Логика тестирования остается в скриптах, в то время как данные перемещаются в Excel, CSV-файлы или базу данных, что позволяет реализовать множество сценариев с помощью одного скрипта.
  • 🔑 На основе ключевых слов: Действия хранятся в виде ключевых слов в таблице, что делает тесты независимыми как от инструмента, так и от приложения.
  • 🔀 Гибридная модель: В большинстве зрелых пакетов программного обеспечения таблицы ключевых слов сочетаются с функциональной декомпозицией для достижения баланса между трудозатратами и охватом.

Фреймворк автоматизации тестирования Archiархитектура и типы

Что такое Framework в автоматическом тестировании?

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

Зачем вам нужен фреймворк?

Давайте рассмотрим пример, чтобы понять, зачем вам нужен Framework.

Я уверен, что вы посещали семинар/лекцию/конференцию, где участников просили соблюдать следующие правила:

  • Участники должны занять свои места за 5 минут до начала лекции.
  • Возьмите с собой блокнот и ручку для записей.
  • Прочитайте раздел "пресс"tracИтак, у вас есть представление о том, о чем будет презентация.
  • Мобильные телефоны должны быть переведены в беззвучный режим.
  • Если вам понадобится уйти посреди лекции, воспользуйтесь выходными воротами на противоположном от выступающего конце.
  • Вопросы будут приняты в конце занятия.

Как вы думаете, вы можете провести семинар? БЕЗ соблюдаете эти рекомендации?

Ответ большой ДА! Конечно, вы можете провести семинар/лекцию/конференцию/демонстрацию и без приведенных выше рекомендаций.. на самом деле, некоторые из нас не будут следовать им, даже если они там изложены!

Но если следовать этим рекомендациям, это приведет к положительным результатам, таким как снижение недовольства аудитории.tracво время лекций, повышение удержания участников и улучшение понимания предмета.

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

Фреймворк автоматизации тестирования ArchiАрхитектура: Ключевые компоненты

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

  • Слой тестового скрипта: Содержит тестовые примеры. Скрипты получаются короткими, потому что они вызывают многократно используемые функции вместо повторения шагов навигации.
  • Библиотека функций: Сохраняет общие действия, такие как вход в систему, поиск и выход из системы, поэтому изменение рабочего процесса вносится только один раз.
  • Репозиторий объектов: Сопоставляет понятные имена с локаторами элементов графического интерфейса. При изменении интерфейса редактируется только этот слой.
  • Слой тестовых данных: Сохраняет входные и ожидаемые значения в файлах Excel, CSV или базах данных, а не в коде.
  • Уровень конфигурации: Содержит окружающую среду URLпараметры браузера, время ожидания и учетные данные.
  • Уровень отчетности: Создает отчеты о выполнении, снимки экрана с ошибками и диагностические журналы.
  • Исполнительный уровень: Запускает тестовые наборы с сервера сборки, связывая автоматизацию с... непрерывная интеграция.

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

Типы фреймворков автоматизации тестирования

Ниже приведены различные типы сред автоматизированного тестирования:

  1. Линейное программирование
  2. Библиотека тестов Archiтектурный каркас.
  3. Данные, управляемые Тестирование Фреймворк.
  4. Фреймворк для тестирования, основанный на ключевых словах или таблицах.
  5. Фреймворк для гибридного автоматизированного тестирования.

Давайте рассмотрим их подробно –

1) Линейный сценарий – запись и воспроизведение

Это самая простая из всех платформ автоматизации тестирования, известная также как «Запись и воспроизведение». В этом Автоматизация тестирования Framework, тестер вручную записывает каждый шаг (навигация и ввод пользователя), вставляет контрольные точки (этапы проверки) в первом раунде. Затем он воспроизводит записанный сценарий в последующих раундах.

Пример: Рассмотрите возможность входа в систему Приложение для бронирования авиабилетов и проверка того, загрузилось ли приложение при успешном входе в систему. Здесь тестер просто запишет шаги и добавит шаги проверки.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded after successful log-on
Window("Flight Reservation").Check CheckPoint("Flight Reservation")

Преимущества

  • Самый быстрый способ создать скрипт
  • Опыт автоматизации не требуется
  • Самый простой способ изучить возможности Инструмента тестирования.

Недостатки

  • Небольшое повторное использование скриптов
  • Тестовые данные жестко запрограммированы в скрипте.
  • Кошмар обслуживания

2) Тестовая библиотека Archiструктура структуры

Он также известен как «Структурированный сценарий» or «Функциональная декомпозиция».

В этой среде автоматизированного тестирования тестовые сценарии изначально записываются «Запись и воспроизведениеМетод. Laterобщие задачи внутри сценариев идентифицируются и группируются в Функции. Эти функции вызываются основным тестовым скриптом под названием Водитель различными способами для создания тестовых случаев.

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

Function Login()
  SystemUtil.Run "flight4a.exe","","","open"
  Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
  Dialog("Login").WinEdit("Password:").Set "Mercury"
  Dialog("Login").WinButton("OK").Click
End Function

Теперь вы вызовете эту функцию в основном скрипте следующим образом:

Call Login()
---------------------------
'Other Function calls / Test Steps.
---------------------------

Преимущества

  • Более высокий уровень повторного использования кода достигается в структурированном сценарии по сравнению с «записью и воспроизведением».
  • Разработка сценариев автоматизации обходится дешевле из-за более частого повторного использования кода.
  • Упрощенное обслуживание скриптов

Недостатки

  • Для написания сценариев с использованием Test Library Framework необходимы технические знания.
  • Требуется больше времени для планирования и подготовки сценариев тестирования.
  • Тестовые данные жестко закодированы в сценариях.

3) Платформа тестирования, управляемого данными

В этой структуре, хотя Тестовый кейс Логика находится в тестовых скриптах, тестовые данные отделены и хранятся вне тестовых скриптов. Тестовые данные считываются из внешних файлов (файлы Excel, текстовые файлы, CSV-файлы, источники ODBC, объекты DAO, объекты ADO) и загружаются в переменные внутри тестового скрипта. Переменные используются как для входных значений, так и для значений проверки. Сами тестовые скрипты подготавливаются либо с использованием линейного скриптинга, либо с помощью библиотеки тестов. Этот метод более подробно описан в... тестирование на основе данных учебное пособие.

Пример: Девелоping Скрипт для входа в систему бронирования авиабилетов, использующий этот метод, будет состоять из двух шагов.

Шаг 1) Создайте файл Test – Data, который может быть Excel, CSV или любым другим источником базы данных.

Имя агента Пароль
Джимми Mercury
Tina MERCURY
Bill Меркурий

Шаг 2) Разработайте тестовый сценарий и сделайте ссылки на источник тестовых данных.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
'Note "dtGlobalSheet" is the default excel sheet provided by QTP.

Преимущества

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

Недостатки

  • Требуется больше времени для планирования и подготовки тестовых сценариев и тестовых данных.

4) Платформа тестирования на основе ключевых слов или таблиц

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

Существует 3 основных компонента Keyword Driven Framework, а именно. Ключевое слово, Карта применения, Функция компонента.

Ключевое слово — это действие, которое можно выполнить над компонентом графического интерфейса. Бывший. Для текстового поля компонента графического интерфейса некоторыми ключевыми словами (действием) могут быть InputText, VerifyValue, VerifyProperty и т. д.

Что такое карта приложений?

Карта приложения предоставляет именованные ссылки для компонентов графического интерфейса. Карты приложений — это не что иное, как «Репозиторий объектов

Что такое функция компонента?

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

Пример: Чтобы понять, как работает режим ключевых слов, давайте возьмем тот же пример. Это включает в себя 2 шага

Шаг 1: Создание таблицы данных (отличается от таблицы тестовых данных, созданной в Data Driven Framework). Эта таблица данных содержит действия, которые необходимо выполнить над объектами графического интерфейса, и соответствующие аргументы, если таковые имеются. Каждая строка представляет один этап тестирования.

объект Экшн
(Приложение КАРТА) (КЛЮЧЕВЫЕ СЛОВА) Аргумент
WinEdit (имя агента) Поставьте Guru99
WinEdit (пароль) Поставьте Mercury
WinButton(ОК) Нажмите
Окно (бронирование рейса) проверить Существует

Шаг 2: Письмо Code в форме компонентных функций.

После создания таблиц данных вы просто пишете программу или набор сценариев, которые считывают каждый шаг, выполняют шаг на основе ключевого слова, содержащегося в поле «Действие», выполняют проверку ошибок и регистрируют любую соответствующую информацию. Эта программа или набор скриптов будут выглядеть аналогично приведенному ниже псевдокоду:

Function main()
{
  Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table.
  while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table.
  {
    Pass values to appropriate COMPONENT functions. Like Set(Object Name, Argument) ex. Set(Agent Name, Guru99).
  }
}
  Call CloseConnection() //Function for Closing connection after all the operation has been performed.
} //End of main

Это все, что касается Keyword Driven Framework.

Преимущество Keyword Driven Framework заключается в том, что ключевые слова можно использовать повторно. Чтобы понять это, представьте, что вы хотите проверить операцию входа на веб-сайт, например YAHOO MAIL. Таблица будет выглядеть так:

объект Экшн
(КАРТА ПРИМЕНЕНИЯ) (КЛЮЧЕВОЕ СЛОВО) Аргумент
WebEdit (Имя пользователя) Поставьте abc@yahoo.com
Вебредактирование (пароль) Поставьте ххххх
Веб-кнопка (ОК) Нажмите
Окно (Yahoo Mail) проверить Грузы

Обратите внимание, что в этом случае параметры «Набор ключевых слов», «Клик», «Проверка» остаются прежними, для которых уже разработаны соответствующие функции компонентов. Все, что вам нужно сделать, это изменить карту приложения.ping (Репозиторий объектов) от более ранней версии системы бронирования авиабилетов к Yahoo Mail , при изменении значений аргументов и тот же скрипт будет работать!

Преимущества

  • Обеспечивает высокую возможность повторного использования кода.
  • Независимый инструмент тестирования
  • Независимо от тестируемого приложения, тот же сценарий работает и для AUT (с некоторыми ограничениями).
  • Тесты могут быть разработаны с AUT или без него.

Недостатки

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

ПРИМЕЧАНИЕ: Даже если OpenText UFT One (ранее Micro Focus) UFTХотя фреймворк позиционируется как инструмент, основанный на ключевых словах, с его помощью невозможно добиться полной независимости от инструментов тестирования и приложений.

5) Платформа автоматизации гибридного тестирования

Как следует из названия, эта платформа представляет собой комбинацию одной или нескольких платформ автоматизации, рассмотренных выше, которые используют их сильные стороны и пытаются смягчить их слабые стороны. Гибридная среда автоматизации тестирования QA — это то, во что большинство сред автоматизации тестирования развиваются с течением времени и в рамках нескольких проектов. Компания Maximum Industry использует Keyword Framework в сочетании с методом функциональной декомпозиции.

PS: Другие платформы автоматизации, заслуживающие упоминания:

Тестовая модульность фреймворка

В этой структуре общие задачи в тестовом сценарии сгруппированы в модули.

ПримерИспользование действий в QTP с помощью можно создавать модульные скрипты.

Пример сценария входа в систему

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'End of Script

Теперь вы можете вызвать это действие в основном скрипте следующим образом:

RunAction ("Login[Argument]", oneIteration)

Тестирование бизнес-процессов (BPT)

Эти платформы автоматизации разбивают крупные бизнес-процессы на компоненты, которые можно повторно использовать несколько раз в одних и тех же или разных тестовых сценариях. Например, бизнес-процесс бронирования рейса разделен на такие компоненты, как вход в систему, поиск рейсов, бронирование, оплата и выход, которые можно повторно использовать в одном и том же бизнес-процессе или в разных процессах. Кроме того, BPT способствует более тесной координации между малыми и средними предприятиями и инженерами по автоматизации.

Как выбрать подходящий фреймворк для автоматизации тестирования

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

Тип фреймворка Усилия по настройке Code Снова использовать Стоимость технического обслуживания лучших подходит для
Линейное программирование Очень низкий Очень низкий Очень высоко Демонстрации и разовые проверки на наличие дыма.
Тестовая библиотека Archiтекстура Средний Средний Средний Стабильные приложения с повторяющимися рабочими процессами.
Data-Driven Средний Средний Низкий Формы и вычисления, требующие множества входных данных.
На основе ключевых слов Высокий Очень высоко Низкий Большие офисные помещения, обслуживаемые смешанными техническими командами.
Гибридный Высокий Очень высоко Низкий Долгосрочные корпоративные программы

Прежде чем принять решение, ответьте на следующие вопросы:

  1. Как долго прослужит этот номер? Многолетние затраты на обслуживание оправдывают высокие первоначальные инвестиции в дизайн, основанный на ключевых словах или гибридный дизайн. Для краткосрочного проекта это не так.
  2. Кто составляет тесты? Если тестировщики, проводящие тестирование вручную, предоставляют примеры кода, таблица ключевых слов позволяет им работать без изучения языка сценариев.
  3. Насколько изменчив интерфейс? Частая смена экранов делает необходимым отдельное хранилище объектов, иначе каждый скрипт придётся редактировать.
  4. Какой уровень вариативности данных необходим? Многие комбинации входных данных напрямую указывают на проектирование, основанное на данных.
  5. Какой инструмент уже используется? Структура должна соответствовать выбранной инструмент автоматизации и язык, которым владеет команда, например... Selenium с Java or Cucumber.

Большинство команд начинают с подхода, основанного на использовании библиотек или данных, а затем переходят к гибридной модели по мере развития. регресс Пакет программ расширяется.

Преимущества платформы автоматизации тестирования Archiтекстура

Ниже приведены преимущества архитектуры платформы автоматизации тестирования:

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

Часто задаваемые вопросы (FAQ)

Инструмент выполняет команды над приложением. Фреймворк — это набор соглашений, структура папок и многократно используемые библиотеки, которые определяют, как эти команды пишутся, организуются и поддерживаются.

Нет. Модель объектной страницы (Page Object Model) — это шаблон проектирования для уровня репозитория объектов. Она обычно используется в библиотечных, управляемых данными и гибридных фреймворках, а не заменяет какой-либо из них.

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

Да. Искусственный интеллект преобразует написанные шаги в строки объектов, действий и аргументов. Рецензент по-прежнему должен подтвердить соответствие имен объектов репозиторию, иначе сгенерированные строки не будут работать во время выполнения.

TracКоличество часов, затрачиваемых на поддержку скриптов, на один релиз, процент нестабильных сбоев и время от сборки до получения результата. В здоровой среде разработки наблюдается снижение трудозатрат на поддержку, в то время как автоматизированное покрытие продолжает расти.

Подведем итог этой публикации следующим образом: