Правильно пишем тест-кейсы. Памятка начинающему специалисту по тестированию

Правильно пишем тест-кейсы. Памятка начинающему специалисту по тестированию

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

Для начинающих поясним, что такое тест-кейс озвучив определение из глоссария терминов ISTQB: 

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

Определение тест-кейса языком обывателя: 

Тест-кейс — это чёткое описание действий, которые необходимо выполнить, для того чтобы проверить работу программы (поля для ввода, кнопки и т.д.). Данное описание содержит: действия, которые надо выполнить до начала проверки — предусловия; действия, которые надо выполнить для проверки — шаги; описание того, что должно произойти, после выполнения действий для проверки — ожидаемый результат. 

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

Обязательные атрибуты для заполнения 

  • Номер тест-кейса — уникальный идентификатор тест-кейса (такие системы как TestRail, TestLink и подобные автоматически присваивают тест-кейсам уникальные номера). Если у вас тысячи тест-кейсов, то при общении с коллегами, вам будет удобнее сообщить номер тест-кейса ссылаясь на него, а не пытаться словами рассказать, где и как найти определённый тест-кейс. 
  • Заголовок — краткое, понятное и ёмкое описание сути проверки. 
  • Предусловия — описание действий, которые необходимо предварительно выполнить или учесть, и которые не имеют прямого отношения к проверке. 
  • Шаги проверки — описание последовательности действий, которые необходимо выполнить для проверки. 
  • Ожидаемый результат — проверка, которая устанавливает, что мы ожидаем получить, после выполнения определённых действий в соответствующем шаге. 

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

Правила написания тест-кейсов 

  1. Заголовок:
    • должен быть чётким, кратким, понятным и однозначно характеризующим суть тест-кейса;
    • не может содержать выполняемые шаги и ожидаемый результат.
  2. Предусловие:
    • может содержать полную информацию о состоянии системы или объекта, необходимом для начала выполнения шагов тест-кейса; 
    • может содержать ссылки на информационные источники, которые необходимо изучить перед прохождением тест-кейса (инструкции, описание систем…); 
    • не может содержать ссылки на тестируемый ресурс, если у информационной системы более одной среды (прод, тест, препрод…), данная информация должна быть вынесена в инструкцию, и ссылка приложена в предусловии; 
    • не может содержать данные для авторизации, данная информация должна быть вынесена в инструкцию, и ссылка приложена в предусловии; 
    • не может содержать выполняемые шаги и ожидаемый результат, если нам нужно, чтобы до выполнения шагов проверки у нас была открыта главная страница, то мы в предусловии указываем «открыта главная страница сайта»; 
    • не может содержать ожидаемый результат. 
  3. Шаги проверки: 
    • должны быть чёткими, понятными и последовательными; 
    • следует избегать излишней детализации шагов. Правильно: «ввести в поле число 12».
      Неправильно: «нажать на клавиатуре на цифру ‘1’, следующим шагом нажать на клавиатуре на цифру ‘2’»; 
    • должны использоваться безличные глаголы.
      Правильно: нажать, ввести, перейти.
      Неправильно: нажмите, введите, идите; 
    • не должно быть комментариев и пояснений, если есть необходимость привести мини-инструкцию, то оформляем инструкции в базе-знаний и в предусловии ссылаемся на неё; 
    • не должно быть жёстко прописанных статических данных (логины, пароли, имена файлов) и примеров, для исключения эффекта пестицида. 
  4. Ожидаемый результат: 
    • должен быть у каждого шага проверки; 
    • должно быть кратко и понятно описано состояние системы или объекта, наступающее после выполнения соответствующего шага; 
    • не должно быть избыточного описания. 
  5. Общие требования к тест-кейсам: 
    • язык описания тест-кейсов должен быть понятен широкому кругу пользователей, а не узкой группе лиц; 
    • тест-кейс должен быть максимально независим от других тест-кейсов и не ссылаться на другие тест-кейсы (лучшая практика, когда зависимостей нет вообще); 
    • тест-кейсы группируются в функциональные блоки по их назначению; 
    • в тест-кейсах проверяющих работу функционала скриншотов быть не должно, иначе вы будете посвящать сотни часов на изменение всех скриншотов в тысячах тест-кейсах при изменении интерфейса тестируемой программы. Скриншоты могут быть добавлены только в тест-кейсы проверяющие отображение страниц и форм. 

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

Примеры 

Для наглядности приведу пару примеров. Рассмотрим на примере сайта, на котором вы сейчас находитесь. 

Тест-кейс №1. Корректный

Номер
Заголовок Отправка сообщения через форму обратной связи на странице “Контакты” 
Предусловие Открыта главная страница сайта victorz.ru. Есть доступ к почте администратора сайта victorz.ru 
  
