Я занимаюсь Fitnesse`ом каждый день

Preview:

DESCRIPTION

Доклад Александра Мартюшова, SQA Days-13, 26-27 апреля 2013, www.sqadays.com

Citation preview

1

Scalable eCommerce Platform Solutions

Я занимаюсь Fitnesse`ом каждый день

Александр Мартюшов

2

План доклада

Обзор фреймворка Тестирование с Fitnesse Пример QA процесс vs Fitnesse Итоги

3

ВведениеДве задачи, которые существенно влияют на итоговое качество ПО:

Взаимодействие команды в процессе

обсуждения требований ПО

Автоматическое тестирование того, что с

точки зрения бизнеса ПО работает правильно

4

ВведениеДве задачи, которые существенно влияют на итоговое качество ПО:

Взаимодействие команды в процессе

обсуждения требований ПО

Автоматическое тестирование того, что с

точки зрения бизнеса ПО работает правильно

Когда эти задачи выполняются плохо, то:

• приложение может делать не то, что от него ждут

5

ВведениеДве задачи, которые существенно влияют на итоговое качество ПО:

Взаимодействие команды в процессе

обсуждения требований ПО

Автоматическое тестирование того, что с

точки зрения бизнеса ПО работает правильно

Когда эти задачи выполняются плохо, то:

• приложение может делать не то, что от него ждут• плохое качество приложения

6

ВведениеДве задачи, которые существенно влияют на итоговое качество ПО:

Взаимодействие команды в процессе

обсуждения требований ПО

Автоматическое тестирование того, что с

точки зрения бизнеса ПО работает правильно

Когда эти задачи выполняются плохо, то:

• приложение может делать не то, что от него ждут• плохое качество приложения• сложности при разрастании приложения

7

ВведениеДве задачи, которые существенно влияют на итоговое качество ПО:

Взаимодействие команды в процессе

обсуждения требований ПО

Автоматическое тестирование того, что с

точки зрения бизнеса ПО работает правильно

Справиться с этими задачами помогает

8

запуск Fitnesseзапуск Fitnesse: > java -jar fitnesse.jar

http://localhost/FrontPage

9

Fitnesse – это таблицы

Fitnesse таблица

10

Fitnesse – это таблицы

Fitnesse таблица

В чем преимущества табличного подхода?

11

Взаимодействие

заказчик

программист

тестировщик

12

Гибкость

ПРОДУКТ

ИЗМЕНЕНИЯ

Результаты

Fitnesse

тестов

13

Баланс

Сбалансированная система – быстрая адаптация к требованиям.

14

таблицы Fitnesse

Принцип работы Fitnesse

Fixture 1 Fixture 2TEST CORE

System under test

FIT server

Fixture

extendsextends

15

Пример

протестировать метод sqrt

16

Диаграмма

таблицы Fitnesse

Fixture 1 Fixture 2TEST CORE

System under test

FIT server

Fixture

extendsextends

17

Диаграмма

Fixture 1 Fixture 2TEST CORE

System under test

FIT server

Fixture

extendsextends

18

Диаграмма

Fixture 1 Fixture 2TEST CORE

System under test

extendsextends

19

Диаграмма

Fixture 1 Fixture 2

System under test

extendsextends

20

Диаграмма

System under test

extends

Double sqrtOfIs(Double i)

21

Диаграмма

extends

22

Fixture

связываемся с FIT

связываемся с тестируемой системой

23

Таблица

24

ТаблицаFIT создает объект моей fixture

MyFixture:

25

Таблица

MyFixture:

method: sqrtOfIs

26

Таблица

MyFixture:

Параметр метода: Double

= > 4 парсится как Double

27

Таблица

MyFixture:

Возвращаемое значение: Double

= > 2 парсится как Double

28

Таблица

Ожидаемый результат: 2

29

Таблица

Ожидаемый результат: 2

Результат выполнения метода для i=4:

30

Таблица

Ожидаемый результат: 2

Результат выполнения метода для i=4:

