Към съдържанието
wannacode

Защо и какво да автоматизираш

Накратко: Автоматизираният тест е програма, която пуска системата и сверява резултата, без човек. Той си струва за правила, които не се менят често, проверяват се при всяка промяна и струват пари, ако се счупят. Не си струва за еднократна проверка, за екран, който още се мени, и за всичко, което иска човешка преценка. Истинската му цена е поддръжката.

Проблем

Два дни ръчни тестове всяка седмица

Магазинът пуска нова версия всеки петък. Преди всяко пускане QA минава ръчно 120 тестови случая: доставката, количката, промо кодовете, връщанията. Отнема два дни.

Миналата седмица имаше празник, и времето стигна за 80. Пропуснатите 40 бяха „старите, те не се чупят“. В понеделник клиент плати доставка за поръчка точно за 50,00 €. Промяната беше в кода за промо кодовете, а счупи границата на доставката.

Идеята

Автоматизацията на тестовете

Автоматизацията на тестовете (test automation) е програма, която пуска системата, подава ѝ входа от тестовия случай и сверява резултата с очаквания. Без човек, при всяко пускане еднакво.

Какво дава:

  • регресията става евтина. 120 случая вървят за минути, при всяка промяна, а не два дни веднъж седмично;
  • еднакво всеки път. Програмата не се уморява на 80-ия случай и не прескача „старите“;
  • бърза обратна връзка. Програмистът научава, че е счупил границата, след 5 минути, докато още помни какво е пипал;
  • живата документация се пуска. Сценариите от модула за Gherkin спират да са текст в папка: те стават проверка, която минава или пада.

Автоматизацията не измисля тестове. Тестовият случай пак се пише от човек. Автоматизацията го повтаря.

Идеята

Какво си струва и какво не

Автоматизираният тест се плаща веднъж при писането и после при всяка промяна. Затова си струва, когато се пуска много пъти, а се мени рядко.

Струва си за:

  • правила, които не се менят всяка седмица: доставката, лимитът в количката, отстъпките;
  • проверки преди всяко пускане (регресията);
  • много примери с едно и също правило: десет суми около границата;
  • места, където грешката струва пари или доверие.

Не си струва (или още не) за:

  • еднократна проверка: миграция на данните, която става веднъж;
  • екран, който дизайнерът още сменя всеки ден;
  • всичко, което иска преценка: разбира ли се формулярът, изглежда ли добре, удобно ли е. Това е използваемост, и тя се гледа от хора;
  • изследователското тестване: там въпросът се измисля, докато тестваш.

Пробвай

Автоматизирай или не?

1. Правилото за безплатна доставка: проверява се преди всяко пускане, а пускането е всяка седмица.
2. Новата начална страница: дизайнерът я сменя всеки ден тази седмица.
3. Разбира ли се формулярът за връщане от възрастни клиенти?
4. Миграция на старите поръчки в новата база: прави се веднъж, в събота през нощта.

Идеята

Рисковете

Автоматизацията често се проваля не заради инструмента, а заради очакванията:

  • „Ще намери всички дефекти.“ Тестът проверява само това, което някой е измислил. Ако никой не е измислил празната количка, автоматизацията няма да я провери, колкото и пъти да се пусне. Мутантите от модула за Gherkin минаваха незабелязано точно така.
  • Подценена поддръжка. Тестовете са код. Когато прагът стане 60 €, сценариите, стъпките и тестовете се сменят. Ако никой не ги поддържа, след месец половината са червени, и екипът спира да ги гледа.
  • Тест, на който никой не вярва. Ако тестът пада „понякога“, хората започват да го пускат пак, докато мине. Тогава и истинското падане минава незабелязано.
  • Всичко през екрана. Тестовете през браузъра са бавни и се чупят, когато бутонът смени мястото си. Повечето проверки трябва да са по-надолу.
  • Инструментът като цел. „Купихме инструмент“ не е стратегия. Първо е какво трябва да се проверява, после с какво.
По-точно, за любопитните

ISTQB CTFL v4.0.1 описва инструментите в глава 6. Раздел 6.2 изброява ползите, сред тях по-малко повтаряща се ръчна работа, по-голяма последователност, по-бърза обратна връзка и повече време за нови тестове, и рисковете, сред тях нереалистични очаквания, неточна оценка на времето и цената (включително поддръжката), инструмент там, където ръчното е по-подходящо, прекалено разчитане на инструмента без човешка критична мисъл и зависимост от доставчика или от софтуер с отворен код, който може да бъде изоставен.

За тези, които ще пишат автоматизация като професия, ISTQB има отделен сертификат на напреднало ниво: CTAL-TAE (Test Automation Engineering). Той е за архитектурата на автоматизацията и не е част от този курс.

Идеята

Кое ниво за коя проверка

Пирамидата от модула за нивата казва колко тестове на кое ниво. В автоматизацията тя става конкретна:

  • сценариите (следващия урок) проверяват правилото с думите на бизнеса. Те са живата документация;
  • тестовете на ниво компонент проверяват едно парче код, бързо и с много примери: десет суми около границата за милисекунди;
  • API тестовете пращат истински заявки към сървъра на магазина, без браузър;
  • UI тестовете отварят браузър и щракат като клиента. Малко на брой, само за пътищата, които не бива да се чупят.

В този модул правилото е едно и също през цялото време: безплатна доставка от 50,00 € включително, иначе 4,90 €, празна количка се отказва. Ще го видиш автоматизирано на всяко ниво, на Java, C#, Python и JavaScript, и ще видиш кой тест хваща коя грешка.

Тук трябва да можеш да четеш код на един от четирите езика. Нужното е от курса по програмиране, до модула „Програми в истинския свят“: класове, изключения и тестове на ниво компонент.

Пробвай

Пътят на едно правило

Подреди пътя на правилото за доставката от договарянето до отчета.

  1. Правилото е проверено и с тестове на ниво компонент
  2. Сценарият е свързан с кода чрез стъпки
  3. Отчетът казва кое е паднало и защо
  4. Тестовете се пускат при всяка промяна в кода
  5. Правилото е договорено и записано като сценарий

Упражнение

План за автоматизация

1. Кое първо и защо. Магазинът тепърва започва с автоматизацията.

1. Кое от тези четири е най-добре да се автоматизира първо?
2. Екипът автоматизира 300 теста за една седмица. След месец половината са червени, а никой не ги гледа. Кой риск се е сбъднал?
3. Мениджърът казва: „Имаме автоматизация, вече не ни трябват тестери.“ Какво пропуска?

Тест

Провери се

1. Какво е автоматизиран тест?
2. Кое прави едно правило добър кандидат за автоматизация?
3. Коя е най-голямата постоянна цена на автоматизацията?
4. Къде в пирамидата отиват повечето автоматизирани тестове?

Създаден от Иво Гергов като част от кампанията на Evo Tech за достъпно обучение по програмиране ·