Top Banner
1 CONFIDENTIAL Micro Model-Based Testing
51

Micro Model Based Testing

Jul 24, 2015

Download

Education

SQALab
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Micro Model Based Testing

1CONFIDENTIAL

Micro Model-Based Testing

Page 2: Micro Model Based Testing

2CONFIDENTIAL

Обо мне

• Chief QA Automation• Руководитель отдела

тестирования• Более 8 лет в автомтаизации

Роман Иовлев

Page 3: Micro Model Based Testing

3CONFIDENTIAL

Оглавление

• MBT – что это?

• Модели в ручном и автоматизированном

тестировании

• Эволюция тестирования. Примеры

• Pro et contra, обзор инструментов

• Микро модели

Page 4: Micro Model Based Testing

4CONFIDENTIAL

Model-based testing

Page 5: Micro Model Based Testing

5CONFIDENTIAL

Model-based testing

• MBT - Тестирование системы на основании

ее поведенческой модели

• Модель – упрощенное представление

чего-либо

• Поведенческая модель – модель

поведения пользователя

Page 6: Micro Model Based Testing

6CONFIDENTIAL

Модель Состояний

Page 7: Micro Model Based Testing

7CONFIDENTIAL

MBT

1. Модель

2. Выбор Тестовых сценариев из

модели

3. Реализация составных частей

сценариев

Page 8: Micro Model Based Testing

8CONFIDENTIAL

Тестовый сценарий

Page 9: Micro Model Based Testing

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

Page 10: Micro Model Based Testing

10CONFIDENTIAL

Эволюция тестирования

• От тест-кейсов к возможностям системы

Page 11: Micro Model Based Testing

11CONFIDENTIAL

Эволюция

Тест-кейсы States Testing MBT

Автотесты

“Page Objects

BDD

States

Testing

MBT

Ручное тестирование

Автоматизированное тестирование

35%

60%

5%

40%

30%

20%

9% 1%

Page 12: Micro Model Based Testing

12CONFIDENTIAL

Ручное тестирование

Page 13: Micro Model Based Testing

13CONFIDENTIAL

Ручное тестирование

Наглядность для всехТестировщики

Заказчик

Разработчики

Менеджер

Метрики

Page 14: Micro Model Based Testing

14CONFIDENTIAL

Автоматизация

Page 15: Micro Model Based Testing

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")); }

Page 16: Micro Model Based Testing

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”);

}

Приложение Тестовый сценарий

Page 17: Micro Model Based Testing

17CONFIDENTIAL

As UserWhenI Open Search PageI Search for “IPhone”ThenI see “10” resultsI see “IPhone” in all results

loginAs(user);searchPage.open();searchPage.search(“IPhone”);checkResults.Count(10);checkResults.Contains(“IPhone”);

3 BDD

Page 18: Micro Model Based Testing

18CONFIDENTIAL

4. States testing

Page 19: Micro Model Based 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

Page 20: Micro Model Based Testing

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 Состояния

Page 21: Micro Model Based Testing

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 Состояния

Page 22: Micro Model Based Testing

22CONFIDENTIAL

Модель!

Page 23: Micro Model Based Testing

23CONFIDENTIAL

• Наглядно• Измеряемо• Оптимально• Управляемо• Автоматически

Модель!

Page 24: Micro Model Based Testing

24CONFIDENTIAL

• Модель - Сеть Состояний

• Состояния + Переходы

Модель

Page 25: Micro Model Based Testing

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

Page 26: Micro Model Based Testing

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 Общие состояния

Page 27: Micro Model Based Testing

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 Общие состояния

Page 28: Micro Model Based Testing

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

Page 29: Micro Model Based Testing

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

Page 30: Micro Model Based Testing

30CONFIDENTIAL

100% покрытие

Page 31: Micro Model Based Testing

31CONFIDENTIAL

Покрытия графа

• Покрытие состояний

• Покрытие путей

• Циклы проходить 2 раза

• Покрытие значений параметров

–…

Page 32: Micro Model Based Testing

32CONFIDENTIAL

Регрессия

• Какие кейсы надо включить

• Важность тестирования (поверхностное/полное)

• Области (наборы функциональности, технологии)

