Quality Assurance: Основни методи на софтуерно тестване

quality-assurance-osnovni-metodi-za-softuerno-testvane
  • 1315 преглеждания

Quality Assurance е повече от задължителна стъпка при разработката на софтуер. Именно чрез QA можеш да гарантираш качеството и правилното функциониране на разработката си.

Чудил ли си се обаче какво е софтуерното тестване на практика? Какви са тестовете и проверките, които QA специалистите провеждат и как те водят до по-качествен продукт? Advance Academy е тук да отговори на този въпрос :)

В днешната статия говорим за видовете Quality Assurance тестове - Black Box, White Box и Grey Box. Имай предвид, че различните специалисти категоризират и класифицират работата си по различен начин, така че е възможно да има разминавания с друга информация онлайн.

quality-assurance-vidove-testove-white-box-black-box-grey-box

Black Box Тестване

Софтуерно тестване “Черна кутия” (Black Box Testing) е QA методология за изпитване на софтуерен продукт. При нея отговорното лице разглежда приложението само “отвън”, т.е. няма допирна точка с програмния код.

Нарича се Black Box, защото тестващият “не вижда какво има в кутията”. Неговата функция не е да разбира от устройството на продукта, а да провери дали функционалностите му работят коректно на ниво потребител.

Black Box тестовете се основават на изисквания за функционалност, спецификации, желания на потребителите и документация. Задачата е разработваният продукт да отговори на тях.

При този вид софтуерно тестване има два основни типа тестове: functional и non-functional testing. Какви са разликите и какво включват, разказваме в следващите редове:

Функционално тестване

Функционалното тестване е софтуерно тестване, чрез което се проверява коректното действие на функционалностите на едно приложение. То съвпада с най-честата представа на хората относно Quality Assurance.

Целта му е да потвърди правилната работа на продукта, като се фокусира върху това какво и как трябва да прави тестваният обект.

quality-assurance-vidove-testove-funktsionalni-testove

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

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. Нека ти разкажем повече за тях:

quality-assurance-vidove-testove-nefunktsionalni-testove
  1. Localization testing - при този софтуерен тест се проверява дали продуктът е съобразен с характеристиките на локацията, в която ще се използва. Това включва елементи като форматиране на дата и час, символи за валута, език на писане, както и визуални елементи, които могат да бъдат приети като неуместни.
  2. Graphical User Interface testing - този QA тест разглежда елементите на интерфейса на приложението - бутони, менюта, икони и пр. Проверява се дали позицията на тези елементи е правилна и дали отговарят на функционалността, за която са отговорни.
  3. Security Testing - чрез тест за сигурност се проверява надеждността на елементи като login форма и полета за плащане. Тестващото лице работи в посока намиране на вратички, чрез които да се сдобие със сензитивни данни или източване на средства. Част от този тип QA тестове е Penetration Testing, при който се симулира кибератака и се оценява издръжливостта на софтуера.
  4. Performance Testing - оценява производителността на софтуера. Проверява се неговата скорост, издръжливост, време за отговор на заявки и стабилност при пренатоварване.
  5. 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.