Приемочные тесты на огурце

14
Эффект SpecFlow Алёна Попова IndyCode [email protected] Вторая конференция .NET разработчиков

description

Каким образом лучше организовать процесс интеграционного тестирования? Для проектов, где количество тестовых сценариев превышает несколько сотен, возникают проблемы:с пониманием кода;с точным представлением, что именно протестировано, а что нет;какие случаи учтены в тестовых сценариях, а какие нет.Использование SpecFlow для нашего проекта помогло решить все эти проблемы. Мы наладили процесс тестирования и оптимизировали написание тестовых сценариев.Как настроить SpecFlow, организовать тестовые сценарии более логично и иметь список тестов на русском языке, который можно показать даже заказчику? Об этом будет подробно рассказано в докладе.По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Priemochnie_testi_na_ogurce

Transcript of Приемочные тесты на огурце

Page 1: Приемочные тесты на огурце

Эффект SpecFlow

Алёна ПоповаIndyCode

[email protected]

Вторая конференция .NET разработчиков

Page 2: Приемочные тесты на огурце

План

1. Что такое тестовый сценарий?2. Схема работы тестов3. Пример, как было до SpecFlow (демо)4. Откуда взялся SpecFlow у нас (демо) 5. История развития проекта SpecFlow6. Преимущества использования

Page 3: Приемочные тесты на огурце

Что такое тестовые сценарии?

Page 4: Приемочные тесты на огурце

Схема работы тестов

База данных

xUnit

Web-приложение

Тестовый сценарий 1Тестовый сценарий 1

Тестовый сценарий 2Тестовый сценарий 2

Selenium

Page 5: Приемочные тесты на огурце

Реализация тестового сценария[ExtendedFact]public void UserCanLogOn(){

const string userPassword = "123";

Account user = EmployeeWorkspaceDatabase.AddUser(Configuration.GenerateUniqueLogin(),

Configuration.GenerateUniqueName(),Configuration.GenerateUniqueName(),Configuration.GenerateUniqueName(), userPassword);

Website.LogOn(user.Login, userPassword);

Website.VerifyTextPresent(StringConstants.PersonalPage); Website.VerifyTextPresent(user.ShortName);

AssertExtensions.HasLog(user, AuthorizationActType.LogIn, DateTime.Now);}

Page 6: Приемочные тесты на огурце

Проблемы этой реализации

1. Неуправляемый код в тестах

2. Сценарий и код в одном

3. Сценарий на C# приходится переводить на живой язык

Page 7: Приемочные тесты на огурце

Решение проблем

Page 8: Приемочные тесты на огурце

Тот же сценарий на огурцеФича: Log On

Ввeсти корректный логин и корректный пароль.

Предыстория:Дано заходим на форму авторизации

Сценарий: ввeсти корректный логин и корректный парольДано добавляем пользователя в базу данныхИ вводим корректный логинИ вводим корректный парольКогда пользователь нажимает кнопку ВходТогда пользователь попадает в личный кабинет

Page 9: Приемочные тесты на огурце

Демо

Page 10: Приемочные тесты на огурце

Преимущества

1. Разделение сценария и кода

2. Разделение работы по написанию сценария и его реализации

3. Сценарии на языке заказчика

4. Повторное использование шагов

Page 11: Приемочные тесты на огурце
Page 12: Приемочные тесты на огурце

Демо для продвинутых

• Параметры• Структура сценариев

Page 13: Приемочные тесты на огурце

Mercurial

TeamCity

Отдел тестирования

SpecFlow и CI

Page 14: Приемочные тесты на огурце

Спасибо за внимание

Алёна ПоповаIndyCode

[email protected]