SlideShare a Scribd company logo
1 of 25
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

More Related Content

What's hot

TestNG Session presented in PB
TestNG Session presented in PBTestNG Session presented in PB
TestNG Session presented in PBAbhishek Yadav
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a pontaElias Nogueira
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsGlobalLogic Ukraine
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드SangIn Choung
 
Testing on frontend
Testing on frontendTesting on frontend
Testing on frontendAfif Alfiano
 
Introduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewIntroduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewDisha Srivastava
 
Introduction of TestNG framework and its benefits over Junit framework
Introduction of TestNG framework and its benefits over Junit frameworkIntroduction of TestNG framework and its benefits over Junit framework
Introduction of TestNG framework and its benefits over Junit frameworkBugRaptors
 
TestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKETestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKEAbhishek Yadav
 
Refine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testRefine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testMalang QA Community
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)Suman Guha
 
What is-smoke-testing ?
What is-smoke-testing ?What is-smoke-testing ?
What is-smoke-testing ?Ajit Waje
 
Chapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and MetricsChapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and MetricsNeeraj Kumar Singh
 

What's hot (20)

TestNG Session presented in PB
TestNG Session presented in PBTestNG Session presented in PB
TestNG Session presented in PB
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
Automated Test Framework with Cucumber
Automated Test Framework with CucumberAutomated Test Framework with Cucumber
Automated Test Framework with Cucumber
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
 
Jenkins
JenkinsJenkins
Jenkins
 
Testing on frontend
Testing on frontendTesting on frontend
Testing on frontend
 
The Test Pyramid
The Test PyramidThe Test Pyramid
The Test Pyramid
 
Introduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewIntroduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiew
 
Introduction of TestNG framework and its benefits over Junit framework
Introduction of TestNG framework and its benefits over Junit frameworkIntroduction of TestNG framework and its benefits over Junit framework
Introduction of TestNG framework and its benefits over Junit framework
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
TestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKETestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKE
 
Refine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testRefine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated test
 
Cypress
CypressCypress
Cypress
 
Zuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne PlatformZuul @ Netflix SpringOne Platform
Zuul @ Netflix SpringOne Platform
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
 
Istqb lesson 6
Istqb lesson 6Istqb lesson 6
Istqb lesson 6
 
What is-smoke-testing ?
What is-smoke-testing ?What is-smoke-testing ?
What is-smoke-testing ?
 
Chapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and MetricsChapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and Metrics
 

Viewers also liked

Разработка эффективной тестовой стратегии, Антон Семенченко
Разработка эффективной тестовой стратегии, Антон СеменченкоРазработка эффективной тестовой стратегии, Антон Семенченко
Разработка эффективной тестовой стратегии, Антон СеменченкоCOMAQA.BY
 
C++Now Trip Report
C++Now Trip ReportC++Now Trip Report
C++Now Trip Reportcorehard_by
 
MxxRu::externals: Repositoryless Dependency Manager
MxxRu::externals: Repositoryless Dependency ManagerMxxRu::externals: Repositoryless Dependency Manager
MxxRu::externals: Repositoryless Dependency Managercorehard_by
 
C++ в играх, больших и не очень
C++ в играх, больших и не оченьC++ в играх, больших и не очень
C++ в играх, больших и не оченьcorehard_by
 
Analysis and interpretation of monitoring data
Analysis and interpretation of monitoring dataAnalysis and interpretation of monitoring data
Analysis and interpretation of monitoring datacorehard_by
 
Ускоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборокУскоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборокcorehard_by
 
Actors for fun and profit
Actors for fun and profitActors for fun and profit
Actors for fun and profitcorehard_by
 
(Не)чёткий поиск
(Не)чёткий поиск(Не)чёткий поиск
(Не)чёткий поискcorehard_by
 
Restinio - header-only http and websocket server
Restinio - header-only http and websocket serverRestinio - header-only http and websocket server
Restinio - header-only http and websocket servercorehard_by
 
Субъекторная модель
Субъекторная модельСубъекторная модель
Субъекторная модельcorehard_by
 
C++ in kernel mode
C++ in kernel modeC++ in kernel mode
C++ in kernel modecorehard_by
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаcorehard_by
 
C++ and Assembly: Debugging and Reverse Engineering
C++ and Assembly: Debugging and Reverse EngineeringC++ and Assembly: Debugging and Reverse Engineering
C++ and Assembly: Debugging and Reverse Engineeringcorehard_by
 