• Покрытие (все дуги/ все состояния + циклы 2 раза)

• Время (быстро, < 2часов)

• Что надо протестировать

Page 33: Micro Model Based Testing

33CONFIDENTIAL

Генерация модели из тестов

• Есть тесты

• Есть Page Object модель

• Собираем статистику посещения страниц,

переходов

SQA Days 16 Алексей Лязгунов

http://sqadays.com/ru/talk/26051

Page 34: Micro Model Based Testing

34CONFIDENTIAL

Pro

• Наглядность (формализация модели)

• Автогенерация тестов

• Метрики, понятное покрытие, отчеты

• Возможность разделения труда

• Легче поддержка (меньше издержек в

средне-долгосрочной перспективе)

• Управляемые выборки тестов

Page 35: Micro Model Based Testing

35CONFIDENTIAL

MBT

“Model-based testing for complex software systems is still an evolving field”

Wikipedia

Page 36: Micro Model Based Testing

36CONFIDENTIAL

Большие модели

Page 37: Micro Model Based Testing

37CONFIDENTIAL

Большие модели

Page 38: Micro Model Based Testing

38CONFIDENTIAL

Большие модели

Page 39: Micro Model Based Testing

39CONFIDENTIAL

Инструменты

• MaTeLo

• MS SpecExplorer

• GraphWalker

• … 20+

http://mit.bme.hu/~micskeiz/pages/modelbased_testing.html

Page 40: Micro Model Based Testing

40CONFIDENTIAL

Nobody knows

• Нет простых хороших OpenSource

инструментов

– Все бесплатные не поддерживаются или изначально не

удобные

– Платные ориентированы на большой бизнес, имеют массу

– функций, которые делают их сложными в освоении

• Сложные большие модели

Page 41: Micro Model Based Testing

41CONFIDENTIAL

Contra

• Надо менять парадигму мышления (Нет

классических тестовых сценариев)

• Долгий первый результат

• Дополнительно нужно поддерживать модель

• Не применимо для «небольших» проектов

Page 42: Micro Model Based Testing

42CONFIDENTIAL

Micro models

• Много маленьких моделей

– Проще для понимания

– Быстрое создание первых тестов

– Проще поддерживать

Page 43: Micro Model Based Testing

43CONFIDENTIAL

Примеры моделей

• Ролевая модель

• Модель покупки/подписки/услуги и пр.

• Модель поиска (текстового, по фильтрам, карта)

• Обзорная модель сайта

• Рейтинговая модель

Page 44: Micro Model Based Testing

44CONFIDENTIAL

Примеры моделей

• Загрузки файлов

• Модель формирования заказа

• Модель регистрации

• Модель общения (чата)

• …

Page 45: Micro Model Based Testing

45CONFIDENTIAL

Модель покупки товара

Page 46: Micro Model Based Testing

46CONFIDENTIAL

Contra

• Надо менять парадигму мышления (Нет

классических тестовых сценариев)

• Долгий первый результат

• Дополнительно нужно поддерживать модель

• Не применимо для «небольших» проектов

Микро модели

Page 47: Micro Model Based Testing

47CONFIDENTIAL

Contra

• Надо менять парадигму мышления (Нет

классических тестовых сценариев)

• Долгий первый результат

• Дополнительно нужно поддерживать модель

• Не применимо для «небольших» проектов

Микро моделиПроще чем разбираться в разбросанных тестах

Page 48: Micro Model Based Testing

48CONFIDENTIAL

Contra

• Надо менять парадигму мышления (Нет

классических тестовых сценариев)

• Долгий первый результат

• Дополнительно нужно поддерживать модель

• Не применимо для «небольших» проектов

Микро моделиПроще чем разбираться в разбросанных тестах

Микро модели

+ Развитие инструметовАвтоматизации

Page 49: Micro Model Based Testing

49CONFIDENTIAL

Page 50: Micro Model Based Testing

50CONFIDENTIAL

ENJOY!

Page 51: Micro Model Based Testing

51CONFIDENTIAL

Мои контакты

Ваши Вопросы?

Роман ИовлевEmail: [email protected]Статья: http://goo.gl/vDRvi0 Skype: roman.Iovlev