Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 880
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
2.4.3.
Атрибуты (поля) тест-кейса
Как уже было сказано выше, термин «тест-кейс» может относиться к фор- мальной записи тест-кейса в виде технического документа. Эта запись имеет об- щепринятую структуру, компоненты которой называются атрибутами (полями) тест- кейса.
В зависимости от инструмента управления тест-кейсами внешний вид их за- писи может немного отличаться, могут быть добавлены или убраны отдельные поля, но концепция остаётся неизменной.
Общий вид всей структуры тест-кейса представлен на рисунке 2.4.b.
UG_U1.12 A
R97
Га- ле- рея
Панель загрузки
Загрузка картинки (имя
со спецсимволами)
Приготовления: создать непустой файл с именем
#$%^&.jpg.
1.
Выбрать вкладку «За- грузить».
2.
Нажать кнопку «Вы- брать».
3. Выбрать из списка приготовленный файл.
4. Нажать кнопку «OK».
5. Нажать кнопку «Доба- вить в галерею».
1.
Вкладка «Загрузить» становится активной.
2. Появляется диалого- вое окно браузера вы- бора файла для за- грузки.
3. Имя выбранного файла появляется в поле «Файл».
4. Диалоговое окно файла закрывается, в поле «Файл» появля- ется полное имя файла.
5. Выбранный файл появляется в списке файлов галереи.
Рисунок 2.4.b — Общий вид тест-кейса
Теперь рассмотрим каждый атрибут подробно.
Идентификатор (identifier) представляет собой уникальное значение, позво- ляющее однозначно отличить один тест-кейс от другого и используемое во всевоз- можных ссылках. В общем случае идентификатор тест-кейса может представлять собой просто уникальный номер, но (если позволяет инструментальное средство управления тест-кейсами) может быть и куда сложнее: включать префиксы, суф- фиксы и иные осмысленные компоненты, позволяющие быстро определить цель тест-кейса и часть приложения (или требований), к которой он относится (например:
UR216_S12_DB_Neg).
Приоритет (priority) показывает важность тест-кейса. Он может быть выра- жен буквами (A, B, C, D, E), цифрами (1, 2, 3, 4, 5), словами («крайне высокий»,
«высокий», «средний», «низкий», «крайне низкий») или иным удобным способом.
Количество градаций также не фиксировано, но чаще всего лежит в диапазоне от трёх до пяти.
Приоритет тест-кейса может коррелировать с:
• важностью требования, пользовательского сценария
{146}
или функции, с кото- рыми связан тест-кейс;
• потенциальной важностью дефекта
{179}
, на поиск которого направлен тест- кейс;
Иденти- фикатор
Приоритет
Связанное с тест-кейсом требование
Модуль и подмо- дуль приложения
Заглавие (суть) тест-кейса
Исходные данные, не- обходимые для выпол- нения тест-кейса
Шаги тест-кейса
Ожидаемый результат по каждому шагу тест-кейса
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 125/301
• степенью риска, связанного с проверяемым тест-кейсом требованием, сце- нарием или функцией.
Основная задача этого атрибута — упрощение распределения внимания и усилий команды (более высокоприоритетные тест-кейсы получают их больше), а также упрощение планирования и принятия решения о том, чем можно пожертво- вать в некоей форс-мажорной ситуации, не позволяющей выполнить все заплани- рованные тест-кейсы.
Связанное с тест-кейсом требование (requirement) показывает то основное требование, проверке выполнения которого посвящён тест-кейс (основное — по- тому, что один тест-кейс может затрагивать несколько требований). Наличие этого поля улучшает такое свойство тест-кейса, как прослеживаемость
{143}
Частые вопросы, связанные с заполнением этого поля, таковы:
• Можно ли его оставить пустым? Да. Тест-кейс вполне мог разрабатываться вне прямой привязки к требованиям, и (пока?) значение этого поля опреде- лить сложно. Хоть такой вариант и не считается хорошим, он достаточно рас- пространён.
• Можно ли в этом поле указывать несколько требований? Да, но чаще всего стараются выбрать одно самое главное или «более высокоуровневое»
(например, вместо того, чтобы перечислять R56.1, R56.2, R56.3 и т.д., можно просто написать R56). Чаще всего в инструментах управления тестами это поле представляет собой выпадающий список, где можно выбрать только одно значение, и этот вопрос становится неактуальным. К тому же многие тест-кейсы всё же направлены на проверку строго одного требования, и для них этот вопрос также неактуален.
Модуль и подмодуль приложения (module and submodule) указывают на части приложения, к которым относится тест-кейс, и позволяют лучше понять его цель.
Идея деления приложения на модули и подмодули проистекает из того, что в сложных системах практически невозможно охватить взглядом весь проект цели- ком, и вопрос «как протестировать это приложение» становится недопустимо слож- ным. Тогда приложение логически разделяется на компоненты (модули), а те, в свою очередь, на более мелкие компоненты (подмодули). И вот уже для таких не- больших частей приложения придумать чек-листы и создать хорошие тест-кейсы становится намного проще.
Как правило, иерархия модулей и подмодулей создаётся как единый набор для всей проектной команды, чтобы исключить путаницу из-за того, что разные люди будут использовать разные подходы к такому разделению или даже просто разные названия одних и тех же частей приложения.
Теперь — самое сложное: как выбираются модули и подмодули. В реально- сти проще всего отталкиваться от архитектуры и дизайна приложения. Например, в уже знакомом нам приложении
{60}
можно выделить такую иерархию модулей и под- модулей:
• Механизм запуска: o механизм анализа параметров; o механизм сборки приложения; o механизм обработки ошибочных ситуаций.
• Механизм взаимодействия с файловой системой: o механизм обхода дерева SOURCE_DIR; o механизм обработки ошибочных ситуаций.
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 126/301
• Механизм преобразования файлов: o механизм определения кодировок; o механизм преобразования кодировок; o механизм обработки ошибочных ситуаций.
• Механизм ведения журнала: o механизм записи журнала; o механизм отображения журнала в консоли; o механизм обработки ошибочных ситуаций.
Согласитесь, что такие длинные названия с постоянно повторяющимся сло- вом «механизм» читать и запоминать сложно. Перепишем:
• Стартер: o анализатор параметров; o сборщик приложения; o обработчик ошибок.
• Сканер: o обходчик; o обработчик ошибок.
• Преобразователь: o детектор; o конвертер; o обработчик ошибок.
• Регистратор: o дисковый регистратор; o консольный регистратор; o обработчик ошибок.
Но что делать, если мы не знаем «внутренностей» приложения (или не очень разбираемся в программировании)? Модули и подмодули можно выделять на ос- нове графического интерфейса пользователя (крупные области и элементы внутри них), на основе решаемых приложением задач и подзадач и т.д. Главное, чтобы эта логика была одинаковым образом применена ко всему приложению.
Внимание! Частая ошибка! Модуль и подмодуль приложения — это НЕ действия, это именно структурные части, «куски» приложения. В заблуж- дение вас могут ввести такие названия, как, например, «печать, настройка принтера» (но здесь имеются в виду именно части приложения, отвечаю- щие за печать и за настройку принтера (и названы они отглагольными су- ществительными), а не процесс печати или настройки принтера).
Сравните (на примере человека): «дыхательная система, лёгкие» — это модуль и подмодуль, а «дыхание», «сопение», «чихание» — нет; «голова, мозг» — это модуль и подмодуль, а «кивание», «думание» — нет.
Наличие полей «Модуль» и «Подмодуль» улучшает такое свойство тест- кейса, как прослеживаемость
{143}
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 127/301
Заглавие (суть) тест-кейса (title) призвано упростить и ускорить понимание основной идеи (цели) тест-кейса без обращения к его остальным атрибутам.
Именно это поле является наиболее информативным при просмотре списка тест- кейсов.
Сравните.
Плохо
Хорошо
Тест 1
Запуск, одна копия, верные параметры
Тест 2
Запуск одной копии с неверными путями
Тест 78 (улучшенный)
Запуск, много копий, без конфликтов
Остановка
Остановка по Ctrl+C
Закрытие
Остановка закрытием консоли
…
…
Заглавие тест-кейса может быть полноценным предложением, фразой, набо- ром словосочетаний — главное, чтобы выполнялись следующие условия:
• Информативность.
• Хотя бы относительная уникальность (чтобы не путать разные тест-кейсы).
Внимание! Частая ошибка! Если инструмент управления тест-кейсами не требует писать заглавие, его всё равно надо писать. Тест-кейсы без за- главий превращаются в мешанину информации, использование которой сопряжено с колоссальными и совершенно бессмысленными затратами.
И ещё одна небольшая мысль, которая может помочь лучше формулировать заглавия. В дословном переводе с английского «test case» обозначает «тестовый случай (ситуация)». Так вот, заглавие как раз и описывает этот случай (ситуацию), т.е. что происходит в тест-кейсе, какую ситуацию он проверяет.
Исходные данные, необходимые для выполнения тест-кейса
(precondition, preparation, initial data, setup), позволяют описать всё то, что должно быть подготовлено до начала выполнения тест-кейса, например:
• Состояние базы данных.
• Состояние файловой системы и её объектов.
• Состояние серверов и сетевой инфраструктуры.
То, что описывается в этом поле, готовится БЕЗ использования тестируемого приложения, и таким образом, если здесь возникают проблемы, нельзя писать от- чёт о дефекте в приложении. Эта мысль очень и очень важна, потому поясним её простым жизненным примером. Представьте, что вы дегустируете конфеты. В поле
«исходные данные» можно прописать «купить конфеты таких-то сортов в таком-то количестве». Если таких конфет нет в продаже, если закрыт магазин, если не хва- тило денег и т.д. — всё это НЕ проблемы вкуса конфет, и нельзя писать отчёт о дефекте конфет вида «конфеты невкусные потому, что закрыт магазин».
Некоторые авторы не следуют этой логике и допускают в разделе «приго- товления» работу с тестируемым приложением. И здесь нет «правильного варианта» — просто в одной традиции решено одним образом, в другой — другим. Во многом это — ещё и терминологическая проблема:
«preparation», «initial data» и «setup» вполне логично выполнять без уча- стия тестируемого приложения, в то время как «precondition» по смыслу ближе к описанию состояния тестируемого приложения. В реальной рабо- чей обстановке вам достаточно будет прочитать несколько тест-кейсов, уже созданных вашими коллегами, чтобы понять, какой точки зрения на данный вопрос они придерживаются.
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 128/301
Шаги тест-кейса (steps) описывают последовательность действий, которые необходимо реализовать в процессе выполнения тест-кейса. Общие рекомендации по написанию шагов таковы:
• начинайте с понятного и очевидного места, не пишите лишних начальных шагов (запуск приложения, очевидные операции с интерфейсом и т.п.);
• даже если в тест-кейсе всего один шаг, нумеруйте его (иначе возрастает ве- роятность в будущем случайно «приклеить» описание этого шага к новому тексту);
• если вы пишете на русском языке, используйте безличную форму (например,
«открыть», «ввести», «добавить» вместо «откройте», «введите», «до- бавьте»), в английском языке не надо использовать частицу «to» (т.е. «запу- стить приложение» будет «start application», не «to start application»);
• соотносите степень детализации шагов и их параметров с целью тест-кейса, его сложностью, уровнем
{79}
и т.д. — в зависимости от этих и многих других факторов степень детализации может варьироваться от общих идей до пре- дельно чётко прописанных значений и указаний;
• ссылайтесь на предыдущие шаги и их диапазоны для сокращения объёма текста (например, «повторить шаги 3–5 со значением…»);
• пишите шаги последовательно, без условных конструкций вида «если… то…».
Внимание! Частая ошибка! Категорически запрещено ссылаться на шаги из других тест-кейсов и другие тест-кейсы целиком: если те, другие тест- кейсы будут изменены или удалены, ваш тест-кейс начнёт ссылаться на неверные данные или в пустоту, а если в процессе выполнения те, другие тест-кейсы или шаги приведут к возникновению ошибки, вы не сможете закончить выполнение вашего тест-кейса.
Ожидаемые результаты (expected results) по каждому шагу тест-кейса опи- сывают реакцию приложения на действия, описанные в поле «шаги тест-кейса».
Номер шага соответствует номеру результата.
По написанию ожидаемых результатов можно порекомендовать следующее:
• описывайте поведение системы так, чтобы исключить субъективное толкова- ние (например, «приложение работает верно» — плохо, «появляется окно с надписью…» — хорошо);
• пишите ожидаемый результат по всем шагам без исключения, если у вас есть хоть малейшие сомнения в том, что результат некоего шага будет совер- шенно тривиальным и очевидным (если вы всё же пропускаете ожидаемый результат для какого-то тривиального действия, лучше оставить в списке ожидаемых результатов пустую строку — это облегчает восприятие);
• пишите кратко, но не в ущерб информативности;
• избегайте условных конструкций вида «если… то…».
Внимание! Частая ошибка! В ожидаемых результатах ВСЕГДА описыва- ется КОРРЕКТНАЯ работа приложения. Нет и не может быть ожидаемого результата в виде «приложение вызывает ошибку в операционной си- стеме и аварийно завершается с потерей всех пользовательских данных».
При этом корректная работа приложения вполне может предполагать отображение сообщений о неверных действиях пользователя или неких критических ситуациях. Так, сообщение «Невозможно сохранить файл по указанному пути: на целевом носителе недостаточно свободного места»
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 129/301
— это не ошибка приложения, это его совершенно нормальная и правиль- ная работа. Ошибкой приложения (в этой же ситуации) было бы отсут- ствие такого сообщения, и/или повреждение, или потеря записываемых данных.
Для более глубокого понимания принципов оформления тест-кейсов реко- мендуется прямо сейчас ознакомиться с главой «Типичные ошибки при разработке чек-листов, тест-кейсов и наборов тест-кейсов»
{160}
Инструментальные средства управления тестированием
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 130/301
2.4.4.
Инструментальные средства управления тестированием
Инструментальных средств управления тестированием (test management tool
298
) очень много, к тому же многие компании разрабатывают свои внутренние средства решения этой задачи.
Не имеет смысла заучивать, как работать с тест-кейсами в том или ином ин- струментальном средстве — принцип везде един, и соответствующие навыки нара- батываются буквально за пару дней. Что на текущий момент важно понимать, так это общий набор функций, реализуемых такими инструментальными средствами
(конечно, то или иное средство может не реализовывать какую-то функцию из этого списка и/или реализовывать не вошедшие в список функции):
• создание тест-кейсов и наборов тест-кейсов;
• контроль версий документов с возможностью определить, кто внёс те или иные изменения, и отменить эти изменения, если требуется;
• формирование и отслеживание реализации плана тестирования, сбор и ви- зуализация разнообразных метрик, генерирование отчётов;
• интеграция с системами управления дефектами, фиксация взаимосвязи между выполнением тест-кейсов и созданными отчётами о дефектах;
• интеграция с системами управления проектами;
• интеграция с инструментами автоматизированного тестирования, управле- ние выполнением автоматизированных тест-кейсов.
Иными словами, хорошее инструментальное средство управления тестиро- ванием берёт на себя все рутинные технические операции, которые объективно необходимо выполнять в процессе реализации жизненного цикла тестирования
{27}
Огромным преимуществом также является способность таких инструментальных средств отслеживать взаимосвязи между различными документами и иными арте- фактами, взаимосвязи между артефактами и процессами и т.д., подчиняя эти дей- ствия системе разграничения прав доступа и гарантируя сохранность и коррект- ность информации.
Для общего развития и лучшего закрепления темы об оформлении тест-кей- сов
{124}
мы сейчас рассмотрим несколько картинок с формами из разных инструмен- тальных средств.
Здесь вполне сознательно не приведено никакого сравнения или подробного описания — подобных обзоров достаточно в Интернете, и они стремительно уста- ревают по мере выхода новых версий обозреваемых продуктов.
Но интерес представляют отдельные особенности интерфейса, на которые мы обратим внимание в каждом из примеров (важно: если вас интересует подроб- ное описание каждого поля, связанных с ним процессов и т.д., обратитесь к офици- альной документации — здесь будут лишь самые краткие пояснения).
298
Test management tool. A tool that provides support to the test management and control part of a test process. It often has several capabilities, such as testware management, scheduling of tests, the logging of results, progress tracking, incident management and test reporting. [ISTQB Glossary]
Атрибуты (поля) тест-кейса
Как уже было сказано выше, термин «тест-кейс» может относиться к фор- мальной записи тест-кейса в виде технического документа. Эта запись имеет об- щепринятую структуру, компоненты которой называются атрибутами (полями) тест- кейса.
В зависимости от инструмента управления тест-кейсами внешний вид их за- писи может немного отличаться, могут быть добавлены или убраны отдельные поля, но концепция остаётся неизменной.
Общий вид всей структуры тест-кейса представлен на рисунке 2.4.b.
UG_U1.12 A
R97
Га- ле- рея
Панель загрузки
Загрузка картинки (имя
со спецсимволами)
Приготовления: создать непустой файл с именем
#$%^&.jpg.
1.
Выбрать вкладку «За- грузить».
2.
Нажать кнопку «Вы- брать».
3. Выбрать из списка приготовленный файл.
4. Нажать кнопку «OK».
5. Нажать кнопку «Доба- вить в галерею».
1.
Вкладка «Загрузить» становится активной.
2. Появляется диалого- вое окно браузера вы- бора файла для за- грузки.
3. Имя выбранного файла появляется в поле «Файл».
4. Диалоговое окно файла закрывается, в поле «Файл» появля- ется полное имя файла.
5. Выбранный файл появляется в списке файлов галереи.
Рисунок 2.4.b — Общий вид тест-кейса
Теперь рассмотрим каждый атрибут подробно.
Идентификатор (identifier) представляет собой уникальное значение, позво- ляющее однозначно отличить один тест-кейс от другого и используемое во всевоз- можных ссылках. В общем случае идентификатор тест-кейса может представлять собой просто уникальный номер, но (если позволяет инструментальное средство управления тест-кейсами) может быть и куда сложнее: включать префиксы, суф- фиксы и иные осмысленные компоненты, позволяющие быстро определить цель тест-кейса и часть приложения (или требований), к которой он относится (например:
UR216_S12_DB_Neg).
Приоритет (priority) показывает важность тест-кейса. Он может быть выра- жен буквами (A, B, C, D, E), цифрами (1, 2, 3, 4, 5), словами («крайне высокий»,
«высокий», «средний», «низкий», «крайне низкий») или иным удобным способом.
Количество градаций также не фиксировано, но чаще всего лежит в диапазоне от трёх до пяти.
Приоритет тест-кейса может коррелировать с:
• важностью требования, пользовательского сценария
{146}
или функции, с кото- рыми связан тест-кейс;
• потенциальной важностью дефекта
{179}
, на поиск которого направлен тест- кейс;
Иденти- фикатор
Приоритет
Связанное с тест-кейсом требование
Модуль и подмо- дуль приложения
Заглавие (суть) тест-кейса
Исходные данные, не- обходимые для выпол- нения тест-кейса
Шаги тест-кейса
Ожидаемый результат по каждому шагу тест-кейса
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 125/301
• степенью риска, связанного с проверяемым тест-кейсом требованием, сце- нарием или функцией.
Основная задача этого атрибута — упрощение распределения внимания и усилий команды (более высокоприоритетные тест-кейсы получают их больше), а также упрощение планирования и принятия решения о том, чем можно пожертво- вать в некоей форс-мажорной ситуации, не позволяющей выполнить все заплани- рованные тест-кейсы.
Связанное с тест-кейсом требование (requirement) показывает то основное требование, проверке выполнения которого посвящён тест-кейс (основное — по- тому, что один тест-кейс может затрагивать несколько требований). Наличие этого поля улучшает такое свойство тест-кейса, как прослеживаемость
{143}
Частые вопросы, связанные с заполнением этого поля, таковы:
• Можно ли его оставить пустым? Да. Тест-кейс вполне мог разрабатываться вне прямой привязки к требованиям, и (пока?) значение этого поля опреде- лить сложно. Хоть такой вариант и не считается хорошим, он достаточно рас- пространён.
• Можно ли в этом поле указывать несколько требований? Да, но чаще всего стараются выбрать одно самое главное или «более высокоуровневое»
(например, вместо того, чтобы перечислять R56.1, R56.2, R56.3 и т.д., можно просто написать R56). Чаще всего в инструментах управления тестами это поле представляет собой выпадающий список, где можно выбрать только одно значение, и этот вопрос становится неактуальным. К тому же многие тест-кейсы всё же направлены на проверку строго одного требования, и для них этот вопрос также неактуален.
Модуль и подмодуль приложения (module and submodule) указывают на части приложения, к которым относится тест-кейс, и позволяют лучше понять его цель.
Идея деления приложения на модули и подмодули проистекает из того, что в сложных системах практически невозможно охватить взглядом весь проект цели- ком, и вопрос «как протестировать это приложение» становится недопустимо слож- ным. Тогда приложение логически разделяется на компоненты (модули), а те, в свою очередь, на более мелкие компоненты (подмодули). И вот уже для таких не- больших частей приложения придумать чек-листы и создать хорошие тест-кейсы становится намного проще.
Как правило, иерархия модулей и подмодулей создаётся как единый набор для всей проектной команды, чтобы исключить путаницу из-за того, что разные люди будут использовать разные подходы к такому разделению или даже просто разные названия одних и тех же частей приложения.
Теперь — самое сложное: как выбираются модули и подмодули. В реально- сти проще всего отталкиваться от архитектуры и дизайна приложения. Например, в уже знакомом нам приложении
{60}
можно выделить такую иерархию модулей и под- модулей:
• Механизм запуска: o механизм анализа параметров; o механизм сборки приложения; o механизм обработки ошибочных ситуаций.
• Механизм взаимодействия с файловой системой: o механизм обхода дерева SOURCE_DIR; o механизм обработки ошибочных ситуаций.
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 126/301
• Механизм преобразования файлов: o механизм определения кодировок; o механизм преобразования кодировок; o механизм обработки ошибочных ситуаций.
• Механизм ведения журнала: o механизм записи журнала; o механизм отображения журнала в консоли; o механизм обработки ошибочных ситуаций.
Согласитесь, что такие длинные названия с постоянно повторяющимся сло- вом «механизм» читать и запоминать сложно. Перепишем:
• Стартер: o анализатор параметров; o сборщик приложения; o обработчик ошибок.
• Сканер: o обходчик; o обработчик ошибок.
• Преобразователь: o детектор; o конвертер; o обработчик ошибок.
• Регистратор: o дисковый регистратор; o консольный регистратор; o обработчик ошибок.
Но что делать, если мы не знаем «внутренностей» приложения (или не очень разбираемся в программировании)? Модули и подмодули можно выделять на ос- нове графического интерфейса пользователя (крупные области и элементы внутри них), на основе решаемых приложением задач и подзадач и т.д. Главное, чтобы эта логика была одинаковым образом применена ко всему приложению.
Внимание! Частая ошибка! Модуль и подмодуль приложения — это НЕ действия, это именно структурные части, «куски» приложения. В заблуж- дение вас могут ввести такие названия, как, например, «печать, настройка принтера» (но здесь имеются в виду именно части приложения, отвечаю- щие за печать и за настройку принтера (и названы они отглагольными су- ществительными), а не процесс печати или настройки принтера).
Сравните (на примере человека): «дыхательная система, лёгкие» — это модуль и подмодуль, а «дыхание», «сопение», «чихание» — нет; «голова, мозг» — это модуль и подмодуль, а «кивание», «думание» — нет.
Наличие полей «Модуль» и «Подмодуль» улучшает такое свойство тест- кейса, как прослеживаемость
{143}
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 127/301
Заглавие (суть) тест-кейса (title) призвано упростить и ускорить понимание основной идеи (цели) тест-кейса без обращения к его остальным атрибутам.
Именно это поле является наиболее информативным при просмотре списка тест- кейсов.
Сравните.
Плохо
Хорошо
Тест 1
Запуск, одна копия, верные параметры
Тест 2
Запуск одной копии с неверными путями
Тест 78 (улучшенный)
Запуск, много копий, без конфликтов
Остановка
Остановка по Ctrl+C
Закрытие
Остановка закрытием консоли
…
…
Заглавие тест-кейса может быть полноценным предложением, фразой, набо- ром словосочетаний — главное, чтобы выполнялись следующие условия:
• Информативность.
• Хотя бы относительная уникальность (чтобы не путать разные тест-кейсы).
Внимание! Частая ошибка! Если инструмент управления тест-кейсами не требует писать заглавие, его всё равно надо писать. Тест-кейсы без за- главий превращаются в мешанину информации, использование которой сопряжено с колоссальными и совершенно бессмысленными затратами.
И ещё одна небольшая мысль, которая может помочь лучше формулировать заглавия. В дословном переводе с английского «test case» обозначает «тестовый случай (ситуация)». Так вот, заглавие как раз и описывает этот случай (ситуацию), т.е. что происходит в тест-кейсе, какую ситуацию он проверяет.
Исходные данные, необходимые для выполнения тест-кейса
(precondition, preparation, initial data, setup), позволяют описать всё то, что должно быть подготовлено до начала выполнения тест-кейса, например:
• Состояние базы данных.
• Состояние файловой системы и её объектов.
• Состояние серверов и сетевой инфраструктуры.
То, что описывается в этом поле, готовится БЕЗ использования тестируемого приложения, и таким образом, если здесь возникают проблемы, нельзя писать от- чёт о дефекте в приложении. Эта мысль очень и очень важна, потому поясним её простым жизненным примером. Представьте, что вы дегустируете конфеты. В поле
«исходные данные» можно прописать «купить конфеты таких-то сортов в таком-то количестве». Если таких конфет нет в продаже, если закрыт магазин, если не хва- тило денег и т.д. — всё это НЕ проблемы вкуса конфет, и нельзя писать отчёт о дефекте конфет вида «конфеты невкусные потому, что закрыт магазин».
Некоторые авторы не следуют этой логике и допускают в разделе «приго- товления» работу с тестируемым приложением. И здесь нет «правильного варианта» — просто в одной традиции решено одним образом, в другой — другим. Во многом это — ещё и терминологическая проблема:
«preparation», «initial data» и «setup» вполне логично выполнять без уча- стия тестируемого приложения, в то время как «precondition» по смыслу ближе к описанию состояния тестируемого приложения. В реальной рабо- чей обстановке вам достаточно будет прочитать несколько тест-кейсов, уже созданных вашими коллегами, чтобы понять, какой точки зрения на данный вопрос они придерживаются.
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 128/301
Шаги тест-кейса (steps) описывают последовательность действий, которые необходимо реализовать в процессе выполнения тест-кейса. Общие рекомендации по написанию шагов таковы:
• начинайте с понятного и очевидного места, не пишите лишних начальных шагов (запуск приложения, очевидные операции с интерфейсом и т.п.);
• даже если в тест-кейсе всего один шаг, нумеруйте его (иначе возрастает ве- роятность в будущем случайно «приклеить» описание этого шага к новому тексту);
• если вы пишете на русском языке, используйте безличную форму (например,
«открыть», «ввести», «добавить» вместо «откройте», «введите», «до- бавьте»), в английском языке не надо использовать частицу «to» (т.е. «запу- стить приложение» будет «start application», не «to start application»);
• соотносите степень детализации шагов и их параметров с целью тест-кейса, его сложностью, уровнем
{79}
и т.д. — в зависимости от этих и многих других факторов степень детализации может варьироваться от общих идей до пре- дельно чётко прописанных значений и указаний;
• ссылайтесь на предыдущие шаги и их диапазоны для сокращения объёма текста (например, «повторить шаги 3–5 со значением…»);
• пишите шаги последовательно, без условных конструкций вида «если… то…».
Внимание! Частая ошибка! Категорически запрещено ссылаться на шаги из других тест-кейсов и другие тест-кейсы целиком: если те, другие тест- кейсы будут изменены или удалены, ваш тест-кейс начнёт ссылаться на неверные данные или в пустоту, а если в процессе выполнения те, другие тест-кейсы или шаги приведут к возникновению ошибки, вы не сможете закончить выполнение вашего тест-кейса.
Ожидаемые результаты (expected results) по каждому шагу тест-кейса опи- сывают реакцию приложения на действия, описанные в поле «шаги тест-кейса».
Номер шага соответствует номеру результата.
По написанию ожидаемых результатов можно порекомендовать следующее:
• описывайте поведение системы так, чтобы исключить субъективное толкова- ние (например, «приложение работает верно» — плохо, «появляется окно с надписью…» — хорошо);
• пишите ожидаемый результат по всем шагам без исключения, если у вас есть хоть малейшие сомнения в том, что результат некоего шага будет совер- шенно тривиальным и очевидным (если вы всё же пропускаете ожидаемый результат для какого-то тривиального действия, лучше оставить в списке ожидаемых результатов пустую строку — это облегчает восприятие);
• пишите кратко, но не в ущерб информативности;
• избегайте условных конструкций вида «если… то…».
Внимание! Частая ошибка! В ожидаемых результатах ВСЕГДА описыва- ется КОРРЕКТНАЯ работа приложения. Нет и не может быть ожидаемого результата в виде «приложение вызывает ошибку в операционной си- стеме и аварийно завершается с потерей всех пользовательских данных».
При этом корректная работа приложения вполне может предполагать отображение сообщений о неверных действиях пользователя или неких критических ситуациях. Так, сообщение «Невозможно сохранить файл по указанному пути: на целевом носителе недостаточно свободного места»
Атрибуты (поля) тест-кейса
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 129/301
— это не ошибка приложения, это его совершенно нормальная и правиль- ная работа. Ошибкой приложения (в этой же ситуации) было бы отсут- ствие такого сообщения, и/или повреждение, или потеря записываемых данных.
Для более глубокого понимания принципов оформления тест-кейсов реко- мендуется прямо сейчас ознакомиться с главой «Типичные ошибки при разработке чек-листов, тест-кейсов и наборов тест-кейсов»
{160}
Инструментальные средства управления тестированием
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 130/301
2.4.4.
Инструментальные средства управления тестированием
Инструментальных средств управления тестированием (test management tool
298
) очень много, к тому же многие компании разрабатывают свои внутренние средства решения этой задачи.
Не имеет смысла заучивать, как работать с тест-кейсами в том или ином ин- струментальном средстве — принцип везде един, и соответствующие навыки нара- батываются буквально за пару дней. Что на текущий момент важно понимать, так это общий набор функций, реализуемых такими инструментальными средствами
(конечно, то или иное средство может не реализовывать какую-то функцию из этого списка и/или реализовывать не вошедшие в список функции):
• создание тест-кейсов и наборов тест-кейсов;
• контроль версий документов с возможностью определить, кто внёс те или иные изменения, и отменить эти изменения, если требуется;
• формирование и отслеживание реализации плана тестирования, сбор и ви- зуализация разнообразных метрик, генерирование отчётов;
• интеграция с системами управления дефектами, фиксация взаимосвязи между выполнением тест-кейсов и созданными отчётами о дефектах;
• интеграция с системами управления проектами;
• интеграция с инструментами автоматизированного тестирования, управле- ние выполнением автоматизированных тест-кейсов.
Иными словами, хорошее инструментальное средство управления тестиро- ванием берёт на себя все рутинные технические операции, которые объективно необходимо выполнять в процессе реализации жизненного цикла тестирования
{27}
Огромным преимуществом также является способность таких инструментальных средств отслеживать взаимосвязи между различными документами и иными арте- фактами, взаимосвязи между артефактами и процессами и т.д., подчиняя эти дей- ствия системе разграничения прав доступа и гарантируя сохранность и коррект- ность информации.
Для общего развития и лучшего закрепления темы об оформлении тест-кей- сов
{124}
мы сейчас рассмотрим несколько картинок с формами из разных инструмен- тальных средств.
Здесь вполне сознательно не приведено никакого сравнения или подробного описания — подобных обзоров достаточно в Интернете, и они стремительно уста- ревают по мере выхода новых версий обозреваемых продуктов.
Но интерес представляют отдельные особенности интерфейса, на которые мы обратим внимание в каждом из примеров (важно: если вас интересует подроб- ное описание каждого поля, связанных с ним процессов и т.д., обратитесь к офици- альной документации — здесь будут лишь самые краткие пояснения).
298
Test management tool. A tool that provides support to the test management and control part of a test process. It often has several capabilities, such as testware management, scheduling of tests, the logging of results, progress tracking, incident management and test reporting. [ISTQB Glossary]