Какво е отрицателен тест? Тестови случаи с пример

Отрицателен тест

Отрицателен тест е тип софтуерно тестване, използвано за проверка на софтуерното приложение за неочаквани входни данни и условия. Неочакваните данни или условия могат да бъдат всякакви - от грешен тип данни до силна хакерска атака. Целта на отрицателното тестване е да се предотврати срив на софтуерното приложение поради отрицателни входове и да се подобри качеството и стабилността.

Само като направим положителен тест, можем само да се уверим, че системата ни работи при нормални условия. Трябва да сме сигурни, че нашата система може да се справи с неочаквани условия, за да гарантираме 100% безотказна система.

Пример за отрицателен тест

Помислете за случая с асансьор, който обикновено се счита за пример за отрицателен тест.

Всички знаем функционалността на асансьора. Те ще се считат за изисквания на асансьор, като натискането на номера на етажа кара асансьора да отиде до този конкретен етаж.

Вратата се отваря автоматично, щом асансьорът достигне определения етаж и т.н.

Сега нека разгледаме някои негативни сценарии за лифта. Някои от тях са,

Отрицателен тест Положителен тест
Какво се случва, ако броят на лицата (теглото) надвиши определения лимит? Предполага се, че само определен брой хора ще влязат в асансьора
Какво се случва, ако някой пуши или предизвика пожар в асансьора? В асансьора няма да има дим или огън
Какво се случва, ако има прекъсване на захранването по време на работа? Няма да има прекъсване на захранването по време на работа на асансьора

Всички тези случаи ще бъдат подложени на отрицателни тестове. Важността на това е, че не можем да сме сигурни, че всичко гореспоменато няма да се случи, така че трябва да ги ограничим.

Да разгледаме случая, при който състоянието на наднормено тегло е проверено и при внедряване асансьорът работи необичайно, когато има състояние на наднормено тегло. Това ще окаже потенциално влияние върху надеждността на системата и дори може да причини опасност за живота. Това обяснява какво е отрицателен тест и неговото значение.

Същият случай се прилага и в софтуера. За отрицателен тест се отклонихме от нормалната оперативна процедура. Нека да разгледаме някои примери.

Помислете например за регистрационен формуляр.

Отрицателен тест Положителен тест
Опитайте да въведете невалиден имейл адрес в полето за имейл В полето за имейл ще се въвеждат само валидни имейл адреси
Опитайте се да въведете невалиден телефонен номер в полето за телефонен номер (знаци) Единственият номер ще бъде въведен в полето за номер
Качете изображение с размер извън определената граница Ще бъдат качени само изображения с размер под определената граница
Качете невалидни файлове като XML, SQL и др. файлове в полето за качване на изображение Качвайте само валидни формати на изображения като jpg.png и др.

Както казахме по-рано, трябва да сме сигурни, че във всички тези негативни случаи нашата система ще работи правилно. Помислете за случая, ако някой се опита да въведе знак в полето за число и системата не може да обработи неочакваните данни, тъй като очаква число, и накрая системата се срива. Или какво ще стане, ако някой се опита да направи SQL инжекция и да изтриете всички наши данни от базата данни. Не можем да понесем такива потенциални загуби. Така че отрицателният тест е важен.

Защо се прави отрицателен тест?

Тъй като тестването отнема време и разходи, решението „какво“, „как“ и „колко“ да се тества е наистина важно. Трябва да изберем мъдро дали трябва да направим отрицателни тестове в нашата система или не. Така че нека да разгледаме значението на отрицателните тестове.

Организационна перспектива

Отговорност на организацията е да предостави продукт с добро качество на своя клиент. За да се постигне това, човек трябва да направи отрицателен тест.

Като част от потвърждението срещу повреда, организацията трябва да направи отрицателно тестване.

Може би не можем да изградим 100% безгрешна система, но трябва да сме сигурни, че сме направили всичко, за да предотвратим повреда, за да постигнем това, трябва да направим отрицателни тестове.

Въздействието е фактор, който трябва да вземем предвид. Помислете, че сме направили положителен тест на сайт за електронна търговия и се уверете, че всичко е наред. Но какво ще стане, ако има вратичка в нашата система, че някой може да направи SQL инжекция и да изтрие всички наши данни. Това ще бъде голям пробив в сигурността. За да избегнете този тип случаи, трябва да направите и отрицателен тест.

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

Друго нещо, което трябва да внимаваме е, че има много черни хакери, които търсят възможност да унищожат системата. Хакването е важен случай, обхванат от отрицателни тестове

Клиентска гледна точка

Клиентите винаги очакват продукти с нулева уязвимост, за да се гарантира, че отрицателното тестване е задължително

Ако това е чувствителен продукт като електронна търговия, онлайн акции и т.н., тогава сигурността и отрицателното тестване са задължителни.

Единственото притеснение на клиента по отношение на отрицателния тест е цената. Но след като въздействието бъде анализирано, зависи от клиента да реши дали да направи или не отрицателен тест.

Как да направите отрицателен тест

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

Докато създаваме отрицателни тестови случаи, трябва да дадем приоритет на входовете, в противен случай ще има много възможни случаи. Например за поле за изображение, където трябва да влизат само файлове „.png“, можем да имаме много опции за качване като „jpeg“, „xml“, „xls“ и т.н. Така че трябва да дадем приоритет на опциите като XML и SQL може да има по-голямо въздействие от това на jpeg и xls, така че първо трябва да се погрижим за случаите на SQL и XML. По този начин трябва да дадем приоритет на случаите преди изпълнението, за да спестим време и разходи за тестване.

Плюсове и минуси на отрицателния тест

Подобно на всички други техники за тестване, отрицателното тестване има плюсове и минуси, основно въз основа на „къде“, „кога“ и „как“ да се използва. Нека да разгледаме това.

Предимства на отрицателния тест

  • Както всички знаем, отрицателният тест е много важен за гарантиране на качеството на продукта. Продуктът с добро качество е продукт с нулева уязвимост, за да се гарантира, че отрицателното тестване е много важно.
  • Извършването на отрицателни тестове гарантира, че са обхванати всички възможни случаи. Умишлено или неволно има шанс да се появят отрицателни тестови случаи. Така че, за да сме сигурни, че всички случаи са обхванати, трябва да направим отрицателен тест заедно с положителен тест.
  • Отрицателното тестване ще вдъхне повече доверие на клиента преди пускане на живо.

Недостатъци на отрицателния тест

  • В софтуерното инженерство отрицателното тестване в някои случаи се превръща в загуба на време и енергия. В много случаи няма нужда от прекомерни отрицателни тестове. Например, ако дадено приложение е създадено за използване от един човек, тогава не е нужно да разглеждаме случая, че 100 потребители използват системата наведнъж. Така че определянето на условията при отрицателни тестове е много важно. Ще има моменти, в които не е необходимо да правим отрицателни тестове на определена система.
  • Изисквайте квалифицирани и опитни хора за създаване на отрицателни тестови случаи.
  • За клиента отрицателното тестване е друго нещо, което причинява ненужно забавяне на пускането и суматора на разходите.
  • Шанс екипът да изразходва повече време и енергия за отрицателни тестове. Има вероятност тестерите да изразходват много време и енергия в отрицателни тестове, което води до по-ниска концентрация при положителни тестове.