how to write good autotests

32
КАК ПИСАТЬ ХОРОШИЕ АВТОТЕСТЫ АВТ ОР: CAP TAIN CHAOS

Upload: borgeir-ingvarsson

Post on 22-Nov-2014

1.818 views

Category:

Documents


5 download

DESCRIPTION

 

TRANSCRIPT

КАК ПИСАТЬ

ХОРОШ

ИЕ АВТО

ТЕСТЫ

АВ

ТО

Р:

CA

PT A

I N C

HA

OS

ХОРОШИЕ АВТОТЕСТЫ? WTF?

В одной из предыдущих презентаций я рекомендовал

вместо плохих автотестов писать хорошие автотесты.

В то время, как ваши более одаренные коллеги уже гребут деньги лопатой, пиша пис хуяча

хорошие автотесты, лодыри вроде вас продолжают скрести в

затылке, пытаясь понять, с чем это вообще едят.

С ЧЕГО НАЧАТЬ?

Представим себе,

что вы – одно из этих бездарных, ограниченных и ленивых

созданий, прогуливавших в школе уроки ясновидения и телепатии и

неспособных и строчки кода написать без ошибок.

ВЫ - РАЗРАБОТЧИК

С ЧЕГО НАЧАТЬ?

А ваш автотест – и есть тестировщик,

чья задача – максимально доступно разъяснить

разработчику (который по природе своей непонятлив), где он

накосячил и какой он вообще лузер* по жизни.

* Ну ладно, про лузера ему разъяснит дома жена.

ТИПЫ ПЛОХИХ ТЕСТИРОВЩИКОВ АВТОТЕСТОВ

Можно выделить не менее четырех типов плохих автотестов:

• Тип 1• Тип 2• Тип 3• Тип 4• и т.д.

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1

Итак, ваш тестировщик приходит к вам (разработчику) и говорит:

«Тут какая-то херня, ничего не работает»

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1

«ЧТО НЕ РАБОТАЕТ?ГДЕ НЕ РАБОТАЕТ?

КУДА ТЫ НАЖИМАЛ?»- спрашиваете вы*.

* Разработчики непонятливы.

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1

«Тут какая-то херня, ничего не работает»,

невозмутимо отвечает тестировщик.

НАРОДНОЕ СРЕДСТВО

В обычной жизни можно прибегнуть к народным средствам:

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 1

Увы, с плохим автотестом

этот номер не пройдет.

«Тут какая-то херня, ничего не работает», -

единственное , что он умеет говорить.

Ну и еще молчать.

Причем еще неизвестно, что хуже.

КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 1

Тестировщик должен быть в состоянии подробно и внятно

разъяснить разработчику (который по природе своей

несообразителен),

что именноне работает

и где

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 2

Ваш тестировщик снова приходит к вам (разработчику) и говорит:

«Я сравнивал X и 42, и они не совпали».

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 2

«X? КАКОЙ К ХУЯМ Х?ПОЧЕМУ 42, А НЕ 37?

И ЧЕМУ ЖЕ ОН У ТЕБЯ БЫЛ РАВЕН?»

- орете вы*.* Разработчики легко раздражаются по пустякам.

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 2

Он не помнит.

Забыл.

Записал на старом чеке, засунул в задний карман брюк и сдал их в

химчистку.

Да и вообще, с хуя ли он будет что-то там запоминать. Не равно и

все тут.

НАРОДНОЕ СРЕДСТВО

КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 2

Тестировщик должен

всегда говорить разработчику

(который по природе своей тугодум),

что и с чем он сравнивал,

а также

что он ожидал получить

и что получил на самом деле

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3

И вновь ваш тестировщик приходит к вам (разработчику) и

говорит:

«Я выполнил методы doBlunder(), performIdioticChecks() и

verifyThatEverythingIsFine() и все упало».

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3

«ЗАЧЕМ ЗДЕСЬ БЫЛО ВЫПОЛНЯТЬ doBlunder(),?

ЭТО ЖЕ ВООБЩЕ ДРУГОЙ

ФУНКЦИОНАЛ!»- не можете взять в толк вы*.

* Разработчики бестолковы.

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3

«Мы всегда выполняем doBlunder() перед

performIdioticChecks(). У нас есть целая тестовая сюита на 700

тестов, и все они сначала делают doBlunder(), а потом

performIdioticChecks()»,

- отвечает он.

КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 3

Быть может, этот тестировщик не так уж и глуп. Возможно, здесь

действительно нужно было вызвать doBlunder(). А может и нет. Но кто, черт

возьми, ему это сказал? Откуда это следует? Где это написано?

Тестировщик должен четко пояснять разработчику (который по природе

своей недоверчив),

почему он выполняет те или иные действия,

а также

что он пытается проверить

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3АРазновидностью автотеста типа 3

является автотест типа 3А.

Представьте, что ваш тестировщик

говорит вам (разработчику) :

«Я выполнил тест Test001 и он упал».

Или, может быть:

«Я выполнил тест Test001 и он не упал».

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 3А

«И ЧТО ЭТО НАХРЕН ЗА ТЕСТ ТАКОЙ - TEST001? ЧТО ОН

ПРОВЕРЯЕТ?»- вопрошаете вы*.

* Разработчикам вечно нужно объяснять элементарные вещи.

НАРОДНОЕ СРЕДСТВО

КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 3А

Последовательность действий по исправлению автотеста типа 3А

аналогична ситуации с автотестом типа 3. Тестировщик должен давать понять

разработчику (который по природе

своей необузданно дотошен),

что именно он проверял,

потому что если никто не понимает, что он тестировал, то и результат теста

никому ни о чем не скажет.

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 4

Тестировщик опять-таки приходит к вам (разработчику) и говорит:

«Ништяк, братуха, все тесты зеленые».

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 4

Конечно, не исключено, что вам наконец удалось научиться писать

хорошиеавтотесты.

Но не спешите радоваться*. Не исключено, что перед вами

плохой автотест типа 4.* Разработчики мнительны.

ЧТО ТАКОЕ ПЛОХОЙ АВТОТЕСТ ТИПА 4

Почитайте внимательно, о чем рапортует вам ваш тестировщик.

• «Хэй, в этой строке действительно присутствует пустая подстрока!»

• «Я проверил твою страницу на наличие в ней элементов типа <div> и

<a>! Они там есть, ура!»

• «Чувак, 0 == 0! Ты представляешь, 0 == 0!»

КАК ИСПРАВИТЬ ПЛОХОЙ АВТОТЕСТ ТИПА 4

Не спешите прибегать к народному средству.

Здесь оно не поможет.

Этот человек – дебил, он безнадежен.

Все, что вам остается делать, – это

ПОСЛАТЬ ЕГО НАХУЙ

и перепроверить все самому.

НАРОДНОЕ СРЕДСТВО

Ну а потом уже можно и немного отвести душу.

ЗАКЛЮЧЕНИЕ

На самом деле разновидностей плохих автотестов намного

больше.

Ибо несть границ человеческой

глупостиИ

безалаберности

ЗАКЛЮЧЕНИЕ

Поэтому хватит прикидываться разработчиком.

Какой вы к хуям разработчик?

Вы и есть тестировщик.

Вот и отправляйтесь писать свои автотесты.

ХОРОШИЕ АВТОТЕСТЫ.

ВОПРОСЫ?