The beast is becoming functional
The beast is becoming functionalThe beast is becoming functional
The beast is becoming functionalcorehard_by
 
Abseil - let the savior come?
Abseil - let the savior come?Abseil - let the savior come?
Abseil - let the savior come?corehard_by
 
Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11corehard_by
 
Battle: BDD vs notBDD
Battle: BDD vs notBDDBattle: BDD vs notBDD
Battle: BDD vs notBDDCOMAQA.BY
 
Обработка потока данных на примере deep packet inspection: внутренняя архитек...
Обработка потока данных на примере deep packet inspection: внутренняя архитек...Обработка потока данных на примере deep packet inspection: внутренняя архитек...
Обработка потока данных на примере deep packet inspection: внутренняя архитек...corehard_by
 
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...Ontico
 

Viewers also liked (20)

Разработка эффективной тестовой стратегии, Антон Семенченко
Разработка эффективной тестовой стратегии, Антон СеменченкоРазработка эффективной тестовой стратегии, Антон Семенченко
Разработка эффективной тестовой стратегии, Антон Семенченко
 
C++Now Trip Report
C++Now Trip ReportC++Now Trip Report
C++Now Trip Report
 
MxxRu::externals: Repositoryless Dependency Manager
MxxRu::externals: Repositoryless Dependency ManagerMxxRu::externals: Repositoryless Dependency Manager
MxxRu::externals: Repositoryless Dependency Manager
 
C++ в играх, больших и не очень
C++ в играх, больших и не оченьC++ в играх, больших и не очень
C++ в играх, больших и не очень
 
Analysis and interpretation of monitoring data
Analysis and interpretation of monitoring dataAnalysis and interpretation of monitoring data
Analysis and interpretation of monitoring data
 
Ускоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборокУскоряем сборку С++ проектов. Практика использования unity-сборок
Ускоряем сборку С++ проектов. Практика использования unity-сборок
 
Actors for fun and profit
Actors for fun and profitActors for fun and profit
Actors for fun and profit
 
(Не)чёткий поиск
(Не)чёткий поиск(Не)чёткий поиск
(Не)чёткий поиск
 
Restinio - header-only http and websocket server
Restinio - header-only http and websocket serverRestinio - header-only http and websocket server
Restinio - header-only http and websocket server
 
Субъекторная модель
Субъекторная модельСубъекторная модель
Субъекторная модель
 
C++ in kernel mode
C++ in kernel modeC++ in kernel mode
C++ in kernel mode
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кода
 
C++ and Assembly: Debugging and Reverse Engineering
C++ and Assembly: Debugging and Reverse EngineeringC++ and Assembly: Debugging and Reverse Engineering
C++ and Assembly: Debugging and Reverse Engineering
 
The beast is becoming functional
The beast is becoming functionalThe beast is becoming functional
The beast is becoming functional
 
Benchmark it
Benchmark itBenchmark it
Benchmark it
 
Abseil - let the savior come?
Abseil - let the savior come?Abseil - let the savior come?
Abseil - let the savior come?
 
Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11
 
Battle: BDD vs notBDD
Battle: BDD vs notBDDBattle: BDD vs notBDD
Battle: BDD vs notBDD
 
Обработка потока данных на примере deep packet inspection: внутренняя архитек...
Обработка потока данных на примере deep packet inspection: внутренняя архитек...Обработка потока данных на примере deep packet inspection: внутренняя архитек...
Обработка потока данных на примере deep packet inspection: внутренняя архитек...
 
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...
Метаданные для кластера: гонка key-value-героев / Руслан Рагимов, Светлана Ла...
 

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

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?Mikalai Alimenkou
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?SQALab
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...DevDay
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 
шебалков инф
шебалков инфшебалков инф
шебалков инфi-fa
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияSQALab
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей РевкоSQALab
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)Yandex
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
Keyword-driven framework
Keyword-driven frameworkKeyword-driven framework
Keyword-driven frameworkSQALab
 
Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Paul Stashevsky
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская qasib
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rusMaxim Shaptala
 
Организация тестового набора при автоматизированном функциональном тестировании
Организация тестового набора при автоматизированном функциональном тестированииОрганизация тестового набора при автоматизированном функциональном тестировании
Организация тестового набора при автоматизированном функциональном тестированииSQALab
 

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

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 
шебалков инф
шебалков инфшебалков инф
шебалков инф
 
