В прошлом уроке мы научились различать ошибку, дефект и отказ и увидели, что тестирование и отладка (debugging) — это разные задачи с разными исполнителями. Тестирование — это одно конкретное действие внутри более широкой картины контроля качества, и вокруг него точно так же путаются несколько похожих слов: верификация, валидация, QA, QC. Разберёмся, что есть что, чтобы в разговоре с командой не путать эти понятия.
Чему научишься за этот урок:
— отличить верификацию (соответствие документу) от валидации (польза для пользователя) на конкретном примере;
— расположить QA, QC и тестирование по вложенности друг в друга;
— определить, какая из проверок нарушена в конкретной спорной ситуации.
Верификация: сделали ли мы систему правильно
Верификация отвечает на вопрос «сделали ли мы систему правильно» — то есть соответствует ли то, что получилось, тому, что было записано в требованиях или техническом задании, безотносительно того, была ли сама идея из требований хорошей. Если в документе написано «промокод состоит только из заглавных латинских букв и цифр», а разработчик реализовал именно такую проверку, верификация пройдена: реализация точно соответствует записанному требованию.
Валидация: сделали ли мы правильную систему
Валидация отвечает на другой вопрос — «сделали ли мы правильную систему», то есть решает ли она реальную задачу пользователя, даже если формально всё совпадает с документом. Показательный пример: форма регистрации на нашем учебном полигоне точно соответствует документу с требованиями — там прописано обязательное поле «Отчество», и оно есть. Но часть реальных пользователей не понимает, зачем это поле нужно образовательной платформе, теряется и просто закрывает вкладку, не закончив регистрацию. Верификация здесь пройдена безупречно, а вот валидация не пройдена: сама задумка с обязательным «Отчеством» оказалась неправильной с самого начала — документ отражал ошибочное решение.
ВЕРИФИКАЦИЯ ВАЛИДАЦИЯ соответствует ли документу? решает ли задачу пользователя? +---------------------------+ +---------------------------+ | поле "Отчество" есть и | | пользователи не понимают, | | работает точно как в | | зачем оно нужно, и бросают| | документе -> ДА | | регистрацию -> НЕТ | +---------------------------+ +---------------------------+ формальное соответствие документу еще не значит пользу для человека
QA, QC и тестирование: три понятия разного масштаба
QA (Quality Assurance, обеспечение качества) — это про предотвращение проблем через процессы, ещё до того, как написана хоть строчка кода. Например: ревью технического задания командой, чтобы отсеять неясные и противоречивые формулировки заранее, — это QA.
QC (Quality Control, контроль качества) — это про проверку уже готового результата: смотрим на то, что получилось, и решаем, годится ли это для выпуска. QC шире, чем просто тестирование: сюда же относится, например, проверка кода коллегой перед выпуском.
Тестирование — это одна конкретная техника внутри QC, причём самая известная и заметная, но не единственная. Именно с ней мы работаем на этом курсе, но важно понимать её место: тестирование — это инструмент контроля качества, а контроль качества — лишь часть более широкого обеспечения качества.
+---------------------------------------------+ | QA — обеспечение качества (процессы, | | предотвращение проблем ДО написания кода) | | | | +---------------------------------------+ | | | QC — контроль качества | | | | (проверка уже ГОТОВОГО результата) | | | | | | | | +-------------------------------+ | | | | | Тестирование — одна техника | | | | | | внутри QC, самая известная | | | | | +-------------------------------+ | | | +---------------------------------------+ | +---------------------------------------------+
Практика на полигоне
Возьмём похожую ситуацию на нашем полигоне: в документе с требованиями к промокодам записано — «промокод принимается только в виде заглавных латинских букв и цифр». Разработчик реализовал ровно это правило, и внутренняя проверка подтвердила: код работает точно по документу. Но на практике пользователи получают промокоды в email-рассылках, где буквы иногда напечатаны вперемешку — заглавными и строчными («Sale2024»), — и просто копируют текст как есть. Полигон отклоняет такой промокод как неверный, хотя по сути это тот же код, и часть покупок из-за этого срывается.
Итог:
— верификация проверяет соответствие документу, валидация — пользу для реального пользователя, и результаты этих двух проверок могут расходиться;
— QA шире QC, а QC шире тестирования — это три понятия разного масштаба, а не синонимы;
— формальное соответствие требованиям ещё не гарантирует, что продукт решает нужную задачу.
Контрольный вопрос. Верификация отвечает на вопрос:
Подсказка: Смотри на слово «документ»: с чем именно идёт сверка.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Валидация отвечает на вопрос:
Подсказка: Речь о пользе для живого пользователя, а не о сверке с документом.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Форма регистрации на нашем учебном полигоне точно соответствует документу с требованиями — обязательное поле «Отчество» есть и работает как описано. Но часть пользователей не понимает, зачем оно нужно, и бросает регистрацию. Что здесь нарушено?
Подсказка: Реализация полностью совпадает с документом — проблема не в сверке с бумагой.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Что из перечисленного — пример QA (обеспечение качества)?
Подсказка: QA работает на самом раннем этапе — до появления кода.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Что из перечисленного — пример QC (контроль качества)?
Подсказка: QC работает с уже готовым результатом, а не с идеей на бумаге.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Как называется техника внутри QC — самая известная и заметная, но не единственная, которую вы осваиваете на этом курсе? Ответь одним словом.
Подсказка: Это то, чем занимается тестировщик.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Задание. На нашем учебном полигоне документ требует: «промокод принимается только в виде заглавных латинских букв и цифр». Разработчик реализовал ровно такую проверку, и это подтверждено сверкой с документом. Какая из двух проверок здесь пройдена? Ответь одним словом.
Подсказка: Речь о сверке с документом, а не о реальном опыте пользователей.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Задание. Пользователи копируют промокод из рассылки, где буквы напечатаны вперемешку («Sale2024»), полигон такой промокод отклоняет, и часть покупок срывается — хотя по документу проверка реализована верно. Это указывает на нарушение верификации или валидации? Ответь одним словом.
Подсказка: Проблема не в коде относительно документа, а в том, помогает ли это реальным людям завершить покупку.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Задание. Опишите в 2-3 предложениях, что именно стоит изменить в документе с требованиями к промокоду на нашем полигоне, чтобы валидация в будущем проходила успешно (не «переделать код», а что именно должно измениться в понимании задачи).
Критерий приёмки: принято, если предложено изменить само требование с учётом реального поведения пользователей — например, принимать промокод независимо от регистра букв (приводить к одному регистру перед сравнением), а не оставлять строгую сверку с точным регистром.
Подсказка: Подумай, что должно произойти с буквами промокода перед сравнением, а не как менять код проверки.
✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.
Онлайн-проверка ответа появится позже
Задание. В компании ввели правило: любое техническое задание перед началом разработки обязательно проходит ревью двух инженеров, которые ищут неясные и противоречивые формулировки. Как называется эта практика в терминах из урока? Ответь одним словом (используй аббревиатуру).
Подсказка: Это происходит до того, как написана хоть строчка кода, — на уровне процесса, а не готового результата.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Контрольный вопрос. Как соотносятся по объёму QA, QC и тестирование?
Подсказка: Вспомни, что предотвращение проблем работает на самом раннем этапе, а тестирование — лишь одна из техник внутри контроля готового результата.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Что дальше
Мы разложили похожие понятия по местам: верификация и валидация проверяют разное, а QA, QC и тестирование различаются по масштабу. За десятилетия практики тестирования сложились ещё и общие наблюдения о том, как оно работает и где подстерегают типичные ловушки, — это семь принципов тестирования, о которых пойдёт речь в следующем уроке.
