Зошто сакате да автоматизирате тест?

Зошто би автоматизирал тест? Кои придобивки ги добиваме со автоматска проба?

Мошне често кога луѓето се вклучуваат во автоматско тестирање, нивниот главен фокус се префрла од дизајнирање добри тестови кон осигурување дека автоматскиот код може навистина да го изврши и да го изврши тестот.

За време на спринтот кога членовите на тимот се под притисок да ги доставуваат приказните во ограничена временска рамка, обично нема доволно време за тестирање на сите планирани сценарија, а камоли да се пишуваат автоматски тест скрипти за да се тестира новата функционалност.


Можеме да се заплеткаме со деталите за работата, кодирање, прегледување, извршување и да заборавиме на главната причина зошто ние всушност автоматизираме тест!



Зошто автоматизираме тест?

Ова е едно од прашањата што ги поставувам кога интервјуирам кандидати за улога во тест автоматизација и на мое изненадување, се чини дека многу кандидати ја пропуштија главната и најважната причина за автоматизирање на тест. Некои одговори што ги добивам од кандидатите се прилично веродостојни, но сепак не одговорот што го барам. Некои од одговорите што ги добив на горното прашање се:


Зголемете ја покриеноста на тестот

Овој одговор е прилично валиден, но како да го дефинираме покривањето? Ако имаме 100 тестови, како можеме да го измериме процентот на покриеност?

Со зрела практика на тестирање за автоматизација, може да извршите стотици тестови за релативно краток временски период.

Поради ова, можеме да создадеме повеќе тест случаи, повеќе сценарија за тестирање и да тестираме со повеќе влезни податоци за дадена карактеристика и со тоа да добиеме поголема доверба дека системот работи како што се очекуваше.

Меѓутоа, при тестирање и особено за автоматска тест, повеќе тестови навистина не значат подобар квалитет или поголема шанса за наоѓање грешки.


Во објава на Мартин Фаулер, каде дискутира Покриеност на тестот , тој споменува

Ако поставите одредено ниво на покриеност цел, луѓето ќе се обидат да го постигнат тоа. Проблемот е во тоа што високите броеви на покриеност се премногу лесни за достигнување со тестирање со низок квалитет. На нај апсурдно ниво што го имате Тврдење Бесплатно тестирање . Но, дури и без тоа, добивате многу тестови во кои барате работи кои ретко одат наопаку и ве одвраќаат од тестирање на работите што навистина се важни.

Заштедете време

Овој одговор е исто така точен, бидејќи можете да потрошите драгоцено време правејќи интересно истражувачко тестирање додека работат автоматските тестови. Сепак, за сосема нова опција што е развиена, може да потрае подолго да се напишат автоматски скрипти отколку да се тестира одликата рачно во првиот момент.

Значи, важно е да се напомене дека за да заштедите време од автоматски тестови, потребно е почетен зголемен напор при скриптирање на автоматските тестови, осигурувајќи се дека се разгледуваат кодовите и дека нема икање при извршување на автоматски тестови.


Пронајдете повеќе грешки

Овој одговор ме загрижува понекогаш, бидејќи никогаш не сум видел метрика што сугерираше дека имало повеќе грешки пронајдени со автоматизација отколку рачно / истражувачко тестирање. Автоматските тестови обично проверуваат дали има каква било регресија во системот откако ќе биде имплементиран новиот код.

Секогаш има поголема шанса да најдете грешки во новите функции отколку во постојната функционалност. Понатаму, постојат и други причини зошто автоматските тестови не успеваат да најдат дефекти

Заменете ги рачните тестери

Ова е веројатно најлошиот одговор што го слушнав во врска со тоа зошто автоматизираме тест. Постои јасна разлика помеѓу тоа што прави рачен тестер и она што го проверува автоматскиот тест. Автоматското тестирање не е тестирање, тоа е проверка на фактите.

За да можеме да го автоматизираме тестот, мора да го знаеме очекуваниот исход за да можеме да провериме дали има валиден или невалиден исход. Ова е она што ни дава вистинито или лажно, позитивно или негативно, да помине или да не успее.


Тестирањето од друга страна е истражна вежба, каде што истовремено дизајнираме и извршуваме тестови. Многу работи можат да се однесуваат поинаку каде што може да забележи само наб anудувачки тестер на луѓе.

Добри рачни тестери секогаш ќе бидат потребни заради различното размислување и можноста да се доведува во прашање системот.



Подобрување на квалитетот

Иако автоматските тестови се способни да ни дадат брзи повратни информации и да нè предупредат за здравјето на апликацијата, така што можеме да ја вратиме секоја промена на кодот што го расипала системот, автоматското тестирање самостојно не го подобрува квалитетот. Само затоа што имаме зрела автоматска тест, не гарантира дека нема грешки во производството.

Можеме да го подобриме квалитетот, осигурувајќи дека се следат точните практики од почеток до крај на развојниот циклус. Квалитетот не е последна мисла; треба да се пече уште од самиот почеток. Не е доволно да се потпреме на автоматски тестови за да се добие слика за квалитетот на производот.




Значи, која е главната причина за автоматизација на тест?

Краткиот одговор е повторливост . Автоматизираме тест затоа што треба да ги извршуваме истите тестови одново и одново. Дали би сакале да го автоматизирате тестот ако го полагате само еднаш и да го заборавите? Се разбира не! Времето и напорот што ги потрошивте за автоматизирање на тестот, можевте да го извршите рачно.

Сега, по дефиниција, ние ги автоматизираме тестовите што може да се повторуваат, т.е. тестовите за регресија, кои треба често да ги извршуваме.

Значи, следниот пат, кога сакате да го автоматизирате тестот, направете чекор назад и размислете колку често веројатно ќе го извршите овој тест? Дали навистина вреди да се вложи трудот да се автоматизира тестот?