SlideShare a Scribd company logo
1 of 51
Download to read offline
1CONFIDENTIAL
Micro Model-Based Testing
2CONFIDENTIAL
Обо мне
• Chief QA Automation
• Руководитель отдела тестирования
• Более 8 лет в автомтаизации
Роман Иовлев
3CONFIDENTIAL
Оглавление
• MBT – что это?
• Модели в ручном и автоматизированном тестировании
• Эволюция тестирования. Примеры
• Pro et contra, обзор инструментов
• Микро модели
4CONFIDENTIAL
Model-based testing
5CONFIDENTIAL
Model-based testing
• MBT - Тестирование системы на основании ее
поведенческой модели
• Модель – упрощенное представление чего-либо
• Поведенческая модель – модель поведения
пользователя
6CONFIDENTIAL
Модель Состояний
7CONFIDENTIAL
MBT
1. Модель
2. Выбор Тестовых сценариев из модели
3. Реализация составных частей сценариев
8CONFIDENTIAL
Тестовый сценарий
9CONFIDENTIAL
Тест-кейс
• Create Basket
• Register User
• Pay
• Fail Delivery
• Move to archive
 Check State Created
 Check State Registered
 Check State Paid
 Check Delivery Rejected
 Check State In Archive
↓Input Data
10CONFIDENTIAL
Эволюция тестирования
• От тест-кейсов к возможностям системы
11CONFIDENTIAL
Эволюция
Тест-кейсы States Testing MBT
Автотесты
“Page
Objects”
BDD
States
Testing
MBT
Ручное тестирование
Автоматизированное тестирование
35% 60% 5%
40% 30% 20% 9% 1%
12CONFIDENTIAL
Ручное тестирование
13CONFIDENTIAL
Ручное тестирование
Наглядность для всех
Тестировщики
Заказчик
Разработчики
Менеджер
Метрики
14CONFIDENTIAL
Автоматизация
15CONFIDENTIAL
1. Автотесты
public void MyTest() {
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
driver.navigate().to("http://google.com");
WebElement searchField = driver.findElement(By.id("search-id"));
searchField.sendKeys("IPhone");
WebElement searchButton = driver.findElement(By.id("search-button-id"));
searchButton.click();
var results = driver.findElements(By.className("search-result"));
Assert.assertEquals(results.size(), 10);
for(WebElement result : results)
Assert.assertTrue(result.getText().contains("IPhone"));
}
16CONFIDENTIAL
2. “Page Objects”
@FindBy(id = "search-id")
WebElement searchField;
@FindBy(id = "search-button-id")
WebElement searchButton
@FindBy(id = "search-result")
List<WebElement> results;
public void MyTest() {
driver.navigate().to("http://google.com");
searchField.sendKeys("IPhone");
searchButton.click();
Assert.assertEquals(results.size(), 10);
searchResults.Contatins(“IPhone”);
}
Приложение Тестовый сценарий
17CONFIDENTIAL
As User
When
I Open Search Page
I Search for “IPhone”
Then
I see “10” results
I see “IPhone” in all results
loginAs(user);
searchPage.open();
searchPage.search(“IPhone”);
checkResults.Count(10);
checkResults.Contains(“IPhone”);
3 BDD
18CONFIDENTIAL
4. States testing
19CONFIDENTIAL
Пример 4.1 Повторяющиеся действия
• Login(as User)
• Open Search Page
• Do Search
• Check Search Results
• Login(as User)
• Open About Page
• Check About Page Content
• Login(as Admin)
• Open Products page
• Add New Product
• Check Product in List
…
• Login(as User)
• Check User Logged In as User
• Login(as Admin)
• Check User Logged In as Admin
• Login(as User)
• Check User Logged In as User
• Login(as Admin)
• Check User Logged In as Admin
20CONFIDENTIAL
Extended Search
• Login(as VIP User)
• Open Search Page
• Open Extended search filter
• Set Extended Search mode
• Do Default Search
 OnExtendedSearchResults
• Check Extended info
 OnExtendedSearchResults
• Do “One Click” payment on
product
• Check product in Basket
 OnExtendedSearchResults
