Динамично тестване
Динамично тестване е метод за тестване на софтуер, използван за тестване на динамичното поведение на софтуерния код. Основната цел на динамичното тестване е да се тества поведението на софтуера с динамични променливи или променливи, които не са постоянни и намиране на слаби области в среда на изпълнение на софтуера. Кодът трябва да бъде изпълнен, за да се тества динамичното поведение.
Всички знаем, че тестването е проверка и валидиране и са необходими 2 Vs, за да завърши тестването. От 2 Vs, проверката се нарича статично тестване, а другата „V“, валидирането е известно като динамично тестване.
Пример за динамично тестване
Нека разберем как да направим динамично тестване с пример:
Да предположим, че тестваме Страница за вход, където имаме две полета, които казват „Потребителско име“ и „Парола“ и потребителското име е ограничено до буквено-цифрови.
Когато потребителят въведе потребителско име като "Guru99", системата приема същото. Където когато потребителят влиза като Guru99 @ 123, тогава приложението извежда съобщение за грешка. Този резултат показва, че кодът действа динамично въз основа на потребителския вход.
Динамичното тестване е, когато работите с действителната система, като предоставяте вход и сравнявате действителното поведение на приложението с очакваното поведение. С други думи, работа със системата с цел намиране на грешки.
Така че въз основа на горните твърдения можем да кажем или да заключим, че динамичното тестване е процес на валидиране на софтуерни приложения като краен потребител в различни среди за изграждане на правилния софтуер.
Какво прави динамичното тестване?
Основната цел на динамичните тестове е да се гарантира, че софтуерът работи правилно по време и след инсталирането на софтуера, осигурявайки стабилно приложение без големи недостатъци (това твърдение е направено, тъй като нито един софтуер не е без грешки, тестването може само да покаже наличие на дефекти и не отсъствие)
Основната цел на динамичния тест е да осигури последователност на софтуера; нека обсъдим това с пример.
В приложение за банково дело намираме различни екрани като раздел Моите акаунти, Превод на средства, Плащане на фактури и др ... Всички тези екрани съдържат поле за сума, което приема някои символи.
Да приемем, че полето Моите акаунти показва сума като 25 000, а Прехвърлянето на средства - 25 000 долара, а екранът за плащане на сметката - 25 000 долара, въпреки че сумата е еднаква, начинът на показване на сумата не е същият, поради което софтуерът противоречи.
Последователността не се ограничава само до функционалността, тя се отнася и до различни стандарти като производителност, използваемост, съвместимост и т.н., поради което става много важно да се извърши динамично тестване.
Видове динамично тестване
Динамичното тестване е класифицирано в две категории
- Тестване на бяла кутия
- Тестване на черна кутия
По-долу изобразителното представяне ни дава представа за видовете динамично тестване, нива на тестване и др.
Нека обсъдим накратко всеки вид тестване и предназначението му
White Box Testing - White Box Testing е софтуерен метод за тестване, при който вътрешната структура / дизайн е известна на тестващия. Основната цел на тестването на White Box е да провери как се представя системата въз основа на кода. Извършва се главно от разработчиците или тестери на White Box, които имат познания по програмирането.
Тестване на черна кутия - Тестването на черна кутия е метод за тестване, при който вътрешната структура / код / дизайн НЕ е известен на тестващия. Основната цел на това тестване е да се провери функционалността на тестваната система и този тип тестване изисква изпълнението на пълния набор от тестове и се извършва главно от тестерите и няма нужда от познания по програмиране.
The Black Box тестване е отново раздели на два вида.
Те са
- Функционално тестване
- Нефункционално тестване
Функционално тестване:
Функционалното тестване се извършва, за да се провери дали всички разработени функции са в съответствие с функционалните спецификации и се извършва чрез изпълнение на функционалните тестови случаи, написани от екипа за QA, във фаза на функционално тестване, системата се тества чрез предоставяне на вход, проверка на изхода сравняване на действителните резултати с очакваните резултати.
Има различни нива на функционално тестване, от които най-важните са
- Unit Testing - Обикновено Unit е малко парче код, което може да се тества, Unit Testing се извършва на отделна единица софтуер и се извършва от разработчици
- Интеграционно тестване - Интеграционното тестване е тестване, което се извършва след тестване на модули и се извършва чрез комбиниране на всички отделни единици, които могат да бъдат тествани и се извършва или от разработчици, или от тестери
- Системно тестване - Тестване на системата се извършва, за да се гарантира дали системата работи според изискванията и обикновено се извършва, когато цялата система е готова, тя се извършва от тестери, когато компилацията или кодът се пускат на екипа за QA
- Изпитване за приемане - Изпитването за приемане се извършва, за да се провери дали системата отговаря на бизнес изискванията и е готова за употреба или готова за внедряване и обикновено се извършва от крайните потребители.
Нефункционално тестване : Нефункционалното тестване е техника за тестване, която не се фокусира върху функционални аспекти и се концентрира главно върху нефункционалните атрибути на системата като изтичане на памет, производителност или стабилност на системата. Нефункционалното тестване се извършва на всички нива на теста.
Има много техники за нефункционално тестване, от които най-важните са
- Тестване на производителността - Тестването на производителността се извършва, за да се провери дали времето за реакция на системата е нормално според изискванията при желаното натоварване на мрежата.
- Тестване за възстановяване - Тестването за възстановяване е метод за проверка на това колко добре системата е в състояние да се възстанови от сривове и откази на хардуера.
- Тестване на съвместимост - Тестването на съвместимост се извършва, за да се провери как системата се държи в различни среди.
- Тестване на сигурността - Тестването на сигурността се извършва, за да се провери надеждността на приложението, т.е. да се гарантира, че само оторизиращите потребители / роли имат достъп до системата
- Тестване на използваемостта - Тестването на използваемост е метод за проверка на използваемостта на системата от крайните потребители, за да се провери доколко потребителите се чувстват комфортно със системата.
Техники за динамично тестване
Техниките за динамично тестване в STLC се състоят от различни задачи като анализ на изискванията за тестовете, планиране на тестове, проектиране и внедряване на тестови случаи, настройка на тестова среда, изпълнение на тестови случаи, докладване на грешки и накрая затваряне на теста. Всички задачи в техниките за динамично тестване зависят от завършването на предишната задача в процеса на тестване.
В STLC можем да кажем, че действителният процес на динамично тестване започва от тестовия дизайн, нека обсъдим подробно всяка дейност.
Преди да влезете в процеса, нека обсъдим стратегията, която трябва да се спазва за динамично тестване.
Тестовата стратегия трябва да се фокусира главно върху наличните ресурси и времевата рамка. Въз основа на тези фактори трябва да бъдат документирани целта на тестването, обхватът на тестване, фазите или циклите на тестване, видът на средата, предположенията или предизвикателствата, които могат да бъдат изправени, рисковете и т.н.
След като стратегията бъде дефинирана и приета от ръководството, започва действителното проектиране на тестовия случай на процеса
Какво е тестово проектиране и внедряване
В тази фаза ние идентифицираме,
- Характеристики за тестване
- Изведете условията на теста
- Извлечете артикулите за покритие
- Извлечете тестовите случаи
Тествайте настройката на средата
Трябва да гарантираме, че тестовата среда винаги трябва да бъде подобна на производствената среда, на тази фаза трябва да инсталираме компилацията и да управляваме тестовите машини.
Изпълнение на теста
По време на тази фаза тестовите случаи всъщност се изпълняват.
Докладът за грешка е уловен
Въз основа на изпълнението, ако очакваните и действителните резултати не са еднакви, тестовият случай трябва да бъде маркиран като неуспешен и да се регистрира грешка.
Предимства на динамичното тестване
- Динамичното тестване може да разкрие откритите дефекти, които се считат за твърде трудни или сложни и които не могат да бъдат покрити чрез статичен анализ
- При динамично тестване ние изпълняваме софтуера от край до край, осигурявайки софтуер без грешки, което от своя страна повишава качеството на продукта и проекта.
- Динамичното тестване се превръща в основен инструмент за откриване на всякакви заплахи за сигурността
Недостатъци на динамичното тестване
- Динамичното тестване отнема време, защото изпълнява приложението / софтуера или кода, които изискват огромно количество ресурси
- Динамичното тестване увеличава разходите за проект / продукт, тъй като той не стартира рано в жизнения цикъл на софтуера и следователно всички проблеми, отстранени в по-късни етапи, могат да доведат до увеличаване на разходите.
Заключение:
В софтуерното инженерство проверката и валидирането са две мерки, използвани за проверка дали софтуерният продукт отговаря на спецификациите на изискванията. Статичното тестване включва проверка, докато динамичното тестване включва валидиране. Заедно те помагат да се осигури рентабилен качествен софтуер.
Тази статия е предоставена от Radhika Renamala