Upload
dmytro-zharii
View
1.764
Download
1
Embed Size (px)
Citation preview
И никуда не надо ехать!
Обходные пути в автоматизированном
тестированииДмитрий Жарий
О себе
Обходы / Workaraund’ы
Или что делать, когда всё плохо
Вы работаете тестировщиком-автоматизатором в компании Google. И тестируете веб-поиск Google.
Даю вводную...
– Чувак, мы тут вводим фичу мгновенного поиска, но UI не поменялся, так что ты можешь, смело гонять свои старые тесты для регрессии.
И тут, как гром среди ясного неба
Жаль, нет видео.
Жаль, нет видео..
Жаль, нет видео…
Тест на 2 проверки
Всё нормально?!
Эта проверка мертва (Заблокирована)
Иногда, “This” - это не “this”…
Bug ID: BOOGLE-01
Реакция разработчиков
- Молодец, суровый баг нашел, братишка!
Реакция менеджмента
- О… да, это Showstopper. Мы не можем выпускать релиз с таким то багом! Гы-гы-гы
Первая реакция автоматизатора
- А у меня 400 тестов из-за этого не проходят. И половина проверок заблокирована, код проверок менять?
Вторая реакция автоматизатора
Обходим!
На каком основании?
А у нас есть:
Известный и открытый баг с ID: BOOGLE-01
И пока баг открыт – используем обход.
А когда баг закроют – уберем обход.
Всё по закону и порядку!
Чтобы тест не был красным
• Подменить ожидаемое значение• Отключить проверку• Подавить проверку
Код покажи!
Подменить ожидаемое значение
Талант – брат Краткости// NO! const bool is_Тот_баг_с_регистрацией_fixed = false;
// NO! const bool is_Я_обязательно_Заведу_Баг_по_этому_поводу_fixed = false;
// NO! const bool is_Вова_знает_об_этом_баге_и_обещал_пофиксить_когда_вернется_из_отпуска_fixed = false;
// NO! const bool IsBOOGLE01GoogleInstantSearchShouldNotAlwaysDisplayTheSearchPhraseInLowerCaseAndILoveCamelCaseSoMuchFixed = false;
// Google Instant search should not always display the search phrase in lower case const bool isBOOGLE_01_fixed = false;
Подменить ожидаемое значение
И овцы сыты, и волки целы
Ничего секретного
Сложный пример с дескриптором
Сам дескриптор
Отключить проверку
Подавить проверку…
Но, это же ужас…
Дубликат
Дубликат Мно
го к
ода
Зачем писать больше?
λ Код как параметр!
Обход включен
Обход выключен
В результате
И еще можно…
• Подменить тестовые данные “data_driven_test_data.xls” на “data_driven_test_data_boogle_01.xls”
• Полностью пропустить тест-кейс if (UseWorkAround(BOOGLE_01)) Assert.Inconclusive();
• Использовать обходной сценарий тестирования Например, создать нового пользователя при помощи SQL запросов, если это невозможно сделать через UI.
Когда-то давно было…Test Automation Report
Total: 1000 testsPassed: 600 testsFailed: 400 tests
Issues:BOOGLE-01 ( http://goo.gl/8lTsz ) : Google Instant search should not always display the search phrase in lower case
Blocks automation testing
Совсем недавно стало…Test Automation Report
Total: 1000 testsPassed: 998 testsFailed: 2 tests
Issues: Reopened: BOOGLE-02 New: BOOGLE-03
Used Workarounds:BOOGLE-01 ( http://goo.gl/8lTsz ) : Google Instant search should not always display the search phrase in lower case
Но!
Воркэраунд – это не решение проблемы.
Это всего лишь обход проблемы.
Спасибо за внимание!Я готов ответить на Ваши вопросы.
Спасибо за поддержку:
Дмитрий Жарий
http://[email protected]
Отдельное спасибоМемам из Rage Comics,
За участие в презентации
http://www.reddit.com/r/f7u12/