• Use “Reserve immediately“
function
• Check Product state in DB
Пример 4.2 Состояния
21CONFIDENTIAL
Extended Search
• If (Page == “Extended Search”)
– return
• If (User.Type != VIP)
– Logout
– Login(as VIP User)
• Open Search Page
• Open Extended search filter
• Set Extended Search mode
• Do Default Search
 OnExtendedSearchResults
• Check Extended info
 OnExtendedSearchResults
• Do “One Click” payment on
product
• Check product in Basket
 OnExtendedSearchResults
• Use “Reserve immediately“
function
• Check Product state in DB
Пример 4.2 Состояния
22CONFIDENTIAL
Модель!
23CONFIDENTIAL
• Наглядно
• Измеряемо
• Оптимально
• Управляемо
• Автоматически
Модель!
24CONFIDENTIAL
• Модель - Сеть Состояний
• Состояния + Переходы
Модель
25CONFIDENTIAL
Тест-кейс
• Create Basket
• Register User
• Pay
• Fail Delivery
• Move to archive
 Check State Created
 Check State Registered
 Check State Paid
 Check Delivery Rejected
 Check State In Archive
↓Input Data
26CONFIDENTIAL
↓Input Data (Unknown User)
• Create Basket
• Check State Created
• Register User
• Check State Registered
• Pay
• Check State Paid
• Fail Delivery
• Check State Delivery Rejected
• Move to archive
• Check State In Archive
↓Input Data 2 (Known User)
• Create Basket
• Check State Created
• Pay
• Check State Paid
• Deliver
• Check State Delivering
• Get Item
• Check State Delivered
• Move to archive
• Check State In Archive
Пример 5.1 Общие состояния
27CONFIDENTIAL
↓Input Data (Unknown User)
• Create Basket
• Check State Created
• Register User
• Check State Registered
• Pay
• Check State Paid
• Fail Delivery
• Check State Delivery Rejected
• Move to archive
• Check State In Archive
↓Input Data 2 (Known User)
• Create Basket
• Check State Created
• Pay
• Check State Paid
• Deliver
• Check State Delivering
• Get Item
• Check State Delivered
• Move to archive
• Check State In Archive
Пример 5.1 Общие состояния
28CONFIDENTIAL
Пример 5.2 Глубина проверок
↓Input Data (Unknown User)
• Create Basket
• Check State Created UI
• Check State Created DB
• Register User
• Check State Registered
• Pay
• Check State Paid UI
• Check State Paid DB
• Check State Paid Email
↓Input Data 2 (Known User)
• Create Basket
• Check State Created UI
• Check State Created DB
• Pay
• Check State Paid UI
• Check State Paid DB
• Check State Paid Email
• Deliver
• Check State Delivering
29CONFIDENTIAL
Пример 5.3 Смоук
↓Input Data (Unknown User)
• Create Basket
• Check State Created UI
• Check State Created DB
• Register User
• Check State Registered
• Pay
• Check State Paid UI
• Check State Paid DB
• Check State Paid Email
↓Input Data 2 (Known User)
• Create Basket
• Check State Created UI
• Check State Created DB
• Pay
• Check State Paid UI
• Check State Paid DB
• Check State Paid Email
• Deliver
• Check State Delivering
30CONFIDENTIAL
100% покрытие
31CONFIDENTIAL
Покрытия графа
• Покрытие состояний
• Покрытие путей
• Циклы проходить 2 раза
• Покрытие значений параметров
–…
32CONFIDENTIAL
Регрессия
• Какие кейсы надо
включить
• Важность тестирования (поверхностное/полное)
• Области (наборы функциональности, технологии)
• Покрытие (все дуги/ все состояния + циклы 2 раза)
• Время (быстро, < 2часов)
• Что надо
протестировать
33CONFIDENTIAL
Генерация модели из тестов
• Есть тесты
• Есть Page Object модель
• Собираем статистику посещения страниц, переходов
SQA Days 16 Алексей Лязгунов
http://sqadays.com/ru/talk/26051
34CONFIDENTIAL
Pro
• Наглядность (формализация модели)
• Автогенерация тестов
• Метрики, понятное покрытие, отчеты
• Возможность разделения труда
• Легче поддержка (меньше издержек в средне-
долгосрочной перспективе)
• Управляемые выборки тестов
35CONFIDENTIAL
MBT
“Model-based testing for complex
software systems is still an
evolving field”
Wikipedia
36CONFIDENTIAL
Большие модели
37CONFIDENTIAL
Большие модели
38CONFIDENTIAL
Большие модели
39CONFIDENTIAL
Инструменты
• MaTeLo
• MS SpecExplorer
• GraphWalker
• … 20+
http://mit.bme.hu/~micskeiz/pages/modelbased_testing.html
40CONFIDENTIAL
Nobody knows
• Нет простых хороших OpenSource инструментов
– Все бесплатные не поддерживаются или изначально не удобные
– Платные ориентированы на большой бизнес, имеют массу
– функций, которые делают их сложными в освоении
• Сложные большие модели
41CONFIDENTIAL
Contra
• Надо менять парадигму мышления (Нет классических
тестовых сценариев)
• Долгий первый результат
• Дополнительно нужно поддерживать модель
• Не применимо для «небольших» проектов
42CONFIDENTIAL
Micro models
• Много маленьких моделей
– Проще для понимания
– Быстрое создание первых тестов
– Проще поддерживать
43CONFIDENTIAL
Примеры моделей
• Ролевая модель
• Модель покупки/подписки/услуги и пр.
• Модель поиска (текстового, по фильтрам, карта)
• Обзорная модель сайта
• Рейтинговая модель
44CONFIDENTIAL
Примеры моделей
• Загрузки файлов
• Модель формирования заказа
• Модель регистрации
• Модель общения (чата)
• …
45CONFIDENTIAL
Модель покупки товара
46CONFIDENTIAL
Contra
• Надо менять парадигму мышления (Нет
классических тестовых сценариев)
• Долгий первый результат
• Дополнительно нужно поддерживать модель
• Не применимо для «небольших» проектов
Микро модели
47CONFIDENTIAL
Contra
• Надо менять парадигму мышления (Нет
классических тестовых сценариев)
• Долгий первый результат
• Дополнительно нужно поддерживать модель
• Не применимо для «небольших» проектов
Микро модели
Проще чем разбираться в
разбросанных тестах
48CONFIDENTIAL
Contra
• Надо менять парадигму мышления (Нет
классических тестовых сценариев)
• Долгий первый результат
• Дополнительно нужно поддерживать модель
• Не применимо для «небольших» проектов
Микро модели
Проще чем разбираться в
разбросанных тестах
Микро модели Развитие
инструметов
Автоматизации
49CONFIDENTIAL
50CONFIDENTIAL
ENJOY!
51CONFIDENTIAL
Мои контакты
Ваши Вопросы?
Роман Иовлев
Email: romanyister@gmail.com
Статья: http://goo.gl/vDRvi0
Skype: roman.Iovlev

