Скидка до 60% и курс по ИИ в подарок 3 дня 09 :07 :03 Выбрать курс
Код
#статьи

Что такое валидация и как она работает

«Секретный» способ найти ошибки в IT-проектах.

Иллюстрация: Оля Ежак для Skillbox Media

Валидация — один из ключевых этапов разработки программного обеспечения в целом и его отдельных функций. Именно на этом шаге проверяют, насколько созданный продукт действительно решает задачи пользователей и работает так, как задумано.

В этой статье расскажем, что такое валидация в IT, какие этапы она проходит, и разберём примеры её использования из рабочих будней разработчиков.

Содержание


Что такое валидация и для чего она нужна

Валидация (от лат. validus — «здоровый, крепкий») — это проверка на корректность, соответствие правилам. Термин не уникален для IT, и его используют в других областях:

  • в медицине учёные валидируют лабораторные исследования, чтобы удостовериться в том, что они действительно определяют заболевания, а не показывают случайные результаты;
  • в образовании преподаватели проверяют, что тест действительно оценивает знания учащихся, и так далее.

В IT валидация — это процесс проверки, соответствует ли программное обеспечение заданным требованиям. Функциональные требования описывают, что программа должна делать, а нефункциональные — как она должна это делать: быстро, удобно, надёжно и безопасно. Если все условия выполняются, продукт считается прошедшим валидацию.

Посмотрим на несколько примеров:

  • Проверка корректности ввода имени, пароля, адреса электронной почты, номера телефона и других данных пользователя в формы на сайте или приложении. Например, почтовый ящик должен содержать символ «@». Если этого символа нет, то сервис должен не принимать введённую информацию и возвращать пользователю подсказку о правильном формате адреса.
  • При взаимодействии клиента и сервера важно, чтобы структура сообщений между ними соответствовала принятым стандартам. Например, сервер проверяет заголовки и тело запроса, чтобы убедиться, что данные передаются корректно и без ошибок.
  • В работе социальных сетей используют проверку токенов и актуальности сессии. Сервер проверяет, что токен не истёк и по прежнему принадлежит текущему пользователю. Это защищает от несанкционированного доступа к данным.

Валидация и верификация: разница

В IT есть два похожих понятия — валидация и верификация. Эти понятия нередко путают. Давайте разбираться.

Верификация — это проверка программного обеспечения на соответствие технической спецификации, документации или стандартам. Например, что кнопка «Отправить» в электронной почте действительно отправляет письмо.

Валидация — это проверка на соответствие правилам или требованиям. В нашем примере с почтой мы должны убедиться, что если ввести номер телефона вместо адреса e-mail, то сервис не будет пытаться отправлять на него письмо и покажет пользователю понятный текст ошибки.

Чтобы лучше понять разницу, разберём ещё один пример. Мы разрабатываем мобильное приложение банка, в котором пользователи отправляют деньги по номеру телефона.

Начнём с верификации, так как она всегда проводится первой. Наша задача — проверить, что функции приложения соответствуют техническому заданию. Для этого протестируем, что:

  • в форму ввода номера телефона можно ввести данные;
  • кнопка «Отправить средства» действительно отправляет запрос на сервер с данным действием;
  • база данных корректно обновляет баланс пользователя на экране и так далее.

После успешной верификации переходим к валидации приложения. Потребуется проверить, что:

  • интерфейс интуитивен и понятен пользователям — они понимают какие кнопки нажимать для отправки денег по номеру телефона и что от них требуется на каждом этапе;
  • приложение позволяет переводить деньги только на существующие номера, учитывая их общепринятый формат;
  • сумма перевода не превышает лимиты пользователя и так далее.

Если все проверки выполнены, значит, код работает корректно, а приложение ведёт себя так, как планировали.

Проще говоря: верификация показывает, что продукт соответствует техническому заданию, а валидация — что он действительно решает задачи пользователя.

Этапы валидации

Валидацию можно представить как последовательный процесс — от анализа требований до исправления ошибок при их обнаружении. Этот принцип работает в любой сфере: будь то проверка формы заказа товаров на сайте маркетплейса или сертификация медицинского оборудования.

Пройдём все этапы валидации на простом примере — проверке поля для ввода электронной почты в форме на сайте.

Анализ требований

На первом этапе валидации определяют требования к системе: какие функции должны быть доступны пользователю и какие данные для их реализации необходимы и допустимы.

В нашем примере потребуется определиться с тем, что считать валидным адресом электронной почты. Сформируем для него несколько требований:

  • должен содержать @;
  • не иметь пробелов;
  • поддерживать домены yandex.ru, gmail.com и rambler.com.

Если определить не все требования, то команда тестировщиков не сможет учесть их при составлении тест-кейсов на следующем этапе, а значит, форма для ввода электронной почты может работать не так, как требуется.

Планирование тестов

На этом этапе продумывают тест-кейсы для проверки сформулированных требований.

Вернёмся к форме ввода электронной почты и определим несколько сценариев тестирования, исходя из сформированных требований. Напишем их в кратком виде.

Сценарий 1:

  • входящие данные: user@gmail.com;
  • ожидаемый результат: email принят системой как корректный.

Сценарий 2:

  • входящие данные: usergmail.com;
  • ожидаемый результат: ошибка валидации — в email отсутствует символ @. Возврат сообщения об ошибке.

Тестирование

Проверяем каждый тестовый сценарий и фиксируем результат. Этап показывает, работает ли продукт как задумано, и помогает выявить баги.

В нашем примере:

  • сценарий 1: пройдено — email не содержит ошибок;
  • сценарий 2: пройдено — в email отсутствует символ @, сообщение об ошибке отправлено.

Получение оценки

Оцениваем то, как прошла проверка тестовых сценариев. Важно сравнить полученный результат с ожиданием.

В нашем примере: все неверные email отклонены с соответствующими подсказками, а корректные адреса прошли проверку без проблем. В итоге можно сделать вывод, что этап пройден успешно, а баги не обнаружены.

Исправление ошибок и повторная проверка

Если в процессе тестирования выявлены ошибки, то они должны быть зафиксированы и переданы на исправление. После этого тестирование повторяется до тех пор, пока приложение или его функции не будут работать в соответствии с требованиями.

Если в примере с почтой были обнаружены баги, например форма принимала email без @, то ошибки должны быть описаны в баг-репорте и направлены разработчикам для исправления.

Этапы валидации
Инфографика: Майя Мальгина для Skillbox Media

Примеры валидации в IT

Валидация в IT охватывает множество направлений — от проверки правильности заполнения форм до оценки качества кода и интерфейса. Во многих случаях эту работу проводят с помощью валидаторов — инструментов, которые автоматически анализируют код, ссылки и другие элементы на соответствие правилам. Рассмотрим примеры из реальной работы разработчиков.

HTML- и CSS-валидация

В основе веб-страниц лежит HTML- и CSS-код. От его качества зависит то, как сайт будет работать и отображаться в браузере.

Валидация HTML и CSS — это проверка кода на соответствие стандартам W3C. В ходе проверки могут быть выявлены различные проблемы. Вот несколько примеров:

  • Со временем некоторые HTML-теги устаревают, а их отображение в браузерах перестаёт поддерживаться.
  • Если пропустить кавычку или закрывающий тег в коде, то в некоторых браузерах могут появиться проблемы с вёрсткой — например, пропадёт важный элемент: кнопка или поисковая строка.
  • Если в коде веб-страницы нарушена структура или правила вложенности элементов, страница может отображаться неправильно.
  • Иногда одно и то же CSS-свойство задано разными способами в разных местах. В результате веб-страница может выглядеть не так, как мы ожидаем.

Проверять весь HTML и CSS-код вручную сложно и долго. Поэтому существуют автоматизированные инструменты:

  • Валидатор HTML — онлайн-сервис валидации HTML от W3C. Проверяет синтаксис и структуру кода в целом, ищет устаревшие теги и дублирующиеся элементы.
  • Валидатор CSS — онлайн-сервис валидации CSS от W3C. Проверяет синтаксис, находит устаревшие свойства и конфликты между правилами.
Интерфейс W3C валидатора HTML
Скриншот: Validator W3 / Skillbox Media

Валидация ссылок

Ссылки — важная часть навигации на любом сайте. Иногда возникают ситуации, когда некоторые из них не работают, вызывая трудности у пользователей. Основных причин несколько:

  • Несуществующие страницы — из-за их удаления с сервера или смены url-адреса. При клике на такую ссылку пользователь увидит сообщение об ошибке 404.
  • Ошибки со стороны сервера или клиента. Например, сервер не может понять, что от него хочет браузер. Тогда он вернёт не веб-страницу, а ошибку 400 Bad Request.
  • Некорректные редиректы. Редирект — это перенаправление пользователя с одной страницы на другую. Если разработчики неправильно их настроили, то ссылки могут вести на ту же самую страницу или на ошибочную.

Чтобы не проверять все ссылки на сайте вручную, можно воспользоваться специальными приложениями:

  • W3C Link Checker — онлайн-сервис от W3C, проверяющий работоспособность ссылок. Если выявит ошибки, то укажет их.
  • Sitechecker — онлайн-валидатор ссылок, позволяющий проверить все ссылки на сайте за один подход. Потребуется регистрация.
  • Screaming Frog SEO Spider — десктопное приложение для анализа сайта: находит неработающие ссылки, отслеживает редиректы и проверяет структуру страниц. Доступно для Windows, macOS и Linux.
Интерфейс валидатора Screaming Frog SEO Spider
Скриншот: Screaming Frog SEO Spider / Skillbox Media

Валидация адаптивности

Если мы создаём новый веб-сервис, например маркетплейс, важно, чтобы он корректно выглядел на любых устройствах: смартфоне, планшете или ПК. Это достигается благодаря адаптивности — способности сайта подстраиваться под размер и ориентацию экрана, сохраняя удобство и читаемость интерфейса.

При валидации адаптивности разработчики учитывают несколько моментов:

  • корректное отображение кнопок, картинок, ссылок и других элементов страницы при разном масштабе экрана;
  • возможность прокрутки страниц, если их содержимое выходит за пределы экрана;
  • совместимость с разными браузерами разных устройств и так далее.

Для проверки адаптивности существуют разные инструменты. Один из самых популярных и доступных — встроенный валидатор в Chrome DevTools. Он позволяет эмулировать отображение сайта на большом количестве смартфонов и планшетов, чтобы заметить ошибки в вёрстке страниц. Например, вот так будет выглядеть веб-страница со статьёй про Chrome DevTools на iPhone 12 Pro.

Режим проверки адаптивности в Chrome DevTools
Скриншот: Google Chrome / Skillbox Media

Что запомнить

  • Валидация — это проверка соответствия программного обеспечения определённым правилам.
  • Валидация может проводиться для отдельных элементов ПО: части кода, базы данных, элемента интерфейса и так далее.
  • Валидацию проводят как вручную, так и автоматизированно. В последнем случае используют валидаторы — специальное ПО для проверки.
  • Валидация проводится после верификации — проверки продукта на соответствие техническим требованиям.

Больше интересного про код — в нашем телеграм-канале.  Подписывайтесь!






Курс с трудоустройством: «Профессия Фронтенд-разработчик + ИИ» Узнать о курсе
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована