Quality Assurance е повече от задължителна стъпка при разработката на софтуер. Именно чрез QA можеш да гарантираш качеството и правилното функциониране на разработката си.
Чудил ли си се обаче какво е софтуерното тестване на практика? Какви са тестовете и проверките, които QA специалистите провеждат и как те водят до по-качествен продукт? Advance Academy е тук да отговори на този въпрос :)
В днешната статия говорим за видовете Quality Assurance тестове - Black Box, White Box и Grey Box. Имай предвид, че различните специалисти категоризират и класифицират работата си по различен начин, така че е възможно да има разминавания с друга информация онлайн.
Black Box Тестване
Софтуерно тестване “Черна кутия” (Black Box Testing) е QA методология за изпитване на софтуерен продукт. При нея отговорното лице разглежда приложението само “отвън”, т.е. няма допирна точка с програмния код.
Нарича се Black Box, защото тестващият “не вижда какво има в кутията”. Неговата функция не е да разбира от устройството на продукта, а да провери дали функционалностите му работят коректно на ниво потребител.
Black Box тестовете се основават на изисквания за функционалност, спецификации, желания на потребителите и документация. Задачата е разработваният продукт да отговори на тях.
При този вид софтуерно тестване има два основни типа тестове: functional и non-functional testing. Какви са разликите и какво включват, разказваме в следващите редове:
Функционално тестване
Функционалното тестване е софтуерно тестване, чрез което се проверява коректното действие на функционалностите на едно приложение. То съвпада с най-честата представа на хората относно Quality Assurance.
Целта му е да потвърди правилната работа на продукта, като се фокусира върху това какво и как трябва да прави тестваният обект.
Има голям набор от тестове, които спадат към функционалното софтуерно тестване. Ние ще ти разкажем за няколко най-основни от тях:
Smoke testing | При Smoke тестване се проверяват най-базовите функции на разработения софтуер. Всички останали опции остават на заден план, докато не се потвърди, че основните възможности на продукта функционират коректно. |
Ad-hoc testing | Случайно софтуерно тестване, което не е обвързано с подготовка, документация или конкретни цели. Тестващото лице трябва да е запознато с очакваните за продукта функции и възможности, но самата проверка е произволна. |
Positive testing | При позитивното QA тестване се подават правилните данни, с които по принцип се очаква софтуера да работи. Например в полето за телефонен номер да се въведе коректна поредица от цифри. |
Negative testing | Негативното софтуерно тестване е обратно на позитивното - подават се грешни данни, за да се провери как отговаря продукта. Ако следваме същата аналогия, при това тестване в полето за телефонен номер ще бъдат въведени букви, вместо цифри и ще се наблюдава отговора на приложението. |
Regression testing | Регресионното тестване се прилага при въвеждането на нови функционалности в приложението. Целта е да се провери дали нововъведенията са навредили на вече съществуващите функции. |
Re-testing | Ретестване се прави след като е намерен бъг и разработчиците са го коригирали. Целта е да се провери дали конкретният проблем е решен напълно. |
End to end testing (E2E testing) | Софтуерното тестване от край до край разиграва потребителски сценарий. Тестващото лице проверява функционалностите на продукта от началото до финала на действието, за което приложението е създадено. |
Cross-browser testing | При този вид QA тест се проверява дали функционалностите на уеб приложения и сайтове работят правилно на различни браузъри - Google Chrome, Mozilla Firefox, Microsoft Edge и пр. |
Acceptance testing | Този тип софтуерно тестване обикновено се провежда от клиента. Целта е да се провери дали приложението действа така, както той е очаквал, и се провежда във финалната фаза на разработка. |
Third Party Integration testing (3PI testing) | Тестването на интеграция със софтуери на трети страни се прави с цел да се оцени дали те си взаимодействат с продукта така, както се очаква. |
Разбира се, има още различни тестове, които се прилагат при функционалното софтуерно тестване. За тях можеш да научиш в курса на Advance Academy Quality Assurance - Ниво Junior.
Нефункционално тестване
Нефункционалното тестване е софтуерно тестване, което се концентрира върху общи качества на приложението като представяне, скорост, надеждност и удобство.
При него не се проверява дали продукта работи правилно, фокусът е върху качествени атрибути и характеристики. Този тип тестване е също толкова важно като функционалното и подпомага удовлетвореността както на клиента, така и на потребителите за в бъдеще.
Oсновните нефункционални QA тестове за 5. Нека ти разкажем повече за тях:
- Localization testing - при този софтуерен тест се проверява дали продуктът е съобразен с характеристиките на локацията, в която ще се използва. Това включва елементи като форматиране на дата и час, символи за валута, език на писане, както и визуални елементи, които могат да бъдат приети като неуместни.
- Graphical User Interface testing - този QA тест разглежда елементите на интерфейса на приложението - бутони, менюта, икони и пр. Проверява се дали позицията на тези елементи е правилна и дали отговарят на функционалността, за която са отговорни.
- Security Testing - чрез тест за сигурност се проверява надеждността на елементи като login форма и полета за плащане. Тестващото лице работи в посока намиране на вратички, чрез които да се сдобие със сензитивни данни или източване на средства. Част от този тип QA тестове е Penetration Testing, при който се симулира кибератака и се оценява издръжливостта на софтуера.
- Performance Testing - оценява производителността на софтуера. Проверява се неговата скорост, издръжливост, време за отговор на заявки и стабилност при пренатоварване.
- Usability Testing - в литературата може да бъде срещнато като UX testing. Оценява се удобството на използване на интерфейса и дали потребителят лесно намира и използва функциите на приложението.
White Box Тестване
White Box софтуерно тестване можеш да срещнеш с много различни имена, които следват една и съща логика - Clear Box, Glass Box, Open Box и т.н. Идеята е, че при този тип тест “виждаш какво има в кутията” - тоест тестваш кода на приложението или софтуера.
Това е и основната разлика между White Box и Black Box - софтуерното тестване е от вътрешна или от външна гледна точка. Разбира се, и в двата случая тестващото лице е запознато с проекта и очакваните от продукта резултати и функционалности.
White Box софтуерното тестване включва проверка на програмния код за:
- Проблеми и пропуски откъм сигурност;
- Лошо структуриран и непоследователен код;
- Работа с въведени данни и правилен отговор;
- Преглед на всяка индивидуално функция, обект и пр.
На практика, голяма част от white box тестването се извършва от самите програмисти, отколкото от отделно лице. Тестващият трябва отлично да разбира от използваните езици за програмиране и технологии, за да извърши подобен софтуерен тест.
За компаниите не е изгодно да търсят отделен човек само за white box тестване. Стандартният QA Specialist не е толкова добре запознат с програмните езици, за да е подходящ за подобна дейност.
Позитивите от white box софтуерно тестване са възможността кодът да се оптимизира постоянно в процеса на разработка. Отделно, тези тестове са лесни за автоматизиране и има много готови софтуерни решения по темата.
Grey Box Тестване
Grey Box тестването е комбинация от White Box и Black Box софтуерно тестване. При него тестващото лице може да регистрира както външни грешки и бъгове, така и вътрешни проблеми с програмния код.
В Quality Assurance общността има спорове дали Grey Box трябва да бъде отделна категория и колко реалистично всъщност е това да наемеш подобен тип специалист.
QA е бързо развиваща се и търсена професия. Подходяща е за хора без предишен опит в IT сферата и е чудесен избор за преквалификация. Противно на очакванията, Quality Assurance е изключително креативна професия. Въпреки че има установени рамки за тестване, е нужно да си изобретателен, когато търсиш бъгове и грешки.
Ако се чувстваш готов да се впуснеш в света на софтуерното тестване, свържи се с нас и стани QA Junior Specialist.