2. ХОРОШИЕ АВТОТЕСТЫ? WTF?
В одной из предыдущих презентаций я
рекомендовал вместо плохих автотестов
писать хорошие автотесты.
В то время, как ваши более одаренные
коллеги уже гребут деньги
лопатой, пиша пис хуяча хорошие
автотесты, лодыри вроде вас
продолжают скрести в затылке, пытаясь
понять, с чем это вообще едят.
3. С ЧЕГО НАЧАТЬ?
Представим себе,
что вы – одно из этих
бездарных, ограниченных и ленивых
созданий, прогуливавших в школе уроки
ясновидения и телепатии и
неспособных и строчки кода написать
без ошибок.
ВЫ - РАЗРАБОТЧИК
4. С ЧЕГО НАЧАТЬ?
А ваш автотест – и есть тестировщик,
чья задача – максимально доступно
разъяснить разработчику (который по
природе своей непонятлив), где он
накосячил и какой он вообще лузер* по
жизни.
* Ну ладно, про лузера ему разъяснит дома жена.
5. ТИПЫ ПЛОХИХ ТЕСТИРОВЩИКОВ АВТОТЕСТОВ
Можно выделить не менее четырех
типов плохих автотестов:
• Тип 1
• Тип 2
• Тип 3
• Тип 4
• и т.д.
6. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1
Итак, ваш тестировщик приходит к вам
(разработчику) и говорит:
«Тут какая-то херня, ничего не работает»
7. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1
«ЧТО НЕ РАБОТАЕТ?
ГДЕ НЕ РАБОТАЕТ?
КУДА ТЫ НАЖИМАЛ?»
- спрашиваете вы*.
* Разработчики непонятливы.
8. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1
«Тут какая-то херня, ничего не
работает»,
невозмутимо отвечает тестировщик.
10. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1
Увы, с плохим автотестом
этот номер не пройдет.
«Тут какая-то херня, ничего не
работает», -
единственное , что он умеет говорить.
Ну и еще молчать.
Причем еще неизвестно, что хуже.
11. КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 1
Тестировщик должен быть в состоянии
подробно и внятно разъяснить
разработчику (который по природе
своей несообразителен),
что именно
не работает
и где
12. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 2
Ваш тестировщик снова приходит к вам
(разработчику) и говорит:
«Я сравнивал X и 42, и они не совпали».
13. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 2
«X? КАКОЙ К ХУЯМ Х?
ПОЧЕМУ 42, А НЕ 37?
И ЧЕМУ ЖЕ ОН У ТЕБЯ
БЫЛ РАВЕН?»
- орете вы*.
* Разработчики легко раздражаются по пустякам.
14. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 2
Он не помнит.
Забыл.
Записал на старом чеке, засунул в
задний карман брюк и сдал их в
химчистку.
Да и вообще, с хуя ли он будет что-то
там запоминать. Не равно и все тут.
16. КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 2
Тестировщик должен
всегда говорить разработчику
(который по природе своей тугодум),
что и с чем он сравнивал,
а также
что он ожидал получить
и что получил на самом деле
17. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3
И вновь ваш тестировщик приходит к
вам (разработчику) и говорит:
«Я выполнил методы
doBlunder(), performIdioticChecks() и
verifyThatEverythingIsFine() и все упало».
18. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3
«ЗАЧЕМ ЗДЕСЬ БЫЛО
ВЫПОЛНЯТЬ
doBlunder(),?
ЭТО ЖЕ ВООБЩЕ
ДРУГОЙ ФУНКЦИОНАЛ!»
- не можете взять в толк вы*.
* Разработчики бестолковы.
19. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3
«Мы всегда выполняем doBlunder()
перед performIdioticChecks(). У нас есть
целая тестовая сюита на 700 тестов, и
все они сначала делают doBlunder(), а
потом performIdioticChecks()»,
- отвечает он.
20. КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 3
Быть может, этот тестировщик не так уж и глуп.
Возможно, здесь действительно нужно было
вызвать doBlunder(). А может и нет. Но кто, черт
возьми, ему это сказал? Откуда это следует?
Где это написано?
Тестировщик должен четко пояснять
разработчику (который по природе своей
недоверчив),
почему он выполняет те или иные действия,
а также
что он пытается проверить
21. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3А
Разновидностью автотеста типа 3
является автотест типа 3А.
Представьте, что ваш тестировщик
говорит вам (разработчику) :
«Я выполнил тест Test001 и он упал».
Или, может быть:
«Я выполнил тест Test001 и он не упал».
22. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3А
«И ЧТО ЭТО НАХРЕН ЗА
ТЕСТ ТАКОЙ - TEST001?
ЧТО ОН ПРОВЕРЯЕТ?»
- вопрошаете вы*.
* Разработчикам вечно нужно объяснять элементарные вещи.
24. КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 3А
Последовательность действий по
исправлению автотеста типа 3А аналогична
ситуации с автотестом типа 3. Тестировщик
должен давать понять разработчику (который
по природе
своей необузданно дотошен),
что именно он проверял,
потому что если никто не понимает, что он
тестировал, то и результат теста никому ни о
чем не скажет.
25. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 4
Тестировщик опять-таки приходит к вам
(разработчику) и говорит:
«Ништяк, братуха, все тесты зеленые».
26. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 4
Конечно, не исключено, что вам наконец
удалось научиться писать
хорошие
автотесты.
Но не спешите радоваться*. Не
исключено, что перед вами плохой
автотест типа 4.
* Разработчики мнительны.
27. ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 4
Почитайте внимательно, о чем рапортует вам
ваш тестировщик.
• «Хэй, в этой строке действительно
присутствует пустая подстрока!»
• «Я проверил твою страницу на наличие в
ней элементов типа <div> и <a>! Они там
есть, ура!»
• «Чувак, 0 == 0! Ты представляешь, 0 == 0!»
28. КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 4
Не спешите прибегать к народному
средству.
Здесь оно не поможет.
Этот человек – дебил, он безнадежен.
Все, что вам остается делать, – это
ПОСЛАТЬ ЕГО НАХУЙ
и перепроверить все самому.