Раздел 03 — Требования и тестовая документация

Тестирование начинается раньше программы — с текста, по которому её пишут

Прогресс курса Раздел 3 из 12

Что вы освоите в этом разделе

6 академических часов: 2 теории, 4 практики. На практике вы проверите требования «Задачника» из приложения А1 — не все они написаны хорошо.
01

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

Требование — записанное условие, которому должна соответствовать программа. Для тестировщика требования — источник ожидаемого результата: без них на вопрос «это дефект?» нет ответа, есть только мнение.

ВидЧто описываетПример: запись к врачу онлайн
Бизнес-требованиеЗачем программа нужна заказчикуСнизить нагрузку на регистратуру: половина записей — через сайт
ПользовательскоеЧто пользователь хочет сделатьПациент записывается к терапевту на удобное время, не звоня в поликлинику
ФункциональноеЧто именно делает программаСайт показывает свободные интервалы по 15 минут на 14 дней вперёд
НефункциональноеКак программа это делает: скорость, удобство, защитаРасписание открывается не дольше 3 секунд; данные пациента передаются по HTTPS

Требования бывают в техническом задании (ТЗ, по ГОСТ 34 или в свободной форме), в пользовательских историях («Как пациент, я хочу…, чтобы…»), в макетах интерфейса, в документации API, в переписке с заказчиком. Если требований нет вовсе, ожидаемый результат берут из здравого смысла, похожих программ, законов и стандартов — и записывают как предположение, которое нужно подтвердить.

02

Свойства хорошего требования

Свойств в литературе называют до десятка. Для проверки хватает четырёх главных — по ним в практике этого раздела и записываются дефекты.

СвойствоЗначитПлохоЛучше
ПолнотаОписаны все случаи, включая ошибки и границы«Пациент может отменить запись»«…не позже чем за 2 часа до приёма; после отмены интервал снова свободен; пациенту приходит СМС»
ОднозначностьПонимается только одним способом«Записи показываются за неделю»«…на 7 календарных дней вперёд, начиная с завтрашнего»
НепротиворечивостьНе спорит с другими требованиями«Интервал 15 минут» в одном пункте и «приём длится 20 минут» в другомОдно число в одном месте, остальные ссылаются на него
ПроверяемостьМожно придумать проверку с однозначным итогом«Сайт работает быстро и удобно»«Расписание открывается не дольше 3 секунд при 200 пользователях одновременно»

Ещё полезно, чтобы требование было атомарным (одно требование — одно условие, тогда на него проще сослаться) и выполнимым («сайт работает без сбоев всегда» выполнить нельзя).

Слова-сигналы. «Быстро», «удобно», «надёжно», «достаточно», «и т. д.», «при необходимости», «как правило», «по возможности», «современный» — почти всегда признак непроверяемого или неоднозначного требования. Встретили — задайте вопрос с числом.
03

Как читать требования

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

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

№ТребованиеСвойствоЧто не такВопрос
14.2 «Пациент может отменить запись»ПолнотаНе сказано, до какого момента можно отменить и что происходит с интерваломЗа сколько часов до приёма отмена ещё возможна? Освобождается ли интервал для других?
23.1 и 5.4НепротиворечивостьИнтервал 15 минут, приём 20 минутКакая длительность верна? Если 20 минут, как делится рабочий день врача?
36.1 «Сайт работает быстро»ПроверяемостьНет числа и условийЗа сколько секунд должно открываться расписание и при скольких пользователях?
04

Вопросы к заказчику

Хороший вопрос экономит время обеим сторонам: на него можно ответить одной фразой, и этот ответ потом проверяется. Сравните:

ПлохоПочемуХорошо
«Требование про отмену непонятное»Нет предмета: что именно непонятно«Можно ли отменить запись за 30 минут до приёма?»
«А что будет, если что-то пойдёт не так?»Не названа ситуация«Что видит пациент, если интервал заняли, пока он заполнял форму?»
«Сделайте, пожалуйста, нормальную проверку телефона»Это не вопрос, а требование от тестировщика«Принимается ли телефон в формате 8 9xx…, или только +7?»

Вопросы задают письменно, пачкой, с номерами требований. Ответы вносят в требования, а не оставляют в переписке: через месяц переписку никто не найдёт, а тест-кейсы будут ссылаться на пункт требований.

05

Критерии приёмки