More Related Content

Viewers also liked

"Внедрение автоматизации" прохождение на различных уровнях сложности
"Внедрение автоматизации" прохождение на различных уровнях сложности"Внедрение автоматизации" прохождение на различных уровнях сложности
"Внедрение автоматизации" прохождение на различных уровнях сложностиSQALab
 
Подход к тестированию хранилища данных на базе MS SQL Server
Подход к тестированию хранилища данных на базе MS SQL ServerПодход к тестированию хранилища данных на базе MS SQL Server
Подход к тестированию хранилища данных на базе MS SQL ServerSQALab
 
New Model Testing: A New Test Process and Tool
New Model Testing:  A New Test Process and ToolNew Model Testing:  A New Test Process and Tool
New Model Testing: A New Test Process and ToolTEST Huddle
 
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...SQALab
 
Тестирование систем с большим количеством входных данных или как достичь цели...
Тестирование систем с большим количеством входных данных или как достичь цели...Тестирование систем с большим количеством входных данных или как достичь цели...
Тестирование систем с большим количеством входных данных или как достичь цели...SQALab
 
Архитектура автоматизированных тестов
Архитектура автоматизированных тестовАрхитектура автоматизированных тестов
Архитектура автоматизированных тестовSQALab
 
Грабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахГрабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахSQALab
 
Архитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиАрхитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиSQALab
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
 
Keyword-driven framework
Keyword-driven frameworkKeyword-driven framework
Keyword-driven frameworkSQALab
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииSQALab
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
10 signs your testing is not enough
10 signs your testing is not enough10 signs your testing is not enough
10 signs your testing is not enoughSQALab
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Улучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные моделиУлучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные моделиSQALab
 
Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"SQALab
 
A New Model for Testing
A New Model for TestingA New Model for Testing
A New Model for TestingSQALab
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьSQALab
 
Автоматизация тестирования модели разграничения прав доступа к функционалу
Автоматизация тестирования модели разграничения прав доступа к функционалуАвтоматизация тестирования модели разграничения прав доступа к функционалу
Автоматизация тестирования модели разграничения прав доступа к функционалуSQALab
 
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...SQALab
 

Viewers also liked (20)

"Внедрение автоматизации" прохождение на различных уровнях сложности
"Внедрение автоматизации" прохождение на различных уровнях сложности"Внедрение автоматизации" прохождение на различных уровнях сложности
"Внедрение автоматизации" прохождение на различных уровнях сложности
 
Подход к тестированию хранилища данных на базе MS SQL Server
Подход к тестированию хранилища данных на базе MS SQL ServerПодход к тестированию хранилища данных на базе MS SQL Server
Подход к тестированию хранилища данных на базе MS SQL Server
 
New Model Testing: A New Test Process and Tool
New Model Testing:  A New Test Process and ToolNew Model Testing:  A New Test Process and Tool
New Model Testing: A New Test Process and Tool
 
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
 
Тестирование систем с большим количеством входных данных или как достичь цели...
Тестирование систем с большим количеством входных данных или как достичь цели...Тестирование систем с большим количеством входных данных или как достичь цели...
Тестирование систем с большим количеством входных данных или как достичь цели...
 
Архитектура автоматизированных тестов
Архитектура автоматизированных тестовАрхитектура автоматизированных тестов
Архитектура автоматизированных тестов
 
Грабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахГрабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибках
 
Архитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной областиАрхитектура автоматизированных тестов: представление предметной области
Архитектура автоматизированных тестов: представление предметной области
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Keyword-driven framework
Keyword-driven frameworkKeyword-driven framework
Keyword-driven framework
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграции
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
10 signs your testing is not enough
10 signs your testing is not enough10 signs your testing is not enough
10 signs your testing is not enough
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Улучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные моделиУлучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные модели
 
Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"
 
A New Model for Testing
A New Model for TestingA New Model for Testing
A New Model for Testing
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 
Автоматизация тестирования модели разграничения прав доступа к функционалу
Автоматизация тестирования модели разграничения прав доступа к функционалуАвтоматизация тестирования модели разграничения прав доступа к функционалу
Автоматизация тестирования модели разграничения прав доступа к функционалу
 
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
 

Similar to Micro Model Based Testing

“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...Igor Khrol
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...ScrumTrek
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, BadooOntico
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самSergey Xek
 
Нагрузочное тестирование web проектов
Нагрузочное тестирование web проектовНагрузочное тестирование web проектов
Нагрузочное тестирование web проектовSQALab
 
Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)Ontico
 
презентация РАБИС технологии 2014
презентация РАБИС технологии 2014презентация РАБИС технологии 2014
презентация РАБИС технологии 2014Vyacheslav Benedichuk
 
Docsvision 5 Управление документацией СМК
Docsvision 5 Управление документацией СМКDocsvision 5 Управление документацией СМК
Docsvision 5 Управление документацией СМК Docsvision
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 
Эффективный процесс разработки ПО на основе гибких подходов
Эффективный процесс разработки ПО на основе гибких подходовЭффективный процесс разработки ПО на основе гибких подходов
Эффективный процесс разработки ПО на основе гибких подходовАлександр Шамрай
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Ontico
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтендViacheslav Slinko
 
Быстрый старт продаж в Интернет: или как запустить сайт за несколько дней
Быстрый старт продаж в Интернет: или как запустить сайт за несколько днейБыстрый старт продаж в Интернет: или как запустить сайт за несколько дней
Быстрый старт продаж в Интернет: или как запустить сайт за несколько днейAstra Media Group, Russia
 
Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)
Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)
Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)Dmitry Melikov
 
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...dchernilevskiy
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePointVitaly Baum
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаSQALab
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
Персональные данные организации
Персональные данные организацииПерсональные данные организации
Персональные данные организацииAlexey Fedorischev
 

