QA за начинаещи: Автоматизирано тестване vs. ръчно тестване
Софтуерното тестване привлича много млади професионалисти, които искат да се развиват в областта на информационните технологии, както и експерти от други сфери, които са решили да променят професията си на по-късен етап. Един от основните въпроси, които възникват за начинаещите QA експерти, е кога е подходящо да бъде използвано ръчното софтуерно тестване и кога да се заложи на автоматизирано такова. А също така – кой от двата подхода е по-перспективен от гледна точка на кариерното развитие.
При ръчното тестване (QA Manial), както предполага и името, тестовете се изпълняват единствено от хора, без да се използват скриптове. В този случай познанията, свързани с програмни езици и писане на код, не са необходими, но за сметка на това -процесът е по-времеемък.
При автоматизираното тестване, от друга страна, тестовият процес се извършва посредством софтуер и скриптове. Целта е задачата да бъде изпълнена при възможно най-кратки срокове чрез повтарящи се процеси и регресионен тест, без намесата на ръчен тестер. Но дори и в този случай са необходими усилия и човешка намеса за създаване на скриптовете за тестване.
Ако трябва да определим кой от двата подхода е по-добър и по-ефективен, едва ли има правилен отговор. И двата вида тестване – ръчни или автоматизирани, са приложими в различни случаи, в зависимост от отделни фактори като бюджет, изисквания на проекта, ресурси, времеви график, цели, експертиза и структура на проекта.
И в двата метода – automation и manual, се обхващат специфични типове тестове като integration testing, system testing, performance testing и load testing. Въпреки това, някои от тези видове тестове са по-добре изпълними при ръчен подход, а други – с автоматизация.
Таблицата по-долу показва основните разлики между ръчно и автоматизирано тестване по отношение на някои важни фактори като време, цена, точност, познания, фреймуърк и др.
QA Manual | QA Automation |
---|---|
Време за изпълнение | |
Ръчното тестване е времеемко, тъй като е базирано изцяло на човешки ресурс. | Автоматизацията позволява изпълнението на тестовете да става много по-бързо в сравнение с manual подхода. |
Прецизност при изпълнението | |
Рискът от човешки грешки е значителен | Автоматизираното тестване се изпълнява чрез скриптове и софтуерни инструменти, което го прави точно и прецизно, но в същото време скрипът може да пропусне грешки, които са видими само при човешка намеса. |
Тестови рипорти | |
Manual подходът дава възможност за човешки наблюдения и оценка на удобството и интуитивността на даден софтуер. Използват се специализирани платформи за запис на грешки и бъгове (Testrail, Jira etc.) | Човешкият опит тук отсъства, което може да доведе до слаба или никаква оценка на интуитивността и удобството при работата с даден софтуер. Резултатите от тестовете се записват лесно в системата на автоматизацията. |
Колко ще струва? | |
Първоначалната инвестиция е по-ниска в сравнение с автоматизацията, но същевременно ROI (възвръщаемостта) също е по-ниска в дългосрочен план. Инвестицията е най-вече в човешки ресурс. | Автоматизираното тестване обикновено е свързано с по-сериозна първоначална инвестиция, но ROI (възвръщаемостта) е по-голяма в дългосрочен аспект. В този случай разходите са свързани с разработване на тестови скриптове, което означава – наемане на automation инженери. |
Необходими познания | |
Не е необходимо наличието на програмни умения, но качества като аналитичност, критично мислене и дори креативност са от голяма полза. | Познания, свързани с програмни езици, са необходими, за да се разработят скриптовете, с които ще се тества софтуерът. |
Фреймуърк | |
При QA manual софтуерният фреймуърк не е необходим, вместо това се разчита на чек листове и процедури. | Автоматизираното тествате използва феймуирк – например – Selenide, Serenity, Data Driven, Hybrid, BDD и др. |
Кога е подходящо? | |
Exploratory Testing – когато човешкият опит и индивидуален подход е от значение.Usability Testing: когато се измерва интуитивността и трябва да се оцени user-friendly структурата на даден софтуер.Ad-hoc Testing: тест без предварителен сценарий, непланиран тип тестване. | Performance Testing: тестване, което изисква симулация на огромен брой едновременни процеси, е по-добре да се извърши чрез автоматизацияLoad Testing: Автоматизираното тестване е подходящо и когато трябва да се оцени ефективността на натоварването, която е част от тестването на производителността.Functional Testing: в този случай автоматизираното тестване е по-подходящо, защото позволява чести кодови промени при висока скорост. eRepeated Execution: Когато тестът се основава на многократно изпълнение на задачата. |
Както се вижда от сравнителната таблица, и двата метода имат, както плюсове, така и недостатъци. Чрез ръчното тестване например, можем да постигнем по-добра оценка, базирана на човешкия опит. Автоматизацията, от друга страна, дава възможност да се открият повече грешки за доста по-кратко време чрез прецизен и предвидим процес, който може да бъде записан
КАРИЕРНИ ВЪЗМОЖНОСТИ
Според данните на международната консултантска компания за разработване на софтуерни решения DataArt, обхващащи периода 2015-2017 г., процентът на кандидатите за работа, които са били заинтересовани от позиции, свързани с QA Automation е значително по-малък от този на кандидатстващите за QA вакантни места, свързани с ръчно тестване. Но означава ли това, че нуждата от QA Automation инженери е все още ниска или пък – точно обратното – че има недостиг на достатъчно квалифицирани експерти, които да се занимават с автоматизация?
В търсене на отговори на тези въпроси се обърнахме към двама QA специалисти от DataArt с дългогодишен опит – Виталий Кизимов, Senior Manual QA и Антон Сирота – Senior Automation QA, които споделят своя опит:
1. Ръчно или автоматизирано тестване – от гледна точка на кариерата това въпрос на лични предпочитания ли е или е по-скоро въпрос на умения и познания?
Антон Сирота (QA Automation): Според мен е повече въпрос на личен избор и предпочитания, но е важно те да са подплатени и със съответните умения. Ръчното софтуерно тестване изисква познания и разбиране, а автоматизацията предполага наличие на това и в допълнение – знания, свързани с програмни езици. Именно затова процентът на кандидатите за работа, свързани с автоматизирано тестване, е по-малък. Но пазарът определено се нуждае от QA Automation инженери и търсенето нараства.
Виталий Кизимов (QA Manual): Изискванията към автоматизираното тестване са по-високи, затова и наблюдаваме по-малко кандидатури за такива позиции. Но това не е ядрена физика и всеки с повече мотивация би могъл да премине от manual към automation.
2. Вярно ли е, че автоматизираното тестване е много повече свързано с програмирането, отколкото с Manual QA?
Антон Сирота (QA Automation): Не. Всичко това е black box тестване и QA Automation инженерът използва тестови случаи, също както и при manual подхода.
Виталий Кизимов (QA Manual): От гледна точка на изпълняваните дейности – да, по-близо е до програмирането. От гледна точка на комуникацията, се доближава много повече до ръчното тестване.
3. Възможно ли е човек да се занимава с автоматизирано тестване, без никога преди това да е бил Manual QA?
Антон Сирота (QA Automation): Да, възможно е. Но добрият QA Automation инженер е специалист, притежаващ умения и в двете направления.
Виталий Кизимов (QA Manual): Силно вярвам, че преди да се автоматизира един процес, човекът, който ще пише кода, трябва да има разбиране, познания и опит в тези процеси, така че предишен опит като Manual QA би бил доста ценен.
4. Вярно ли е, че специалистите, занимаващи се с Manual QA, не са особено уважавани от страна на програмистите?
Антон Сирота (QA Automation): Никога не съм се сблъсквал с това в реални условия. В наши дни всеки разбира ролята на QA специалиста и знае колко важна е неговата работа за качеството на крайния продукт.
Виталий Кизимов (QA Manual): Това определено е мит.
5. Какво бихте казали за фразата „QA никога не може да бъде напълно автоматизиран” от популярния QA експерт Майкъл Болтън?
Антон Сирота (QA Automation): QA не е просто изпълнение на тестове. Свързан е също така и с изисквания, анализи, създаване на тестови случаи, Към днешна дата няма начин една машина да направи всичко това самостоятелно. Но нищо не се знае, може след време изкуственият интелект да е способен да постигне дори и това.
Виталий Кизимов (QA Manual): Добрият професионалист знае къде е балансът между автоматизираните и ръчните процеси. Можем да разчитаме на автоматизацията, но не и изцяло на нея. Човешката преценка все още е водеща.