Отрицателно тестване
Отрицателно тестване е тип софтуерно тестване, използван за проверка на софтуерното приложение за неочаквани входни данни и условия. Неочаквани данни или условия могат да бъдат от грешен тип данни до силна хакерска атака. Целта на отрицателното тестване е да предотврати срив на софтуерното приложение поради отрицателни входове и да подобри качеството и стабилността.
Правейки само положителни тестове, можем само да се уверим, че системата ни работи в нормални условия. Трябва да се уверим, че нашата система може да се справи с неочаквани условия, за да осигури 100% безпроблемна система.
В този урок ще научите -
- Какво е отрицателно тестване?
- Пример за отрицателно тестване
- Защо да правим отрицателно тестване?
- Как да направите отрицателно тестване
- Предимства на отрицателното тестване
- Недостатъци на отрицателното тестване
Пример за отрицателно тестване
Да разгледаме случая с асансьор, който е често разглеждан пример за отрицателно тестване.
Всички знаем функционалността на асансьора. Те ще се считат за изисквания на асансьор като натискане на номера на пода, които карат асансьора да отиде до този конкретен етаж.
Вратата се отваря автоматично, след като асансьорът достигне посочения етаж и т.н.
Сега нека разгледаме някои негативни сценарии за повдигане. Някои от тях са,
Отрицателно тестване | Положително тестване |
---|---|
|
|
|
|
|
|
Всички тези случаи ще бъдат подложени на отрицателно тестване. Важността на това е, че не можем да се уверим, че всички гореспоменати няма да се случат, затова се нуждаем от тях.
Помислете за случая, че състоянието на наднорменото тегло е проверено и при изпълнението асансьорът работи ненормално, когато има състояние с наднормено тегло. Това ще окаже потенциално въздействие върху надеждността на системата и дори може да причини опасност за живота. Това обяснява какво е отрицателно тестване и неговото значение.
Същият случай се прилага и в софтуера. За отрицателно тестване се отклонихме от нормалната оперативна процедура. Нека да разгледаме някои примери.
Помислете за регистрационен формуляр например.
Отрицателно тестване | Положително тестване |
---|---|
|
|
|
|
|
|
|
|
Както казахме по-рано, трябва да се уверим, че във всички тези негативни случаи системата ни ще работи правилно. Помислете за случая, ако някой се опита да въведе знак в полето с число и системата не може да обработи неочакваните данни, тъй като очаква число, и накрая системата се срива. Или какво, ако някой се опита да направи SQL инжекция и да изтрие всички наши данни от базата данни. Не можем да понесем такива потенциални загуби. Така че отрицателното тестване е важно.
Защо да правим отрицателно тестване?
Тъй като тестването е отнемаща време и разходи задача, решаването „какво“, „как“ и „колко“ да се тества е наистина важно. Трябва да изберем разумно дали трябва да правим отрицателни тестове в нашата система или не. Така че нека да разгледаме важността на отрицателното тестване.
Организационна перспектива
Отговорността на организацията е да предостави продукт с добро качество на своя клиент. За да се постигне това, трябва да се направи отрицателно тестване.
Като част от потвърждението срещу неуспех, организацията трябва да направи отрицателно тестване.
Може би не можем да изградим 100% система без грешки, но трябва да сме сигурни, че сме направили всичко, за да предотвратим повреда, за да постигнем, че трябва да направим отрицателно тестване.
Въздействието е един фактор, който трябва да вземем предвид. Помислете, че сме направили положително тестване на сайт за електронна търговия и се уверете, че всичко е наред. Но какво, ако има вратичка в нашата система, че някой може да направи SQL инжекция и да изтрие всички наши данни. Това ще бъде голямо нарушение на сигурността. За да се избегнат подобни случаи, трябва да се направи и отрицателно тестване.
За приложения, отворени за обществено ползване, главно уебсайтове, винаги трябва да имаме предвид, че нямаме голям контрол върху процедурата за използване на приложението, така че трябва да направим отрицателно тестване, за да сме сигурни, че всички такива случаи са обхванати и съдържани.
Друго нещо, за което трябва да се погрижим, е, че има много черни хакери, които търсят възможност да унищожат системата. Хакерството е важен случай, обхванат от отрицателното тестване
Перспектива на клиента
Клиентите винаги очакват продукти с нулева уязвимост, за да гарантират, че отрицателното тестване е задължително
Ако това е чувствителен продукт като електронна търговия, онлайн акции и т.н., тогава сигурността и отрицателното тестване са задължителни.
Единственото притеснение за клиента по отношение на отрицателното тестване е цената. Но след като се анализира въздействието, клиентът решава дали да направи отрицателно тестване или не.
Как да направите отрицателно тестване
За да направим отрицателно тестване, трябва да разгледаме всички възможни случаи. Това е, ако е възможно, трябва да го разгледаме в тестовия случай, независимо дали това не е правилният начин да го използваме. Например, ако видим имейл поле, помислете за всички възможни входове, можем да поставим там различен от правилния имейл формат. По същия начин, когато виждаме опция за качване на изображения, трябва да я тестваме с всички възможни файлове.
Докато създаваме отрицателни тестови случаи, трябва да дадем приоритет на входовете в противен случай, ще има много случаи. Например, за поле с изображение, в което трябва да влизат само файлове „.png.webp“, можем да имаме много опции за качване, като „jpeg.webp“, „xml“, „xls“ и др ... Така че трябва да дадем приоритет на опциите като XML и SQL могат да имат по-голямо въздействие от това на jpeg.webp и xls, така че първо трябва да се погрижим за случаите на SQL и XML. По този начин трябва да приоритизираме случаите преди изпълнението, за да спестим време и разходи за тестване.
Плюсове и минуси на отрицателното тестване
Подобно на всички други техники за тестване, има и плюсове и минуси за отрицателното тестване главно въз основа на „къде“, „кога“ и „как“ да се използва. Нека да разгледаме това.
Предимства на отрицателното тестване
- Както всички знаем, отрицателното тестване е много важно, за да се гарантира качеството на продукта. Продуктът с добро качество е продукт с нулева уязвимост, за да се гарантира, че отрицателното тестване е много важно.
- Извършването на отрицателно тестване гарантира, че са обхванати всички възможни случаи. Умишлено или неволно има вероятност да възникнат отрицателни тестови случаи. Така че, за да сме сигурни, че всички случаи са обхванати, трябва да направим отрицателно тестване заедно с положително тестване.
- Отрицателното тестване ще направи повече увереност на клиента преди пускането му на живо.
Недостатъци на отрицателното тестване
- В софтуерното инженерство отрицателното тестване в някои случаи се превръща в загуба на време и енергия. В много случаи няма нужда от прекомерно отрицателно тестване. Например, ако приложението е създадено за еднолична употреба, не е необходимо да разглеждаме случая, че 100 потребители използват системата наведнъж. Така че решаването на условията при отрицателни тестови случаи е много важно. Ще има моменти, в които не трябва да правим отрицателни тестове на определена система.
- Изисквайте опитни и опитни хора да създават отрицателни тестови случаи.
- За клиента отрицателното тестване е друго нещо, което причинява ненужно забавяне на освобождаването и добавяне на разходи.
- Шанс екипът да отдели повече време и енергия за отрицателно тестване. Има вероятност тестерите да отделят много време и енергия за отрицателно тестване, което води до по-ниска концентрация при положително тестване.