Що таке негативний тест? Тестові випадки з прикладом

Негативне тестування

Негативне тестування це тип тестування програмного забезпечення, який використовується для перевірки програми на наявність неочікуваних вхідних даних і умов. Неочікувані дані або умови можуть бути будь-якими: від неправильного типу даних до сильної хакерської атаки. Метою негативного тестування є запобігання збою програмного забезпечення через негативні вхідні дані та покращення якості та стабільності.

Провівши лише позитивний результат тестування, ми можемо лише переконатися, що наша система працює в нормальних умовах. Ми повинні переконатися, що наша система справляється з несподіваними умовами, щоб забезпечити 100% безвідмовну систему.

Приклад негативного тесту

Розглянемо випадок підйому, який зазвичай вважається прикладом негативного тестування.

Ми всі знаємо, як працює ліфт. Це буде розглядатися як вимоги до ліфта, наприклад, натискання номера поверху змушує ліфт піднятися на цей конкретний поверх.

Двері відкриваються автоматично, коли ліфт досягає вказаного поверху тощо.

Тепер розглянемо деякі негативні сценарії для підйому. Деякі з них,

Негативне тестування Позитивне тестування
Що станеться, якщо кількість осіб (вага) перевищить вказану межу? Припускається, що в ліфт увійде лише визначена кількість осіб
Що станеться, якщо хтось курить або спричинить пожежу в ліфті? У ліфті не буде диму чи вогню
Що станеться, якщо під час роботи зникне живлення? Під час роботи підйомника не буде відключення електроенергії

Усі ці випадки підлягають негативному тестуванню. Важливість цього полягає в тому, що ми не можемо гарантувати, що все вищезгадане не станеться, тому нам потрібно їх стримувати.

Розглянемо випадок, коли стан надмірної ваги перевірено, і під час впровадження підйомник працює ненормально, коли є стан надмірної ваги. Це потенційно вплине на надійність системи та може навіть стати небезпекою для життя. Це пояснює, що таке негативне тестування та його важливість.

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

Розглянемо, наприклад, реєстраційну форму.

Негативне тестування Позитивне тестування
Спробуйте ввести недійсний ідентифікатор електронної пошти в полі електронної пошти У полі електронної пошти буде введено лише дійсні ідентифікатори електронної пошти
Спробуйте ввести недійсний номер телефону в поле номера телефону (символи) Єдине число буде введено в поле номера
Завантажте зображення, розмір якого виходить за вказані межі Будуть завантажені лише зображення розміром нижче вказаних меж
Завантажуйте недійсні файли, наприклад XML, SQL тощо в полі завантаження зображення Завантажуйте лише дійсні формати зображень, наприклад jpg.png тощо.

Як ми вже говорили раніше, ми повинні переконатися, що в усіх цих негативних випадках наша система працюватиме належним чином. Розглянемо випадок, якщо хтось намагається ввести символ у поле числа, і система не може обробити неочікувані дані, оскільки вона очікує число, і, нарешті, система виходить з ладу. Або що, якщо хтось спробує зробити SQL injection і стерти всі наші дані з бази даних. Ми не можемо нести такі можливі втрати. Тому негативний тест важливий.

Навіщо робити негативний тест?

Оскільки тестування займає багато часу та коштів, рішення про те, «що», «як» і «скільки» тестувати, дуже важливо. Ми маємо розумно вибрати, чи робити негативне тестування в нашій системі чи ні. Отже, давайте подивимося на важливість негативного тестування.

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

Відповідальністю організації є надання якісного продукту своїм клієнтам. Щоб досягти цього, потрібно провести негативний тест.

У рамках підтвердження щодо невдачі організація повинна провести негативне тестування.

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

Вплив є одним із факторів, який ми повинні враховувати. Вважайте, що ми провели позитивний тест на сайті електронної комерції, і переконайтеся, що все в порядку. Але що, якщо в нашій системі є лазівка, через яку хтось може виконати SQL-ін’єкцію та стерти всі наші дані. Це буде серйозним порушенням безпеки. Щоб уникнути подібних випадків, потрібно також зробити негативний тест.

