1
Layers of Test Automation Framework
What. Where. When
Shapin Anton
November 04, 2017
2
Email: anton_shapin@epam.com
Skype: anton_shapin
GIT: http://github.com/kirlionik
Shapin Anton
Lead Software Test Automation Engineer.
Areas of my competency: manual, test
automation, performance and etc.
#
11+ years in IT.#
QA trainer at Epam.
3
Agenda
Основные проблемы TAF1
Слои TAF2
Пример тестовой
архитектуры
3
Вопросы4
4
LET`S START !
5
TEST AUTOMATION FRAMEWORK
Test automation framework - комплексная система, которая устанавливает
правила автоматизации конкретного продукта. Эта система объединяет в себе
прикладные библиотеки, источники тестовых данных, информацию об объектах и
различные повторно используемые модули.
Framework обеспечивает основу автоматизации тестирования и упрощает
автоматизацию.
От того, как будет разработан тестовый
Framework, зависит судьба всего
проекта автоматических тестов .
6
Why we have to know TAF layers
New project
YOU
8
LAYERED ARCHITECTURE:
Одним из самых распространенных
архитектурных паттернов при построение TAF
является Layered Architecture паттерн.
Каждый компонент в Layered Architecture паттерне
выполняет строго выделенную роль и отвечает
за определенную функциональность.
9
TYPES OF AUTOMATED TESTS (Scripting)
@Test
public void test1() {
driver.get(BASE_URL);
driver.findElement(By.xpath(".//*[@id='gh-ace123']")).sendKeys("iPhone 4S");
driver.findElement(By.xpath(".//*[@id='gh-wer']")).click();
String first=driver.findElement(By.xpath(".//*[@id='LiInner']/li[1]")).getText().toLowerCase();
String expectedPhrase = "iPhone 4S";
assertThat(first, containsString(expectedPhrase.toLowerCase()));
}
10
The main layers of TAF
Test logic
Implementation
Services
11
TEST SYSTEM
ТЕСТОВАЯ ЛОГИКА
РАБОТА С ТЕСТОВЫМИ ДАННЫМИ
ЗАПУСК ТЕСТОВ
УТИЛИТЫ
КОНФИГУРАЦИЯ И ЗАПУСК ТЕСТОВ
СЕРВИСЫ
ОТЧЕТЫ + ЛОГИРОВАНИЕ
TEST FRAMEWORK + TEST MANAGEMENT SOFTWARE = TEST SYSTEM
СИСТЕМА АНАЛИЗА И ХРАНЕНИЯ РЕЗУЛЬТАТОВ ПРОХОЖДЕНИЯ ТЕСТОВ
ТЕСТИРУЕМОЕ ПРИЛОЖЕНИЕ
FRAMEWORK АВТОМАТИЗАЦИИ ПРОЦЕССА СБОРКИ
СЕРВЕР НЕПРЕРЫВНОЙ ИНТЕГРАЦИИ
TEST FRAMEWORK
TEST MANAGMENT
SOFTWARE
РЕАЛИЗАЦИЯ ТЕСТОВОЙ ЛОГИКИ
12
TEST FRAMEWORK – TEST LOGIC
Этот слой отвечает ТОЛЬКО за тестовую логику(тест-кейсы). В настоящее время
самыми распространёнными подходами в описании тестовой логики являются:
BDD STYLE CLASSICAL STYLE
Scenario: Running a Full Text Quick Search.
Given I perform Quick Search by "IPhone 4S"
When I click on link 'Search History' on panel 'Quick Search'
Then the term query "IPhone 4S" should be the first in the Search History
grid
@Test
public void checkFullTextSearch() {
homepage.open();
quickSearchForm.setSearchQuery(“IPhone 4S”);
quickSearchForm.perform();
quickSearchForm.openSearchHistory();
searchHistory.isQueryTheFirst(“IPhone 4S”);
}
13
TEST FRAMEWORK – IMPLEMENTATION OF TEST LOGIC
Этот слой отвечает за реализацию тестовой логики,
с использованием средств языка программирования,
библиотек и паттернов проектирования.
@Given("^I perform Quick Search by "([^"]*)" $")
public void i_perform_quick_search_by(String query) {
driver.findElement(By.id(“searchQuery”)).sendKeys(query);
driver.findElement(By.id(“submit”)).click();
}
Scenario: Running a Full Text Quick Search.
Given I perform Quick Search by "IPhone 4S"
...
14
TEST FRAMEWORK – TEST DATA
Данный модуль отвечает за всю работу с
получением, подготовкой и передачей
тестовых данных в тест.
Источниками тестовых данных могут
выступать базы данных, таблицы в excel,
файлы различных форматов.
15
TEST FRAMEWORK – ЗАПУСК ТЕСТОВ
С помощью данного компонента определяется:
• Какие тесты будут запускаться
• Взаимосвязи тестов
• Какие действия будут выполнятся перед и
после запуска тестов.
16
TEST FRAMEWORK – REPORTER+LOGGER
Этот слой отвечает за сбор информации о
прохождении тестов: результат тестов, какие
действия выполнял тест(лог), и если необходимо
добавляет к результатам тестов скриншоты или
любую другую необходимую информацию.
17
TEST FRAMEWORK – SERVICES
Данный слой обеспечивает работу тестов с:
• Базами данных
• Web-сервисами(REST/SOAP)
• Обмениваться данными со сторонними
системами
• И т.д.
18
TEST FRAMEWORK – CONFIGURATION
Этот модуль отвечает за конфигурацию
тестового framework-а.
Например: url тестового приложения,
пароли/логины, пути к базам данных и
сервисам и т.д.
19
TEST FRAMEWORK – UTILS
Вспомогательные средства необходимые для
проведения тестирования.
20
Architecture of test system
21
Structure of qa-parent: Acceptance tests
Acceptance tests
Test logic
Implementation
of Test logic
Configuration
Feature files
Step Definitions classes
Spring configuration class
22
Structure of qa-parent: Qa-common-module
Qa-common-module
Services
Common Utils
Reports
Containers
Classes are responsible for:
• Work with REST/SOAP protocols
• Work with DataBase
Examples:
• Work with PDF/DOCX files
• Work with tokens
• Work with ZIP files
Examples:
• Report generation
• Create attachments
• Logger
Responsible for transfer data between steps
23
Structure of qa-parent: Test-config
Test-config
Env config files Properties files
24
How it works
qa-test-config
qa-common-module
Acceptance tests
Performance tests
Use
25
Summary
1. Фреймворк – это совокупность библиотек, подходов и
практик для организации тестирования.
2. Очень тщательно подходите к проектированию
архитектуры тестового framework-а. От этого зависит
стабильность и время поддержки ваших тестов
3. Вы должны четко понимать: что, где, когда в вашем
TAF.
26
Thank you for attention!
Email: anton_shapin@epam.com
Skype: anton_shapin
GIT: http://github.com/kirlionik

Слои тестового фрамеворка. Что? Где? Когда?

  • 1.
    1 Layers of TestAutomation Framework What. Where. When Shapin Anton November 04, 2017
  • 2.
    2 Email: anton_shapin@epam.com Skype: anton_shapin GIT:http://github.com/kirlionik Shapin Anton Lead Software Test Automation Engineer. Areas of my competency: manual, test automation, performance and etc. # 11+ years in IT.# QA trainer at Epam.
  • 3.
    3 Agenda Основные проблемы TAF1 СлоиTAF2 Пример тестовой архитектуры 3 Вопросы4
  • 4.
  • 5.
    5 TEST AUTOMATION FRAMEWORK Testautomation framework - комплексная система, которая устанавливает правила автоматизации конкретного продукта. Эта система объединяет в себе прикладные библиотеки, источники тестовых данных, информацию об объектах и различные повторно используемые модули. Framework обеспечивает основу автоматизации тестирования и упрощает автоматизацию. От того, как будет разработан тестовый Framework, зависит судьба всего проекта автоматических тестов .
  • 6.
    6 Why we haveto know TAF layers New project YOU
  • 7.
    8 LAYERED ARCHITECTURE: Одним изсамых распространенных архитектурных паттернов при построение TAF является Layered Architecture паттерн. Каждый компонент в Layered Architecture паттерне выполняет строго выделенную роль и отвечает за определенную функциональность.
  • 8.
    9 TYPES OF AUTOMATEDTESTS (Scripting) @Test public void test1() { driver.get(BASE_URL); driver.findElement(By.xpath(".//*[@id='gh-ace123']")).sendKeys("iPhone 4S"); driver.findElement(By.xpath(".//*[@id='gh-wer']")).click(); String first=driver.findElement(By.xpath(".//*[@id='LiInner']/li[1]")).getText().toLowerCase(); String expectedPhrase = "iPhone 4S"; assertThat(first, containsString(expectedPhrase.toLowerCase())); }
  • 9.
    10 The main layersof TAF Test logic Implementation Services
  • 10.
    11 TEST SYSTEM ТЕСТОВАЯ ЛОГИКА РАБОТАС ТЕСТОВЫМИ ДАННЫМИ ЗАПУСК ТЕСТОВ УТИЛИТЫ КОНФИГУРАЦИЯ И ЗАПУСК ТЕСТОВ СЕРВИСЫ ОТЧЕТЫ + ЛОГИРОВАНИЕ TEST FRAMEWORK + TEST MANAGEMENT SOFTWARE = TEST SYSTEM СИСТЕМА АНАЛИЗА И ХРАНЕНИЯ РЕЗУЛЬТАТОВ ПРОХОЖДЕНИЯ ТЕСТОВ ТЕСТИРУЕМОЕ ПРИЛОЖЕНИЕ FRAMEWORK АВТОМАТИЗАЦИИ ПРОЦЕССА СБОРКИ СЕРВЕР НЕПРЕРЫВНОЙ ИНТЕГРАЦИИ TEST FRAMEWORK TEST MANAGMENT SOFTWARE РЕАЛИЗАЦИЯ ТЕСТОВОЙ ЛОГИКИ
  • 11.
    12 TEST FRAMEWORK –TEST LOGIC Этот слой отвечает ТОЛЬКО за тестовую логику(тест-кейсы). В настоящее время самыми распространёнными подходами в описании тестовой логики являются: BDD STYLE CLASSICAL STYLE Scenario: Running a Full Text Quick Search. Given I perform Quick Search by "IPhone 4S" When I click on link 'Search History' on panel 'Quick Search' Then the term query "IPhone 4S" should be the first in the Search History grid @Test public void checkFullTextSearch() { homepage.open(); quickSearchForm.setSearchQuery(“IPhone 4S”); quickSearchForm.perform(); quickSearchForm.openSearchHistory(); searchHistory.isQueryTheFirst(“IPhone 4S”); }
  • 12.
    13 TEST FRAMEWORK –IMPLEMENTATION OF TEST LOGIC Этот слой отвечает за реализацию тестовой логики, с использованием средств языка программирования, библиотек и паттернов проектирования. @Given("^I perform Quick Search by "([^"]*)" $") public void i_perform_quick_search_by(String query) { driver.findElement(By.id(“searchQuery”)).sendKeys(query); driver.findElement(By.id(“submit”)).click(); } Scenario: Running a Full Text Quick Search. Given I perform Quick Search by "IPhone 4S" ...
  • 13.
    14 TEST FRAMEWORK –TEST DATA Данный модуль отвечает за всю работу с получением, подготовкой и передачей тестовых данных в тест. Источниками тестовых данных могут выступать базы данных, таблицы в excel, файлы различных форматов.
  • 14.
    15 TEST FRAMEWORK –ЗАПУСК ТЕСТОВ С помощью данного компонента определяется: • Какие тесты будут запускаться • Взаимосвязи тестов • Какие действия будут выполнятся перед и после запуска тестов.
  • 15.
    16 TEST FRAMEWORK –REPORTER+LOGGER Этот слой отвечает за сбор информации о прохождении тестов: результат тестов, какие действия выполнял тест(лог), и если необходимо добавляет к результатам тестов скриншоты или любую другую необходимую информацию.
  • 16.
    17 TEST FRAMEWORK –SERVICES Данный слой обеспечивает работу тестов с: • Базами данных • Web-сервисами(REST/SOAP) • Обмениваться данными со сторонними системами • И т.д.
  • 17.
    18 TEST FRAMEWORK –CONFIGURATION Этот модуль отвечает за конфигурацию тестового framework-а. Например: url тестового приложения, пароли/логины, пути к базам данных и сервисам и т.д.
  • 18.
    19 TEST FRAMEWORK –UTILS Вспомогательные средства необходимые для проведения тестирования.
  • 19.
  • 20.
    21 Structure of qa-parent:Acceptance tests Acceptance tests Test logic Implementation of Test logic Configuration Feature files Step Definitions classes Spring configuration class
  • 21.
    22 Structure of qa-parent:Qa-common-module Qa-common-module Services Common Utils Reports Containers Classes are responsible for: • Work with REST/SOAP protocols • Work with DataBase Examples: • Work with PDF/DOCX files • Work with tokens • Work with ZIP files Examples: • Report generation • Create attachments • Logger Responsible for transfer data between steps
  • 22.
    23 Structure of qa-parent:Test-config Test-config Env config files Properties files
  • 23.
  • 24.
    25 Summary 1. Фреймворк –это совокупность библиотек, подходов и практик для организации тестирования. 2. Очень тщательно подходите к проектированию архитектуры тестового framework-а. От этого зависит стабильность и время поддержки ваших тестов 3. Вы должны четко понимать: что, где, когда в вашем TAF.
  • 25.
    26 Thank you forattention! Email: anton_shapin@epam.com Skype: anton_shapin GIT: http://github.com/kirlionik

Editor's Notes

  • #6 http://astqb.org/glossary/search/automation https://en.wikipedia.org/wiki/Test_automation#Framework_approach_in_automation