Учебники

27) FrameWorks

В этом уроке вы узнаете

Что такое фреймворк?

Вместо того, чтобы давать книжное определение структуры, давайте рассмотрим пример.

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

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

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

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

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

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

Что такое TEST Automation Framework?

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

Типы Automation Framework

1) Линейные сценарии
2) Архитектура архитектуры библиотеки тестов.
3) Механизм
тестирования на основе данных .
4) Механизм тестирования на основе ключевых слов или таблиц.
5) Гибридная среда автоматизации тестирования.

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

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

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

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

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) Архитектура тестовой библиотеки.

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

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

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

 

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) Механизм тестирования на основе данных.

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

Пример: разработка сценария входа в систему бронирования с использованием этого метода будет включать два этапа.

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

Имя агента

пароль

Джимми

Меркурий

Тина

МЕРКУРИЙ

Билл

Меркурий

Шаг 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) Механизм тестирования на основе ключевых слов или таблиц.

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

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

Что такое ключевое слово?

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

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

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

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

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

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

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

объект

(Приложение MAP)

действие

(Ключевые слова)

аргументация

WinEdit (Имя агента) Набор Guru99
WinEdit (Password) Набор Меркурий
WinButton (OK) щелчок  
Окно (Бронирование рейса) проверить Существует

Шаг 2 : Написание кода в виде функций компонента.

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

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

Thats all to Keyword Driven Framework.

The advantage of Keyword Driven Framework is that the Keywords are re-usable. To understand this consider you want to verify login operation for a Website say YAHOO MAIL. The table will look like this —

Object
(APPLICATION MAP)
Action
(KEYWORD)
Argument
WebEdit(UserName) Set abc@yahoo.com
WebEdit(Password) Set xxxxx
WebButton(OK) Click
Window(Yahoo Mail) Verify Loads

If you observe in this case the Keywords Set , Click , Verify remain the same for which corresponding component functions are already developed. All you need to do is change the Application Mapping (Object Repository) from earlier Flight Reservation to Yahoo Mail , with a change in argument values and the same script will work!

Advantages

  • Provides high code re-usability
  • Test Tool Independent
  • Independent of Application Under Test, the same script works for AUT (with some limitations)
  • Tests can be designed with or without AUT

Disadvantages

  • Initial investment being pretty high, the benefits of this can only be realized if the application is considerably big and the test scripts are to be maintained for quite a few years.
  • High Automation expertise is required to create the Keyword Driven Framework.

NOTE : Even though Micro Focus UFT advertises itself as KeyWord Driven Framework, you can not achieve complete test tool and application idependence using HP UFT.

5) The Hybrid Test Automation Framework.

As the name suggests this framework is the combination of one or more frameworks discussed above pulling from their strengths and trying to mitigate their weaknesses. This hybrid test automation framework is what most frameworks evolve into over time and multiple projects. Maximum industry uses Keyword Framework in a combination of Function decomposition method.

PS: Other Frameworks worth a mention are

Test Modularity Framework

In this framework, a common task in test script are grouped together as Modules.

Ex: Using Actions in QTP use can create a Modualr Scripts

Sample Script for 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 of Script

Now you can call this Action in the main script as follows —

RunAction ("Login[Argument]", oneIteration)

Business Process Testing (BPT)

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