2. Deep FitNesse
• Вопросы желательно задавать в конце
• Цифра в конце названия разделяет разные слайды
с единой темой
Deep FitNesse, Манушин Игорь, Viacode LLC 2
3. FitNesse (1)
• Интеграционное тестирование
• Первая версия: 2003 год, Роберт Мартин (на
основе проекта fit)
• Средство для автоматического интеграционного
тестирования
• Wiki разметка для тестировщиков
• Свободный выбор языка программирования для
разработчиков
Deep FitNesse, Манушин Игорь, Viacode LLC 3
8. Простота
• Установка: Java + скопировать jar файл
• Запуск Web сервера: java -jar fitnesse-standalone.jar
• Запуск теста:
• http://yourSever:8080/SuiteName/TestName?test
• java -jar fitnesse-standalone.jar –c
SuiteName/TestName?test
• Тесты и результаты – текстовые файлы
Deep FitNesse, Манушин Игорь, Viacode LLC 8
9. Как он устроен?
• КАРТИНКА
9
QA
FitNesse on Java
Runner on .Net
Code on .Net
Dev
Deep FitNesse, Манушин Игорь, Viacode LLC
10. Пример кода
• | ‘’’ 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
11. Табличная функция
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
Deep FitNesse, Манушин Игорь, Viacode LLC 11
12. Где применялось? (1)
12
Обработка
процессов
База данных
Web сайт
Deep FitNesse, Манушин Игорь, Viacode LLC
16. .Net платформа
• По запросу в NuGet: два результата:
• FitSharp: старый плагин, сделан на основе
оригинального для Java
• NetRunner: новее, функции отличаются от
стандартного
Deep FitNesse, Манушин Игорь, Viacode LLC 16
17. Fit vs Slim
• Fit:
• Сервер передает html модулю на .Net
• .Net модуль разбирает html
• Запускает функции пользовательской библиотеки
• Создает результирующий html
• Отправляет результат серверу
• Slim:
• Сервер передает команды
• .Net модуль запускает функции пользователя
• .Net передает результат на сервер
• Сервер создает результирующий Html
Deep FitNesse, Манушин Игорь, Viacode LLC 17
18. Строгая типизация
• LoginAs (string) или LoginAs(User) ?
• FitSharp: статический метод Parse
• NetRunner: статический метод Parse или
отдельный класс-парсер
Deep FitNesse, Манушин Игорь, Viacode LLC 18
19. Таблицы
• Используем коллекции на вход и выход
Deep FitNesse, Манушин Игорь, Viacode LLC 19
20. Помощь и подсказки (1)
• Хотелось бы:
• Разработчик пишет, что делает функция
• Тестировщик может понять, какие функции есть, и за
что они отвечают
20
create company Test Company
Deep FitNesse, Манушин Игорь, Viacode LLC
21. Помощь и подсказки (2)
• FitNesse: встроенные подсказки отсутствуют
• FitSharp:
• Используем Doxygen
• Используем IIS
• NetRunner: используем стандартные XML
комментарии, текст будет после первого запуска
Deep FitNesse, Манушин Игорь, Viacode LLC 21
23. Ожидания
• | wait until task | create company | will be finished
with timeout| 120 | seconds |
• Эвристика: если было исключение ИЛИ один раз
мы не дождались, то больше ждать не надо
Deep FitNesse, Манушин Игорь, Viacode LLC 23
24. Автоматический запуск в CI
• http://server/Tests.ActivityCycles?test
• Два режима:
•Web сайт
• Выполнение команды
• Используем Windows Scheduled Tasks
• Используем выполнение команд + анализируем
результирующий xml файл
Deep FitNesse, Манушин Игорь, Viacode LLC 24
25. Запуск процессов
• Пример: запуск дочернего процесса в процессе
тестирования
• Соединяем in/out/error потоки
• Два плюса:
• Результаты видны в FitNesse
• Каскадное завершение процессов
Deep FitNesse, Манушин Игорь, Viacode LLC 25
26. • http://groups.yahoo.com/group/fitnesse или
fitnesse@yahoogroups.com – вопросы к
разработчикам
• igor.manushin@gmail.com – к текущему докладчику
• http://habrahabr.ru/users/imanushin/
Deep FitNesse, Манушин Игорь, Viacode LLC 26
Контакты
27. Deep FitNesse
• Что такое FitNesse?
• Как его можно применить?
• Какие подходы могут быть более удобными?
Deep FitNesse, Манушин Игорь, Viacode LLC 27
Editor's Notes
FitNesse – это fit + сервер на Java
Мартин – автор книги «О хорошем коде»
Fit: модуль может делать дополнительную работу, такую как более корректный поиск функции, сжатый вывод ошибки, добавления .Net Xml Help
Slim: все модули очень простые, однако и общий результат более бедный
NetRunner – есть wiki с примерами
Не забываем написать feedback, так как скоро еще выступать