> For the complete documentation index, see [llms.txt](https://vladislaveremeev.gitbook.io/qa_bible/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladislaveremeev.gitbook.io/qa_bible/testovaya-dokumentaciya-i-artefakty-test-deliverablestest-artifacts/test-keis-test-case.md).

# Тест-кейс (Test case)

*Тестовый сценарий (test case): Набор входных значений, предусловий выполнения, ожидаемых результатов и постусловий выполнения, разработанный для определенной цели или тестового условия, таких как выполнения определенного пути программы или же для проверки соответствия определенному требованию. (IEEE 610)*

*Тестовый сценарий высокого уровня (high level test case): Тестовый сценарий без конкретных (уровня реализации) значений входных данных и ожидаемых результатов. Использует логические операторы, а экземпляры реальных значений еще не определены и/или доступны. (ISTQB)*

*Тестовый сценарий низкого уровня (low level test case): Тестовый сценарий с конкретными (уровня реализации) значениями входных данных и ожидаемых результатов. Логические операторы из тестовых сценариев высокого уровня заменяются реальными значениями, которые соответствуют целям этих логических операторов. (ISTQB)*

**Test case** (тест-кейс, тестовый пример/случай) - это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или ее части. Более строго - формализованное описание одной показательной проверки на соответствие требованиям прямым или косвенным.

**Содержание тест-кейса**:

* Идентификатор набора тестов (**Test Suite ID**): Идентификатор набора тестов, в которых входит этот кейс;
* Идентификатор тестового кейса (**Test Case ID**): Идентификатор самого кейса;
* Заголовок кейса (**Test Case Summary**): Краткое и емкое название проводимой проверки;
* Связанное требование (**Related Requirement**): Идентификатор требования, к которому относится / отслеживается данный тестовый пример;
* Предварительные условия (**Prerequisites**): Любые предпосылки или предварительные условия, которые должны быть выполнены перед выполнением теста;
* Шаги выполнения (**Test Script / Procedure**): Шаги выполнения теста;
* Тестовые данные (**Test Data**): Тестовые данные или ссылки на тестовые данные, которые должны использоваться при проведении теста;
* Ожидаемый результат (**Expected Result**): результат, который мы ожидаем получить после выполнения шагов теста;
* Статус пройден или не пройден (**Status**): Другие статусы могут быть «Не выполнено», если тестирование не проводится, и «Заблокировано», если тестирование заблокировано;
* Заметки (**Remarks**): Любые комментарии к тесту или выполнению теста;
* Создано (**Created By**): Имя автора тестового примера;
* Дата создания (**Date of Creation**): Дата создания тестового примера (опционально модификации);
* Выполнено (**Executed By**): Имя человека, выполнившего тест;
* Дата выполнения (**Date of Execution**): Дата выполнения теста;
* Тестовое окружение (**Test Environment**): оборудование / программное обеспечение / сеть, в которых выполнялся тест, т.е. все необходимые сведения об окружении, чтобы можно было воспроизвести полученный результат.

В иностранной литературе часто делят кейсы на две категории:

* **Высокоуровневый тест-кейс** (high level test case или logical test case) - тест-кейс без конкретных входных данных и ожидаемых результатов. Как правило, ограничивается общими идеями и операциями, схож по своей сути с подробно описанным пунктом чек-листа. Достаточно часто встречается в интеграционном тестировании и системном тестировании, а также на уровне smoke. Может служить отправной точкой для проведения исследовательского тестирования или для создания низкоуровневых тест-кейсов.
* **Низкоуровневый тест-кейс** (low level test case) - тест-кейс с конкретными входными данными и ожидаемыми результатами. Представляет собой «полностью готовый к выполнению» тест-кейс и вообще является наиболее классическим видом тест-кейсов. Начинающих тестировщиков чаще всего учат писать именно такие тесты, т.к. прописать все данные подробно - намного проще, чем понять, какой информацией можно пренебречь, при этом не снизив ценность тест-кейса.

**Нужно ли вообще писать кейсы?** Ответ тот же, что и для любого документа - если написание кейсов решает определенную задачу и это обоснованно, то писать. Если вы один, не путаетесь в небольшом проекте, пользуетесь чек листами/mind map/.., можете и без TMS/test runs reports наглядно предоставлять актуальные сведения о протестированности/качестве заинтересованным лицам, то не писать.

**Может ли быть несколько ожидаемых результатов?** Может, если это необходимо, но сразу после каждого шага.

**Можно ли объединять позитивные и негативные тест-кейсы?** Позитивные можно, негативные нельзя, поскольку сложно будет понять, что именно влияет на результат.

Источники:

* [Test Case](https://softwaretestingfundamentals.com/test-case/)

Доп. материал:

* [Тест-кейсы: полная лекция из ШНАТ](https://www.youtube.com/watch?v=0xuOOlhb5SQ)
* [Тест-кейсы по полочкам - как в библиотеке! Наводим порядок в структуре и содержании тестовой документации](https://habr.com/ru/company/lenta_utkonos_tech/blog/668968)
* [Составление тест-кейсов](https://www.youtube.com/watch?v=VG8hAQjxAkI)
* [12 характеристик высокоэффективных тестов](https://software-testing.ru/library/testing/test-analysis/3495-12-traits-of-highly-effective-tests)
* [Blog: Evaluating Test Cases, Checks, and Tools](https://www.developsense.com/blog/2021/04/evaluating-test-cases-checks-and-tools/)
* [How to write Test Cases for a Login Page](https://www.softwaretestingmaterial.com/test-scenarios-login-page/)
* [Как писать тест-кейсы: полное руководство](https://testengineer.ru/kak-pisat-test-kejsy-polnoe-rukovodstvo/)
* [Основные методики создания тест-кейсов](https://testengineer.ru/osnovnye-metodiki-sozdaniya-test-kejsov/)
* [Вложил в тест-кейс аттач? Поясни его!](https://okiseleva.blogspot.com/2018/11/blog-post_23.html)
* [Результат в тест-кейсе - один или много?](https://okiseleva.blogspot.com/2020/05/blog-post_14.html)
* [Правила написания предварительных шагов в тест-кейсах](https://okiseleva.blogspot.com/2019/12/blog-post_24.html)
* [Название тест-кейса - как оформлять](https://okiseleva.blogspot.com/2020/12/blog-post_17.html)
* [5 атрибутов хорошего тест-кейса. Правила написания тест-кейсов. Тест-кейсы в TestRail.](https://www.youtube.com/watch?v=S4UyfH_QNec)
* Примеры: [раз](https://drive.google.com/uc?export=download\&id=0ByI5-ZLwpo25eXFlcU5ZMTJsT28), [два](https://www.softwaretestingmaterial.com/wp-content/uploads/2016/02/Sample-Test-Case-Template-1.png)
