Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 881
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Функции, без которых существование приложения теряет смысл
Сначала приведём целиком весь чек-лист для дымового тестирования, а по- том разберём его подробнее.
• Конфигурирование и запуск.
• Обработка файлов:
Форматы входных файлов
TXT
HTML
MD
Кодировки входных фай- лов
WIN1251
+
+
+
CP866
+
+
+
KOI8R
+
+
+
• Остановка.
Да, и всё. Здесь перечислены все ключевые функции приложения.
Конфигурирование и запуск. Если приложение невозможно настроить для работы в пользовательской среде, оно бесполезно. Если приложение не запуска- ется, оно бесполезно. Если на стадии запуска возникают проблемы, они могут нега- тивно отразиться на функционировании приложения и потому также заслуживают пристального внимания.
Примечание: в нашем примере мы столкнулись со скорее нетипичным слу- чаем — приложение конфигурируется параметрами командной строки, а потому разделить операции «конфигурирования» и «запуска» не представляется возмож- ным; в реальной жизни для подавляющего большинства приложений эти операции выполняются раздельно.
Обработка файлов. Ради этого приложение и разрабатывалось, потому здесь даже на стадии создания чек-листа мы не поленились создать матрицу, от- ражающую все возможные комбинации допустимых форматов и допустимых коди- ровок входных файлов, чтобы ничего не забыть и подчеркнуть важность соответ- ствующих проверок.
Остановка. С точки зрения пользователя эта функция может не казаться столь уж важной, но остановка (и запуск) любого приложения связаны с большим количеством системных операций, проблемы с которыми могут привести к множе- ству серьёзных последствий (вплоть до невозможности повторного запуска прило- жения или нарушения работы операционной системы).
Функции, востребованные большинством пользователей
Следующим шагом мы будем выполнять проверку того, как приложение ве- дёт себя в обычной повседневной жизни, пока не затрагивая экзотические ситуа- ции. Очень частым вопросом является допустимость дублирования проверок на
Чек-лист
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 118/301 разных уровнях функционального тестирования
{79}
— можно ли так делать. Одно- временно и «нет», и «да». «Нет» в том смысле, что не допускается (не имеет смысла) повторение тех же проверок, которые только что были выполнены. «Да» в том смысле, что любую проверку можно детализировать и снабдить дополнитель- ными деталями.
• Конфигурирование и запуск: o
С верными параметрами:
▪
Значения SOURCE_DIR, DESTINATION_DIR, LOG_FILE_NAME указаны и содержат пробелы и кириллические символы (повто- рить для форматов путей в Windows и *nix файловых системах, обратить внимание на имена логических дисков и разделители имён каталогов (“/” и “\”)).
▪
Значение LOG_FILE_NAME не указано. o
Без параметров. o
С недостаточным количеством параметров. o
С неверными параметрами:
▪
Недопустимый путь SOURCE_DIR.
▪
Недопустимый путь DESTINATION_DIR.
▪
Недопустимое имя LOG_FILE_NAME.
▪ DESTINATION_DIR находится внутри SOURCE_DIR.
▪
Значения DESTINATION_DIR и SOURCE_DIR совпадают.
• Обработка файлов: o
Разные форматы, кодировки и размеры:
Форматы входных файлов
TXT
HTML
MD
Кодировки входных фай- лов
WIN1251 100
КБ
50 МБ
10
МБ
CP866 10 МБ
100 КБ
50 МБ
KOI8R
50 МБ
10 МБ
100 КБ
Любая
0 байт
Любая
50 МБ + 1 Б
50 МБ + 1 Б
50 МБ + 1 Б
-
Любой недопустимый формат
Любая
Повреждения в допустимом формате o
Недоступные входные файлы:
▪
Нет прав доступа.
▪
Файл открыт и заблокирован.
▪
Файл с атрибутом «только для чтения».
• Остановка: o
Закрытием окна консоли.
• Журнал работы приложения: o
Автоматическое создание (при отсутствии журнала). o
Продолжение (дополнение журнала) при повторных запусках.
• Производительность: o
Элементарный тест с грубой оценкой.
Обратите внимание, что чек-лист может содержать не только «предельно сжатые тезисы», но и вполне развёрнутые комментарии, если это необходимо — лучше пояснить суть идеи подробнее, чем потом гадать, что же имелось в виду.
Также обратите внимание, что многие пункты чек-листа носят весьма высо- коуровневый характер, и это нормально. Например, «повреждения в допустимом формате» (см. матрицу с кодировками, форматами и размерами) звучит расплыв- чато, но этот недочёт будет устранён уже на уровне полноценных тест-кейсов.
Чек-лист
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 119/301
Остальные функции и особые сценарии
Пришло время обратить внимание на разнообразные мелочи и хитрые ню- ансы, проблемы с которыми едва ли сильно озаботят пользователя, но формально всё же будут считать ошибками.
• Конфигурирование и запуск: o
Значения SOURCE_DIR, DESTINATION_DIR, LOG_FILE_NAME:
▪
В разных стилях (Windows-пути + *nix-пути) — одно в одном стиле, другое — в другом.
▪
С использованием UNC-имён.
▪ LOG_FILE_NAME внутри SOURCE_DIR.
▪ LOG_FILE_NAME внутри DESTINATION_DIR. o
Размер LOG_FILE_NAME на момент запуска:
▪ 2
–4 ГБ.
▪ 4+
ГБ. o
Запуск двух и более копий приложения с:
▪
Одинаковыми параметрами SOURCE_DIR, DESTINATION_DIR,
LOG_FILE_NAME.
▪
Одинаковыми SOURCE_DIR и LOG_FILE_NAME, но разными
DESTINATION_DIR.
▪
Одинаковыми DESTINATION_DIR и LOG_FILE_NAME, но раз- ными SOURCE_DIR.
• Обработка файлов: o
Файл верного формата, в котором текст представлен в двух и более поддерживаемых кодировках одновременно. o
Размер входного файла:
▪ 2
–4 ГБ.
▪ 4+
ГБ.
Задание 2.4.b: возможно, вам захотелось что-то изменить в приведённых выше чек-листах — это совершенно нормально и справедливо: нет и не может быть некоего «единственно верного идеального чек-листа», и ваши идеи вполне имеют право на существование, потому составьте свой соб- ственный чек-лист или отметьте недостатки, которые вы заметили в при- ведённом выше чек-листе.
Как мы увидим в следующей главе, создание качественного тест-кейса может потребовать длительной кропотливой и достаточно монотонной работы, которая при этом не требует от опытного тестировщика сильных интеллектуальных усилий, а потому переключение между работой над чек-листами (творческая составляю- щая) и расписыванием их в тест-кейсы (механическая составляющая) позволяет разнообразить рабочий процесс и снизить утомляемость. Хотя, конечно, написание сложных и притом качественных тест-кейсов может оказаться ничуть не менее творческой работой, чем продумывание чек-листов.
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 120/301
2.4.2.
Тест-кейс и его жизненный цикл
Терминология и общие сведения
Для начала определимся с терминологией, поскольку здесь есть много пута- ницы, вызванной разными переводами англоязычных терминов на русский язык и разными традициями в тех или иных странах, фирмах и отдельных командах.
Во главе всего лежит термин «тест». Официальное определение звучит так.
Тест (test
286
)
— набор из одного или нескольких тест-кейсов.
Поскольку среди всех прочих терминов этот легче и быстрее всего произно- сить, в зависимости от контекста под ним могут понимать и отдельный пункт чек- листа, и отдельный шаг в тест-кейсе, и сам тест-кейс, и набор тест-кейсов и… про- должать можно долго. Главное здесь одно: если вы слышите или видите слово
«тест», воспринимайте его в контексте.
Теперь рассмотрим самый главный для нас термин — «тест-кейс».
Тест-кейс (test case
287
)
— набор входных данных, условий выполнения и ожидаемых результатов, разработанный с целью проверки того или иного свойства или поведения программного средства.
Под тест-кейсом также может пониматься соответствующий документ, представляющий формальную запись тест-кейса.
Мы ещё вернёмся к этой мысли
{152}
, но уже сейчас критически важно понять и запомнить: если у тест-кейса не указаны входные данные, условия выполнения и ожидаемые результаты, и/или не ясна цель тест-кейса — это плохой тест-кейс (ино- гда он не имеет смысла, иногда его и вовсе невозможно выполнить).
Примечание: иногда термин «test case» на русский язык переводят как «те- стовый случай». Это вполне адекватный перевод, но из-за того, что «тест-кейс» ко- роче произносить, наибольшее распространение получил именно этот вариант.
Остальные термины, связанные с тестами, тест-кейсами и тестовыми сце- нариями, на данном этапе можно прочитать просто в ознакомительных це- лях. Если вы откроете ISTQB-глоссарий на букву «T», вы увидите огром- ное количество терминов, тесно связанных друг с другом перекрёстными ссылками: на начальном этапе изучения тестирования нет необходимости глубоко рассматривать их все, однако некоторые всё же заслуживают вни- мания. Они представлены ниже.
Высокоуровневый тест-кейс (high level test case
288
)
— тест-кейс без кон- кретных входных данных и ожидаемых результатов.
Как правило, ограничивается общими идеями и операциями, схож по своей сути с подробно описанным пунктом чек-листа. Достаточно часто встречается в ин- теграционном тестировании
{77}
и системном тестировании
{78}
, а также на уровне ды- мового тестирования
{79}
. Может служить отправной точкой для проведения исследо- вательского тестирования
{85}
или для создания низкоуровневых тест-кейсов.
286
Test. A set of one or more test cases. [ISTQB Glossary]
287
Test case. A set of input values, execution preconditions, expected results and execution postconditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement.
[ISTQB Glossary]
288
High level test case (logical test case). A test case without concrete (implementation level) values for input data and expected results. Logical operators are used; instances of the actual values are not yet defined and/or available. [ISTQB Glossary]
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 121/301
Низкоуровневый тест-кейс (low level test case
289
)
— тест-кейс с конкретными входными данными и ожидаемыми результатами.
Представляет собой «полностью готовый к выполнению» тест-кейс и вообще является наиболее классическим видом тест-кейсов. Начинающих тестировщиков чаще всего учат писать именно такие тесты, т.к. прописать все данные подробно — намного проще, чем понять, какой информацией можно пренебречь, при этом не снизив ценность тест-кейса.
Спецификация тест-кейса (test case specification
290
)
— документ, описываю- щий набор тест-кейсов (включая их цели, входные данные, условия и шаги выпол- нения, ожидаемые результаты) для тестируемого элемента (test item
291
, test ob- ject
292
).
Спецификация теста (test specification
293
)
— документ, состоящий из специ- фикации тест-дизайна (test design specification
294
), спецификации тест-кейса (test case specification
290
) и/или спецификации тест-процедуры (test procedure specifica- tion
295
).
Тест-сценарий (test scenario
296
, test procedure specification, test script)
— до- кумент, описывающий последовательность действий по выполнению теста (также известен как «тест-скрипт»).
Внимание! Из-за особенностей перевода очень часто под термином «тест- сценарий» («тестовый сценарий») имеют в виду набор тест-кейсов
{146}
Цель написания тест-кейсов
Тестирование можно проводить и без тест-кейсов (не нужно, но можно; да, эффективность такого подхода варьируется в очень широком диапазоне в зависи- мости от множества факторов). Наличие же тест-кейсов позволяет:
• Структурировать и систематизировать подход к тестированию (без чего круп- ный проект почти гарантированно обречён на провал).
• Вычислять метрики тестового покрытия (test coverage
297
metrics) и принимать меры по его увеличению (тест-кейсы здесь являются главным источником информации, без которого существование подобных метрик теряет смысл).
• Отслеживать соответствие текущей ситуации плану (сколько примерно пона- добится тест-кейсов, сколько уже есть, сколько выполнено из запланирован- ного на данном этапе количества и т.д.).
• Уточнить взаимопонимание между заказчиком, разработчиками и тестиров-
289
Low level test case. A test case with concrete (implementation level) values for input data and expected results. Logical operators from high level test cases are replaced by actual values that correspond to the objectives of the logical operators. [ISTQB Glos- sary]
290
Test case specification. A document specifying a set of test cases (objective, inputs, test actions, expected results, and execution preconditions) for a test item. [ISTQB Glossary]
291
Test item. The individual element to be tested. There usually is one test object and many test items. [ISTQB Glossary]
292
Test object. The component or system to be tested. [ISTQB Glossary]
293
Test specification. A document that consists of a test design specification, test case specification and/or test procedure specifi- cation. [ISTQB Glossary]
294
Test design specification. A document specifying the test conditions (coverage items) for a test item, the detailed test approach and identifying the associated high level test cases. [ISTQB Glossary]
295
Test procedure specification (test procedure). A document specifying a sequence of actions for the execution of a test. Also known as test script or manual test script. [ISTQB Glossary]
296
Test scenario. A document specifying a sequence of actions for the execution of a test. Also known as test script or manual test script. [ISTQB Glossary]
297
Coverage (test coverage). The degree, expressed as a percentage, to which a specified coverage item (an entity or property used as a basis for test coverage, e.g. equivalence partitions or code statements) has been exercised by a test suite. [ISTQB
Glossary]
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 122/301 щиками (тест-кейсы зачастую намного более наглядно показывают поведе- ние приложения, чем это отражено в требованиях).
• Хранить информацию для длительного использования и обмена опытом между сотрудниками и командами (или как минимум — не пытаться удержать в голове сотни страниц текста).
• Проводить регрессионное тестирование
{87}
и повторное тестирование
{87}
(ко- торые без тест-кейсов было бы вообще невозможно выполнить).
• Повышать качество требований (мы это уже рассматривали: написание чек- листов и тест-кейсов — хорошая техника тестирования требований
{52}
).
• Быстро вводить в курс дела нового сотрудника, недавно подключившегося к проекту.
Жизненный цикл тест-кейса
В отличие от отчёта о дефекте, у которого есть полноценный развитый жиз- ненный цикл
{170}
, для тест-кейса речь скорее идёт о наборе состояний (см. рисунок
2.4.a)
, в которых он может находиться (жирным шрифтом отмечены наиболее важ- ные состояния).
Рисунок 2.4.a — Жизненный цикл (набор состояний) тест-кейса
• Создан (new) — типичное начальное состояние практически любого арте- факта. Тест-кейс автоматически переходит в это состояние после создания.
• Запланирован (planned, ready for testing) — в этом состоянии тест-кейс нахо- дится, когда он или явно включён в план ближайшей итерации тестирования, или как минимум готов для выполнения.
Создан
Запланирован
Выполняется
Пройден
успешно
Закрыт
Т
ре б
уе т д
ор аб от ки
Провален
Заблокирован
Не выполнен
Пропущен
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 123/301
• Не выполнен (not tested) — в некоторых системах управления тест-кейсами это состояние заменяет собой предыдущее («запланирован»). Нахождение тест-кейса в данном состоянии означает, что он готов к выполнению, но ещё не был выполнен.
• Выполняется (work in progress) — если тест-кейс требует длительного вре- мени на выполнение, он может быть переведён в это состояние для подчёр- кивания того факта, что работа идёт, и скоро можно ожидать её результатов.
Если выполнение тест-кейса занимает мало времени, это состояние, как пра- вило, пропускается, а тест-кейс сразу переводится в одно из трёх следующих состояний — «провален», «пройден успешно» или «заблокирован».
• Пропущен (skipped) — бывают ситуации, когда выполнение тест-кейса от- меняется по соображениям нехватки времени или изменения логики тести- рования.
• Провален (failed) — данное состояние означает, что в процессе выполнения тест-кейса был обнаружен дефект, заключающийся в том, что ожидаемый результат по как минимум одному шагу тест-кейса не совпадает с фактиче- ским результатом. Если в процессе выполнения тест-кейса был «случайно» обнаружен дефект, никак не связанный с шагами тест-кейса и их ожидае- мыми результатами, тест-кейс считается пройденным успешно (при этом, естественно, по обнаруженному дефекту создаётся отчёт о дефекте).
• Пройден успешно (passed) — данное состояние означает, что в процессе выполнения тест-кейса не было обнаружено дефектов, связанных с расхож- дением ожидаемых и фактических результатов его шагов.
• Заблокирован (blocked) — данное состояние означает, что по какой-то при- чине выполнение тест-кейса невозможно (как правило, такой причиной явля- ется наличие дефекта, не позволяющего реализовать некий пользователь- ский сценарий).
• Закрыт (closed) — очень редкий случай, т.к. тест-кейс, как правило, остав- ляют в состояниях «провален / пройден успешно / заблокирован / пропущен».
В данное состояние в некоторых системах управления тест-кейс переводят, чтобы подчеркнуть тот факт, что на данной итерации тестирования все дей- ствия с ним завершены.
• Требует доработки (not ready) — как видно из схемы, в это состояние (и из него) тест-кейс может быть переведён в любой момент времени, если в нём будет обнаружена ошибка, если изменятся требования, по которым он был написан, или наступит иная ситуация, не позволяющая считать тест-кейс пригодным для выполнения и перевода в иные состояния.
Ещё раз подчеркнём, что в отличие от жизненного цикла дефекта, который достаточно стандартизирован и формализован, для тест-кейса описанное выше но- сит общий рекомендательный характер, рассматривается скорее как разрозненный набор состояний (а не строгий жизненный цикл) и может сильно отличаться в раз- ных компаниях (в связи с имеющимися традициями и/или возможностями систем управления тест-кейсами).
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 124/301
Сначала приведём целиком весь чек-лист для дымового тестирования, а по- том разберём его подробнее.
• Конфигурирование и запуск.
• Обработка файлов:
Форматы входных файлов
TXT
HTML
MD
Кодировки входных фай- лов
WIN1251
+
+
+
CP866
+
+
+
KOI8R
+
+
+
• Остановка.
Да, и всё. Здесь перечислены все ключевые функции приложения.
Конфигурирование и запуск. Если приложение невозможно настроить для работы в пользовательской среде, оно бесполезно. Если приложение не запуска- ется, оно бесполезно. Если на стадии запуска возникают проблемы, они могут нега- тивно отразиться на функционировании приложения и потому также заслуживают пристального внимания.
Примечание: в нашем примере мы столкнулись со скорее нетипичным слу- чаем — приложение конфигурируется параметрами командной строки, а потому разделить операции «конфигурирования» и «запуска» не представляется возмож- ным; в реальной жизни для подавляющего большинства приложений эти операции выполняются раздельно.
Обработка файлов. Ради этого приложение и разрабатывалось, потому здесь даже на стадии создания чек-листа мы не поленились создать матрицу, от- ражающую все возможные комбинации допустимых форматов и допустимых коди- ровок входных файлов, чтобы ничего не забыть и подчеркнуть важность соответ- ствующих проверок.
Остановка. С точки зрения пользователя эта функция может не казаться столь уж важной, но остановка (и запуск) любого приложения связаны с большим количеством системных операций, проблемы с которыми могут привести к множе- ству серьёзных последствий (вплоть до невозможности повторного запуска прило- жения или нарушения работы операционной системы).
Функции, востребованные большинством пользователей
Следующим шагом мы будем выполнять проверку того, как приложение ве- дёт себя в обычной повседневной жизни, пока не затрагивая экзотические ситуа- ции. Очень частым вопросом является допустимость дублирования проверок на
Чек-лист
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 118/301 разных уровнях функционального тестирования
{79}
— можно ли так делать. Одно- временно и «нет», и «да». «Нет» в том смысле, что не допускается (не имеет смысла) повторение тех же проверок, которые только что были выполнены. «Да» в том смысле, что любую проверку можно детализировать и снабдить дополнитель- ными деталями.
• Конфигурирование и запуск: o
С верными параметрами:
▪
Значения SOURCE_DIR, DESTINATION_DIR, LOG_FILE_NAME указаны и содержат пробелы и кириллические символы (повто- рить для форматов путей в Windows и *nix файловых системах, обратить внимание на имена логических дисков и разделители имён каталогов (“/” и “\”)).
▪
Значение LOG_FILE_NAME не указано. o
Без параметров. o
С недостаточным количеством параметров. o
С неверными параметрами:
▪
Недопустимый путь SOURCE_DIR.
▪
Недопустимый путь DESTINATION_DIR.
▪
Недопустимое имя LOG_FILE_NAME.
▪ DESTINATION_DIR находится внутри SOURCE_DIR.
▪
Значения DESTINATION_DIR и SOURCE_DIR совпадают.
• Обработка файлов: o
Разные форматы, кодировки и размеры:
Форматы входных файлов
TXT
HTML
MD
Кодировки входных фай- лов
WIN1251 100
КБ
50 МБ
10
МБ
CP866 10 МБ
100 КБ
50 МБ
KOI8R
50 МБ
10 МБ
100 КБ
Любая
0 байт
Любая
50 МБ + 1 Б
50 МБ + 1 Б
50 МБ + 1 Б
-
Любой недопустимый формат
Любая
Повреждения в допустимом формате o
Недоступные входные файлы:
▪
Нет прав доступа.
▪
Файл открыт и заблокирован.
▪
Файл с атрибутом «только для чтения».
• Остановка: o
Закрытием окна консоли.
• Журнал работы приложения: o
Автоматическое создание (при отсутствии журнала). o
Продолжение (дополнение журнала) при повторных запусках.
• Производительность: o
Элементарный тест с грубой оценкой.
Обратите внимание, что чек-лист может содержать не только «предельно сжатые тезисы», но и вполне развёрнутые комментарии, если это необходимо — лучше пояснить суть идеи подробнее, чем потом гадать, что же имелось в виду.
Также обратите внимание, что многие пункты чек-листа носят весьма высо- коуровневый характер, и это нормально. Например, «повреждения в допустимом формате» (см. матрицу с кодировками, форматами и размерами) звучит расплыв- чато, но этот недочёт будет устранён уже на уровне полноценных тест-кейсов.
Чек-лист
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 119/301
Остальные функции и особые сценарии
Пришло время обратить внимание на разнообразные мелочи и хитрые ню- ансы, проблемы с которыми едва ли сильно озаботят пользователя, но формально всё же будут считать ошибками.
• Конфигурирование и запуск: o
Значения SOURCE_DIR, DESTINATION_DIR, LOG_FILE_NAME:
▪
В разных стилях (Windows-пути + *nix-пути) — одно в одном стиле, другое — в другом.
▪
С использованием UNC-имён.
▪ LOG_FILE_NAME внутри SOURCE_DIR.
▪ LOG_FILE_NAME внутри DESTINATION_DIR. o
Размер LOG_FILE_NAME на момент запуска:
▪ 2
–4 ГБ.
▪ 4+
ГБ. o
Запуск двух и более копий приложения с:
▪
Одинаковыми параметрами SOURCE_DIR, DESTINATION_DIR,
LOG_FILE_NAME.
▪
Одинаковыми SOURCE_DIR и LOG_FILE_NAME, но разными
DESTINATION_DIR.
▪
Одинаковыми DESTINATION_DIR и LOG_FILE_NAME, но раз- ными SOURCE_DIR.
• Обработка файлов: o
Файл верного формата, в котором текст представлен в двух и более поддерживаемых кодировках одновременно. o
Размер входного файла:
▪ 2
–4 ГБ.
▪ 4+
ГБ.
Задание 2.4.b: возможно, вам захотелось что-то изменить в приведённых выше чек-листах — это совершенно нормально и справедливо: нет и не может быть некоего «единственно верного идеального чек-листа», и ваши идеи вполне имеют право на существование, потому составьте свой соб- ственный чек-лист или отметьте недостатки, которые вы заметили в при- ведённом выше чек-листе.
Как мы увидим в следующей главе, создание качественного тест-кейса может потребовать длительной кропотливой и достаточно монотонной работы, которая при этом не требует от опытного тестировщика сильных интеллектуальных усилий, а потому переключение между работой над чек-листами (творческая составляю- щая) и расписыванием их в тест-кейсы (механическая составляющая) позволяет разнообразить рабочий процесс и снизить утомляемость. Хотя, конечно, написание сложных и притом качественных тест-кейсов может оказаться ничуть не менее творческой работой, чем продумывание чек-листов.
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 120/301
2.4.2.
Тест-кейс и его жизненный цикл
Терминология и общие сведения
Для начала определимся с терминологией, поскольку здесь есть много пута- ницы, вызванной разными переводами англоязычных терминов на русский язык и разными традициями в тех или иных странах, фирмах и отдельных командах.
Во главе всего лежит термин «тест». Официальное определение звучит так.
Тест (test
286
)
— набор из одного или нескольких тест-кейсов.
Поскольку среди всех прочих терминов этот легче и быстрее всего произно- сить, в зависимости от контекста под ним могут понимать и отдельный пункт чек- листа, и отдельный шаг в тест-кейсе, и сам тест-кейс, и набор тест-кейсов и… про- должать можно долго. Главное здесь одно: если вы слышите или видите слово
«тест», воспринимайте его в контексте.
Теперь рассмотрим самый главный для нас термин — «тест-кейс».
Тест-кейс (test case
287
)
— набор входных данных, условий выполнения и ожидаемых результатов, разработанный с целью проверки того или иного свойства или поведения программного средства.
Под тест-кейсом также может пониматься соответствующий документ, представляющий формальную запись тест-кейса.
Мы ещё вернёмся к этой мысли
{152}
, но уже сейчас критически важно понять и запомнить: если у тест-кейса не указаны входные данные, условия выполнения и ожидаемые результаты, и/или не ясна цель тест-кейса — это плохой тест-кейс (ино- гда он не имеет смысла, иногда его и вовсе невозможно выполнить).
Примечание: иногда термин «test case» на русский язык переводят как «те- стовый случай». Это вполне адекватный перевод, но из-за того, что «тест-кейс» ко- роче произносить, наибольшее распространение получил именно этот вариант.
Остальные термины, связанные с тестами, тест-кейсами и тестовыми сце- нариями, на данном этапе можно прочитать просто в ознакомительных це- лях. Если вы откроете ISTQB-глоссарий на букву «T», вы увидите огром- ное количество терминов, тесно связанных друг с другом перекрёстными ссылками: на начальном этапе изучения тестирования нет необходимости глубоко рассматривать их все, однако некоторые всё же заслуживают вни- мания. Они представлены ниже.
Высокоуровневый тест-кейс (high level test case
288
)
— тест-кейс без кон- кретных входных данных и ожидаемых результатов.
Как правило, ограничивается общими идеями и операциями, схож по своей сути с подробно описанным пунктом чек-листа. Достаточно часто встречается в ин- теграционном тестировании
{77}
и системном тестировании
{78}
, а также на уровне ды- мового тестирования
{79}
. Может служить отправной точкой для проведения исследо- вательского тестирования
{85}
или для создания низкоуровневых тест-кейсов.
286
Test. A set of one or more test cases. [ISTQB Glossary]
287
Test case. A set of input values, execution preconditions, expected results and execution postconditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement.
[ISTQB Glossary]
288
High level test case (logical test case). A test case without concrete (implementation level) values for input data and expected results. Logical operators are used; instances of the actual values are not yet defined and/or available. [ISTQB Glossary]
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 121/301
Низкоуровневый тест-кейс (low level test case
289
)
— тест-кейс с конкретными входными данными и ожидаемыми результатами.
Представляет собой «полностью готовый к выполнению» тест-кейс и вообще является наиболее классическим видом тест-кейсов. Начинающих тестировщиков чаще всего учат писать именно такие тесты, т.к. прописать все данные подробно — намного проще, чем понять, какой информацией можно пренебречь, при этом не снизив ценность тест-кейса.
Спецификация тест-кейса (test case specification
290
)
— документ, описываю- щий набор тест-кейсов (включая их цели, входные данные, условия и шаги выпол- нения, ожидаемые результаты) для тестируемого элемента (test item
291
, test ob- ject
292
).
Спецификация теста (test specification
293
)
— документ, состоящий из специ- фикации тест-дизайна (test design specification
294
), спецификации тест-кейса (test case specification
290
) и/или спецификации тест-процедуры (test procedure specifica- tion
295
).
Тест-сценарий (test scenario
296
, test procedure specification, test script)
— до- кумент, описывающий последовательность действий по выполнению теста (также известен как «тест-скрипт»).
Внимание! Из-за особенностей перевода очень часто под термином «тест- сценарий» («тестовый сценарий») имеют в виду набор тест-кейсов
{146}
Цель написания тест-кейсов
Тестирование можно проводить и без тест-кейсов (не нужно, но можно; да, эффективность такого подхода варьируется в очень широком диапазоне в зависи- мости от множества факторов). Наличие же тест-кейсов позволяет:
• Структурировать и систематизировать подход к тестированию (без чего круп- ный проект почти гарантированно обречён на провал).
• Вычислять метрики тестового покрытия (test coverage
297
metrics) и принимать меры по его увеличению (тест-кейсы здесь являются главным источником информации, без которого существование подобных метрик теряет смысл).
• Отслеживать соответствие текущей ситуации плану (сколько примерно пона- добится тест-кейсов, сколько уже есть, сколько выполнено из запланирован- ного на данном этапе количества и т.д.).
• Уточнить взаимопонимание между заказчиком, разработчиками и тестиров-
289
Low level test case. A test case with concrete (implementation level) values for input data and expected results. Logical operators from high level test cases are replaced by actual values that correspond to the objectives of the logical operators. [ISTQB Glos- sary]
290
Test case specification. A document specifying a set of test cases (objective, inputs, test actions, expected results, and execution preconditions) for a test item. [ISTQB Glossary]
291
Test item. The individual element to be tested. There usually is one test object and many test items. [ISTQB Glossary]
292
Test object. The component or system to be tested. [ISTQB Glossary]
293
Test specification. A document that consists of a test design specification, test case specification and/or test procedure specifi- cation. [ISTQB Glossary]
294
Test design specification. A document specifying the test conditions (coverage items) for a test item, the detailed test approach and identifying the associated high level test cases. [ISTQB Glossary]
295
Test procedure specification (test procedure). A document specifying a sequence of actions for the execution of a test. Also known as test script or manual test script. [ISTQB Glossary]
296
Test scenario. A document specifying a sequence of actions for the execution of a test. Also known as test script or manual test script. [ISTQB Glossary]
297
Coverage (test coverage). The degree, expressed as a percentage, to which a specified coverage item (an entity or property used as a basis for test coverage, e.g. equivalence partitions or code statements) has been exercised by a test suite. [ISTQB
Glossary]
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 122/301 щиками (тест-кейсы зачастую намного более наглядно показывают поведе- ние приложения, чем это отражено в требованиях).
• Хранить информацию для длительного использования и обмена опытом между сотрудниками и командами (или как минимум — не пытаться удержать в голове сотни страниц текста).
• Проводить регрессионное тестирование
{87}
и повторное тестирование
{87}
(ко- торые без тест-кейсов было бы вообще невозможно выполнить).
• Повышать качество требований (мы это уже рассматривали: написание чек- листов и тест-кейсов — хорошая техника тестирования требований
{52}
).
• Быстро вводить в курс дела нового сотрудника, недавно подключившегося к проекту.
Жизненный цикл тест-кейса
В отличие от отчёта о дефекте, у которого есть полноценный развитый жиз- ненный цикл
{170}
, для тест-кейса речь скорее идёт о наборе состояний (см. рисунок
2.4.a)
, в которых он может находиться (жирным шрифтом отмечены наиболее важ- ные состояния).
Рисунок 2.4.a — Жизненный цикл (набор состояний) тест-кейса
• Создан (new) — типичное начальное состояние практически любого арте- факта. Тест-кейс автоматически переходит в это состояние после создания.
• Запланирован (planned, ready for testing) — в этом состоянии тест-кейс нахо- дится, когда он или явно включён в план ближайшей итерации тестирования, или как минимум готов для выполнения.
Создан
Запланирован
Выполняется
Пройден
успешно
Закрыт
Т
ре б
уе т д
ор аб от ки
Провален
Заблокирован
Не выполнен
Пропущен
Тест-кейс и его жизненный цикл
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 123/301
• Не выполнен (not tested) — в некоторых системах управления тест-кейсами это состояние заменяет собой предыдущее («запланирован»). Нахождение тест-кейса в данном состоянии означает, что он готов к выполнению, но ещё не был выполнен.
• Выполняется (work in progress) — если тест-кейс требует длительного вре- мени на выполнение, он может быть переведён в это состояние для подчёр- кивания того факта, что работа идёт, и скоро можно ожидать её результатов.
Если выполнение тест-кейса занимает мало времени, это состояние, как пра- вило, пропускается, а тест-кейс сразу переводится в одно из трёх следующих состояний — «провален», «пройден успешно» или «заблокирован».
• Пропущен (skipped) — бывают ситуации, когда выполнение тест-кейса от- меняется по соображениям нехватки времени или изменения логики тести- рования.
• Провален (failed) — данное состояние означает, что в процессе выполнения тест-кейса был обнаружен дефект, заключающийся в том, что ожидаемый результат по как минимум одному шагу тест-кейса не совпадает с фактиче- ским результатом. Если в процессе выполнения тест-кейса был «случайно» обнаружен дефект, никак не связанный с шагами тест-кейса и их ожидае- мыми результатами, тест-кейс считается пройденным успешно (при этом, естественно, по обнаруженному дефекту создаётся отчёт о дефекте).
• Пройден успешно (passed) — данное состояние означает, что в процессе выполнения тест-кейса не было обнаружено дефектов, связанных с расхож- дением ожидаемых и фактических результатов его шагов.
• Заблокирован (blocked) — данное состояние означает, что по какой-то при- чине выполнение тест-кейса невозможно (как правило, такой причиной явля- ется наличие дефекта, не позволяющего реализовать некий пользователь- ский сценарий).
• Закрыт (closed) — очень редкий случай, т.к. тест-кейс, как правило, остав- ляют в состояниях «провален / пройден успешно / заблокирован / пропущен».
В данное состояние в некоторых системах управления тест-кейс переводят, чтобы подчеркнуть тот факт, что на данной итерации тестирования все дей- ствия с ним завершены.
• Требует доработки (not ready) — как видно из схемы, в это состояние (и из него) тест-кейс может быть переведён в любой момент времени, если в нём будет обнаружена ошибка, если изменятся требования, по которым он был написан, или наступит иная ситуация, не позволяющая считать тест-кейс пригодным для выполнения и перевода в иные состояния.
Ещё раз подчеркнём, что в отличие от жизненного цикла дефекта, который достаточно стандартизирован и формализован, для тест-кейса описанное выше но- сит общий рекомендательный характер, рассматривается скорее как разрозненный набор состояний (а не строгий жизненный цикл) и может сильно отличаться в раз- ных компаниях (в связи с имеющимися традициями и/или возможностями систем управления тест-кейсами).
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 124/301
1 ... 14 15 16 17 18 19 20 21 ... 38