СРАВНЕНИЕ, используя check

31

Запуск тестаКнопка для запуска теста

asserts in test:

sqrtOfIs(4) == 2 ?sqrtOfIs(9) == 3 ?

sqrtOfIs(16) == 5 ?

Проверка с помощью check

32

Редактирование теста

- Save: сохранение версии теста в .zip- Можно откатиться до определенной версии

33

Exceptions в таблице

•Изменение Assertions•Fitnesse разделяет Wrong & Exception

34

История запусков теста

Можно перейти к любому test run и посмотреть отчет

35

Настройки страниц Fitnesse

теги страницы

36

PageHeader страницаpageType = Suite

pageType = Normal

pageType = Test

37

PageHeader страницаpageType = Suite

pageType = Normal

pageType = Test

38

PageHeader страница

39

“SuitePage”, pageType = Suite

SetUp, TearDown

Страница с таблицами, pageType = Test

Страница с таблицами, pageType = Test

“SetUp”, pageType = Normal

“TearDown”, pageType = Normal

40

Запуск такого набора тестов “SuitePage”, pageType = Suite

Страница с таблицами, pageType = Test

Страница с таблицами, pageType = Test

“SetUp”, pageType = Normal

“TearDown”, pageType = Normal

“SetUp”, pageType = Normal

“TearDown”, pageType = Normal

41

“SuitePage”, pageType = Suite

SuiteSetUp, SuiteTearDown

Страница с таблицами, pageType = Test

Страница с таблицами, pageType = Test

“SuiteSetUp”, pageType = Normal

“SuiteTearDown”, pageType = Normal

42

Запуск такого набора тестов“SuitePage”, pageType = Suite

Страница с таблицами, pageType = Test

Страница с таблицами, pageType = Test

“SuiteSetUp”, pageType = Normal

“SuiteTearDown”, pageType = Normal

43

QA процесс

Как Fitnesse может

помочь в организации

QA процесса?

44

QA процесс

• группировка страниц в наборы

45

QA процесс

• группировка страниц в наборы• тегирование: страница ↔ ТЗ

46

QA процесс

• группировка страниц в наборы• тегирование: страница ↔ ТЗ • тегирование: страница ↔ дефект

47

QA процесс

• группировка страниц в наборы• тегирование: страница ↔ ТЗ • тегирование: страница ↔ дефект• тегирование: страница ↔ ответственный

NOTE. Тегировать можно как страницу так и набор страниц.

48

Запуск определенных тестов

http://localhost:8181/SuiteName?responder=suite&suiteFilter=forCi&excludeSuiteFilter=noRun&excludeSuiteFilter=failed

теги: forCi, noRun, failedточка входа: SuiteName

49

Fitnesse vs CI

ContinuousIntegration

50

Jenkins plugin

Job status: SUCCESS

51

Jenkins plugin

Job status: UNSTABLE

52

Выводы

• 10000 тестов в системе – полет нормальный

53

Выводы

• 10000 тестов в системе – полет нормальный

• хорошая интеграция плагина jenkins

54

Выводы

• 10000 тестов в системе – полет нормальный

• хорошая интеграция плагина jenkins

• низкий порог вхождения в систему

55

Выводы

• 10000 тестов в системе – полет нормальный

• хорошая интеграция плагина jenkins

• низкий порог вхождения в систему

• удобный для работы инструмент

56

Выводы

• 10000 тестов в системе – полет нормальный

• хорошая интеграция плагина jenkins

• низкий порог вхождения в систему

• удобный для работы инструмент

• возможность писать fixture не только на Java

(Ruby, .Net, Python, C)

57

Выводы

• 10000 тестов в системе – полет нормальный

• хорошая интеграция плагина jenkins

• низкий порог вхождения в систему

• удобный для работы инструмент

• возможность писать fixture не только на Java

(Ruby, .Net, Python, C)

• возможность запускать из IDE

http://fitnesse.org/

58

Вопросы

Спасибо!

Recommended