SlideShare a Scribd company logo
1 of 27
Deep FitNesse 
Манушин Игорь, разработчик 
VIAcode LLC
Deep FitNesse 
• Вопросы желательно задавать в конце 
• Цифра в конце названия разделяет разные слайды 
с единой темой 
Deep FitNesse, Манушин Игорь, Viacode LLC 2
FitNesse (1) 
• Интеграционное тестирование 
• Первая версия: 2003 год, Роберт Мартин (на 
основе проекта fit) 
• Средство для автоматического интеграционного 
тестирования 
• Wiki разметка для тестировщиков 
• Свободный выбор языка программирования для 
разработчиков 
Deep FitNesse, Манушин Игорь, Viacode LLC 3
FitNesse (2) 
Deep FitNesse, Манушин Игорь, Viacode LLC 4
FitNesse (3) 
Deep FitNesse, Манушин Игорь, Viacode LLC 5
FitNesse (4) 
Deep FitNesse, Манушин Игорь, Viacode LLC 6
FitNesse (5) 
Deep FitNesse, Манушин Игорь, Viacode LLC 7
Простота 
• Установка: 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 
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 
Deep FitNesse, Манушин Игорь, Viacode LLC 11
Где применялось? (1) 
12 
Обработка 
процессов 
База данных 
Web сайт 
Deep FitNesse, Манушин Игорь, Viacode LLC
Где применялось? (2) 
Deep FitNesse, Манушин Игорь, Viacode LLC 13
Где применялось? (3) 
14 
Обработка 
процессов 
База данных 
Web сайт 
FitNesse 
Deep FitNesse, Манушин Игорь, Viacode LLC
Где применялось (4) 
Deep FitNesse, Манушин Игорь, Viacode LLC 15
.Net платформа 
• По запросу в NuGet: два результата: 
• FitSharp: старый плагин, сделан на основе 
оригинального для Java 
• NetRunner: новее, функции отличаются от 
стандартного 
Deep FitNesse, Манушин Игорь, Viacode LLC 16
Fit vs Slim 
• Fit: 
• Сервер передает html модулю на .Net 
• .Net модуль разбирает html 
• Запускает функции пользовательской библиотеки 
• Создает результирующий html 
• Отправляет результат серверу 
• Slim: 
• Сервер передает команды 
• .Net модуль запускает функции пользователя 
• .Net передает результат на сервер 
• Сервер создает результирующий Html 
Deep FitNesse, Манушин Игорь, Viacode LLC 17
Строгая типизация 
• LoginAs (string) или LoginAs(User) ? 
• FitSharp: статический метод Parse 
• NetRunner: статический метод Parse или 
отдельный класс-парсер 
Deep FitNesse, Манушин Игорь, Viacode LLC 18
Таблицы 
• Используем коллекции на вход и выход 
Deep FitNesse, Манушин Игорь, Viacode LLC 19
Помощь и подсказки (1) 
• Хотелось бы: 
• Разработчик пишет, что делает функция 
• Тестировщик может понять, какие функции есть, и за 
что они отвечают 
20 
create company Test Company 
Deep FitNesse, Манушин Игорь, Viacode LLC
Помощь и подсказки (2) 
• FitNesse: встроенные подсказки отсутствуют 
• FitSharp: 
• Используем Doxygen 
• Используем IIS 
• NetRunner: используем стандартные XML 
комментарии, текст будет после первого запуска 
Deep FitNesse, Манушин Игорь, Viacode LLC 21
Помощь и подсказки (3) 
Deep FitNesse, Манушин Игорь, Viacode LLC 22
Ожидания 
• | wait until task | create company | will be finished 
with timeout| 120 | seconds | 
• Эвристика: если было исключение ИЛИ один раз 
мы не дождались, то больше ждать не надо 
Deep FitNesse, Манушин Игорь, Viacode LLC 23
Автоматический запуск в CI 
• http://server/Tests.ActivityCycles?test 
• Два режима: 
•Web сайт 
• Выполнение команды 
• Используем Windows Scheduled Tasks 
• Используем выполнение команд + анализируем 
результирующий xml файл 
Deep FitNesse, Манушин Игорь, Viacode LLC 24
Запуск процессов 
• Пример: запуск дочернего процесса в процессе 
тестирования 
• Соединяем in/out/error потоки 
• Два плюса: 
• Результаты видны в FitNesse 
• Каскадное завершение процессов 
Deep FitNesse, Манушин Игорь, Viacode LLC 25
• 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? 
• Как его можно применить? 
• Какие подходы могут быть более удобными? 
Deep FitNesse, Манушин Игорь, Viacode LLC 27

More Related Content

Similar to Deep FitNesse