Similar to Micro Model Based Testing (20)

“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
 
Что нового в 12.5?
Что нового в 12.5?Что нового в 12.5?
Что нового в 12.5?
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, Badoo
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай сам
 
Нагрузочное тестирование web проектов
Нагрузочное тестирование web проектовНагрузочное тестирование web проектов
Нагрузочное тестирование web проектов
 
Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)
 
презентация РАБИС технологии 2014
презентация РАБИС технологии 2014презентация РАБИС технологии 2014
презентация РАБИС технологии 2014
 
Docsvision 5 Управление документацией СМК
Docsvision 5 Управление документацией СМКDocsvision 5 Управление документацией СМК
Docsvision 5 Управление документацией СМК
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Эффективный процесс разработки ПО на основе гибких подходов
Эффективный процесс разработки ПО на основе гибких подходовЭффективный процесс разработки ПО на основе гибких подходов
Эффективный процесс разработки ПО на основе гибких подходов
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Быстрый старт продаж в Интернет: или как запустить сайт за несколько дней
Быстрый старт продаж в Интернет: или как запустить сайт за несколько днейБыстрый старт продаж в Интернет: или как запустить сайт за несколько дней
Быстрый старт продаж в Интернет: или как запустить сайт за несколько дней
 
Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)
Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)
Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)
 
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...
Parallels, Денис Чернилевский, "Проблемы роста системы тестирования большого ...
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePoint
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три года
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Персональные данные организации
Персональные данные организацииПерсональные данные организации
Персональные данные организации
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Micro Model Based Testing

  • 2. 2CONFIDENTIAL Обо мне • Chief QA Automation • Руководитель отдела тестирования • Более 8 лет в автомтаизации Роман Иовлев
  • 3. 3CONFIDENTIAL Оглавление • MBT – что это? • Модели в ручном и автоматизированном тестировании • Эволюция тестирования. Примеры • Pro et contra, обзор инструментов • Микро модели
  • 5. 5CONFIDENTIAL Model-based testing • MBT - Тестирование системы на основании ее поведенческой модели • Модель – упрощенное представление чего-либо • Поведенческая модель – модель поведения пользователя
  • 7. 7CONFIDENTIAL MBT 1. Модель 2. Выбор Тестовых сценариев из модели 3. Реализация составных частей сценариев
  • 9. 9CONFIDENTIAL Тест-кейс • Create Basket • Register User • Pay • Fail Delivery • Move to archive  Check State Created  Check State Registered  Check State Paid  Check Delivery Rejected  Check State In Archive ↓Input Data
  • 10. 10CONFIDENTIAL Эволюция тестирования • От тест-кейсов к возможностям системы
  • 11. 11CONFIDENTIAL Эволюция Тест-кейсы States Testing MBT Автотесты “Page Objects” BDD States Testing MBT Ручное тестирование Автоматизированное тестирование 35% 60% 5% 40% 30% 20% 9% 1%
  • 13. 13CONFIDENTIAL Ручное тестирование Наглядность для всех Тестировщики Заказчик Разработчики Менеджер Метрики
  • 15. 15CONFIDENTIAL 1. Автотесты public void MyTest() { WebDriver driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS); driver.navigate().to("http://google.com"); WebElement searchField = driver.findElement(By.id("search-id")); searchField.sendKeys("IPhone"); WebElement searchButton = driver.findElement(By.id("search-button-id")); searchButton.click(); var results = driver.findElements(By.className("search-result")); Assert.assertEquals(results.size(), 10); for(WebElement result : results) Assert.assertTrue(result.getText().contains("IPhone")); }
  • 16. 16CONFIDENTIAL 2. “Page Objects” @FindBy(id = "search-id") WebElement searchField; @FindBy(id = "search-button-id") WebElement searchButton @FindBy(id = "search-result") List<WebElement> results; public void MyTest() { driver.navigate().to("http://google.com"); searchField.sendKeys("IPhone"); searchButton.click(); Assert.assertEquals(results.size(), 10); searchResults.Contatins(“IPhone”); } Приложение Тестовый сценарий
  • 17. 17CONFIDENTIAL As User When I Open Search Page I Search for “IPhone” Then I see “10” results I see “IPhone” in all results loginAs(user); searchPage.open(); searchPage.search(“IPhone”); checkResults.Count(10); checkResults.Contains(“IPhone”); 3 BDD
  • 19. 19CONFIDENTIAL Пример 4.1 Повторяющиеся действия • Login(as User) • Open Search Page • Do Search • Check Search Results • Login(as User) • Open About Page • Check About Page Content • Login(as Admin) • Open Products page • Add New Product • Check Product in List … • Login(as User) • Check User Logged In as User • Login(as Admin) • Check User Logged In as Admin • Login(as User) • Check User Logged In as User • Login(as Admin) • Check User Logged In as Admin
  • 20. 20CONFIDENTIAL Extended Search • Login(as VIP User) • Open Search Page • Open Extended search filter • Set Extended Search mode • Do Default Search  OnExtendedSearchResults • Check Extended info  OnExtendedSearchResults • Do “One Click” payment on product • Check product in Basket  OnExtendedSearchResults • Use “Reserve immediately“ function • Check Product state in DB Пример 4.2 Состояния
  • 21. 21CONFIDENTIAL Extended Search • If (Page == “Extended Search”) – return • If (User.Type != VIP) – Logout – Login(as VIP User) • Open Search Page • Open Extended search filter • Set Extended Search mode • Do Default Search  OnExtendedSearchResults • Check Extended info  OnExtendedSearchResults • Do “One Click” payment on product • Check product in Basket  OnExtendedSearchResults • Use “Reserve immediately“ function • Check Product state in DB Пример 4.2 Состояния
  • 23. 23CONFIDENTIAL • Наглядно • Измеряемо • Оптимально • Управляемо • Автоматически Модель!
  • 24. 24CONFIDENTIAL • Модель - Сеть Состояний • Состояния + Переходы Модель
  • 25. 25CONFIDENTIAL Тест-кейс • Create Basket • Register User • Pay • Fail Delivery • Move to archive  Check State Created  Check State Registered  Check State Paid  Check Delivery Rejected  Check State In Archive ↓Input Data
  • 26. 26CONFIDENTIAL ↓Input Data (Unknown User) • Create Basket • Check State Created • Register User • Check State Registered • Pay • Check State Paid • Fail Delivery • Check State Delivery Rejected • Move to archive • Check State In Archive ↓Input Data 2 (Known User) • Create Basket • Check State Created • Pay • Check State Paid • Deliver • Check State Delivering • Get Item • Check State Delivered • Move to archive • Check State In Archive Пример 5.1 Общие состояния
  • 27. 27CONFIDENTIAL ↓Input Data (Unknown User) • Create Basket • Check State Created • Register User • Check State Registered • Pay • Check State Paid • Fail Delivery • Check State Delivery Rejected • Move to archive • Check State In Archive ↓Input Data 2 (Known User) • Create Basket • Check State Created • Pay • Check State Paid • Deliver • Check State Delivering • Get Item • Check State Delivered • Move to archive • Check State In Archive Пример 5.1 Общие состояния
  • 28. 28CONFIDENTIAL Пример 5.2 Глубина проверок ↓Input Data (Unknown User) • Create Basket • Check State Created UI • Check State Created DB • Register User • Check State Registered • Pay • Check State Paid UI • Check State Paid DB • Check State Paid Email ↓Input Data 2 (Known User) • Create Basket • Check State Created UI • Check State Created DB • Pay • Check State Paid UI • Check State Paid DB • Check State Paid Email • Deliver • Check State Delivering
  • 29. 29CONFIDENTIAL Пример 5.3 Смоук ↓Input Data (Unknown User) • Create Basket • Check State Created UI • Check State Created DB • Register User • Check State Registered • Pay • Check State Paid UI • Check State Paid DB • Check State Paid Email ↓Input Data 2 (Known User) • Create Basket • Check State Created UI • Check State Created DB • Pay • Check State Paid UI • Check State Paid DB • Check State Paid Email • Deliver • Check State Delivering
  • 31. 31CONFIDENTIAL Покрытия графа • Покрытие состояний • Покрытие путей • Циклы проходить 2 раза • Покрытие значений параметров –…
  • 32. 32CONFIDENTIAL Регрессия • Какие кейсы надо включить • Важность тестирования (поверхностное/полное) • Области (наборы функциональности, технологии) • Покрытие (все дуги/ все состояния + циклы 2 раза) • Время (быстро, < 2часов) • Что надо протестировать
  • 33. 33CONFIDENTIAL Генерация модели из тестов • Есть тесты • Есть Page Object модель • Собираем статистику посещения страниц, переходов SQA Days 16 Алексей Лязгунов http://sqadays.com/ru/talk/26051
  • 34. 34CONFIDENTIAL Pro • Наглядность (формализация модели) • Автогенерация тестов • Метрики, понятное покрытие, отчеты • Возможность разделения труда • Легче поддержка (меньше издержек в средне- долгосрочной перспективе) • Управляемые выборки тестов
  • 35. 35CONFIDENTIAL MBT “Model-based testing for complex software systems is still an evolving field” Wikipedia
  • 39. 39CONFIDENTIAL Инструменты • MaTeLo • MS SpecExplorer • GraphWalker • … 20+ http://mit.bme.hu/~micskeiz/pages/modelbased_testing.html
  • 40. 40CONFIDENTIAL Nobody knows • Нет простых хороших OpenSource инструментов – Все бесплатные не поддерживаются или изначально не удобные – Платные ориентированы на большой бизнес, имеют массу – функций, которые делают их сложными в освоении • Сложные большие модели
  • 41. 41CONFIDENTIAL Contra • Надо менять парадигму мышления (Нет классических тестовых сценариев) • Долгий первый результат • Дополнительно нужно поддерживать модель • Не применимо для «небольших» проектов
  • 42. 42CONFIDENTIAL Micro models • Много маленьких моделей – Проще для понимания – Быстрое создание первых тестов – Проще поддерживать
  • 43. 43CONFIDENTIAL Примеры моделей • Ролевая модель • Модель покупки/подписки/услуги и пр. • Модель поиска (текстового, по фильтрам, карта) • Обзорная модель сайта • Рейтинговая модель
  • 44. 44CONFIDENTIAL Примеры моделей • Загрузки файлов • Модель формирования заказа • Модель регистрации • Модель общения (чата) • …
  • 46. 46CONFIDENTIAL Contra • Надо менять парадигму мышления (Нет классических тестовых сценариев) • Долгий первый результат • Дополнительно нужно поддерживать модель • Не применимо для «небольших» проектов Микро модели
  • 47. 47CONFIDENTIAL Contra • Надо менять парадигму мышления (Нет классических тестовых сценариев) • Долгий первый результат • Дополнительно нужно поддерживать модель • Не применимо для «небольших» проектов Микро модели Проще чем разбираться в разбросанных тестах
  • 48. 48CONFIDENTIAL Contra • Надо менять парадигму мышления (Нет классических тестовых сценариев) • Долгий первый результат • Дополнительно нужно поддерживать модель • Не применимо для «небольших» проектов Микро модели Проще чем разбираться в разбросанных тестах Микро модели Развитие инструметов Автоматизации
  • 51. 51CONFIDENTIAL Мои контакты Ваши Вопросы? Роман Иовлев Email: romanyister@gmail.com Статья: http://goo.gl/vDRvi0 Skype: roman.Iovlev

Editor's Notes

  1. Модель = Состояния + Переходы между состояниями
  2. Дублирование кода, если это простые проверки assert equals…
  3. Дублирование кода, если это простые проверки assert equals…
  4. Дублирование кода, если это простые проверки assert equals…
  5. Дублирование кода, если это простые проверки assert equals…
  6. покрытие состояний — каждое ли состояние было посещено покрытие путей — каждый ли путь был пройден покрытие значений параметров — все ли типовые и граничные значения параметров были проверены
  7. Наглядность – модель есть и при обычном подходе, модель может быть взята из разработки, проще строить покрытие Автогенерация – правда все шаги все равно придется написать Поддержка – в силу наглядности, есть возможность править проверки отдельных состояний или просто добавлять переходы. Тесты генерируются автоматически Разделение труда – теоретически диаграмма может приходить от разработки/архитектуры
  8. Spec Explorer не поддерживает последнюю студию
  9. Наглядный выбор тестовых наборов в графе по входным ограничениям
  10. Модель = Состояния + Переходы между состояниями