# Тест-план (Test Plan)

### Содержание:

* [Что такое тест-план?](#what-is-a-test-plan)
* [В чем важность тест-плана?](#importance-of-test-plan)
* [Как написать тест-план?](#how-to-write-a-test-plan)
  * [Анализ продукта](#analyze-the-product)
  * [Разработка стратегии тестирования](#design-the-test-strategy)
    * [Определение объема тестирования](#define-the-test-scope)
    * [Определение видов тестирования](#define-test-types)
    * [Документирование рисков](#risk-documentation)
    * [Создание тестовой логистики](#create-test-logistics)
  * [Определение цели тестирования](#define-test-objectives)
  * [Определение критериев тестирования](#define-test-criteria)
  * [Планирование ресурсов](#resource-planning)
  * [Планирование тестовой среды](#test-environment-planning)
  * [Оценка затрат](#test-estimation)
  * [Результаты тестирования](#shag-8.-rezultaty-testirovaniya)

### Что такое тест-план? <a href="#what-is-a-test-plan" id="what-is-a-test-plan"></a>

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

### В чем важность тест-плана? <a href="#importance-of-test-plan" id="importance-of-test-plan"></a>

Составление тест-плана имеет множество преимуществ:

* Помогает разработчикам, бизнес-менеджерам, заказчикам, понять детали тестирования.
* Тест-план – это как свод правил, которым необходимо следовать в тестировании ПО.
* Оценка затрат, объем и стратегия тестирования документируются в тест-плане.
* Тест-план может быть повторно использован в других проектах.

### Как написать тест-план? <a href="#how-to-write-a-test-plan" id="how-to-write-a-test-plan"></a>

Вы уже знаете, что составление тест-плана является наиболее важной задачей процесса управления тестированием. Чтобы создать этот документ в соответствии с требованиями стандарта [IEEE 829](https://standards.ieee.org/ieee/829/3787/), необходимо выполнить следующие шаги:

1. Проанализировать продукт
2. Разработать стратегию тестирования
3. Определить цели тестирования
4. Определение критерии тестирования
5. Запланировать ресурсы
6. Настроить тестовую среду
7. Распределить задачи
8. Определить результаты тестирования

#### Шаг 1. Анализ продукта <a href="#analyze-the-product" id="analyze-the-product"></a>

Как можно протестировать продукт, не имея о нем никакой информации? Ответ: невозможно. Прежде чем тестировать продукт, его необходимо тщательно изучить.

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

* Кто будет пользоваться сайтом?
* Для чего он нужен?
* Как он будет работать?
* Какие программные/аппаратные средства использует продукт?\
  Для анализа сайта можно использовать следующий подход:

#### Шаг 2. Разработка стратегии тестирования <a href="#design-the-test-strategy" id="design-the-test-strategy"></a>

Разработка стратегии тестирования (Test Strategy) является важнейшим этапом составления тест-плана. Test Strategy – это высокоуровневый документ, который обычно разрабатывается тест-менеджером. В этом документе определяются:

* Цели тестирования и средства их достижения.
* Усилия и затраты на тестирование.

#### Шаг 2.1 Определение объема тестирования <a href="#define-the-test-scope" id="define-the-test-scope"></a>

Перед началом любой тестовой деятельности необходимо определить объем тестирования. Для этого необходимо хорошо продумать следующее:

* Компоненты системы, которые будут протестированы (аппаратное и программное обеспечение, промежуточное ПО и т.д.).
* Компоненты системы, которые не будут тестироваться.

Определение объема тестирования очень важно для всех заинтересованных сторон. **Точное определение объема поможет вам:**

* Дать всем уверенную и точную информацию о проводимом тестировании.
* Все участники проекта будут иметь четкое представление о том, что тестируется, а что нет.

**Для определения объема проекта необходимо учесть следующее:**

* Точные требования заказчика
* Бюджет проекта
* Особенности продукта
* Навыки вашей команды тестировщиков.

#### Шаг 2.2 Определение видов тестирования <a href="#define-test-types" id="define-test-types"></a>

Каждый вид тестирования предназначен для выявления определенного типа ошибок в продукте. Но все виды тестирования направлены на достижение одной общей цели – как можно раньше обнаружить дефекты в ПО.

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

#### Шаг 2.3 Документирование рисков <a href="#risk-documentation" id="risk-documentation"></a>

Риск – это возможное событие в будущем, которое может привести к определенным проблемам.

В тест-плане все риски должны быть задокументированы.

| Риск                                                                                                           | Снижение рисков                                                                                          |
| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| У команды QA нет необходимых навыков для тестирования сайтов.                                                  | Запланируйте учебный курс для повышения квалификации своих сотрудников.                                  |
| График проекта слишком жесткий; трудно завершить проект в срок.                                                | Определите приоритетные виды тестирования для вашего проекта.                                            |
| Тест-менеджер обладает низкими навыками управления.                                                            | Запланировать тренинг по лидерству для менеджера.                                                        |
| Отсутствие сотрудничества между членами команды негативно сказывается на производительности ваших сотрудников. | Поощряйте каждого члена команды в выполнении его задачи и вдохновляйте их на большие достижения.         |
| Неправильная оценка бюджета и перерасходы.                                                                     | Предварительно определите объем работ, тщательно запланируйте проект и постоянно контролируйте прогресс. |

#### Шаг 2.4 Создание тестовой логистики <a href="#create-test-logistics" id="create-test-logistics"></a>

В разделе “Тестовая логистика” тест-менеджер должен ответить на следующие вопросы:

* Кто будет проводить тестирование?
* Когда следует проводить тестирование?

**Кто будет проводить тестирование?**

Вы можете не знать точных имен тестировщиков, которые будут проводить тестирование, но вид тестировщика важно определить.

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

Для эффективного проведения тестирования ПО лучше всего подходят тестировщики, обладающие следующими качествами:

* Способность понимать требования заказчика
* Стремление к качеству
* Внимание к деталям
* Хорошее сотрудничество со всеми членами команды

#### Шаг 3. Определение цели тестирования <a href="#define-test-objectives" id="define-test-objectives"></a>

Цель тестирования – найти как можно больше дефектов в программном обеспечении; убедиться, что тестируемое приложение не содержит ошибок перед релизом.

Для определения целей тестирования необходимо выполнить следующие 2 шага:

1. Перечислить все аспекты ПО (функциональность, производительность, графический интерфейс), которые необходимо протестировать.
2. Определить цель или задачи тестирования на основе вышеперечисленных характеристик.

#### Шаг 4. Определение критериев тестирования <a href="#define-test-criteria" id="define-test-criteria"></a>

Критерии тестирования (Test Criteria) – это стандарт или правило, по которому оцениваются результаты тестирования. Существует 2 типа критериев тестирования:

#### Критерии приостановки (Suspension Criteria)

Определите критерии приостановки тестов. Если они будут выполнены, текущий цикл тестирования будет приостановлен до их устранения.

#### Критерии выхода (Exit Criteria)

Это критерии, свидетельствующие об успешном завершении этапа тестирования. Критерии выхода – это целевые результаты тестирования, которые необходимы для перехода к следующей фазе разработки.

Для определения критериев завершения тестирования используют коэффициент выполнения (run rate) и прохождения тестов(pass rate):

* Run rate – это отношение количества выполненных тест-кейсов к общему количеству. Например, необходимо выполнить 120 тест-кейсов, но тестировщик выполнил только 100, поэтому коэффициент выполнения равен 100/120 = 0,83 (83%).
* Pass rate – это отношение числа пройденных тест-кейсов к выполненным. Например, из 100 выполненных тест-кейсов только 80 прошли, поэтому коэффициент прохождения равен 80/100 = 0,8 (80%).

#### Шаг 5. Планирование ресурсов <a href="#resource-planning" id="resource-planning"></a>

Планирование ресурсов – это подробное описание всех видов ресурсов, необходимых для выполнения задач проекта. Ресурсами могут быть люди, оборудование и материалы, необходимые для успешной реализации проекта.

Планирование ресурсов является важным фактором планирования тестирования, поскольку оно помогает определить количество ресурсов (сотрудников, оборудования…), которые будут задействованы в проекте.

#### Человеческие ресурсы

В следующей таблице представлены различные члены команды тестирования:

| № | Участник                               | Задачи                                                                                                                                                                                                      |
| - | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Тест-менеджер                          | <p>Управление всем проектом.<br>Определение необходимых ресурсов для проекта.</p>                                                                                                                           |
| 2 | Тестировщик                            | <p>Выявление и описание подходящих техник/инструментов/архитектуры автоматизации тестирования.<br>Проверка и оценка подхода к тестированию.<br>Выполнение тестов, запись результатов, отчет о дефектах.</p> |
| 3 | Разработчик в области тестирования     | Написание тест-кейсов, тестового набора и т.д.                                                                                                                                                              |
| 4 | Администратор тестирования             | Создание и обслуживание тестовой среды.                                                                                                                                                                     |
| 5 | Члены SQA (Software Quality Assurance) | <p>Ответственность за обеспечение качества приложения.<br>Проверка соответствия процесса тестирования установленным требованиям.</p>                                                                        |

#### Системные ресурсы

Для тестирования веб-приложения необходимо спланировать ресурсы в соответствии со следующей таблицей:

| № | Ресурсы                 | Описание                                                                                                                                                                                                                                              |
| - | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Сервер                  | <p>Установка тестируемого веб-приложения.<br>Включает в себя отдельный веб-сервер, сервер баз данных и сервер приложений.</p>                                                                                                                         |
| 2 | Инструмент тестирования | <p>Инструмент тестирования предназначен для автоматизации тестирования, имитации работы пользователя, генерации результатов тестов.<br>Существует множество инструментов тестирования, которые можно использовать, например Selenium, QTP… и т.д.</p> |
| 3 | Сеть                    | Вам нужна сеть (LAN и Интернет), чтобы имитировать реальные условия работы приложения.                                                                                                                                                                |
| 4 | Компьютер               | ПК, который пользователи используют для подключения к веб-серверу.                                                                                                                                                                                    |

#### Шаг 6. Планирование тестовой среды <a href="#test-environment-planning" id="test-environment-planning"></a>

#### Что такое тестовая среда?

Тестовая среда – это совокупность программных и аппаратных средств, с помощью которых команда тестировщиков будет выполнять тесты.

#### Как настроить тестовую среду?

Чтобы решить эту задачу, необходимо тесное сотрудничество между командой тестирования и командой разработки.

Для того, чтобы получить четкое представление о тестируемом веб-приложении, следует задать разработчику следующие вопросы:

* Какое максимальное количество пользовательских подключений данный веб-сайт может обрабатывать одновременно?
* Какие характеристики аппаратного и программного обеспечения требуются для установки этого веб-сайта?
* Нужны ли на компьютере пользователя какие-то особые настройки для просмотра сайта?

#### Шаг 7. Оценка затрат <a href="#test-estimation" id="test-estimation"></a>

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

| Задача                      | Участники                               | Оценка усилий      |
| --------------------------- | --------------------------------------- | ------------------ |
| Создание спецификации теста | Разработчик тестов                      | 170 человеко-часов |
| Выполнение тестов           | Тестировщик, администратор тестирования | 80 человеко-часов  |
| Отчет о тестировании        | Тестировщик                             | 10 человеко-часов  |
| Тестовая поставка           |                                         | 20 человеко-часов  |
| Всего                       |                                         | 280 человеко-часов |

Затем составляется график выполнения этих задач.

Составив надежный график проведения тестирования, тест-менеджер может использовать его как инструмент для контроля проекта, управления превышением затрат.

Для этого ему необходимы такие данные, как:

* **Рабочие дни и крайний срок для реализации проекта:** Рабочие дни, сроки выполнения проекта, доступность ресурсов – факторы, влияющие на график.
* **Оценка проекта:** Основываясь на оценке проекта, тест-менеджер знает, сколько времени потребуется для завершения проекта. Таким образом, он может составить соответствующий график проекта.
* **Риски проекта:** Понимание рисков помогает тест-менеджеру добавить в график проекта дополнительное время, чтобы устранить риски.

#### Шаг 8. Результаты тестирования

Результаты тестирования (Test Deliverables) – это список всех документов, инструментов и других компонентов, которые должны быть разработаны и поддерживаться в процессе тестирования.

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

**До начала фазы тестирования:**

* Тест-план.
* Документы с разработанными тест-кейсами.
* Спецификации проектирования теста.

**Во время тестирования:**

* Тестовые сценарии
* Симуляторы.
* Тестовые данные.
* Логи.

**После завершения цикла тестирования:**

* Отчет о дефектах.
* Примечания к релизу.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://qabook.gitbook.io/start/teoriya-testirovaniya/testovaya-dokumentaciya/test-plan-test-plan.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
