Приемочные тесты на огурце
DESCRIPTION
Каким образом лучше организовать процесс интеграционного тестирования? Для проектов, где количество тестовых сценариев превышает несколько сотен, возникают проблемы:с пониманием кода;с точным представлением, что именно протестировано, а что нет;какие случаи учтены в тестовых сценариях, а какие нет.Использование SpecFlow для нашего проекта помогло решить все эти проблемы. Мы наладили процесс тестирования и оптимизировали написание тестовых сценариев.Как настроить SpecFlow, организовать тестовые сценарии более логично и иметь список тестов на русском языке, который можно показать даже заказчику? Об этом будет подробно рассказано в докладе.По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Priemochnie_testi_na_ogurceTRANSCRIPT
План
1. Что такое тестовый сценарий?2. Схема работы тестов3. Пример, как было до SpecFlow (демо)4. Откуда взялся SpecFlow у нас (демо) 5. История развития проекта SpecFlow6. Преимущества использования
Что такое тестовые сценарии?
Схема работы тестов
База данных
xUnit
Web-приложение
Тестовый сценарий 1Тестовый сценарий 1
Тестовый сценарий 2Тестовый сценарий 2
…
Selenium
Реализация тестового сценария[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);}
Проблемы этой реализации
1. Неуправляемый код в тестах
2. Сценарий и код в одном
3. Сценарий на C# приходится переводить на живой язык
Решение проблем
Тот же сценарий на огурцеФича: Log On
Ввeсти корректный логин и корректный пароль.
Предыстория:Дано заходим на форму авторизации
Сценарий: ввeсти корректный логин и корректный парольДано добавляем пользователя в базу данныхИ вводим корректный логинИ вводим корректный парольКогда пользователь нажимает кнопку ВходТогда пользователь попадает в личный кабинет
Демо
Преимущества
1. Разделение сценария и кода
2. Разделение работы по написанию сценария и его реализации
3. Сценарии на языке заказчика
4. Повторное использование шагов
Демо для продвинутых
• Параметры• Структура сценариев
Mercurial
TeamCity
Отдел тестирования
SpecFlow и CI