Для програм, відкритих для загального доступу, переважно веб-сайтів, ми завжди маємо пам’ятати, що ми не дуже контролюємо процедуру використання програми, тому ми маємо провести негативне тестування, щоб переконатися, що всі такі випадки охоплені та обмежені.

Інша річ, про яку ми повинні подбати, це те, що там є багато чорних хакерів, які шукають можливість знищити систему. Злом — важливий випадок, який розглядається в негативному тестуванні

Клієнтська перспектива

Клієнти завжди очікують від продуктів нульової вразливості, щоб переконатися, що негативне тестування є обов’язковим

Якщо це чутливий продукт, як-от електронна комерція, онлайн-акції тощо, то безпека та негативне тестування є обов’язковими.

Єдине, що хвилює клієнта щодо негативного тестування, це вартість. Але після аналізу впливу клієнт сам вирішує, робити чи ні негативне тестування.

Як зробити негативний тест

Щоб зробити негативний тест, ми повинні розглянути всі можливі випадки. Тобто, якщо це можливо, ми повинні розглянути це в Тестовий випадок незалежно від того, чи це неправильний спосіб його використання. Наприклад, якщо ми бачимо поле електронної пошти, подумайте про всі можливі введення, які ми можемо вказати, крім правильного формату електронної пошти. Так само, коли ми бачимо опцію завантаження зображення, ми повинні протестувати її з усіма можливими файлами.

Створюючи негативні тестові випадки, ми маємо визначити пріоритети вхідних даних, інакше буде багато можливих випадків. Наприклад, для поля зображення, куди мають вводитися лише файли «.png», ми можемо мати багато параметрів для завантаження, як-от «jpeg», «xml», «xls» тощо. Отже, нам потрібно визначити пріоритетність параметрів як XML і SQL може мати більший вплив, ніж jpeg і xls, тому ми повинні спочатку подбати про випадки SQL і XML. Таким чином, ми повинні визначити пріоритетність випадків перед виконанням, щоб заощадити час і вартість тестування.

Плюси і мінуси негативного тестування

Як і в усіх інших методів тестування, у негативного тестування є плюси та мінуси, головним чином залежні від того, «де», «коли» та «як» використовувати. Давайте поглянемо на це.

Переваги негативного тестування

  • Як ми всі знаємо, негативний тест дуже важливий для забезпечення якості продукту. Якісний продукт — це продукт із нульовою вразливістю, тому негативне тестування є дуже важливим.
  • Проведення негативного тестування гарантує, що всі можливі випадки охоплені. Навмисно чи ненавмисно існує ймовірність появи негативних тестів. Тому, щоб переконатися, що всі випадки охоплені, ми повинні зробити негативне тестування разом із позитивним.
  • Негативне тестування зробить клієнта більшою впевненістю перед тим, як вийти в ефір.

Недоліки негативного тестування

  • У розробці програмного забезпечення негативне тестування в деяких випадках стає марною тратою часу та енергії. У багатьох випадках немає потреби в надмірному негативному тестуванні. Наприклад, якщо програма створена для використання однією людиною, ми не повинні розглядати випадок, коли 100 користувачів використовують систему одночасно. Тому визначення умов у випадках негативних тестів є дуже важливим. Буватимуть випадки, коли нам не доведеться робити негативні тести на певній системі.
  • Вимагайте кваліфікованих і досвідчених людей для створення негативних тестів.
  • Для клієнта негативне тестування — це ще одна річ, яка спричиняє непотрібну затримку випуску та додаткову вартість.
  • Можливість того, що команда витратить більше часу та енергії на негативне тестування. Існує ймовірність того, що тестувальники витрачають багато часу та енергії на негативне тестування, що призводить до нижчої концентрації в позитивному тестуванні.

Підсумуйте цей пост за допомогою: