У цій статті ми розглянемо поняття «Валідація» і як правильно підійти до її тестування.

Для початку давайте розберемося, що означає поняття «Валідація» саме в IТ сфері.

Простими словами, валідація (Validation) – це процес перевірки значень за певним раніше затвердженим стандартом, вимогою, правилом. Наприклад: поле дня народження приймає тільки ціле позитивне число (включаючи нуль) і не може бути більше, ніж 31 (так як максимальне значення днів серед місяців – 31 день). Також є досить часта помилка в тому, що деякі люди плутають валідацію з верифікацією.

Верифікація – це підтвердження того, що все виконано відповідно до стандарту, вимог, правил.

Після того як ми вже з’ясували що таке валідація, виникає питання, а чи потрібна вона? ВІдповідь дуже проста – вона забезпечує збір інформативної, потрібної, відсортованої інформації. Також валідація може слугувати як засіб безпеки, адже якщо до бази даних ввести дані,які їй не надані, то вона може зависнути та піти в рестарт, видати приватну інформацію або видалити усе. 

Є три типи валідації:

  1. Миттєва – такий тип валідації застосовується в тому випадку, коли під час написання значення система визначає чи підходить воно вимогам чи ні.
  2. Після втрати фокусу – валідація відбувається після перемикання на інше поле або після натискання на іншу область.
  3. Після відправки форми – процес валідації починається тільки після того, як буде натиснута умовна кнопка «Надіслати», після цього система почне перевіряти чи заповнені поля згідно з вимогами.

Який вид валідації вважається найкращим? Це безумовно той, який дає інформацію користувачеві швидше, скорочуючи час на повернення до виправлення помилки, і це – миттєва валідація. Але є ряд причин, за якими немає можливості реалізувати такий вид валідації, тому найбільш поширеним є валідація після втрати фокусу. А тип валідації після відправки форми використовується тоді, коли валідація після втрати фокусу неможлива.

Також потрібно згадати про один особливий випадок, коли окремі поля проходять валідацію і не видають помилки, але при їх комбінуванні вони будуть видавати значення, яке не задовольняє систему. Давайте розберемо на прикладі поле для введення мобільного телефону: ви вводите код країни (+380) – валідація успішна, такий код країни існує в дійсності. Після цього вводьте номер телефону (9611001231) – валідація також успішна, в поле введені цифри, але ось система в цілому не прийме ці дані і видасть помилку, оскільки номер мобільного телефону для коду країни «+380» не повинен перевищувати 9 цифр.

У випадках, коли валідація не проходить перевірку, користувачу приходить візуальне сповіщення у вигляді:

  • текстового повідомлення (часто червоного кольору);
  • виділення поля червоним кольором;
  • виділення тексту червоним кольором;
  • комбінованих сповіщень ( одночасно відображається повідомлення червоним кольором і текст виділений червоним кольором);
  • спеціальних знаків (знак оклику і т.ін.).

Це найбільш розповсюджені сповіщення

Як же користувачеві не дати відправити дані, які не пройшли валідацію? Все дуже просто – заблокувати або не показувати кнопку для відправки даних або не відправляти дані після натискання кнопки, поки користувач не заповнить всі згідно з вимогами.

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

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

Приклад форми реєстрації нового користувача
  • Для початку необхідно дізнатися з тестової документації, де і яка валідація має бути присутня. Якщо тестової документації немає, тоді покладаємось на власний досвід і логічне мислення.
  • Заповнити всі поля правильними (валідними) значеннями і переконатися в тому, що система коректно приймає дані, які для неї призначені.
  • Заповнити всі поля неправильними (невалідними) рандомними даними, щоб зрозуміти, які поля провалили перевірку, а для яких ще належить детальне тестування.
  • Перевірити наявність повідомлень. Переконатися в тому, що кожне поле видає сповіщення про невірне заповнення і потребує виправлення.
  • Провести перевірку кожного поля окремо. Для прикладу візьмемо поле електронної пошти і проведемо наступні перевірки:
Приклад «Sign in» форми

- ввести тільки символи;

- ввести тільки цифри;

- ввести тільки літери кирилиці ;

- ввести тільки літери латиниці;

- зареєструватися с цими даними.

Очікуваний результат має бути приблизно наступний:

Приклад перевірки валідації в полі «email»
  • Ввести в поле правильні (валідні) дані і потім замінити їх на невалідні дані. 
  • Залишити поле порожнім(без даних).
  • Перевірити граничні значення (ввести граничні значення у полі паролю):
Перевірка граничних значень у полі паролю
  • Перевірити зв'язок між полями (як на прикладі з підтвердженням паролю):
Перевірка граничних значень у полі підтвердження паролю

І в кінці хотілося б сказати, що тестування валідації – це дуже важливий момент в будь-якому інтерфейсі і потрібно розуміти, що іноді від правильності введення даних залежить безпека даних конкретного клієнта, а також безпека всіх даних. Фахівцю в області QA необхідно не тільки перевіряти валідацію, а ще й дуже чітко розуміти, в яких моментах система має вразливість (недолік) і що потрібно вдосконалити.