Ссылка на Хабр (там с оглавлением)
Тест-кейс — это подробное описание проверки. Такое, которое можно будет дать человеку с улицы и он все поймет. В тест-кейсе есть название, предварительные шаги, шаги и результат. И куча других примочек, которые будут зависеть от стандартов оформления на вашей работе. В этой статье я хочу поговорить о предварительных шагах.
См также:
Что такое тест-кейс и как его писать — подробнее о тест-кейсах
Предварительные шаги — это все то, что поможет нам пройти тест-кейс, но прямого отношения к текущему тесту не имеет. Например, регистрация.
Скажем, чтобы поставить лайк под фото, мне нужно войти в систему. Вот чтобы я смогла войти в систему, мне сначала надо зарегистрироваться, если я не делала этого раньше. Но, если я подготовилась заранее, этот предварительный шаг можно выкинуть.
Это как когда готовишь. Скажем, шарлотку
Предварительные шаги
Шаги
Ожидаемый результат
Фишка в чем? Если у меня уже есть яйца, я могу их не покупать. Но взбивать их мне все равно придется. Даже если я неделю назад взбивала яйца с сахаром, я не могу их взять сейчас (они же уже протухли!). То есть шаги я выкинуть не могу, сделав их заранее. А вот предварительные — вполне.
Также и в ИТ мире. Не надо радостно перетаскивать в предварительные шаги вообще все.
Например:
Что? Какая кнопка? Где мне ее искать? На рабочем столе? Шаги должны быть независимыми. Если говорить про веб-сайт, я должна открыть новую вкладку в режиме инкогнито и там пройтись по всем шагам и у меня все получится. Поэтому выкидывать ссылку на сайт в предварительные шаги не надо, она важна для выполнения теста.
А вот если я уже заранее зарегистрировалась, то хоть в новой вкладке, хоть в новом окне открою все и пройдусь по шагам. Авторизация то будет работать, если вы укажете, под кем входить. А регистрация прямого отношения к тесту не имеет.
Какие еще могут быть предварительные шаги? Посмотрим на примере Дадаты. Тестируем функционал обработки файла. Он доступен только авторизованному пользователю → надо зарегистрироваться. И он небесплатный → нужно пополнить баланс. И, конечно, у нас должен быть на руках файл для загрузки.
Регистрация на сайте, пополнение баланса и подготовка файлов — предварительные шаги, они не имеют прямого отношения к тесту загрузки файла, это так, подготовка. Как они будут выглядеть? Допустим, мы хотим обработать файл-образец (есть такой в системе)
На что обратить внимание при написании предварительных шагов? Давайте разберемся с правилами их написания.
Повелительное наклонение неприятно читать: пойди, открой, сделай, нажми. Фи.
Превращаем в нейтральные глаголы: пойти, открыть, сделать, нажать…
Все предложения должны быть в едином стиле, а то читаешь потом такой текст и недоумеваешь:
Странно же, правда?
Приведем в порядок:
Или
Оба варианта имеют право на существование, тут уж кому как больше нравится — существительное или глагол.
Так как предварительные шаги прямого отношения к тесту не имеют → мы не расписываем их подробно. Если надо уточнить, как выполнить действие, дайте ссылку на другой кейс:
Только помните, зачем делается отсылка на другой тест → чтобы, если у нас что-то поменяется в том действии (например, в регистрации), чтобы мы изменили это в ОДНОМ месте, в ОДНОМ тесте, а не в 100500.
Поэтому не надо писать «Зарегистрироваться в системе: зайти по ссылке А, нажать кнопку «Регистрация» в правом верхнем углу сайта, ввести в поле «имя» такое-то значение…». Завтра название кнопки изменится, вы во всех кейсах будете исправлять? А зачем?
Вот у нас в Дадате студенты пишут тест-кейсы на загрузку и обработку файлов. Чтобы им было проще, первый тест-кейс тренер сделал сам. Тест-кейс — на обработку файла-образца. Того, который система предоставляет для демонстрации своих возможностей.
Предварительные шаги выглядят так:
А потом студент тестирует, скажем, обработку файла в формате CSV. Угадайте с трех раз, как выглядят его предварительные шаги? Правильно!
Вот и как я тут должна понять, что за файл я должна скачать? В формате CSV? С одной строкой и одной колонкой, с 10000 колонок? С разным форматом дат рождения? С весом в 5 Мб? Какой? ЧТО именно тестируется?
Некоторые студенты учитывают этот момент и пишут так:
Но тут возникает новый вопрос — откуда скачать? Из тест-линка, внутри которого написан тест? Из какого-то общего хранилища? И что это за тест-кейс такой магический на скачивание файла, на который идет отсылка? Это ведь явная копипаста из примера. Там написано «тест-кейс на скачивание», значит, и я также напишу!
Почему в моем примере написано «скачать»? Потому что файл-образец в системе уже есть! И если мы хотим его протестировать, нам надо именно скачать то, что находится по ссылке «образец», а не какой-то свой прошлогодний файл в систему запихивать. Иначе какой смысл в этом тесте?
Отдельный тест-кейс на скачивание образца тоже сделан не просто так. Ведь нам надо убедиться в том, что по ссылке «образец» скачивается ровно то, что нам нужно. Что написано в ТЗ. Ведь в образце не какие-то абстрактные данные, они подобраны специальным образом, чтобы что-то показать, какие-то возможности системы.
Отдельный тест-кейс на скачивание образца:
А еще на него можно сослаться в предварительных шагах других тестов. Там, где нам не важно, какой именно файл грузить — когда мы тестируем работу системы с разным исходным балансом (денег хватает на обработку / не хватает), исключение столбцов (в дадате есть такой функционал, чтобы не обрабатывать лишнего), или что-то другое.
В этом случае нам не важно наполнение файла. Мы просто хотим загрузить точно-работающий файл. И образец в этом случае идеален! Ведь если система не в состоянии обработать собственный образец — какое к ней может быть доверие? Тест на обработку образца идет первым в приоритете тестировщика.
А дальше мы уже исследуем, как реагирует система на разные форматы, разный вес, разное количество столбцов и колонок... И для этих тестов файлы придется готовить самостоятельно. Скачать то неоткуда!
Поэтому в предварительных шагах мы пишем о том, какой именно файл надо подготовить. Так и пишем: «Подготовить такой-то файл, см пример в аттаче».
Заметьте, как описан подготовительный шаг — мы готовим файл. Не скачиваем аттач, а готовим файл. И написано, что это за файл — вдруг аттач испарится завтра, случайно удалим? Все равно понятно, какой именно файл надо готовить )
А еще аттач может устареть — изменили функционал системы, файлы в старом формате уже не грузятся. Но если описано, ЧТО это за файл, тестировщик сможет его обновить!
«Кратко, но емко!» — главное правило оформления текстов. Будь то баг-репорт, тест-кейс или письмо Заказчику.
Текст ради текста всегда выкидываем. Сравните:
Что лучше? Лучше первый вариант, так как там меньше текста. У нас ведь все тесты на сайт https://www.example.com/, зачем тогда лишний раз писать ссылку? Тем более что потом придется продублировать ее в основных шагах.
А если разработчик решит поменять URL ссылки? Зачем нам вносить лишние правки? Когда надо поменять в 10 местах, всегда есть шанс хоть одно продолбать → а в итоге у нас будет неактуальная тестовая документация.
Мы потому и выносим регистрацию в предварительные шаги. Чтобы не исправлять сотни кейсов, если что-то изменится. Поправить в одном месте, в одном кейсе.
Ок, а если выбирать из таких вариантов, что будет лучше? Подумайте сами, прежде чем прочитать ответ:
Правильный ответ — все зависит от контекста. Если нам важно зарегистрироваться именно с таким именем (проверяем женские имена, или имена с апострофом, или что-то еще) — это нужно указать в предварительном шаге с регистрацией.
А если нам неважно, будет email «xxx@gmail.com» или «olala@gmail.com» — зачем об этом писать? Если я умею регистрироваться, я как-нибудь справлюсь с придумыванием email. Если не умею — пойду в тест-кейс регистрации и пройду по нему.
Поэтому, если нам важен сам факт регистрации, будет лучше вариант 1. Если важны данные — вариант 2.
Не надо высасывать их из пальца там, где они не нужны. Именно так и получаются тесты, в которых просто отсекли первые 2-3 шага и запихали в раздел «предварительные шаги» непонятно зачем.
Предварительные шаги — это все то, что поможет нам пройти тест-кейс, но прямого отношения к текущему тесту не имеет. Например, регистрация в системе. Или покупка ингредиентов для шарлотки =)
Правила описания предварительных шагов:
См также:
Что такое тест-кейс и как его писать — подробнее о тест-кейсах
PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь студентам моей школы для тестировщиков
Тест-кейс — это подробное описание проверки. Такое, которое можно будет дать человеку с улицы и он все поймет. В тест-кейсе есть название, предварительные шаги, шаги и результат. И куча других примочек, которые будут зависеть от стандартов оформления на вашей работе. В этой статье я хочу поговорить о предварительных шагах.
См также:
Что такое тест-кейс и как его писать — подробнее о тест-кейсах
Предварительные шаги — это все то, что поможет нам пройти тест-кейс, но прямого отношения к текущему тесту не имеет. Например, регистрация.
Скажем, чтобы поставить лайк под фото, мне нужно войти в систему. Вот чтобы я смогла войти в систему, мне сначала надо зарегистрироваться, если я не делала этого раньше. Но, если я подготовилась заранее, этот предварительный шаг можно выкинуть.
Это как когда готовишь. Скажем, шарлотку
Шарлотка
Предварительные шаги
Сходить в магазин и купить:
|
Шаги
|
Ожидаемый результат
Вкусная шарлотка! Которую родные уминают за 5 минут. |
Фишка в чем? Если у меня уже есть яйца, я могу их не покупать. Но взбивать их мне все равно придется. Даже если я неделю назад взбивала яйца с сахаром, я не могу их взять сейчас (они же уже протухли!). То есть шаги я выкинуть не могу, сделав их заранее. А вот предварительные — вполне.
Также и в ИТ мире. Не надо радостно перетаскивать в предварительные шаги вообще все.
Например:
Предварительные шаги
Открыть сайт https://www.example.com/
Шаги
Кликнуть на кнопку «Войти»…
Что? Какая кнопка? Где мне ее искать? На рабочем столе? Шаги должны быть независимыми. Если говорить про веб-сайт, я должна открыть новую вкладку в режиме инкогнито и там пройтись по всем шагам и у меня все получится. Поэтому выкидывать ссылку на сайт в предварительные шаги не надо, она важна для выполнения теста.
А вот если я уже заранее зарегистрировалась, то хоть в новой вкладке, хоть в новом окне открою все и пройдусь по шагам. Авторизация то будет работать, если вы укажете, под кем входить. А регистрация прямого отношения к тесту не имеет.
Какие еще могут быть предварительные шаги? Посмотрим на примере Дадаты. Тестируем функционал обработки файла. Он доступен только авторизованному пользователю → надо зарегистрироваться. И он небесплатный → нужно пополнить баланс. И, конечно, у нас должен быть на руках файл для загрузки.
Регистрация на сайте, пополнение баланса и подготовка файлов — предварительные шаги, они не имеют прямого отношения к тесту загрузки файла, это так, подготовка. Как они будут выглядеть? Допустим, мы хотим обработать файл-образец (есть такой в системе)
Предварительные шаги
- Зарегистрироваться (см. тест-кейс "Регистрация").
- Пополнить баланс (см. тест-кейс "Пополнение баланса").
- Скачать файл-образец (см. тест-кейс "Скачивание файла-образца")
На что обратить внимание при написании предварительных шагов? Давайте разберемся с правилами их написания.
1. Писать нужно обезличено
Повелительное наклонение неприятно читать: пойди, открой, сделай, нажми. Фи.
Превращаем в нейтральные глаголы: пойти, открыть, сделать, нажать…
2. Писать нужно в едином стиле
Все предложения должны быть в едином стиле, а то читаешь потом такой текст и недоумеваешь:
- Регистрация
- Пополни баланс
- Скачать файл-образец
Странно же, правда?
Приведем в порядок:
- Регистрация
- Пополнение баланса
- Скачивание файла-образца
Или
- Зарегистрироваться
- Пополнить баланс
- Скачать файл-образец
Оба варианта имеют право на существование, тут уж кому как больше нравится — существительное или глагол.
3. Можно ссылаться на другие тест-кейсы
Так как предварительные шаги прямого отношения к тесту не имеют → мы не расписываем их подробно. Если надо уточнить, как выполнить действие, дайте ссылку на другой кейс:
Зарегистрироваться с именем «Д`Артаньян» (см. тест-кейс "Регистрация").
↓
Зарегистрируйся с таким-то именем. Если не знаешь как — welcome to тест-кейс регистрации.
Только помните, зачем делается отсылка на другой тест → чтобы, если у нас что-то поменяется в том действии (например, в регистрации), чтобы мы изменили это в ОДНОМ месте, в ОДНОМ тесте, а не в 100500.
Поэтому не надо писать «Зарегистрироваться в системе: зайти по ссылке А, нажать кнопку «Регистрация» в правом верхнем углу сайта, ввести в поле «имя» такое-то значение…». Завтра название кнопки изменится, вы во всех кейсах будете исправлять? А зачем?
4. Но не доходя до маразма ツ
Вот у нас в Дадате студенты пишут тест-кейсы на загрузку и обработку файлов. Чтобы им было проще, первый тест-кейс тренер сделал сам. Тест-кейс — на обработку файла-образца. Того, который система предоставляет для демонстрации своих возможностей.
Предварительные шаги выглядят так:
Предварительные шаги
- Зарегистрироваться (см. тест-кейс "Регистрация").
- Пополнить баланс (см. тест-кейс "Пополнение баланса").
- Скачать файл-образец (см. тест-кейс "Скачивание файла-образца")
А потом студент тестирует, скажем, обработку файла в формате CSV. Угадайте с трех раз, как выглядят его предварительные шаги? Правильно!
Предварительные шаги
- Зарегистрироваться (см. тест-кейс "Регистрация").
- Пополнить баланс (см. тест-кейс "Пополнение баланса").
- Скачать файл «Клиенты» (см. тест-кейс "Скачивание файла")
Вот и как я тут должна понять, что за файл я должна скачать? В формате CSV? С одной строкой и одной колонкой, с 10000 колонок? С разным форматом дат рождения? С весом в 5 Мб? Какой? ЧТО именно тестируется?
Некоторые студенты учитывают этот момент и пишут так:
- Скачать файл формата CSV (см. тест-кейс "Скачивание файла")
Но тут возникает новый вопрос — откуда скачать? Из тест-линка, внутри которого написан тест? Из какого-то общего хранилища? И что это за тест-кейс такой магический на скачивание файла, на который идет отсылка? Это ведь явная копипаста из примера. Там написано «тест-кейс на скачивание», значит, и я также напишу!
Почему в моем примере написано «скачать»? Потому что файл-образец в системе уже есть! И если мы хотим его протестировать, нам надо именно скачать то, что находится по ссылке «образец», а не какой-то свой прошлогодний файл в систему запихивать. Иначе какой смысл в этом тесте?
Отдельный тест-кейс на скачивание образца тоже сделан не просто так. Ведь нам надо убедиться в том, что по ссылке «образец» скачивается ровно то, что нам нужно. Что написано в ТЗ. Ведь в образце не какие-то абстрактные данные, они подобраны специальным образом, чтобы что-то показать, какие-то возможности системы.
Отдельный тест-кейс на скачивание образца:
- Проверяет, что файл реально скачивается (а то будет big fail).
- Проверяет, что внутри файла лежат правильные данные.
А еще на него можно сослаться в предварительных шагах других тестов. Там, где нам не важно, какой именно файл грузить — когда мы тестируем работу системы с разным исходным балансом (денег хватает на обработку / не хватает), исключение столбцов (в дадате есть такой функционал, чтобы не обрабатывать лишнего), или что-то другое.
В этом случае нам не важно наполнение файла. Мы просто хотим загрузить точно-работающий файл. И образец в этом случае идеален! Ведь если система не в состоянии обработать собственный образец — какое к ней может быть доверие? Тест на обработку образца идет первым в приоритете тестировщика.
А дальше мы уже исследуем, как реагирует система на разные форматы, разный вес, разное количество столбцов и колонок... И для этих тестов файлы придется готовить самостоятельно. Скачать то неоткуда!
Поэтому в предварительных шагах мы пишем о том, какой именно файл надо подготовить. Так и пишем: «Подготовить такой-то файл, см пример в аттаче».
Подготовить файл формата doc с данными из файла-примера (см аттач «Пример.doc»)
Подготовить файл с разными форматами дат рождения (см аттач «Даты рождения.xls»)
Подготовить файл картинкой внутри вместо текста (см аттач «Картинка. xls»)Еще раз: не скачать. Подготовить. И никаких отсылок на мифический тест-кейс «Скачивание файла», что это за тест-кейс? Что он проверят в рамках нашей системы? И зачем нам на каждый тест-кейс писать отдельный тест-кейс на подготовку файла? Просто чтобы сослаться ради ссылки? Не надо.
Заметьте, как описан подготовительный шаг — мы готовим файл. Не скачиваем аттач, а готовим файл. И написано, что это за файл — вдруг аттач испарится завтра, случайно удалим? Все равно понятно, какой именно файл надо готовить )
А еще аттач может устареть — изменили функционал системы, файлы в старом формате уже не грузятся. Но если описано, ЧТО это за файл, тестировщик сможет его обновить!
5. Выкидывайте текст ради текста
«Кратко, но емко!» — главное правило оформления текстов. Будь то баг-репорт, тест-кейс или письмо Заказчику.
Текст ради текста всегда выкидываем. Сравните:
- Зарегистрироваться (см. тест-кейс "Регистрация").
- Зарегистрироваться на сайте https://www.example.com/ (см. тест-кейс "Регистрация").
Что лучше? Лучше первый вариант, так как там меньше текста. У нас ведь все тесты на сайт https://www.example.com/, зачем тогда лишний раз писать ссылку? Тем более что потом придется продублировать ее в основных шагах.
А если разработчик решит поменять URL ссылки? Зачем нам вносить лишние правки? Когда надо поменять в 10 местах, всегда есть шанс хоть одно продолбать → а в итоге у нас будет неактуальная тестовая документация.
Мы потому и выносим регистрацию в предварительные шаги. Чтобы не исправлять сотни кейсов, если что-то изменится. Поправить в одном месте, в одном кейсе.
Ок, а если выбирать из таких вариантов, что будет лучше? Подумайте сами, прежде чем прочитать ответ:
- Зарегистрироваться (см. тест-кейс "Регистрация").
- Зарегистрироваться с именем Ольга и email xxx@gmail.com (см. тест-кейс "Регистрация")
Правильный ответ — все зависит от контекста. Если нам важно зарегистрироваться именно с таким именем (проверяем женские имена, или имена с апострофом, или что-то еще) — это нужно указать в предварительном шаге с регистрацией.
А если нам неважно, будет email «xxx@gmail.com» или «olala@gmail.com» — зачем об этом писать? Если я умею регистрироваться, я как-нибудь справлюсь с придумыванием email. Если не умею — пойду в тест-кейс регистрации и пройду по нему.
Поэтому, если нам важен сам факт регистрации, будет лучше вариант 1. Если важны данные — вариант 2.
6. Предварительных шагов может и не быть — это нормально
Не надо высасывать их из пальца там, где они не нужны. Именно так и получаются тесты, в которых просто отсекли первые 2-3 шага и запихали в раздел «предварительные шаги» непонятно зачем.
Предварительные шаги
Шаги
- Открыть сайт https://www.example.com/
- Нажать на кнопку «Войти»
Ввести логин такой-то, пароль сякой-то
↓
Шаги
- Открыть сайт https://www.example.com/
- Нажать на кнопку «Войти»
- Ввести логин такой-то, пароль сякой-то
Итого
Предварительные шаги — это все то, что поможет нам пройти тест-кейс, но прямого отношения к текущему тесту не имеет. Например, регистрация в системе. Или покупка ингредиентов для шарлотки =)
Правила описания предварительных шагов:
- Писать обезличенно — так приятнее читать, чем в повелительном наклонении
- Писать в одном стиле — а не «то глагол, то существительное»: то «регистрация», то «зарегистрироваться»
- Ссылаться на другие тесты можно — в шагах не стоит (чтобы они были независимые), а тут можно. Но без маразма типа «скачать файл, см тест-кейс такой-то», и отдельный тест-кейс на подготовку файла...
- Выкидывать лишнее нужно — кратко, но емко! Копипасту убираем, лишний текст тоже
- Предварительных шагов может и не быть — это нормально. Не стоит высасывать их из пальца просто потому, что «они должны быть!»
См также:
Что такое тест-кейс и как его писать — подробнее о тест-кейсах
PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь студентам моей школы для тестировщиков
У себя в кровавом мы выработали следующее правило
ОтветитьУдалитьВсе пишется в совершенном виде: пошел, открыл, сделал, нажад…
Как показало практика, такое написание в разы снижает сопротивление
Ага, тоже вариант!
УдалитьОтличная статья, спасибо!
ОтветитьУдалитьСпасибо за фидбек)
УдалитьСпасибо, так подробно!!!!
ОтветитьУдалитьНе за что :))
УдалитьЗдравствуйте, обратите пожалуйста внимание на фразу :
ОтветитьУдалитьА дальше мы уже исследуем, как реагирует система на разные форматы, разный вес, разное количество столбоц и колонок... И для этих тестов файлы придется готовить самостоятельно. Скачать то неоткуда!
Обратила, что дальше?)
УдалитьстолбОЦ
УдалитьТак баг-репорт уже выглядит лучше) Исправила, спасибо
УдалитьОльга, спасибо большое за статью!
ОтветитьУдалитьТолько зачем мы молоко покупаем, если не используем его?
Чтобы запивать! :)
УдалитьДобрый день, возник вопрос, вот например регистрация в системе это предварительный шаг, авторизация в системе основной, потому что без него мы не сможем скажем отправить отчет из системы (предположим что наша цель отправить отчет из некой системы). Вопрос, мы тестируем отправку отчета , мы пишем тест-кейс, нам предварительно нужно в нее зайти - в шагах пишем зайти на такой-то сайт, войти, и далее уже шаги по отправке отчета, нужно ли в данном случае писать в Предварительных шагах "Регистрация в системе см. такой-то тест-кейс", или же нет?
ОтветитьУдалитьТо есть когда мы тестируем функционал веб-приложения, не связанный напрямую с регистрацией, но подразумевающий вход перед выполнением основных задач - то мы сами прописываем в предварительном шаге пользователю логин с паролем (как например в книге Савина в setup and add info), или даем ссылку на тест-кейс регистрации, или же подразумеваем что у него уже есть логин и пароль, чтобы выполнить последующие действия? Спасибо за ответ :)
УдалитьНужно, конечно. Ведь без регистрации вы свой тест-кейс не выполните, а тест-кейс должен быть подробным, чтобы мы могли выполнить его с нуля
Удалить