Deep FitNesse

Preview:

DESCRIPTION

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

Citation preview

Deep FitNesse

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

VIAcode LLC

Deep FitNesse

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

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

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

FitNesse (1)

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

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

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

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

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

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

FitNesse (2)

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

FitNesse (3)

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

FitNesse (4)

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

FitNesse (5)

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

Простота

•Установка: 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

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

•КАРТИНКА

9

QA

FitNesse on Java

Runner on .Net

Code on .Net

Dev

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

Пример кода

• | ‘’’ 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

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

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

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

12

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

База данных

Web сайт

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

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

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

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

14

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

База данных

Web сайт

FitNesse

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

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

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

.Net платформа

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

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

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

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

Fit vs Slim

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

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

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

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

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

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

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

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

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

Таблицы

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

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

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

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

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

20

create company Test Company

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

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

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

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

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

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

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

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

Ожидания

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• igor.manushin@gmail.com – к текущему докладчику

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

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

Контакты

Deep FitNesse

•Что такое FitNesse?

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

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

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

Recommended