Многие из нас слышали, что при создании тестовых систем необходимо понимать из каких слоев они должны состоять. Но начинающим специалистам очень сложно четко понять за чем эти слои нужны и какие функции они выполняют. В своем докладе я хотел бы внести ясность по данному вопросу и ответить на все все вопросы.
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.
5. 5
TEST AUTOMATION FRAMEWORK
Test automation framework - комплексная система, которая устанавливает
правила автоматизации конкретного продукта. Эта система объединяет в себе
прикладные библиотеки, источники тестовых данных, информацию об объектах и
различные повторно используемые модули.
Framework обеспечивает основу автоматизации тестирования и упрощает
автоматизацию.
От того, как будет разработан тестовый
Framework, зависит судьба всего
проекта автоматических тестов .
7. 8
LAYERED ARCHITECTURE:
Одним из самых распространенных
архитектурных паттернов при построение TAF
является Layered Architecture паттерн.
Каждый компонент в Layered Architecture паттерне
выполняет строго выделенную роль и отвечает
за определенную функциональность.
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
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