Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How to write good autotests

19,841 views

Published on

  • Login to see the comments

How to write good autotests

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

×