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

How to write good autotests

Nov 22, 2014

Download

Documents

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: How to write good autotests

КАК ПИСАТЬ

ХОРОШ

ИЕ АВТО

ТЕСТЫ

АВ

ТО

Р:

CA

PT A

I N C

HA

OS

Page 2: How to write good autotests

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

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

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

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

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

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

Page 3: How to write good autotests

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

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

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

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

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

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

Page 4: How to write good autotests

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

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

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

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

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

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

Page 5: How to write good autotests

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

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

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

Page 6: How to write good autotests

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

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

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

Page 7: How to write good autotests

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

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

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

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

Page 8: How to write good autotests

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

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

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

Page 9: How to write good autotests

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

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

Page 10: How to write good autotests

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

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

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

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

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

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

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

Page 11: How to write good autotests

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

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

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

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

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

и где

Page 12: How to write good autotests

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

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

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

Page 13: How to write good autotests

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

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

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

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

Page 14: How to write good autotests

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

Он не помнит.

Забыл.

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

химчистку.

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

все тут.

Page 15: How to write good autotests

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

Page 16: How to write good autotests

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

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

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

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

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

а также

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

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

Page 17: How to write good autotests

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

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

говорит:

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

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

Page 18: How to write good autotests

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

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

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

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

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

Page 19: How to write good autotests

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

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

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

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

performIdioticChecks()»,

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

Page 20: How to write good autotests

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

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

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

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

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

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

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

а также

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

Page 21: How to write good autotests

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

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

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

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

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

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

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

Page 22: How to write good autotests

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

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

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

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

Page 23: How to write good autotests

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

Page 24: How to write good autotests

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

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

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

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

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

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

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

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

Page 25: How to write good autotests

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

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

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

Page 26: How to write good autotests

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

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

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

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

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

Page 27: How to write good autotests

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

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

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

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

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

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

Page 28: How to write good autotests

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

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

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

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

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

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

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

Page 29: How to write good autotests

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

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

Page 30: How to write good autotests

ЗАКЛЮЧЕНИЕ

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

больше.

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

глупостиИ

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

Page 31: How to write good autotests

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

Page 32: How to write good autotests

ВОПРОСЫ?