шебалков инф
шебалков инфшебалков инф
шебалков инф
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестирования
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей Ревко
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
Keyword-driven framework
Keyword-driven frameworkKeyword-driven framework
Keyword-driven framework
 
Autotest
AutotestAutotest
Autotest
 
Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская
 
Mva stf module 5 - rus
Mva stf module 5 - rusMva stf module 5 - rus
Mva stf module 5 - rus
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Организация тестового набора при автоматизированном функциональном тестировании
Организация тестового набора при автоматизированном функциональном тестированииОрганизация тестового набора при автоматизированном функциональном тестировании
Организация тестового набора при автоматизированном функциональном тестировании
 

More from COMAQA.BY

Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...COMAQA.BY
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...COMAQA.BY
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...COMAQA.BY
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьRoman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьCOMAQA.BY
 
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...COMAQA.BY
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...COMAQA.BY
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...COMAQA.BY
 
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...COMAQA.BY
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.COMAQA.BY
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.COMAQA.BY
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...COMAQA.BY
 
Моя роль в конфликте
Моя роль в конфликтеМоя роль в конфликте
Моя роль в конфликтеCOMAQA.BY
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковОрганизация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковCOMAQA.BY
 
Развитие или смерть
Развитие или смертьРазвитие или смерть
Развитие или смертьCOMAQA.BY
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовСистемный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовCOMAQA.BY
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиЭффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиCOMAQA.BY
 
Как стать синьором
Как стать синьоромКак стать синьором
Как стать синьоромCOMAQA.BY
 
Open your mind for OpenSource
Open your mind for OpenSourceOpen your mind for OpenSource
Open your mind for OpenSourceCOMAQA.BY
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingJDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingCOMAQA.BY
 
Out of box page object design pattern, java
Out of box page object design pattern, javaOut of box page object design pattern, java
Out of box page object design pattern, javaCOMAQA.BY
 

More from COMAQA.BY (20)

Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьRoman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
 
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
 
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
 
Моя роль в конфликте
Моя роль в конфликтеМоя роль в конфликте
Моя роль в конфликте
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковОрганизация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиков
 
Развитие или смерть
Развитие или смертьРазвитие или смерть
Развитие или смерть
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовСистемный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестов
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиЭффективная работа с рутинными задачами
Эффективная работа с рутинными задачами
 
Как стать синьором
Как стать синьоромКак стать синьором
Как стать синьором
 
Open your mind for OpenSource
Open your mind for OpenSourceOpen your mind for OpenSource
Open your mind for OpenSource
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingJDI 2.0. Not only UI testing
JDI 2.0. Not only UI testing
 
Out of box page object design pattern, java
Out of box page object design pattern, javaOut of box page object design pattern, java
Out of box page object design pattern, java
 

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

  • 1. 1 Layers of Test Automation 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
  • 5. 5 TEST AUTOMATION FRAMEWORK Test automation framework - комплексная система, которая устанавливает правила автоматизации конкретного продукта. Эта система объединяет в себе прикладные библиотеки, источники тестовых данных, информацию об объектах и различные повторно используемые модули. Framework обеспечивает основу автоматизации тестирования и упрощает автоматизацию. От того, как будет разработан тестовый Framework, зависит судьба всего проекта автоматических тестов .
  • 6. 6 Why we have to know TAF layers New project YOU
  • 7. 8 LAYERED ARCHITECTURE: Одним из самых распространенных архитектурных паттернов при построение TAF является Layered Architecture паттерн. Каждый компонент в Layered Architecture паттерне выполняет строго выделенную роль и отвечает за определенную функциональность.
  • 8. 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())); }
  • 9. 10 The main layers of 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 Вспомогательные средства необходимые для проведения тестирования.
  • 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
  • 24. 25 Summary 1. Фреймворк – это совокупность библиотек, подходов и практик для организации тестирования. 2. Очень тщательно подходите к проектированию архитектуры тестового framework-а. От этого зависит стабильность и время поддержки ваших тестов 3. Вы должны четко понимать: что, где, когда в вашем TAF.
  • 25. 26 Thank you for attention! Email: anton_shapin@epam.com Skype: anton_shapin GIT: http://github.com/kirlionik

Editor's Notes

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