Шаг Ожидаемый результат 
В верхнем меню сайта нажать на ссылку “Контакты” Открылась страница “Контакты” 
Ввести значение в поле “Ваше имя” состоящее из латинских букв, кириллицы В поле “Ваше имя” отображается введённое имя 
Ввести корректный email в поле “Ваш e-mail” В поле “Ваш e-mail” отображается введённый email 
Ввести в поле “Тема” значение состоящее из латинских букв, кириллицы, спецсимволов и чисел В поле “Тема” отображается введённый текст 
Ввести в поле “Сообщение” значение состоящее из латинских букв, кириллицы, спецсимволов и чисел В поле “Сообщение” отображается введённый текст 
Ввести в поле капчи требуемое капчей значение В поле капчи отображается введённое значение 
Нажать под заполняемой формой на кнопку “Отправить” Под кнопкой «Отправить» появился текст “Спасибо. Ваше сообщение было отправлено.”
Все заполненные поля очищены.
Проверить почту администратора сайта На почту пришло сообщение, отправленное с сайта через форму обратной связи и содержащее в теле сообщения данные введённые на шагах 1-5. 

Тест-кейс №2. Некорректный 

В данном тест-кейсе постарался в каждой строке писать неправильно, чтобы было наглядно. И в скобках добавлял наводящие пояснения. 

Номер 
Заголовок Отправить сообщение через форму обратной связи (Указываем, что проверяем или что делаем?) 
Предусловие Перейти на главную страницу сайта victorz.ru (Это не предусловие, а описание шага) 
  
Шаг Ожидаемый результат 
Нажать на ссылку “Контакты” (Где она находится?) Открылась страница (Какая?) 
Ввести имя в поле “Ваше имя” (Какие символы вводить?) (Ничего не указано в ожидаемом результате, что должно произойти?) 
Ввести email в поле “Ваш e-mail” (корректный или некорректный?) В поле отображается email (Какой? Введённый? В каком поле отображается?) 
Ввести в поле значение, состоящее из латинских букв, кириллицы, спецсимволов и чисел (В какое поле?) В поле “Тема” отображается текст (Какой?) 
Ввести в поле “Сообщение” текст (Какие символы вводить?) Видим в поле “Сообщение” введённый текст (Видим или отображается?) 
Вводим в поле капчи требуемое капчей значение (Помните только безличные глаголы — Ввести). В поле капчи будет введённое значение (Что будет делать? Танцевать?) 
Нажать под заполняемой формой на кнопку (На какую?) Появился текст “Спасибо. Ваше сообщение было отправлено.” (Где появится?) 
(Последний шаг не заполнен, а это неправильно, так как мы не проверим действительно ли работает отправка писем через форму обратной связи)  

Во второй части видео (с 8-й минуты) разбираю на примерах создание тест-кейсов:

Главное в нашем деле практика. Практикуйтесь в написании тест-кейсов. 

Если вы будете вести тест-кейсы в таблице (к примеру в Excel), то можете скачать шаблон тест-кейсов. В файле две вкладки. На одной шаблон единичного тест-кейса, а на второй пример порядка размещения группы тест-кейсов.

25 комментариев

  1. Виктория

    Добрый вечер.

    Скажите пожалуйста, как верно написать шаги тест-кейса в случае тестирования с пустыми окнами.
    Например, форма есть с полями Имя и Телефон и кнопкой «позвоните мне»
    Делается негативный тест-кейс с пустыми полями, для определения обязательных полей ввода.

    Вариант 1

    1) поле Имя оставить пустым
    2) поле Телефон оставить пустым
    3) нажать кнопку Позвоните мне

    Вариант 2

    1) нажать кнопку Позвоните мне

    • Захаров Виктор

      1. Поля Имя и Телефон не заполнять (очистить, если заполнены).
      2. Нажать кнопку «Позвонить мне».

  2. Виктор, очень понравилась статья, спасибо!
    А вот если бы еще шаблон для скачивания приложили, было бы совсем круто)

    А как тикеты распологать. Друг под другом? Тикет 1, Тикет 2 — это все таблички, которые идут вниз?

  3. Отличная стаття
    А что в результате писать? «Все пашет»?)

    • В последнем шаге в результате написано «На почту пришло сообщение, отправленное с сайта через форму обратной связи и содержащее в теле сообщения данные введённые на шагах 1-5». Мы же проверяем «Отправка сообщения через форму обратной связи на странице “Контакты”.

  4. Хорошая статья, но я бы добавил еще немного внимания разделу «Ожидаемый результат». Часто начинающие да и с опытом тестировщики пишут: «Открывается страница регистрации» (например), вместо «Открыта страница регистрации». Типа нам важен процесс открытия страницы, а не конечный результат
    Так же очень большая ошибка (на мой взгляд) писать в ожидаемом результате несколько вариантов. Например: 1. Картинка отображена 2. Если картинка не отображена, отображается заглушка 3. При отсутствии соединения с интернетом отображается заглушка «Проверьте соединение». Опять же на мой взгляд это три отдельные проверки, которые надо все проверить, а не выполнять одну проверку и смотреть какой результат подошел

    • Захаров Виктор

      Поддерживаю ваши дополнения. Выделю как-нибудь время, чтобы дополнить статью.

  5. Иван Ивнов

    Здравствуйте! Есть такая задача:
    Условие. К нам обратился заказчик: у него есть сайт на устаревшем движке, он хочет
    чтобы разработали новый сайт на современном движке и заодно сделали редизайн.
    Мы завершили работы и теперь остался последний этап: перенести все новости со
    старого сайта на новый. Программисты разработали скрипт, переносящий новости со
    старого сайта на новый. Теперь тестировщику необходимо проверить правильно ли перенеслись новости. Каждая новость содержит: заголовок, подзаголовок, текст,
    обязательную картинку-миниатюру, опциональное видео, опциональную галерею
    картинок. Каждая новость относится к одному из 5 разделов.
    Задача. Напишите сценарий тестирования (тест-кейсы) для скрипта переноса новостей.
    Критерии оценки. Тестовый сценарий должен предусмотреть, как можно больше
    возможных проблем, которые могут возникнуть при миграции

    Как написать тест кейсы?

    • Захаров Виктор

      > Тестовый сценарий должен предусмотреть, как можно больше возможных проблем…

      Всё предусмотреть в одном тест-кейсе не получится и не стоит. Стоит сосредоточиться на корректность переноса, т.е. если условие описанное в тест-кейсе не соблюдено, то это уже проблема.

      Необходимо написать тест-кейсы:
      1. Для проверки новости без галереи картинок и видео.
      2. Для проверки новости с видео.
      3. Для проверки новости с галереей картинок.
      4. Для проверки новости с галереей картинок и видео.

      Можно объединить все в один тест-кейс. Вариантов создания тест-кейсов в данном случае множество.

  6. Татьяна

    Добрый день, хотела у Вас уточнить: Если карточка состоит из нескольких 10-тков полей, то в тест-кейсах прописываем все этим поля отдельной строкой?

    • Захаров Виктор

      Уточните, что вы хотите конкретно написать в шаге.

      • Татьяна

        Например у меня есть на форме несколько полей, сейчас я пишу вот в таком виде(увы таблицу не удалось вставить):

        шаг
        Ввести в поле «Максимальное количество людей на борту» целое числовое значение

        ожидаемый результат:
        В поле «Максимальное количество людей на борту» отражается введенное значение

        шаг:
        Ввести в поле «Максимальная площадь парусов (кв. м)» корректное значение (при необходимости)

        ожидаемый результат:
        В поле «Максимальная площадь парусов (кв. м)» отражается введенное значение

        шаг:
        Выбрать из выпадающего списка значение в поле «Тип двигателя»

        ожидаемый результат:
        В поле «Тип двигателя» отражается выбранное значение

        И так расписываю все поля для заполнения

        • Захаров Виктор

          Вы правильно пишите на мой взгляд.
          Есть вариант, когда пишут всё в одном шаге, когда полей много десятков и шагов столько же:

          Шаг:
          — Ввести в поле «Максимальное количество людей на борту» целое числовое значение.
          — Ввести в поле «Максимальная площадь парусов (кв. м)» корректное значение.
          — Выбрать из выпадающего списка значение в поле «Тип двигателя»

          Результат:
          — В указанных полях отражаются введённые\выбранные данные.

          Вариант выбираете сами в зависимости от того как вам удобно.

        • Евгений

          Я использую иной подход. С оглядкой либо на автоматизцию, либо на исключение нескольких вариантов развития одного кейса. Постораюсь на примерах объяснить.
          *Я всегда использую «предусловие». Если его грамотно использовать, то это позволит убрать лишнюю инфу из конструкции кейса, ну, и вопросы от программиста (с уточнениями)*

          КЕЙС1:
          Предусловие:
          1. Поля с ЗАПОЛНЕНИЕМ значений: поле1, поле2;
          2. Допустимые значения для полей с ЗАПОЛНЕНИЕМ:
          — поле1: целые числовые;
          — поле2: числовые;
          4. Поля с ВЫБОРОМ значений — поле 3;

          Шаги:

          Как указал Виктор.

  7. Татьяна

    Добрый день, позволю себе задать один маленький вопрос: если поле имеет выпадающий список значений и из него нужно выбрать необходимое, как это лучше прописать?
    например: «Выбрать значение из списка» или «Заполнить поле значение из списка»? Спасибо

Добавить комментарий для Захаров Виктор Отменить ответ

Ваш адрес email не будет опубликован.