Софтуерното тестване или софтуерното тестване е известно още като тестване на приложения.
Софтуерното тестване е преди всичко голям процес, съставен от няколко взаимосвързани процеса. Основната цел на софтуерното тестване е да се измери целостта на софтуера заедно с неговата пълнота по отношение на неговите основни изисквания. Софтуерното тестване включва изследване и тестване на софтуер чрез различни процеси на тестване. Целите на тези процеси могат да включват:
Проверка на пълнотата на софтуера спрямо функционални/бизнес изисквания
Идентифициране на грешки/технически грешки и гарантиране, че софтуерът е без грешки
Оценка на използваемостта, производителността, сигурността, локализацията, съвместимостта и инсталацията
Тестваният софтуер трябва да премине всички тестове, за да бъде пълен или годен за употреба. Някои от различните типове методи за тестване на софтуер включват тестване с бяла кутия, тестване с черна кутия и тестване със сива кутия. Освен това софтуерът може да бъде тестван като цяло, в компоненти/единици или в рамките на жива система.
Black Box Testing е техника за тестване на софтуер, която се фокусира върху анализирането на функционалността на софтуера по отношение на вътрешната работа на системата. Black Box Testing е разработен като метод за анализиране на изискванията на клиентите, спецификациите и стратегиите за проектиране на високо ниво.
Тестерът за тестване на черна кутия избира набор от валидни и невалидни условия за изпълнение и въвеждане на код и проверява за валидни изходни отговори.
Тестването на черна кутия е известно още като функционално тестване или тестване в затворена кутия.
Търсачката е прост пример за приложение, подложено на тестване на черна кутия. Потребител на търсачка въвежда текст в лентата за търсене на уеб браузър. След това търсачката намира и извлича резултати от потребителски данни (изход).
Предимствата на Black Box Testing включват:
Тестването на черна кутия също има някои недостатъци, както следва:
По време на тестване с бяла кутия кодът се изпълнява с предварително избрани входни стойности, за да се валидират предварително избраните изходни стойности. Тестването на бяла кутия често включва писане на код на мъниче (част от код, използвана за замяна на специфична функция. Мъниче може да симулира поведението на съществуващ код, като например процедура на отдалечена машина.), а също и драйвери.
Предимствата на тестването с бяла кутия включват:
Недостатъците включват:
Unit Test е компонент от жизнения цикъл на разработката на софтуер (SDLC), в който цялостна тестова процедура се прилага индивидуално към най-малките части на софтуерна програма за желаната пригодност или поведение.
Единичният тест е процедура за измерване и оценка на качеството, прилагана в повечето дейности за разработка на корпоративен софтуер. Като цяло единичният тест оценява доколко софтуерният код съответства на общата цел на софтуера/приложението/програмата и как неговата пригодност засяга други по-малки единици. Единичните тестове могат да се извършват ръчно – от един или повече разработчици – или чрез автоматизирано софтуерно решение.
По време на тестването всяка единица е изолирана от основната програма или интерфейс. Единичните тестове обикновено се извършват след разработката и преди внедряването, като по този начин се улеснява интеграцията и ранното откриване на проблеми. Размерът или обхватът на единица варира в зависимост от езика за програмиране, софтуерното приложение и целите на теста.
Функционалното тестване е процес на тестване, използван в разработката на софтуер, при който софтуерът се тества, за да се гарантира, че отговаря на всички изисквания. Това е начин за проверка на софтуера, за да се гарантира, че има всички необходими функции, посочени в неговите функционални изисквания.
Функционалното тестване се използва главно за проверка дали част от софтуера осигурява същия резултат, както се изисква от крайния потребител или бизнес. Обикновено функционалното тестване включва оценка и сравняване на всяка софтуерна функция спрямо бизнес изискванията. Софтуерът се тества, като му се дават някои свързани входни данни, така че изходът да може да бъде оценен, за да се види как съответства, се отнася до или се различава от неговите основни изисквания. Освен това функционалните тестове също така проверяват използваемостта на софтуера, като например се уверяват, че навигационните функции работят според изискванията.
Регресионното тестване е вид софтуерно тестване, използвано за определяне дали новите проблеми са резултат от софтуерни промени.
Преди да се приложи промяна, програмата се тества. След като бъде приложена промяна, програмата се тества отново в избрани области, за да се установи дали промяната е създала нови грешки или проблеми или дали действителната промяна е изпълнила предназначението си.
Регресионното тестване е от съществено значение за големи софтуерни приложения, тъй като често е трудно да се разбере дали промяната на една част от проблем е създала нов проблем за различна част от приложението. Например, промяна във формуляра за заявление за банков кредит може да доведе до неуспех на месечния отчет за транзакцията. В повечето случаи проблемите може да изглеждат несвързани, но всъщност могат да бъдат причина за разочарование сред разработчиците на приложения.
Други ситуации, които изискват регресионно тестване, включват откриване дали определени промени постигат поставена цел или тестване за нови опасности, свързани с проблеми, които се появяват отново след период без проблеми.
Съвременното регресионно тестване се извършва предимно чрез специализирани търговски инструменти за тестване, които правят моментни снимки на съществуващ софтуер, които след това се сравняват след прилагане на конкретна промяна. За човешките тестери е почти невъзможно да изпълняват същите задачи толкова ефективно, колкото автоматизираните софтуерни тестери. Това е особено вярно за големи и сложни софтуерни приложения в големи ИТ среди като банки, болници, производствени компании и големи търговци на дребно.
Стрес тестването се отнася до тестване на софтуер или хардуер, за да се определи дали неговата производителност е задоволителна при екстремни и неблагоприятни условия, които могат да възникнат в резултат на тежък мрежов трафик, натоварване на процеси, намаляване на честотата, овърклокване и пикови изисквания за използване на ресурсите.
Повечето системи са разработени при нормални работни условия. Ето защо, дори ако ограничението е надвишено, грешките са пренебрежимо малки, ако системата е стрес-тествана по време на разработката.
Стрес тестовете се използват в следните контексти:
Автоматизираното тестване (автоматизиране на софтуерното тестване) е подход към тестването на код, който използва специални софтуерни инструменти, които изпълняват тестове автоматично и след това сравняват действителните резултати от теста с очакваните резултати.
Автоматизираното тестване играе важна роля в непрекъснатата доставка (CD), непрекъснатата интеграция (CI), DevOps и DevSecOps. Основните предимства на автоматизираното тестване включват:
При разработката на софтуер е особено полезно да се извършват автоматизирани тестове по време на процеса на изграждане, за да се гарантира, че дадено приложение няма грешки в изграждането и изпълнява предназначената си функция.
Отделянето на време за автоматизиране на софтуерното тестване в крайна сметка ще спести време на разработчиците, като намали риска промяната на кода да наруши съществуващата функционалност.
Тестването е много важен етап от процеса на разработка. Гарантира, че всички бъгове са коригирани и че продуктът, софтуерът или хардуерът работи по предназначение или възможно най-близо до целевата си производителност. Автоматизираното тестване, а не ръчното тестване, е от съществено значение за последователното доставяне на икономически ефективен софтуер, който отговаря на нуждите на потребителите своевременно с минимални дефекти.
Ръчното тестване все още се извършва в различни моменти по време на разработката, но това се прави най-вече от разработчиците или самите хардуерни инженери, за да видят бързо дали промените, които са направили, са имали желания ефект.
Ercole Palmeri
Развитието на фини двигателни умения чрез оцветяване подготвя децата за по-сложни умения като писане. Оцветявам…
Военноморският сектор е истинска световна икономическа сила, която се е насочила към пазар от 150 милиарда...
Миналия понеделник Financial Times обяви сделка с OpenAI. FT лицензира своята журналистика от световна класа...
Милиони хора плащат за стрийминг услуги, като плащат месечни абонаментни такси. Разпространено е мнението, че вие…