Deep FitNesse

27
Deep FitNesse Манушин Игорь, разработчик VIAcode LLC

description

Презентация Игоря Манушина на SQA Days-16 14-15 ноября 2014, Санкт-Петербург, Россия www.sqadays.com

Transcript of Deep FitNesse

Page 1: Deep FitNesse

Deep FitNesse

Манушин Игорь, разработчик

VIAcode LLC

Page 2: Deep FitNesse

Deep FitNesse

•Вопросы желательно задавать в конце

•Цифра в конце названия разделяет разные слайды с единой темой

2Deep FitNesse, Манушин Игорь, Viacode LLC

Page 3: Deep FitNesse

FitNesse (1)

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

•Первая версия: 2003 год, Роберт Мартин (на основе проекта fit)

•Средство для автоматического интеграционного тестирования

•Wiki разметка для тестировщиков

•Свободный выбор языка программирования для разработчиков

3Deep FitNesse, Манушин Игорь, Viacode LLC

Page 4: Deep FitNesse

FitNesse (2)

4Deep FitNesse, Манушин Игорь, Viacode LLC

Page 5: Deep FitNesse

FitNesse (3)

5Deep FitNesse, Манушин Игорь, Viacode LLC

Page 6: Deep FitNesse

FitNesse (4)

6Deep FitNesse, Манушин Игорь, Viacode LLC

Page 7: Deep FitNesse

FitNesse (5)

7Deep FitNesse, Манушин Игорь, Viacode LLC

Page 8: Deep FitNesse

Простота

•Установка: Java + скопировать jar файл

• Запуск Web сервера: java -jar fitnesse-standalone.jar

• Запуск теста:• http://yourSever:8080/SuiteName/TestName?test• java -jar fitnesse-standalone.jar –c

SuiteName/TestName?test

• Тесты и результаты – текстовые файлы

8Deep FitNesse, Манушин Игорь, Viacode LLC

Page 9: Deep FitNesse

Как он устроен?

•КАРТИНКА

9

QA

FitNesse on Java

Runner on .Net

Code on .Net

Dev

Deep FitNesse, Манушин Игорь, Viacode LLC

Page 10: Deep FitNesse

Пример кода

• | ‘’’ login as ‘’’ | DonJoe |

• | ‘’’ create company ‘’’ | Example |

10

login as DonJoe

create company Example

public bool LoginAs(User userName)

{

/*...*/

}

Wiki

Html

C#

Deep FitNesse, Манушин Игорь, Viacode LLC

Page 11: Deep FitNesse

Табличная функция

Login History For Test User

Action Date

Login failed 22/05/13

Login failed 22/05/13

Log in 22/05/13

Logoff 22/05/13

11Deep FitNesse, Манушин Игорь, Viacode LLC

Page 12: Deep FitNesse

Где применялось? (1)

12

Обработка процессов

База данных

Web сайт

Deep FitNesse, Манушин Игорь, Viacode LLC

Page 13: Deep FitNesse

Где применялось? (2)

13Deep FitNesse, Манушин Игорь, Viacode LLC

Page 14: Deep FitNesse

Где применялось? (3)

14

Обработка процессов

База данных

Web сайт

FitNesse

Deep FitNesse, Манушин Игорь, Viacode LLC

Page 15: Deep FitNesse

Deep FitNesse, Манушин Игорь, Viacode LLC 15

Где применялось (4)

Page 16: Deep FitNesse

.Net платформа

•По запросу в NuGet: два результата:• FitSharp: старый плагин, сделан на основе

оригинального для Java• NetRunner: новее, функции отличаются от

стандартного

16Deep FitNesse, Манушин Игорь, Viacode LLC

Page 17: Deep FitNesse

Fit vs Slim

• Fit: • Сервер передает html модулю на .Net• .Net модуль разбирает html• Запускает функции пользовательской библиотеки• Создает результирующий html• Отправляет результат серверу

• Slim:• Сервер передает команды• .Net модуль запускает функции пользователя

• .Net передает результат на сервер• Сервер создает результирующий Html

17Deep FitNesse, Манушин Игорь, Viacode LLC

Page 18: Deep FitNesse

Строгая типизация

• LoginAs (string) или LoginAs(User) ?

• FitSharp: статический метод Parse

•NetRunner: статический метод Parse или отдельный класс-парсер

18Deep FitNesse, Манушин Игорь, Viacode LLC

Page 19: Deep FitNesse

Таблицы

•Используем коллекции на вход и выход

19Deep FitNesse, Манушин Игорь, Viacode LLC

Page 20: Deep FitNesse

Помощь и подсказки (1)

•Хотелось бы:• Разработчик пишет, что делает функция• Тестировщик может понять, какие функции есть, и за

что они отвечают

20

create company Test Company

Deep FitNesse, Манушин Игорь, Viacode LLC

Page 21: Deep FitNesse

Помощь и подсказки (2)

• FitNesse: встроенные подсказки отсутствуют

• FitSharp: • Используем Doxygen• Используем IIS

•NetRunner: используем стандартные XML комментарии, текст будет после первого запуска

21Deep FitNesse, Манушин Игорь, Viacode LLC

Page 22: Deep FitNesse

Помощь и подсказки (3)

22Deep FitNesse, Манушин Игорь, Viacode LLC

Page 23: Deep FitNesse

Ожидания

• | wait until task | create company | will be finished with timeout| 120 | seconds |

•Эвристика: если было исключение ИЛИ один раз мы не дождались, то больше ждать не надо

23Deep FitNesse, Манушин Игорь, Viacode LLC

Page 24: Deep FitNesse

Автоматический запуск в CI

•http://server/Tests.ActivityCycles?test

•Два режима:• Web сайт• Выполнение команды

•Используем Windows Scheduled Tasks

•Используем выполнение команд + анализируем результирующий xml файл

24Deep FitNesse, Манушин Игорь, Viacode LLC

Page 25: Deep FitNesse

Запуск процессов

•Пример: запуск дочернего процесса в процессе тестирования

•Соединяем in/out/error потоки

•Два плюса:• Результаты видны в FitNesse• Каскадное завершение процессов

25Deep FitNesse, Манушин Игорь, Viacode LLC

Page 26: Deep FitNesse

•http://groups.yahoo.com/group/fitnesse или [email protected] – вопросы к разработчикам

[email protected] – к текущему докладчику

•http://habrahabr.ru/users/imanushin/

Deep FitNesse, Манушин Игорь, Viacode LLC 26

Контакты

Page 27: Deep FitNesse

Deep FitNesse

•Что такое FitNesse?

•Как его можно применить?

•Какие подходы могут быть более удобными?

27Deep FitNesse, Манушин Игорь, Viacode LLC