Критерии приёмки — условия, при которых функция считается сделанной. В гибких командах их пишут к каждой пользовательской истории до начала разработки, и тестировщик участвует в этом: он лучше других видит пропущенные случаи. Удобная форма — «Дано — Когда — Тогда» (в англоязычных источниках Given — When — Then):

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

Критерий 1. Отмена заранее
  Дано: у пациента запись к терапевту на завтра 10:00
  Когда: он нажимает «Отменить запись» и подтверждает
  Тогда: запись пропадает из «Мои записи», интервал 10:00 снова свободен,
         пациенту приходит СМС «Запись на 10:00 отменена»

Критерий 2. Слишком поздно
  Дано: до приёма осталось 1 ч 59 мин
  Когда: пациент открывает запись
  Тогда: кнопки «Отменить запись» нет, показан телефон регистратуры

Каждый критерий — готовая проверка: в «Дано» предусловия, в «Когда» действие, в «Тогда» ожидаемый результат, который можно сверить. Обратите внимание на критерий 2: он проверяет границу «2 часа» — к ней мы вернёмся в разделе 05.

06

Тестовая документация

Документы тестировщика отвечают на разные вопросы и пишутся в разное время.

ДокументОтвечает на вопросКогдаРаздел курса
Тест-планЧто, как, кем и когда тестируем; когда закончимВ начале работ11
Чек-листКакие проверки нужно сделать — списком, без подробных шаговПосле чтения требований04
Тест-кейсКак именно выполнить одну проверку и что должно получитьсяДо прогона04
Набор тестов (test suite)Какие тест-кейсы проходим вместе: smoke, регресс, «Регистрация»Перед прогоном04, 11
Баг-репортЧто сломано, как воспроизвести, насколько серьёзноПри прогоне07
Тест-отчётЧто проверено, что найдено, можно ли выпускатьВ конце прогона11

Чек-лист и тест-кейс различаются подробностью. Строка чек-листа — «вход с верным логином и неверным паролем»: опытный тестировщик знает, что делать. Тест-кейс расписывает то же самое по шагам с конкретными данными и ожидаемым текстом сообщения — его пройдёт новичок или программа автотестов. В небольших проектах часто живут только чек-листы, тест-кейсы пишут на самое важное.

Поля тест-кейса:

ПолеПример
ИдентификаторTC-REC-07
НазваниеОтмена записи меньше чем за 2 часа невозможна
Требование4.2
ПриоритетВысокий
ПредусловияПациент вошёл; есть запись, до приёма 1 ч 59 мин
Шаги1. Открыть «Мои записи». 2. Открыть запись.
Ожидаемый результатКнопки «Отменить запись» нет; показан телефон регистратуры
Фактический результат и статусЗаполняются при прогоне: «прошёл», «не прошёл», «заблокирован»

Как писать тест-кейсы так, чтобы их можно было пройти без автора, — в разделе 04.

07

Трассировка: от требования к проверке

Трассировка — связь «требование → проверки → дефекты». Её ведут таблицей (матрицей трассировки):

ТребованиеТест-кейсыИтог прогонаДефекты
4.1 Запись на свободный интервалTC-REC-01…044 прошли—
4.2 Отмена записиTC-REC-05…083 прошли, 1 не прошёлBUG-31
6.1 Скорость—не проверено—

По ней видно, какие требования не покрыты (6.1 — потому что непроверяемое, вопрос задан), и что придётся перепроверить, если требование изменится. В небольшом проекте достаточно столбца «Требование» в таблице тест-кейсов.

Ключевые выводы раздела

Запомните главное

  • Требования — источник ожидаемого результата; без них нет ответа «дефект или нет»
  • Четыре главных свойства: полнота, однозначность, непротиворечивость, проверяемость
  • «Быстро», «удобно», «надёжно» без чисел — признак непроверяемого требования
  • Хороший вопрос к заказчику называет требование и ситуацию, а ответ на него можно проверить
  • Критерий приёмки «Дано — Когда — Тогда» — готовая проверка с ожидаемым результатом
  • Чек-лист говорит, что проверить; тест-кейс — как именно; трассировка — что чем покрыто
Практические задания — на учебном портале. Задания, критерии оценивания, сдача работ и оценки преподавателя — в курсе на portal.nevabit.ru. Учётную запись выдаёт преподаватель.
Раздел 02: Виды и уровни тестирования Все разделы Раздел 04: Чек-листы и тест-кейсы