types software testing
Какви са различните видове софтуерно тестване?
Ние, като тестери, сме наясно с различните видове тестване на софтуер като функционално тестване, нефункционално тестване, тестване за автоматизация, пъргаво тестване и техните подтипове и т.н.
Всеки от нас би срещнал няколко вида тестване по време на пътуването си. Може да сме чували някои и да сме работили по някои, но не всеки има познания за всички видове тестване.
как да отворите jar файлове windows 10
Всеки тип тестване има свои собствени характеристики, предимства и недостатъци. В тази статия обаче разгледах предимно всеки вид тестване на софтуер, който обикновено използваме в ежедневния си живот.
Нека да ги разгледаме.
Какво ще научите:
- Различни видове тестване на софтуер
- # 1) Алфа тестване
- # 2) Изпитване за приемане
- # 3) Ad-hoc тестване
- # 4) Тестване на достъпността
- # 5) Бета тестване
- # 6) Тестване отзад
- # 7) Тестване на съвместимостта на браузъра
- # 8) Тестване на обратна съвместимост
- # 9) Тестване на черна кутия
- # 10) Тестване на гранична стойност
- # 11) Тестване на клонове
- # 12) Сравнително тестване
- # 13) Тестване на съвместимост
- # 14) Тестване на компоненти
- # 15) Тестване от край до край
- # 16) Разделяне на еквивалентност
- # 17) Примерно тестване
- # 18) Изследователско тестване
- # 20) Функционално тестване
- # 21) Тестване на графичен потребителски интерфейс (GUI)
- # 22) Тестване на горила
- # 23) Тестване на щастлив път
- # 24) Постепенно тестване на интеграция
- # 25) Тестване на инсталиране / деинсталиране
- # 26) Тестване на интеграцията
- # 27) Тестване на товара
- # 28) Тестване на маймуни
- # 29) Тестване на мутация
- # 30) Отрицателно тестване
- # 31) Нефункционално тестване
- # 32) Тестване на производителността
- # 33) Тестване за възстановяване
- # 34) Тестване на регресия
- # 35) Тестване на базата на риска (RBT)
- # 36) Тестване на здравия разум
- # 37) Тестване на сигурността
- # 38) Тестване на дим
- # 39) Статично тестване
- # 40) Тестване на стрес
- # 41) Тестване на системата
- # 42) Тестване на единица
- # 43) Тестване на използваемостта
- # 44) Тестване на уязвимост
- # 45) Тестване на обема
- # 46) Тестване на бяла кутия
- Заключение
- Препоръчително четене
Различни видове тестване на софтуер
По-долу е даден списъкът с някои често срещани видове тестване на софтуер:
Типовете функционални тестове включват:
- Единично тестване
- Интеграционно тестване
- Тестване на системата
- Проверка на здравия разум
- Тестване на дим
- Тестване на интерфейса
- Тестване на регресия
- Тестване на бета / приемане
Нефункционалните видове тестване включват:
- Тестване на производителността
- Тестване на товара
- Стресиране
- Тестване на обема
- Тестване на сигурността
- Тестване на съвместимост
- Инсталирайте тестване
- Тестване за възстановяване
- Тестване на надеждността
- Тестване на използваемостта
- Тестване за съответствие
- Тестване на локализация
Нека да видим повече подробности за тези видове тестване.
# 1) Алфа тестване
Това е най-често срещаният тип тестване, използван в софтуерната индустрия. Целта на това тестване е да идентифицира всички възможни проблеми или дефекти, преди да ги пусне на пазара или на потребителя.
Алфа тестването се извършва в края на фазата на разработване на софтуер, но преди бета тестването. И все пак, в резултат на такова тестване могат да бъдат направени незначителни промени в дизайна.
Алфа тестване се провежда в сайта на разработчика. Вътрешна виртуална потребителска среда може да бъде създадена за този тип тестване.
# 2) Изпитване за приемане
An Тест за приемане се изпълнява от клиента и проверява дали крайният поток на системата отговаря на бизнес изискванията или не и дали е според нуждите на крайния потребител. Клиентът приема софтуера само когато всички функции и функционалности работят според очакванията.
Това е последната фаза на тестването, след което софтуерът влиза в производство. Това се нарича още тестване за приемане от потребителя (UAT).
# 3) Ad-hoc тестване
Самото име предполага, че това тестване се извършва на ad-hoc без позоваване на тестовия случай, а също и без въведен план или документация за такъв тип тестване.
Целта на това тестване е да открие дефектите и да разбие приложението, като изпълни всеки поток от приложението или произволна функционалност.
Ad-hoc тестването е неформален начин за откриване на дефекти и може да бъде извършено от всеки в проекта. Трудно е да се идентифицират дефекти без тестов случай, но понякога е възможно дефекти, открити по време на ad-hoc тестване, да не са били идентифицирани с помощта на съществуващи тестови случаи.
# 4) Тестване на достъпността
Целта на Тестване на достъпността е да се определи дали софтуерът или приложението са достъпни за хора с увреждания или не.
Тук инвалидност означава глухи, далтонисти, умствено затруднени, слепи, възрастни и други групи с увреждания. Извършват се различни проверки като размер на шрифта за зрително увредени, цвят и контраст за далтонизъм и др.
# 5) Бета тестване
Бета тестване е формален тип Тестване на софтуер, което се извършва от клиента. Извършва се през реалната среда преди пускането на продукта на пазара за действителните крайни потребители.
Бета тестването се провежда, за да се гарантира, че няма големи грешки в софтуера или продукта и то отговаря на бизнес изискванията от гледна точка на крайния потребител. Бета тестването е успешно, когато клиентът приеме софтуера.
Обикновено това тестване обикновено се извършва от крайни потребители или други. Това е последното тестване, направено преди пускането на заявление за търговска цел. Обикновено бета версията на пуснатия софтуер или продукт е ограничена до определен брой потребители в определена област.
Така че крайният потребител всъщност използва софтуера и споделя обратната връзка с компанията. След това компанията предприема необходимите действия, преди да пусне софтуера в целия свят.
# 6) Тестване отзад
Всеки път, когато вход или данни се въведат във външно приложение, те се съхраняват в базата данни и тестването на такава база данни е известно като Тестване на база данни или Тестване на бекенда.
Съществуват различни бази данни като SQL Server, MySQL и Oracle и др. Тестването на база данни включва тестване на структура на таблица, схема, съхранена процедура, структура на данни и т.н.
В Back-end Testing GUI не участва, тестерите са директно свързани с базата данни с подходящ достъп и тестерите могат лесно да проверят данните, като изпълнят няколко заявки в базата данни.
По време на това back-end тестване могат да бъдат идентифицирани проблеми като загуба на данни, блокиране на данни и т.н. и тези проблеми са от решаващо значение за отстраняването, преди системата да влезе в работна среда
# 7) Тестване на съвместимостта на браузъра
Това е подтип на тестване за съвместимост (което е обяснено по-долу) и се извършва от екипа за тестване.
Тестване за съвместимост на браузъра се извършва за уеб приложения и гарантира, че софтуерът може да работи с комбинацията от различен браузър и операционна система. Този тип тестване също така проверява дали уеб приложението работи на всички версии на всички браузъри или не.
# 8) Тестване на обратна съвместимост
Това е вид тестване, който проверява дали новоразработеният софтуер или актуализираният софтуер работи добре с по-старата версия на средата или не.
Тестването на обратна съвместимост проверява дали новата версия на софтуера работи правилно с файлов формат, създаден от по-стара версия на софтуера; той работи добре и с таблици с данни, файлове с данни, структура на данни, създадени от по-старата версия на този софтуер.
Ако някой от софтуера е актуализиран, той трябва да работи добре върху предишната версия на този софтуер.
# 9) Тестване на черна кутия
Вътрешният дизайн на системата не се разглежда при този тип тестване. Тестовете се основават на изискванията и функционалността.
Подробна информация за предимствата, недостатъците и видове тестване на черна кутия може да се види тук .
# 10) Тестване на гранична стойност
Този тип тестване проверява поведението на приложението на гранично ниво.
Изпитване на гранична стойност се извършва за проверка дали съществуват дефекти при гранични стойности. Тестването на гранична стойност се използва за тестване на различен диапазон от числа. Има горна и долна граница за всеки диапазон и се извършва тестване на тези гранични стойности.
Ако тестването изисква тестов диапазон от числа от 1 до 500, тогава се извършва тестване на гранична стойност за стойности на 0, 1, 2, 499, 500 и 501.
# 11) Тестване на клонове
Това е вид тестване на бяла кутия и се извършва по време на единично тестване. Branch Testing, самото име предполага, че кодът е тестван щателно чрез обхождане във всеки клон.
# 12) Сравнително тестване
Сравнението на силата и недостатъците на продукта с предишните му версии или други подобни продукти се нарича Тестване за сравнение.
# 13) Тестване на съвместимост
Това е тип тестване, при който той проверява как софтуерът се държи и работи в различна среда, уеб сървъри, хардуер и мрежова среда.
Тестване за съвместимост гарантира, че софтуерът може да работи на различна конфигурация, различна база данни, различни браузъри и техните версии. Тестването за съвместимост се извършва от екипа за тестване.
# 14) Тестване на компоненти
Извършва се предимно от разработчици след приключване на модулното тестване. Тестване на компоненти включва тестване на множество функционалности като един код и неговата цел е да идентифицира дали има някакъв дефект след свързване на тези множество функционалности помежду си.
# 15) Тестване от край до край
Подобно на системното тестване, Тестване от край до край включва тестване на пълна среда на приложение в ситуация, която имитира реална употреба, като взаимодействие с база данни, използване на мрежови комуникации или взаимодействие с друг хардуер, приложения или системи, ако е подходящо.
# 16) Разделяне на еквивалентност
Това е техника за тестване и вид тестване на черна кутия. По време на това Разделяне на еквивалентност , се избира набор от групата и се вземат няколко стойности или числа за тестване. Разбираемо е, че всички стойности от тази група генерират еднакви резултати.
Целта на това тестване е да се премахнат излишните тестови случаи в рамките на определена група, която генерира същия резултат, но не и дефект.
Да предположим, че приложението приема стойности между -10 до +10, така че с помощта на разделяне на еквивалентност стойностите, взети за тестване, са нула, една положителна стойност, една отрицателна стойност. Така че разделянето на еквивалентността за това тестване е -10 до -1, 0 и 1 до 10.
# 17) Примерно тестване
Това означава тестване в реално време. Примерно тестване включва сценарий в реално време, включва също сценарии, базирани на опита на тестерите.
# 18) Изследователско тестване
Изследователско тестване е неформално тестване, проведено от екипа за тестване. Целта на това тестване е да изследва приложението и да търси дефекти, които съществуват в приложението.
Понякога може да се случи така, че по време на това тестване откритият основен дефект може дори да причини системна повреда.
По време на изследователското тестване е препоръчително да следите какъв поток сте тествали и каква дейност сте извършвали преди началото на конкретния поток.
Техника на изследователско тестване се извършва без документация и тестови случаи.
# 20) Функционално тестване
Този тип тестване игнорира вътрешните части и се фокусира само върху изхода, за да провери дали е съгласно изискването или не. Това е тестване тип Black-box, насочено към функционалните изисквания на приложението. За подробна информация относно функционалното тестване щракнете тук .
# 21) Тестване на графичен потребителски интерфейс (GUI)
Целта на това тестване на GUI е да валидира GUI според бизнес изискванията. Очакваният графичен потребителски интерфейс на приложението е споменат в екрана за подробен проект и графичен графичен интерфейс.
GUI тестването включва размера на бутоните и полето за въвеждане, налични на екрана, подравняване на целия текст, таблици и съдържание в таблиците.
Той също така проверява менюто на приложението, след като избира различни менюта и елементи от менюто, потвърждава, че страницата не се колебае и подравняването остава същото, след като задържите мишката върху менюто или подменюто.
# 22) Тестване на горила
Gorilla Testing е вид тестване, провеждан от тестер, а понякога и от разработчика. При тестването на горила един модул или функционалността в модула се тестват задълбочено и сериозно. Целта на това тестване е да се провери надеждността на приложението.
# 23) Тестване на щастлив път
Целта на Happy Path Testing е да тества успешно приложение на положителен поток. Той не търси отрицателни или грешки. Фокусът е само върху валидните и положителни входове, чрез които приложението генерира очакваната продукция.
# 24) Постепенно тестване на интеграция
Постепенно тестване на интеграция е подход отдолу нагоре за тестване, т.е. непрекъснато тестване на приложение, когато се добавя нова функционалност. Функционалността на приложението и модулите трябва да са достатъчно независими, за да се тестват отделно. Това се прави от програмисти или от тестери.
# 25) Тестване на инсталиране / деинсталиране
Тестване на инсталация и деинсталация се извършва при пълни, частични или надграждащи процеси за инсталиране / деинсталиране на различни операционни системи под различна хардуерна или софтуерна среда.
# 26) Тестване на интеграцията
Тестването на всички интегрирани модули за проверка на комбинираната функционалност след интеграцията се нарича като Интеграционно тестване .
Модулите обикновено са кодови модули, отделни приложения, клиентски и сървърни приложения в мрежа и т.н. Този тип тестване е особено подходящ за клиент / сървър и разпределени системи.
# 27) Тестване на товара
Това е вид Нефункционално тестване и целта на тестването на натоварването е да се провери с колко натоварване или максимално натоварване може да се справи една система без влошаване на производителността.
Тестването на натоварване помага за намиране на максималния капацитет на системата при специфично натоварване и всички проблеми, които причиняват влошаване на производителността на софтуера. Тестването на натоварването се извършва с помощта на инструменти като JMeter , LoadRunner, WebLoad, Silk изпълнител и др.
# 28) Тестване на маймуни
Тестване на маймуни се извършва от тестер, приемайки, че ако маймуната използва приложението, тогава как случайно въвеждане, стойностите ще бъдат въведени от маймуната без никакви познания или разбиране за приложението.
Целта на Monkey Testing е да провери дали приложение или система се срива, като предоставя произволни входни стойности / данни. Тестването на маймуни се извършва на случаен принцип и не са скриптове за тестови случаи и не е необходимо
Тестването на маймуни се извършва на случаен принцип и няма скриптове за тестови случаи и не е необходимо да сте наясно с пълната функционалност на системата.
# 29) Тестване на мутация
Мутационно тестване е вид тестване на бяло поле, при което изходният код на една от програмата се променя и проверява дали съществуващите тестови случаи могат да идентифицират тези дефекти в системата.
Промяната в изходния код на програмата е много минимална, така че да не повлияе на цялото приложение, а само конкретната област, която има въздействие, и свързаните тестови случаи трябва да могат да идентифицират тези грешки в системата.
# 30) Отрицателно тестване
Тестери, които имат нагласата „отношение към разбиване“ и използват отрицателно тестване, те потвърждават това, ако системата или приложението се счупят. Техника за отрицателно тестване се извършва с използване на неправилни данни, невалидни данни или въвеждане. Той проверява дали системата извежда грешка с невалиден вход и се държи според очакванията.
# 31) Нефункционално тестване
Това е вид тестване, за което всяка организация има отделен екип, който обикновено се нарича екип за нефункционален тест (NFT) или екип за изпълнение.
Нефункционално тестване включва тестване на нефункционални изисквания като тестване на натоварване, стрес тестване, сигурност, обем, тестване за възстановяване и др. Целта на NFT тестването е да се гарантира дали времето за реакция на софтуера или приложението е достатъчно бързо според бизнес изискванията.
Не трябва да отнема много време за зареждане на която и да е страница или система и трябва да поддържа по време на пиково зареждане.
какво е модел водопад с пример
# 32) Тестване на производителността
Този термин често се използва взаимозаменяемо с тестове за „стрес“ и „натоварване“. Тестване на производителността се прави, за да се провери дали системата отговаря на изискванията за производителност. За това тестване се използват различни инструменти за производителност и натоварване.
# 33) Тестване за възстановяване
Това е вид тестване, което потвърждава колко добре приложението или системата се възстановява от сривове или бедствия.
Тестването за възстановяване определя дали системата е в състояние да продължи операцията след бедствие. Да приемем, че приложението получава данни през мрежовия кабел и изведнъж този мрежов кабел е бил изключен.
По-късно включете мрежовия кабел; тогава системата трябва да започне да получава данни от мястото, където е загубила връзката поради изключен мрежов кабел.
# 34) Тестване на регресия
Тестването на приложение като цяло за модификация във всеки модул или функционалност се нарича Регресионно тестване. Трудно е да се обхване цялата система в Тестване на регресия , толкова обикновено Инструменти за тестване на автоматизация се използват за тези видове тестване.
# 35) Тестване на базата на риска (RBT)
В Тестване на базата на риска , функционалностите или изискванията се тестват въз основа на техния приоритет. Тестването въз основа на риска включва тестване на изключително критична функционалност, която има най-голямо въздействие върху бизнеса и при която вероятността за отказ е много голяма.
Решението за приоритет се основава на бизнес потребността, така че след като приоритетът е зададен за всички функционалности, първо се изпълняват функционалности с висок приоритет или тестови случаи, последвани от функционалности със среден и след това с нисък приоритет.
Функционалността с нисък приоритет може да бъде тествана или не тествана въз основа на наличното време.
Тестването на базата на риска се извършва, ако няма достатъчно време за тестване на целия софтуер и софтуерът трябва да бъде внедрен навреме без никакво забавяне. Този подход се следва само от обсъждането и одобрението на клиента и висшето ръководство на организацията.
# 36) Тестване на здравия разум
Проверка на здравия разум се прави, за да се определи дали дадена нова версия на софтуера се представя достатъчно добре, за да я приеме за сериозно тестване или не. Ако дадено приложение се срива за първоначална употреба, тогава системата не е достатъчно стабилна за по-нататъшно тестване. Следователно се създава компилация или приложение, което да го поправи.
# 37) Тестване на сигурността
Това е вид тестване, извършено от специален екип от тестери. В системата може да се проникне по всеки хакерски начин.
Тестване на сигурността се прави, за да се провери как софтуерът или приложението или уебсайтът са защитени от вътрешни и външни заплахи. Това тестване включва доколко софтуерът е защитен от злонамерената програма, вируси и доколко сигурни и силни са процесите на упълномощаване и удостоверяване.
Той също така проверява как софтуерът се държи за всяка хакерска атака и злонамерени програми и как софтуерът се поддържа за защита на данните след такава хакерска атака.
# 38) Тестване на дим
Всеки път, когато се създава нова компилация от екипа на разработчиците, екипът за тестване на софтуера валидира компилацията и гарантира, че не съществува сериозен проблем.
Екипът за тестване гарантира, че компилацията е стабилна и се извършва допълнително подробно ниво на тестване. Тестване на дим проверява дали в компилацията не съществува дефект за показване на запушалка, което ще попречи на екипа за тестване да тества приложението в детайли.
Ако тестерите установят, че основната критична функционалност е разбита на самия начален етап, тогава екипът за тестване може да отхвърли компилацията и да информира за това екипа за разработка. Тестването на дим се извършва до подробно ниво на всяко функционално или регресивно тестване.
# 39) Статично тестване
Статичното тестване е вид тестване, което се изпълнява без никакъв код. Изпълнението се извършва върху документацията по време на фазата на тестване.
Включва прегледи, инструкции и проверка на резултатите от проекта. Статичното тестване не изпълнява кода вместо синтаксиса на кода, проверяват се конвенциите за именуване.
Статично тестване е приложим и за тестови случаи, план за изпитване, проектния документ. Необходимо е да се извърши статично тестване от екипа за тестване, тъй като дефектите, установени по време на този тип тестване, са рентабилни от гледна точка на проекта.
# 40) Тестване на стрес
Това тестване се извършва, когато една система е подложена на напрежение извън нейните спецификации, за да се провери как и кога се проваля. Това се извършва при голямо натоварване, като поставяне на голям брой отвъд капацитета за съхранение, сложни заявки към база данни, непрекъснато въвеждане в системата или натоварване на база данни.
# 41) Тестване на системата
Под Техника за тестване на системата , цялата система е тествана според изискванията. Това е изпитване тип „черна кутия“, което се основава на общите спецификации на изискванията и обхваща всички комбинирани части на системата.
# 42) Тестване на единица
Тестването на отделен софтуерен компонент или модул се нарича Единично тестване . Това обикновено се прави от програмиста, а не от тестери, тъй като изисква подробни познания за вътрешния дизайн на програмата и кода. Може също да се наложи разработване на модули за тестови драйвери или тестови колани.
# 43) Тестване на използваемостта
Под Тестване на използваемостта , Проверката за удобство на потребителя е направена. Потокът на приложението се тества, за да се знае дали нов потребител може лесно да разбере приложението или не. Правилна помощ се документира, ако потребителят заседне във всеки момент. По принцип при това тестване се проверява системната навигация.
# 44) Тестване на уязвимост
Тестването, което включва идентифициране на слабости в софтуера, хардуера и мрежата, е известно като Тестване на уязвимост. Злонамерени програми, хакерът може да поеме контрола върху системата, ако е уязвима към такъв вид атаки, вируси и червеи.
Затова е необходимо да се провери дали тези системи се подлагат на тестване за уязвимост преди производството. Той може да идентифицира критични дефекти, недостатъци в сигурността.
# 45) Тестване на обема
Тестване на обема е вид Нефункционално тестване, извършено от екипа за тестване на производителността.
Софтуерът или приложението претърпява огромно количество данни и Volume Testing проверява поведението на системата и времето за реакция на приложението, когато системата се натъкне на толкова голям обем данни. Този голям обем данни може да повлияе на производителността на системата и скоростта на времето за обработка.
# 46) Тестване на бяла кутия
Тестване на бяла кутия се основава на знанията за вътрешната логика на кода на приложението.
Известно е също като тестване на стъклени кутии. Вътрешната работа на софтуер и код трябва да бъде известна за извършване на този тип тестване. При тези тестове се основава на покритието на кодови изявления, клонове, пътища, условия и т.н.
Заключение
Гореспоменатите типове софтуерни тестове са само част от тестването. Все още обаче има списък с повече от 100+ вида тестване, но всички видове тестване не се използват във всички видове проекти. Така че разгледах някои често срещани видове тестване на софтуер, които се използват най-вече в жизнения цикъл на тестването.
Също така има алтернативни дефиниции или процеси, използвани в различни организации, но основната концепция е еднаква навсякъде. Тези видове тестове, процеси и методи за тяхното изпълнение продължават да се променят, когато и когато се променят проектът, изискванията и обхватът.
Препоръчително четене
- Най-добри инструменти за тестване на софтуер 2021 г. [Инструменти за автоматизация на QA теста]
- Алфа тестване и бета тестване (Пълно ръководство)
- Тестване на софтуер QA Assistant Job
- Курс за тестване на софтуер: Към кой институт за тестване на софтуер трябва да се присъединя?
- Изборът на софтуерно тестване като кариера
- Тестване на софтуер Техническо съдържание Writer Работа на свободна практика
- Видове рискове при софтуерни проекти
- Най-добрите услуги за QA софтуер за тестване от SoftwareTestingHelp