Jody - JsOn for Dynamic sites on Rails
Jody - JsOn for Dynamic sites on RailsJody - JsOn for Dynamic sites on Rails
Jody - JsOn for Dynamic sites on Railszykin-ilya
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"SQALab
 
Алексей Витенко — Синхронизация данных на клиенте
Алексей Витенко — Синхронизация данных на клиентеАлексей Витенко — Синхронизация данных на клиенте
Алексей Витенко — Синхронизация данных на клиентеYandex
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаPositive Hack Days
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеSQALab
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
 
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionVladimir Malinin
 
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»Александр Саитов «Основы профилирования и оптимизации приложений в .NET»
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»SpbDotNet Community
 
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"Yandex
 
Microservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceMicroservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceNikita Makarov
 
социальные сети в производстве. Кейсы
социальные сети в производстве. Кейсысоциальные сети в производстве. Кейсы
социальные сети в производстве. КейсыANROM Social Business
 
О тестировании в EDI
О тестировании в EDIО тестировании в EDI
О тестировании в EDIMaxim Zakharov
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
Сенцов Сергей "Приемы оптимизаций Desktop приложений"
Сенцов Сергей "Приемы оптимизаций Desktop приложений"Сенцов Сергей "Приемы оптимизаций Desktop приложений"
Сенцов Сергей "Приемы оптимизаций Desktop приложений"Yulia Tsisyk
 

Similar to Deep FitNesse (20)

Jody - JsOn for Dynamic sites on Rails
Jody - JsOn for Dynamic sites on RailsJody - JsOn for Dynamic sites on Rails
Jody - JsOn for Dynamic sites on Rails
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
 
Алексей Витенко — Синхронизация данных на клиенте
Алексей Витенко — Синхронизация данных на клиентеАлексей Витенко — Синхронизация данных на клиенте
Алексей Витенко — Синхронизация данных на клиенте
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчика
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
презентация.1
презентация.1презентация.1
презентация.1
 
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
 
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»Александр Саитов «Основы профилирования и оптимизации приложений в .NET»
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»
 
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
 
Microservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirienceMicroservices for test automation - OK.RU expirience
Microservices for test automation - OK.RU expirience
 
социальные сети в производстве. Кейсы
социальные сети в производстве. Кейсысоциальные сети в производстве. Кейсы
социальные сети в производстве. Кейсы
 
О тестировании в EDI
О тестировании в EDIО тестировании в EDI
О тестировании в EDI
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Сенцов Сергей "Приемы оптимизаций Desktop приложений"
Сенцов Сергей "Приемы оптимизаций Desktop приложений"Сенцов Сергей "Приемы оптимизаций Desktop приложений"
Сенцов Сергей "Приемы оптимизаций Desktop приложений"
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Deep FitNesse

  • 1. Deep FitNesse Манушин Игорь, разработчик VIAcode LLC
  • 2. Deep FitNesse • Вопросы желательно задавать в конце • Цифра в конце названия разделяет разные слайды с единой темой Deep FitNesse, Манушин Игорь, Viacode LLC 2
  • 3. FitNesse (1) • Интеграционное тестирование • Первая версия: 2003 год, Роберт Мартин (на основе проекта fit) • Средство для автоматического интеграционного тестирования • Wiki разметка для тестировщиков • Свободный выбор языка программирования для разработчиков Deep FitNesse, Манушин Игорь, Viacode LLC 3
  • 4. FitNesse (2) Deep FitNesse, Манушин Игорь, Viacode LLC 4
  • 5. FitNesse (3) Deep FitNesse, Манушин Игорь, Viacode LLC 5
  • 6. FitNesse (4) Deep FitNesse, Манушин Игорь, Viacode LLC 6
  • 7. FitNesse (5) Deep FitNesse, Манушин Игорь, Viacode LLC 7
  • 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
  • 13. Где применялось? (2) Deep FitNesse, Манушин Игорь, Viacode LLC 13
  • 14. Где применялось? (3) 14 Обработка процессов База данных Web сайт FitNesse Deep FitNesse, Манушин Игорь, Viacode LLC
  • 15. Где применялось (4) Deep FitNesse, Манушин Игорь, Viacode LLC 15
  • 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
  • 22. Помощь и подсказки (3) Deep FitNesse, Манушин Игорь, Viacode LLC 22
  • 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

  1. FitNesse – это fit + сервер на Java Мартин – автор книги «О хорошем коде»
  2. Fit: модуль может делать дополнительную работу, такую как более корректный поиск функции, сжатый вывод ошибки, добавления .Net Xml Help Slim: все модули очень простые, однако и общий результат более бедный
  3. NetRunner – есть wiki с примерами
  4. Не забываем написать feedback, так как скоро еще выступать 