Тестовый сценарий пример оформления

Проектирование и Разработка Информационных Систем. Contribute to kolei/PiRIS development by creating an account on GitHub.

Тестовые сценарии (Test case), тестовые варианты. Оформление результатов тестирования.

ТЕРМИНОЛОГИЯ И ОБЩИЕ СВЕДЕНИЯ

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

Во главе всего лежит термин «тест». Официальное определение звучит так.

Тест — набор из одного или нескольких тест-кейсов.

Поскольку среди всех прочих терминов этот легче и быстрее всего произносить, в зависимости от контекста под ним могут понимать и отдельный пункт чек-листа, и отдельный шаг в тест-кейсе, и сам тест-кейс, и набор тест-кейсов и… продолжать можно долго. Главное здесь одно: если вы слышите или видите слово «тест», воспринимайте его в контексте.

Теперь рассмотрим самый главный для нас термин — «тест-кейс».

Тест-кейс — набор входных данных, условий выполнения и ожидаемых
результатов, разработанный с целью проверки того или иного свойства или поведения программного средства.

Под тест-кейсом также может пониматься соответствующий документ, представляющий формальную запись тест-кейса.

Мы ещё вернёмся к этой мысли, но уже сейчас критически важно понять и запомнить: если у тест-кейса не указаны входные данные, условия выполнения и ожидаемые результаты, и/или не ясна цель тест-кейса — это плохой тест-кейс (иногда он не имеет смысла, иногда его и
вовсе невозможно выполнить).

Иногда термин «test case» на русский язык переводят как «тестовый случай». Это вполне адекватный перевод, но из-за того, что «тест-кейс» короче произносить, наибольшее распространение получил именно этот вариант.

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

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

Низкоуровневый тест-кейс — тест-кейс с конкретными входными дан-
ными и ожидаемыми результатами.

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

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

Спецификация теста — документ, состоящий из спецификации тест-дизайна, спецификации тест-кейса и/или спецификации тест-процедуры.

Тест-сценарий — документ, описывающий последовательность действий по выполнению теста (также известен как «тест-скрипт»).

ЦЕЛЬ НАПИСАНИЯ ТЕСТ-КЕЙСОВ

Тестирование можно проводить и без тест-кейсов (не нужно, но можно; да, эффективность такого подхода варьируется в очень широком диапазоне в зависимости от множества факторов).

Наличие же тест-кейсов позволяет:

  • Структурировать и систематизировать подход к тестированию (без чего крупный проект почти гарантированно обречён на провал).
  • Вычислять метрики тестового покрытия (test coverage 296 metrics) и принимать меры по его увеличению (тест-кейсы здесь являются главным источником информации, без которого существование подобных метрик теряет смысл).
  • Отслеживать соответствие текущей ситуации плану (сколько примерно понадобится тест-кейсов, сколько уже есть, сколько выполнено из запланированного на данном этапе количества и т.д.).
  • Уточнить взаимопонимание между заказчиком, разработчиками и тестировщиками (тест-кейсы зачастую намного более наглядно показывают поведение приложения, чем это отражено в требованиях).
  • Хранить информацию для длительного использования и обмена опытом между сотрудниками и командами (или как минимум — не пытаться удержать в голове сотни страниц текста).
  • Проводить регрессионное тестирование и повторное тестирование (которые без тест-кейсов было бы вообще невозможно выполнить).
  • Повышать качество требований (мы это уже рассматривали: написание чек-листов и тест-кейсов — хорошая техника тестирования требований).
  • Быстро вводить в курс дела нового сотрудника, недавно подключившегося к проекту.

ЖИЗНЕННЫЙ ЦИКЛ ТЕСТ-КЕЙСА

В отличие от отчёта о дефекте, у которого есть полноценный развитый жизненный цикл, для тест-кейса речь скорее идёт о наборе состояний, в которых он может находиться (жирным шрифтом отмечены наиболее важные состояния).

  • Создан — типичное начальное состояние практически любого артефакта. Тест-кейс автоматически переходит в это состояние после создания.
  • Запланирован — в этом состоянии тест-кейс находится, когда он
    или явно включён в план ближайшей итерации тестирования, или как минимум готов для выполнения.
  • Не выполнен — в некоторых системах управления тест-кейсами это состояние заменяет собой предыдущее («запланирован»). Нахождение тест-кейса в данном состоянии означает, что он готов к выполнению, но ещё не был выполнен.
  • Выполняется — если тест-кейс требует длительного времени на выполнение, он может быть переведён в это состояние для подчёркивания того факта, что работа идёт, и скоро можно ожидать её результатов. Если выполнение тест-кейса занимает мало времени, это состояние, как правило, пропускается, а тест-кейс сразу переводится в одно из трёх следующих состояний — «провален», «пройден успешно» или «заблокирован».
  • Пропущен — бывают ситуации, когда выполнение тест-кейса отменяется по соображениям нехватки времени или изменения логики тестирования.
  • Провален — данное состояние означает, что в процессе выполнения тест-кейса был обнаружен дефект, заключающийся в том, что ожидаемый результат по как минимум одному шагу тест-кейса не совпадает с фактическим результатом. Если в процессе выполнения тест-кейса был «случайно» обнаружен дефект, никак не связанный с шагами тест-кейса и их ожидаемыми результатами, тест-кейс считается пройденным успешно (при этом, естественно, по обнаруженному дефекту создаётся отчёт о дефекте).
  • Пройден успешно — данное состояние означает, что в процессе выполнения тест-кейса не было обнаружено дефектов, связанных с расхождением ожидаемых и фактических результатов его шагов.
  • Заблокирован — данное состояние означает, что по какой-то причине выполнение тест-кейса невозможно (как правило, такой причиной является наличие дефекта, не позволяющего реализовать некий пользовательский сценарий).
  • Закрыт — очень редкий случай, т.к. тест-кейс, как правило, оставляют в состояниях «провален / пройден успешно / заблокирован / пропущен». В данное состояние в некоторых системах управления тест-кейс переводят, чтобы подчеркнуть тот факт, что на данной итерации тестирования все действия с ним завершены.
  • Требует доработки — как видно из схемы, в это состояние (и из него) тест-кейс может быть преведён в любой момент времени, если в нём будет обнаружена ошибка, если изменятся требования, по которым он был написан, или наступит иная ситуация, не позволяющая считать тест-кейс пригодным для выполнения и перевода в иные состояния.

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

Атрибуты (поля) тест-кейса.

Как уже было сказано выше, термин «тест-кейс» может относиться к формальной записи тест-кейса в виде технического документа. Эта запись имеет общепринятую структуру, компоненты которой называются атрибутами (полями) тест-кейса.

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

Общий вид всей структуры тест-кейса представлен ниже:

Теперь рассмотрим каждый атрибут подробно.

Идентификатор представляет собой уникальное значение, позволяющее однозначно отличить один тест-кейс от другого и используемое во всевозможных ссылках. В общем случае идентификатор тест-кейса может представлять собой просто уникальный номер, но (если
позволяет инструментальное средство управления тест-кейсами) может быть и куда сложнее: включать префиксы, суффиксы и иные осмысленные компоненты, позволяющие быстро определить цель тест-кейса и часть приложения (или требований), к которой он относится (например:
UR216_S12_DB_Neg).

Приоритет показывает важность тест-кейса. Он может быть выражен буквами (A, B, C, D, E), цифрами (1, 2, 3, 4, 5), словами («крайне высокий», «высокий», «средний», «низкий», «крайне низкий») или иным удобным способом. Количество градаций также не фиксировано, но чаще всего лежит в диапазоне от трёх до пяти.

Приоритет тест-кейса может коррелировать с:

  • важностью требования, пользовательского сценария или функции, с которыми связан тест-кейс;
  • потенциальной важностью дефекта, на поиск которого направлен тест-кейс;
  • степенью риска, связанного с проверяемым тест-кейсом требованием, сценарием или функцией.

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

Связанное с тест-кейсом требование показывает то основное требование, проверке выполнения которого посвящён тест-кейс (основное — потому, что один тест-кейс может затрагивать несколько требований). Наличие этого поля улучшает такое свойство тест-кейса,
как прослеживаемость.

Частые вопросы, связанные с заполнением этого поля, таковы:

  • Можно ли его оставить пустым? Да. Тест-кейс вполне мог разрабатываться вне прямой привязки к требованиям, и (пока?) значение этого поля определить сложно. Хоть такой вариант и не считается хорошим, он достаточно распространён.
  • Можно ли в этом поле указывать несколько требований? Да, но чаще всего стараются выбрать одно самое главное или «более высокоуровневое» (например, вместо того, чтобы перечислять R56.1, R56.2, R56.3 и т.д., можно просто написать R56). Чаще всего в инструментах управления тестами это поле представляет собой выпадающий список, где можно выбрать только одно значение, и этот вопрос становится неактуальным. К тому же многие тест-кейсы всё же направлены на проверку строго одного требования, и для них этот вопрос также неактуален.

Модуль и подмодуль приложения указывают на части приложения,
к которым относится тест-кейс, и позволяют лучше понять его цель.
Идея деления приложения на модули и подмодули проистекает из того, что в сложных системах практически невозможно охватить взглядом весь проект целиком, и вопрос «как протестировать это приложение» становится недопустимо сложным. Тогда приложение логически разде-
ляется на компоненты (модули), а те, в свою очередь, на более мелкие компоненты (подмодули).
И вот уже для таких небольших частей приложения придумать чек-листы и создать хорошие тест-кейсы становится намного проще.

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

Теперь — самое сложное: как выбираются модули и подмодули. В реальности проще всего отталкиваться от архитектуры и дизайна приложения. Например, в уже знакомом нам приложении можно выделить такую иерархию модулей и подмодулей:

  • Механизм запуска:

    • механизм анализа параметров;
    • механизм сборки приложения;
    • механизм обработки ошибочных ситуаций.
  • Механизм взаимодействия с файловой системой:

    • механизм обхода дерева SOURCE_DIR;
    • механизм обработки ошибочных ситуаций.
  • Механизм преобразования файлов:

    • механизм определения кодировок;
    • механизм преобразования кодировок;
    • механизм обработки ошибочных ситуаций.
  • Механизм ведения журнала:

    • механизм записи журнала;
    • механизм отображения журнала в консоли;
    • механизм обработки ошибочных ситуаций.

Согласитесь, что такие длинные названия с постоянно повторяющимся словом «механизм» читать и запоминать сложно. Перепишем:

  • Стартер:
    • анализатор параметров;
    • сборщик приложения;
    • обработчик ошибок.
  • Сканер:
    • обходчик;
    • обработчик ошибок.
  • Преобразователь:
    • детектор;
    • конвертер;
    • обработчик ошибок.
  • Регистратор:
    • дисковый регистратор;
    • консольный регистратор;
    • обработчик ошибок.

Но что делать, если мы не знаем «внутренностей» приложения (или не очень разбираемся в программировании)? Модули и подмодули можно выделять на основе графического интерфейса пользователя (крупные области и элементы внутри них), на основе решаемых приложением
задач и подзадач и т.д. Главное, чтобы эта логика была одинаковым образом применена ко всему приложению.

Внимание! Частая ошибка! Модуль и подмодуль приложения — это НЕ действия, это именно структурные части, «куски» приложения. В заблуждение вас могут ввести такие названия, как, например, «печать, настройка принтера» (но здесь имеются в виду именно части приложения, отвечающие за печать и за настройку принтера (и названы
они отглагольными существительными), а не процесс печати или настройки принтера).

Сравните (на примере человека): «дыхательная система, лёгкие» — это модуль и подмодуль, а «дыхание», «сопение», «чихание» — нет; «голова, мозг» — это модуль и подмодуль, а «кивание», «думание» — нет.

Наличие полей «Модуль» и «Подмодуль» улучшает такое свойство тест-кейса, как прослеживаемость.

Заглавие тест-кейса призвано упростить и ускорить понимание основной идеи (цели) тест-кейса без обращения к его остальным атрибутам. Именно это поле является наиболее информативным при просмотре списка тест-кейсов.

Сравните.

Плохо Хорошо
Тест 1 Запуск, одна копия, верные параметры
Тест 2 Запуск одной копии с неверными путями
Тест 78 (улучшенный) Запуск, много копий, без конфликтов
Остановка Остановка по Ctrl+C
Закрытие Остановка закрытием консоли

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

  • Информативность.
  • Хотя бы относительная уникальность (чтобы не путать разные тест-кейсы).

Внимание! Частая ошибка! Если инструмент управления тест-кейсами не требует писать заглавие, его всё равно надо писать. Тест-кейсы без заглавий превращаются в мешанину информации, использование которой сопряжено с колоссальными и совершенно бессмысленными затратами.

И ещё одна небольшая мысль, которая может помочь лучше формулировать заглавия. В дословном переводе с английского «test case» обозначает «тестовый случай (ситуация)». Так вот, заглавие как раз и описывает этот случай (ситуацию), т.е. что происходит в тест-кейсе, какую
ситуацию он проверяет.

Исходные данные, необходимые для выполнения тест-кейса, позволяют описать всё то, что должно быть подготовлено до начала выполнения тест-кейса, например:

  • Состояние базы данных.
  • Состояние файловой системы и её объектов.
  • Состояние серверов и сетевой инфраструктуры.

То, что описывается в этом поле, готовится БЕЗ использования тестируемого приложения, и таким образом, если здесь возникают проблемы, нельзя писать отчёт о дефекте в приложении.
Эта мысль очень и очень важна, потому поясним её простым жизненным примером. Представьте, что вы дегустируете конфеты. В поле «исходные данные» можно прописать «купить конфеты таких-то сортов в таком-то количестве». Если таких конфет нет в продаже, если закрыт магазин,
если не хватило денег и т. д. — всё это НЕ проблемы вкуса конфет, и нельзя писать отчёт о дефекте конфет вида «конфеты невкусные потому, что закрыт магазин».

Некоторые авторы не следуют этой логике и допускают в приготовлениях работу с тестируемым приложением. И здесь нет «правильного варианта» — просто в одной традиции решено одним образом, в другой — другим. Во многом это — ещё и терминологическая проблема: «preparation», «initial data» и «setup» вполне логично выполнять без участия тестируемого приложения, в то время как «precondition» по смыслу ближе к описанию состояния тестируемого приложения. В реальной рабочей обстановке вам достаточно будет прочитать несколько тест-кейсов, уже созданных вашими коллегами,
чтобы понять, какой точки зрения на данный вопрос они придерживаются.

Шаги тест-кейса описывают последовательность действий, которые необходимо реализовать в процессе выполнения тест-кейса. Общие рекомендации по написанию шагов таковы:

  • начинайте с понятного и очевидного места, не пишите лишних начальных шагов (запуск приложения, очевидные операции с интерфейсом и т. п.);
  • даже если в тест-кейсе всего один шаг, нумеруйте его (иначе возрастает вероятность в будущем случайно «приклеить» описание этого шага к новому тексту);
  • если вы пишете на русском языке, используйте безличную форму (например, «открыть», «ввести», «добавить» вместо «откройте», «введите», «добавьте»), в английском языке не надо использовать частицу «to» (т.е. «запустить приложение» будет «start application», не «to start application»);
  • соотносите степень детализации шагов и их параметров с целью тест-кейса, его сложностью, уровнем и т. д. — в зависимости от этих и многих других факторов степень детализации может варьироваться от общих идей до предельно чётко прописанных значений и указаний;
  • ссылайтесь на предыдущие шаги и их диапазоны для сокращения объёма текста (например, «повторить шаги 3–5 со значением…»);
  • пишите шаги последовательно, без условных конструкций вида «если… то…».

Внимание! Частая ошибка! Категорически запрещено ссылаться на шаги из других тест-кейсов и другие тест-кейсы целиком: если те, другие тест-кейсы будут изменены или удалены, ваш тест-кейс начнёт ссылаться на неверные данные или в пустоту, а если в процессе выполнения те, другие тест-кейсы или шаги приведут к возникновению
ошибки, вы не сможете закончить выполнение вашего тест-кейса.

Ожидаемые результаты по каждому шагу тест-кейса описывают реакцию
приложения на действия, описанные в поле «шаги тест-кейса». Номер шага соответствует номеру результата.

По написанию ожидаемых результатов можно порекомендовать следующее:

  • описывайте поведение системы так, чтобы исключить субъективное толкование (например, «приложение работает верно» — плохо, «появляется окно с надписью…» — хорошо);
  • пишите ожидаемый результат по всем шагам без исключения, если у вас есть хоть малейшие сомнения в том, что результат некоего шага будет совершенно тривиальным и очевидным (если вы всё же пропускаете ожидаемый результат для какого-то тривиального действия,
    лучше оставить в списке ожидаемых результатов пустую строку — это облегчает восприятие);
  • пишите кратко, но не в ущерб информативности;
  • избегайте условных конструкций вида «если… то…».

Внимание! Частая ошибка! В ожидаемых результатах ВСЕГДА описывается КОРРЕКТНАЯ работа приложения. Нет и не может быть ожидаемого результата в виде «приложение вызывает ошибку в операционной системе и аварийно завершается с потерей всех пользовательских данных».

При этом корректная работа приложения вполне может предполагать отображение сообщений о неверных действиях пользователя или неких критических ситуациях. Так, сообщение «Невозможно сохранить файл по указанному пути: на целевом носителе недостаточно свободного места» — это не ошибка приложения, это его совершенно нормальная и правильная работа. Ошибкой приложения (в этой же ситуации) было бы
отсутствие такого сообщения, и/или повреждение, или потеря записываемых данных.

Для более глубокого понимания принципов оформления тест-кейсов рекомендуется прямо сейчас ознакомиться с главой «Типичные ошибки при разработке чек-листов, тест-кейсов и наборов тест-кейсов».

Свойства качественных тест-кейсов

Даже правильно оформленный тест-кейс может оказаться некачественным, если в нём нарушено одно из следующих свойств.

Правильный технический язык, точность и единообразие формулировок. Это свойство в равной мере относится и к требованиям, и к тест-кейсам, и к отчётам о дефектах — к любой до-
кументации. Основные идеи уже были описаны (см. главу «Атрибуты (поля) тест-кейсов»), а из самого общего и важного напомним и добавим:

  • пишите лаконично, но понятно;
  • используйте безличную форму глаголов (например, «открыть» вместо «откройте»);
  • обязательно указывайте точные имена и технически верные названия элементов приложения;
  • не объясняйте базовые принципы работы с компьютером (предполагается, что ваши коллеги знают, что такое, например, «пункт меню» и как с ним работать);
  • везде называйте одни и те же вещи одинаково (например, нельзя в одном тест-кейсе некий режим работы приложения назвать «графическое представление», а в другом тот же режим — «визуальное отображение», т.к. многие люди могут подумать, что речь идёт о разных вещах);
  • следуйте принятому на проекте стандарту оформления и написания тест-кейсов (иногда такие стандарты могут быть весьма жёсткими: вплоть до регламентации того, названия каких элементов должны быть приведены в двойных кавычках, а каких — в одинарных).

Баланс между специфичностью и общностью. Тест-кейс считается тем более специфичным, чем более детально в нём расписаны конкретные действия, конкретные значения и т. д., т. е. чем в нём больше конкретики. Соответственно, тест-кейс считается тем более общим, чем в нём меньше конкретики.

Рассмотрим поля «шаги» и «ожидаемые результаты» двух тест-кейсов (подумайте, какой тест-кейс вы бы посчитали хорошим, а какой — плохим и почему):

Тест-кейс 1:

Шаги Ожидаемые результаты
Конвертация из всех поддерживаемых кодировок
Приготовления:
— Создать папки C:/A, C:/B, C:/C, C:/D.
— Разместить в папке C:/D файлы 1.html, 2.txt, 3.md из прилагаемого архива.
1. Запустить приложение, выполнив команду php converter.php c:/a c:/b c:/c/converter.log.
2. Скопировать файлы 1.html, 2.txt, 3.md из папки C:/D в папку C:/A.
3. Остановить приложение нажатием Crtl+C.
1. Отображается консольный журнал приложения с сообщением «текущее_время started, source dir c:/a, destination dir c:/b, log file c:/c/converter.log», в папке C:/C появляется файл converter.log, в котором появляется запись «текущее_время started, source dir c:/a, destination dir c:/b, log file c:/c/converter.log».
2. Файлы 1.html, 2.txt, 3.md появляются в папке C:/A, затем пропадают оттуда и появляются в папке C:/B. В консольном журнале и файле C:/C/converter.log появляются сообщения (записи) «текущее_время processing 1.html (KOI8-R)», «текущее_время processing 2.txt (CP-1251)», «текущее_время processing 3.md (CP-866)».
3. В файле C:/C/converter.log появляется запись «текущее_время closed». Приложение завершает работу.

Тест-кейс 2:

Шаги Ожидаемые результаты
Конвертация из всех поддерживаемых кодировок
1. Выполнить конвертацию трёх файлов до пустимого размера в трёх разных кодировках всех трёх допустимых форматов.
1. Файлы перемещаются в папку-приёмник, кодировка всех файлов меняется на UTF-8.

Если вернуться к вопросу «какой тест-кейс вы бы посчитали хорошим, а какой — плохим и почему», то ответ таков: оба тест-кейса плохие потому, что первый является слишком специфичным, а второй — слишком общим. Можно сказать, что здесь до абсурда доведены идеи низкоуровневых и высокоуровневых тест-кейсов.

Почему плоха излишняя специфичность (тест-кейс 1):

  • при повторных выполнениях тест-кейса всегда будут выполняться строго одни и те же действия со строго одними и теми же данными, что снижает вероятность обнаружения ошибки;
  • возрастает время написания, доработки и даже просто прочтения тест-кейса;
  • в случае выполнения тривиальных действий опытные специалисты тратят дополнительные мыслительные ресурсы в попытках понять, что же они упустили из виду, т. к. они привыкли, что так описываются только самые сложные и неочевидные ситуации.

Почему плоха излишняя общность (тест-кейс 2):

  • тест-кейс сложен для выполнения начинающими тестировщиками или даже опытными специалистами, лишь недавно подключившимися к проекту;
  • недобросовестные сотрудники склонны халатно относиться к таким тест-кейсам;
  • тестировщик, выполняющий тест-кейс, может понять его иначе, чем было задумано автором (и в итоге будет выполнен фактически совсем другой тест-кейс).

Выход из этой ситуации состоит в том, чтобы придерживаться золотой середины (хотя, конечно же, какие-то тесты будут чуть более специфичными, какие-то — чуть более общими).

Вот пример такого срединного подхода:

Тест-кейс 3:

Шаги Ожидаемые результаты
Конвертация из всех поддерживаемых кодировок
Приготовления:
— Создать в корне любого диска четыре отдельные папки для входных файлов, выходных файлов, файла журнала и временного хранения тестовых файлов.
— Распаковать содержимое прилагаемого архива в папку для временного хранения тестовых файлов.
1. Запустить приложение, указав в параметрах соответствующие пути из приготовления к тесту (имя файла журнала — произвольное).
2. Скопировать файлы из папки для временного хранения в папку для входных файлов.
3. Остановить приложение.
1. Приложение запускается и выводит сообщение о своём запуске в консоль и файл журнала.
2. Файлы из папки для входных файлов перемещаются в папку для выходных файлов, в консоли и файле журнала отображаются сообщения о конвертации каждого из файлов с указанием его исходной кодировки.
3. Приложение выводит сообщение о завершении работы в файл журнала и завершает работу.

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

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

Баланс между простотой и сложностью. Здесь не существует академических определений, но принято считать, что простой тест-кейс оперирует одним объектом (или в нём явно виден
главный объект), а также содержит небольшое количество тривиальных действий; сложный тест-кейс оперирует несколькими равноправными объектами и содержит много нетривиальных
действий.

Преимущества простых тест-кейсов:

  • их можно быстро прочесть, легко понять и выполнить;
  • они понятны начинающим тестировщикам и новым людям на проекте;
  • они делают наличие ошибки очевидным (как правило, в них предполагается выполнение повседневных тривиальных действий, проблемы с которыми видны невооружённым взглядом и не вызывают дискуссий);
  • они упрощают начальную диагностику ошибки, т.к. сужают круг поиска.

Преимущества сложных тест-кейсов:

  • при взаимодействии многих объектов повышается вероятность возникновения ошибки;
  • пользователи, как правило, используют сложные сценарии, а потому сложные тесты более полноценно эмулируют работу пользователей;
  • программисты редко проверяют такие сложные случаи (и они совершенно не обязаны это делать).

Рассмотрим примеры.

Шаблон тестового сценария по стандартам WorldSkills (демо-экзамен) с комментариями

Для выполнения процедуры тестирования удаления товаров Вам нужно описать пять сценариев.

Удаление может быть выполнимо, а может быть отклонено согласно требованиям предметной области.

Необходимо, чтобы варианты тестирования демонстрировали различные исходы работы алгоритма. Для описания тестовых сценариев в ресурсах предоставлен шаблон testing-template.docx (есть в этом репозитории в каталоге docs).

Расшифровка тестовых информационных полей:

Поле Описание
Название проекта Название тестируемого проекта
Рабочая версия Версия проекта/программного обеспечения (первый тест считается 1.0).
Имя тестирующего Имя того, кто проводил тесты
Дата(ы) теста Дата(ы) проведения тестов – это один или несколько дней. Если тесты проводились в более протяженный период времени, нужно отметить отдельную дату для каждого теста.
Тестовый пример # Уникальный ID для каждого тестового примера. Следуйте некоторым конвенциям, чтобы указать типы тестов. Например,‘TC_UI_1′ означает‘user interface test case #1′ ( ТС_ПИ_1: тестовый случай пользовательского интерфейса#1)
Приоритет тестирования (Низкий/Средний/Высокий) Насколько важен каждый тест. Приоритет тестирования для бизнес-правил и функциональных тестовых случаев может быть средним или высоким, в то время как незначительные случаи пользовательского интерфейса могут иметь низкий приоритет.
Заголовок/название теста Название тестового случая. Например, Подтвердите страницу авторизации с действительным именем пользователя и паролем.
Краткое изложение теста Описание того, что должен достичь тест.
Этапы теста Перечислите все этапы теста подробно. Запишите этапы теста в том порядке, в котором они должны быть реализованы. Предоставьте как можно больше подробностей и разъяснений. Пронумерованный список – хорошая идея.
Тестовые данные Перечислите/опишите все тестовые данные, используемые для данного тестового случая. Так, фактические используемые входные данные можно отслеживать по результатам тестирования. Например, Имя пользователя и пароль для подтверждения входа.
Ожидаемый результат Каким должен быть вывод системы после выполнения теста? Подробно опишите ожидаемый результат, включая все сообщения/ошибки, которые должны отображаться на экране.
Фактический результат Каким должен быть фактический результат после выполнения теста? Опишите любое релевантное поведение системы после выполнения теста.
Предварительное условие Любые предварительные условия, которые должны быть выполнены до выполнения теста. Перечислите все предварительные условия для выполнения этого тестового случая.
Постусловие Каким должно быть состояние системы после выполнения теста?
Статус (Зачет/Незачет) Если фактический результат не соответствует ожидаемому результату, отметьте тест как неудачный. В ином случае обновление пройдено.
Примечания/комментарии Используйте эту область для любых дополнительных заметок/комментариев/вопросов. Эта область предназначена для поддержки вышеуказанных полей (например, если есть некоторые особые условия, которые не могут быть описаны в любом из вышеуказанных полей, или если есть вопросы, связанные с ожидаемыми или фактическими результатами).

Аннотация теста

    Мои комментарии
Название проекта DoeduSam
Рабочая версия 1.0 Эту версию не плохо бы вписать в свойства проекта
Имя тестирующего DEMO_xx
Дата(ы) теста 21.12.2020 текущая

Тестовый пример #1:

    Мои комментарии
Тестовый пример # TC_DP_1 расшифровывается: TestCase_DeleteProduct_x
Приоритет тестирования средний бизнес-правило
Заголовок/название теста Удаление товара без продаж и дополнительных товаров
Краткое изложение теста Товар должен без ошибок удалиться из таблицы товаров
Этапы теста 1. Очистить таблицы продаж, дополнительных товаров, дополнительных картинок и товаров. 2. Добавить тестовый товар в таблицу Products
3. Вызвать метод удаления товара
4. Проверить наличие удаленной записи в таблице
Тестовые данные Название: Моторное масло Motor Oil KE900-90042-R
Изображение: Товары автосервиса8FE07916.jpg
Производитель: Nissan
Активен: да
Цена: 2060
Тут нужно вставить содержимое любой записи из products_a_import
Ожидаемый результат Запись должна быть удалена из таблицы без ошибок и исключений
Фактический результат Запись удалена
Статус зачет
Предварительное условие В базу должны быть загружен тестовый продукт
Постусловие Таблица товаров должна быть пустой
Примечания/комментарии Т.к. мы добавили только товар без продаж и дополнительных товаров, то ошибок в принципе быть не может ни по вине кода ни по ограничениям базы

Что еще можно проверить

  • №2 — удаление товара с дополнительными товарами. Если ограничения настроены правильно (каскадное удаление), то тоже долно удаляться нормально.

  • №3 — удаление товара с дополнительными картинками. Аналогично №2.

  • №4 — удаление товара с продажами. Вариант без предварительной проверки — база должна вернуть ошибку, приложение это исключение должно перехватить и выдать сообщение, что удалять нельзя.

  • №5 — удаление товара с продажами. Вариант с предварительной проверкой — в коде нужно проверить есть ли у товара продажи и при наличии продаж вывести сообщение, что удалять товар нельзя.

Что такое тестовый сценарий?

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

Что такое тестирование сценария?

Тестирование сценариев — это вариант тестирования программного обеспечения, в котором для тестирования используются сценарии. Сценарии помогают в более простом способе тестирования более сложных систем

Давайте изучим это с помощью видео ниже —

Зачем создавать тестовые сценарии?

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

  • Создание тестовых сценариев обеспечивает полное покрытие тестами
  • Сценарии тестирования могут быть одобрены различными заинтересованными сторонами, такими как бизнес-аналитик, разработчики, клиенты, для обеспечения тщательного тестирования тестируемого приложения. Это гарантирует, что программное обеспечение работает для наиболее распространенных случаев использования.
  • Они служат быстрым инструментом для определения трудозатрат на тестирование и, соответственно, создают предложение для клиента или организуют рабочую силу.
  • Они помогают определить наиболее важные сквозные транзакции или реальное использование программных приложений.
  • Для изучения сквозного функционирования программы, тестовый сценарий имеет решающее значение.

Когда не создать тестовый сценарий?

Тестовые сценарии не могут быть созданы, когда

  • Тестируемое приложение является сложным, нестабильным, и в проекте есть время.
  • Проекты, которые следуют Agile методологии, такие как Scrum, Kanban, могут не создавать тестовые сценарии.
  • Сценарий тестирования не может быть создан для исправления новой ошибки или регрессионного тестирования . В таких случаях сценарии тестирования должны быть уже задокументированы в предыдущих циклах тестирования. Это особенно верно для проектов технического обслуживания.

Как написать тестовые сценарии

Как тестер, вы можете выполнить следующие пять шагов для создания тестовых сценариев:

  • Шаг 1 : Прочтите документы с требованиями, такие как BRS, SRS, FRS, тестируемой системы (SUT). Вы также можете сослаться на примеры использования, книги, руководства и т. Д. Приложения, подлежащего тестированию.
  • Шаг 2 : Для каждого требования определите возможные действия и цели пользователей. Определить технические аспекты требования. Определите возможные сценарии злоупотребления системой и оцените пользователей с менталитетом хакера.
  • Шаг 3: После прочтения Документа с требованиями и проведения надлежащего анализа перечислите различные сценарии тестирования, которые проверяют каждую функцию программного обеспечения.
  • Шаг 4: После того, как вы перечислили все возможные сценарии тестирования, создается матрица отслеживания, чтобы убедиться, что каждому требованию соответствует соответствующий сценарий тестирования.
  • Шаг 5: Созданные сценарии проверяются вашим руководителем. Позже они также рассматриваются другими заинтересованными сторонами в проекте.

Советы по созданию тестовых сценариев

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

Пример 1. Сценарий тестирования для приложения электронной коммерции

Для приложения электронной коммерции несколько тестовых сценариев

Тестовый сценарий 1: проверка функциональности входа

тестовый сценарий

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

  1. Проверьте поведение системы при вводе действительного адреса электронной почты и пароля.
  2. Проверьте поведение системы при вводе неверного идентификатора электронной почты и действительного пароля.
  3. Проверьте поведение системы при вводе действительного адреса электронной почты и неверного пароля.
  4. Проверьте поведение системы при вводе неверного идентификатора электронной почты и неверного пароля.
  5. Проверьте поведение системы, если адрес электронной почты и пароль оставлены пустыми и введен вход.
  6. Проверить Забыли пароль работает как положено
  7. Проверьте поведение системы при вводе действительного / недействительного номера телефона и пароля.
  8. Проверять поведение системы, когда установлен флажок «Держать меня в подписи»

Как видно, тестовые случаи являются более конкретными.

Тестовый сценарий 2. Проверка функциональности поиска

тестовый сценарий

Тестовый сценарий 3: проверьте страницу описания продукта

тестовый сценарий

Сценарий тестирования 4: Проверьте функциональность платежей

тестовый сценарий

Тестовый сценарий 5: проверка истории заказов

тестовый сценарий

Помимо этих 5 сценариев, здесь приведен список всех других сценариев.

  • Проверьте поведение домашней страницы для постоянных клиентов
  • Проверьте категорию / страницы продукта
  • Проверьте службу поддержки / контактные страницы
  • Проверьте страницы ежедневных предложений

Пример 2: Тестовые сценарии для банковского сайта

Тестовый сценарий 1 : Проверьте функциональность входа и аутентификации

Тестовый сценарий 2 : Проверить перевод денег можно

Тестовый сценарий 3. Проверьте выписку со счета.

Тестовый сценарий 4 : Проверка фиксированного депозита / периодического депозита может быть создана

И так далее…

Шаблон сценария тестирования

Скачать шаблон тестового сценария Excel (.xlsx)

Тест-кейсы по полочкам — как в библиотеке! Наводим порядок в структуре и содержании тестовой документации

Всем привет! На связи Анастасия Макеева. В Утконос Онлайн я работаю лидом автоматизации тестирования на проекте витрины. В мои обязанности входит организация и реализация автоматизированного тестирования сайта, систем и сервисов. 

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

Давным-давно…
Когда мир еще знать не знал, что такое covid.
Когда коллеги дружно работали в офисе.
Когда ходили на встречи в переговорки, а не в Teams или Zoom. 
Когда обедали вместе.
Я пришла работать в Утконос.

Моими первыми задачами было: 

  • Организовать структуру хранения тестовой документации

  • Распределить и отредактировать уже написанные кейсы согласно новой структуре

  • Написать большую часть недостающих кейсов

Тестовая документация касалась всех блоков, связанных с сайтом Утконос:

  • сам сайт

  • административная часть сайта

  • промо механики

  • разные категории клиентов

  • лендинги

  • интеграции со сторонними подрядчиками

Так или иначе каждый блок содержал в себе свои разделы. 
А разделы — подразделы. 

По предварительным расчетам общее количество написанных кейсов должно было превысить 1000.

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

При планировании мне хотелось добиться: 

  • простой и понятной структуры

  • единого стиля

  • быстрой и логичной навигации при поиске

  • удобства при сборке тест-ранов

  • легкости восприятия тест-кейсов

  • чтобы после прочтения кейса тестировщику не хотелось закрыть его и пойти кофейку попить

Структура проекта

Для создания структуры тестовой документации сайта я решила воспользоваться постраничным распределением. 

Что это такое? 
На нашем сайте существует много функциональностей, и проверять их удобно, если не нужно при этом перескакивать со страницы на страницу. То есть тестировщик будет выполнять все проверки, которые есть на странице, не переходя к другим проверкам. Да и искать определенный тест-кейс в этом случае более логично.

Отсюда сформировались основные блоки нашей будущей структуры:

  • главная страница

  • страница поиска

  • страница карточки товара

  • страница корзины

  • страница с акциями

  • страница чекаута

  • страница спасибо за заказ

  • страница лендинга

  • и т.д.

Далее мне хотелось, чтобы тест-кейсы на фронт и бэкенд не перемешивались. И тогда каждая страница получила по 2 раздела, которые назывались: 
— Front
— Back 

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

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

Названия

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

Мы воспользовались известной формулой: 
Где? Что? Условия?

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

  • В начале кейса отражен территориальный признак.

  • Далее указывается суть проверки.

  • После можно указать какие-то особые условия.

  • Каждый пункт разделен между собой точкой для более легкого восприятия текста.

 Сразу приведу примеры таких названий: 

Ну что, догадались, о чем этот тест-кейс? 
Уже идете на главную страницу utkonos.ru, чтобы 
добавить товар в корзину из спецпредложений, не указав адрес в личном кабинете?) 
А вот тут?

В представленных примерах мы видим, что: 

  • В названии отражен территориальный признак: то есть, ГДЕ мы проверяем этот кейс.

  • Далее идет суть самой проверки, то есть, ЧТО мы проверяем в этом кейсе.

  • После чего — некие разветвления/ особые УСЛОВИЯ.

Таким образом после нескольких прохождений кейсов наши тестировщики могут легко ориентироваться только по названию, не заходя в сам кейс. 

Описание 

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

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

Как говорил мой замечательный ментор: «Тест-кейс должен быть написан так, чтобы любой человек, пришедший в компанию, сел за стол и мог его спокойно пройти без лишних вопросов.»

Количество шагов

Сколько их должно быть? 1-2-3-4-10? 
Будем честны: шаги идеального тест-кейса должны стремиться к 1! 

На практике хороший кейс имеет не более 3 шагов. 
Стоит учитывать, что мы не говорим здесь о сценариях, которые проверяют E2E.

В шагах нужно отразить только суть самой проверки, остальное выносите в предусловия — не скупитесь! 

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

Пишите в шаге только одно действие. Не надо в один шаг описывать басню о царе султане и его дочери. Если вы не хотите делать из одного шага несколько, или просто хотите значительно сократить шаги в тесте — объедините несколько повелительных предложений в одно. 

Приведу пример. Допустим вы проверяете авторизацию в личном кабинете. 

Было:
Открыть utkonos.ru
Кликнуть на значок личного кабинета
Ввести кпп
Ввести верный пароль
Нажать на кнопку «Вход»

Стало: 
Авторизуйтесь в личном кабинете с кпп и верным паролем

Один шаг вместо пяти. Круто?

Если развернутая последовательность ваших шагов интуитивно не очень понятна, можно с первого по четвертый шаг вынести в предусловия. 

Ожидаемые результаты

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

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

Шаг: 
Нажать на кнопку оформить заказ. 

Ожидаемый результат: 

  • Открыта страница «Спасибо за заказ». 

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

Шаг один, а ожидаемых результата два. 

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

На данный момент для сайта написано более 3000 тест-кейсов. 

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

В данный момент все тест-кейсы, написанные по сайту, имеют удобную структуру и единый стиль написания. 

В статье я говорю о сайте, но вы можете применить данный подход к любому приложению, сервису или системе, как мы и сделали в Утконосе. 

Надеюсь моя статья помогла вам разложить ваши тест-кейсы по полочкам, как в библиотеке. До связи! 

Лабораторная работа №2.

Тема: Создание тестового сценария (test
case).

Цель: Научиться создавать простейшие  тестовые
сценарии (test case).

Задание: Написать тестовый сценарий из не
менее 10 шагов, соответствующий полученному варианту задания. Сценарий должен
включать в себя не только основной вариант использования функционала, но и
ошибочный (например: ввод пустого/неверного пароля в примере). Обратите
внимание, что все предварительные действия, необходимые для прохождения шага,
должны быть явно описаны. Например, нельзя требовать от тестировщика банкомата
ввести ПИН код до того как он вставил карту.

Варианты:

1.  Оплата мобильного телефона через платежный терминал

  1. Снятие наличных денег в банкомате

3.  Проезд в автобусе с кондуктором

4.  Использование будильника мобильного телефона

5.  Ксерокопирование

6.  Проход в метро (по смарт-карте и/или с жетоном)

7.  Закрывание двери ключом

8.  Поездка в лифте

9.  Звонок в службу поддержки Интернет-провайдера/мобильного оператора

Содержание отчета:

1.  Титульный лист с названием курса, номером и темой лабораторной работы, вариантом,
номером группы и Ф.И.О. авторов.

2.  Цель и задание, соответствующие полученному варианту.

3.  Результаты работы:

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

4.  Выводы: достигли ли цели работы, что сделали, чему научились и т.д.

Примерные вопросы
для подготовки защите:

1.  См. лабораторную работу №1

2.  Что такое тестовый сценарий? Каково его назначение? Из чего он состоит?

3. 
Что такое план тестирования? Каково его назначение? Из чего он состоит?

4.  Что такое шаг тестового сценария? Какого назначение каждого из его
полей?

5.  Напишите отчет о тестировании по вашему тестовому сценарию.

6.  …

Пример:

Название

IS-Login-1

Дата создания

01.09.2008

Автор

Ivan Ivanov

Дата последнего
изменения

15.09.2008

Описание

Проверка
функционирования подсистемы «Вход в IS» некой информационной системы на
соответствие требованиям при вводе корректных и некорректных значений имени
пользователя и пароля.

Шаг №

Описание

Тестовые данные

Ожидаемый
результат

1

Введите имя
пользователя. Нажмите кнопку «Войти»

Имя пользователя = Test

Основное окно
программы не откроется. Должно быть выведено сообщение «Введите пароль».

2

Введите пароль.
Нажмите кнопку «Войти»

Пароль = Test

Основное окно
программы не откроется. Должно быть выведено сообщение «Введите имя
пользователя».

3

Введите имя
пользователя и пароль. Нажмите кнопку «Войти»

Имя пользователя = Test  Пароль = XXX

Основное окно программы
не откроется. Должно быть выведено сообщение «Имя пользователя  и/или пароль
неверные. Пожалуйста, введите правильные данные».

4

Введите имя
пользователя и пароль. Нажмите кнопку «Войти»

Имя пользователя = XXX

Пароль = Test

Основное окно
программы не откроется. Должно быть выведено сообщение «Имя пользователя 
и/или пароль неверные. Пожалуйста, введите правильные данные».

5

Введите имя
пользователя и пароль. Нажмите кнопку «Войти»

Имя пользователя = XXX

Пароль = XXX

Основное окно
программы не откроется. Должно быть выведено сообщение «Имя пользователя
и/или пароль неверные. Пожалуйста, введите правильные данные».

6

Введите имя
пользователя и пароль. Нажмите кнопку «Войти»

Имя пользователя =
» «

Пароль = »
«

Основное окно
программы не откроется. Должно быть выведено сообщение «Имя пользователя
и/или пароль неверные. Пожалуйста, введите правильные данные».

7

Введите имя
пользователя и пароль. Нажмите кнопку «Войти»

Имя пользователя = Test  Пароль = Test

Должно открыться
основное окно приложения.

8

Введите имя
пользователя и пароль. Нажмите кнопку «Войти»

USER = ADMIN

Пароль = ADMIN

Должно открыться
окно приложения с административными настройками.

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

Проверенный шаблон

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

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

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

Обязательные
требования к тест-кейсам

  • Отсутствие зависимостей друг от друга. Поскольку
    тесты могут дополняться, меняться, терять свою актуальность и удаляться – как в
    таком случае поступать с тестами, на которые ссылались эти кейсы? Кроме того,
    взаимосвязь может ввести в заблуждение, будто работа продукта соответствует
    ожиданиям.
  • Четкие
    формулировки и высокая вероятность обнаружения ошибки.
  • Наличие детальной,
    но не избыточной информации.
    Если проверке подлежит процесс авторизации,
    тест-кейс должен содержать логин и пароль.
  • Легкая
    диагностика ошибок.
    Обнаруженная ошибка должна быть очевидной.
  • Исследование
    соответствующей (непосредственно той, что нужно) области приложения, выполнение
    нужных действий.

Углубиться в проект
мало, или Кому поручить написание тест-кейсов

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

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

Выбор правильной техники тест-дизайна (способа создания тестов) особенно важен, ведь именно от этого зависит эффективность самих тестов.

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

Пишем тест-кейсы –
что дальше?

А дальше отправляем их на ревью, после чего – либо на
автоматизацию, либо в план ручного тестирования.

Пример тест-кейса

Рис.:Пример оформления тест-кейсов

Имейте в виду, что
автоматические тесты требуют более полного
описания, включая, скажем, зависимые значения для проведения расчетов. Для ручной же проверки такая детализация не имеет смысла, равно как и для небольших по объему проектов; особенно для стабильных компаний с небольшой текучкой кадров, где большое количество досконально описанных тест-кейсов – лишние затраты на обслуживание тестирования.

Каких результатов
ждать?

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

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

Однако существует и третий вариант, когда прохождение теста
блокируется каким-либо дефектом.

Так что, по сути, результата может быть всего два. Кстати,
каждый конкретный тест-кейс призван решить конкретную задачу, проверить
конкретный элемент «цепочки» и ожидаемый результат для этого элемента всегда
один. Прочего быть не должно.

Рекомендации в помощь

В завершение нам остается разве что поделиться парой хороших
советов:

  • Приступайте к тестированию как можно раньше, ещё
    до выхода первого билда.
  • В первую очередь проводите позитивные тесты и
    только потом переходите к негативным.
  • Начинайте с простых проверок. Используйте типовые
    пользовательские данные для ввода в систему. Если тест не пройдет даже на таких
    значениях, существование проблемы станет очевидным.
  • Сложные и негативные сценарии запускайте только
    после проверки простых. Если продукт хорошо справляется с очевидными задачами, испытайте
    его реакцию на неочевидные.
  • Раскладывайте приложение на отдельные модули и
    для каждого из которых составляйте список проверок (чек-лист).
  • Не забывайте обновлять тесты, как только была
    обнаружена ошибка или изменена функциональность.

Успехов!

Полезно прочитать:

  • Нужны ли тест-кейсы вашему проекту?

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

Для начинающих поясним, что такое тест-кейс озвучив определение из глоссария терминов ISTQB: 

Тест-кейс — набор входных значений, предусловий выполнения, ожидаемых результатов и постусловий выполнения, разработанный для определённой цели или тестового условия, таких как выполнения определённого пути программы или же для проверки соответствия определённому требованию. 

Определение тест-кейса языком обывателя: 

Тест-кейс — это чёткое описание действий, которые необходимо выполнить, для того чтобы проверить работу программы (поля для ввода, кнопки и т.д.). Данное описание содержит: действия, которые надо выполнить до начала проверки — предусловия; действия, которые надо выполнить для проверки — шаги; описание того, что должно произойти, после выполнения действий для проверки — ожидаемый результат. 

Надеюсь, теперь многим стало понятно, что такое тест-кейс. Теперь перейдём к правилам написания тест-кейсов, которые вырабатывались не один год и показывают свою эффективность до сих пор. 

Обязательные атрибуты для заполнения 

  • Номер тест-кейса — уникальный идентификатор тест-кейса (такие системы как TestRail, TestLink и подобные автоматически присваивают тест-кейсам уникальные номера). Если у вас тысячи тест-кейсов, то при общении с коллегами, вам будет удобнее сообщить номер тест-кейса ссылаясь на него, а не пытаться словами рассказать, где и как найти определённый тест-кейс. 
  • Заголовок — краткое, понятное и ёмкое описание сути проверки. 
  • Предусловия — описание действий, которые необходимо предварительно выполнить или учесть, и которые не имеют прямого отношения к проверке. 
  • Шаги проверки — описание последовательности действий, которые необходимо выполнить для проверки. 
  • Ожидаемый результат — проверка, которая устанавливает, что мы ожидаем получить, после выполнения определённых действий в соответствующем шаге. 

В зависимости от специфики компании могут присутствовать дополнительные атрибуты для заполнения: приоритет, функциональный блок, программа, ссылка на требование, номер требования и т.д. 

Правила написания тест-кейсов 

  1. Заголовок:
    • должен быть чётким, кратким, понятным и однозначно характеризующим суть тест-кейса;
    • не может содержать выполняемые шаги и ожидаемый результат.
  2. Предусловие:
    • может содержать полную информацию о состоянии системы или объекта, необходимом для начала выполнения шагов тест-кейса; 
    • может содержать ссылки на информационные источники, которые необходимо изучить перед прохождением тест-кейса (инструкции, описание систем…); 
    • не может содержать ссылки на тестируемый ресурс, если у информационной системы более одной среды (прод, тест, препрод…), данная информация должна быть вынесена в инструкцию, и ссылка приложена в предусловии; 
    • не может содержать данные для авторизации, данная информация должна быть вынесена в инструкцию, и ссылка приложена в предусловии; 
    • не может содержать выполняемые шаги и ожидаемый результат, если нам нужно, чтобы до выполнения шагов проверки у нас была открыта главная страница, то мы в предусловии указываем «открыта главная страница сайта»; 
    • не может содержать ожидаемый результат. 
  3. Шаги проверки: 
    • должны быть чёткими, понятными и последовательными; 
    • следует избегать излишней детализации шагов. Правильно: «ввести в поле число 12».
      Неправильно: «нажать на клавиатуре на цифру ‘1’, следующим шагом нажать на клавиатуре на цифру ‘2’»; 
    • должны использоваться безличные глаголы.
      Правильно: нажать, ввести, перейти.
      Неправильно: нажмите, введите, идите; 
    • не должно быть комментариев и пояснений, если есть необходимость привести мини-инструкцию, то оформляем инструкции в базе-знаний и в предусловии ссылаемся на неё; 
    • не должно быть жёстко прописанных статических данных (логины, пароли, имена файлов) и примеров, для исключения эффекта пестицида. 
  4. Ожидаемый результат: 
    • должен быть у каждого шага проверки; 
    • должно быть кратко и понятно описано состояние системы или объекта, наступающее после выполнения соответствующего шага; 
    • не должно быть избыточного описания. 
  5. Общие требования к тест-кейсам: 
    • язык описания тест-кейсов должен быть понятен широкому кругу пользователей, а не узкой группе лиц; 
    • тест-кейс должен быть максимально независим от других тест-кейсов и не ссылаться на другие тест-кейсы (лучшая практика, когда зависимостей нет вообще); 
    • тест-кейсы группируются в функциональные блоки по их назначению; 
    • в тест-кейсах проверяющих работу функционала скриншотов быть не должно, иначе вы будете посвящать сотни часов на изменение всех скриншотов в тысячах тест-кейсах при изменении интерфейса тестируемой программы. Скриншоты могут быть добавлены только в тест-кейсы проверяющие отображение страниц и форм. 

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

Примеры 

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

Тест-кейс №1. Корректный

Номер
Заголовок  Отправка сообщения через форму обратной связи на странице “Контакты” 
Предусловие  Открыта главная страница сайта victorz.ru. Есть доступ к почте администратора сайта victorz.ru 
   
Шаг  Ожидаемый результат 
В верхнем меню сайта нажать на ссылку “Контакты”  Открылась страница “Контакты” 
Ввести значение в поле “Ваше имя” состоящее из латинских букв, кириллицы  В поле “Ваше имя” отображается введённое имя 
Ввести корректный email в поле “Ваш e-mail”  В поле “Ваш e-mail” отображается введённый email 
Ввести в поле “Тема” значение состоящее из латинских букв, кириллицы, спецсимволов и чисел  В поле “Тема” отображается введённый текст 
Ввести в поле “Сообщение” значение состоящее из латинских букв, кириллицы, спецсимволов и чисел  В поле “Сообщение” отображается введённый текст 
Ввести в поле капчи требуемое капчей значение  В поле капчи отображается введённое значение 
Нажать под заполняемой формой на кнопку “Отправить”  Под кнопкой «Отправить» появился текст “Спасибо. Ваше сообщение было отправлено.”
Все заполненные поля очищены.
Проверить почту администратора сайта  На почту пришло сообщение, отправленное с сайта через форму обратной связи и содержащее в теле сообщения данные введённые на шагах 1-5. 

Тест-кейс №2. Некорректный 

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

Номер 
Заголовок  Отправить сообщение через форму обратной связи (Указываем, что проверяем или что делаем?) 
Предусловие  Перейти на главную страницу сайта victorz.ru (Это не предусловие, а описание шага) 
   
Шаг  Ожидаемый результат 
Нажать на ссылку “Контакты” (Где она находится?)  Открылась страница (Какая?) 
Ввести имя в поле “Ваше имя” (Какие символы вводить?)  (Ничего не указано в ожидаемом результате, что должно произойти?) 
Ввести email в поле “Ваш e-mail” (корректный или некорректный?)  В поле отображается email (Какой? Введённый? В каком поле отображается?) 
Ввести в поле значение, состоящее из латинских букв, кириллицы, спецсимволов и чисел (В какое поле?)  В поле “Тема” отображается текст (Какой?) 
Ввести в поле “Сообщение” текст (Какие символы вводить?)  Видим в поле “Сообщение” введённый текст (Видим или отображается?) 
Вводим в поле капчи требуемое капчей значение (Помните только безличные глаголы — Ввести).  В поле капчи будет введённое значение (Что будет делать? Танцевать?) 
Нажать под заполняемой формой на кнопку (На какую?)  Появился текст “Спасибо. Ваше сообщение было отправлено.” (Где появится?) 
(Последний шаг не заполнен, а это неправильно, так как мы не проверим действительно ли работает отправка писем через форму обратной связи)   

Во второй части видео (с 8-й минуты) разбираю на примерах создание тест-кейсов:

Главное в нашем деле практика. Практикуйтесь в написании тест-кейсов. 

Если вы будете вести тест-кейсы в таблице (к примеру в Excel), то можете скачать шаблон тест-кейсов. В файле две вкладки. На одной шаблон единичного тест-кейса, а на второй пример порядка размещения группы тест-кейсов.

  • Что такое тест-кейс и зачем он нужен
  • Чем отличаются тест-кейс и чеклист
  • Типы тест-кейсов
  • Атрибуты тест-кейса ручного тестирования
  • Характеристики хорошего тест-кейса
  • Лучшие практики в написании тест-кейсов
  • Формирование тест-кейсов
  • Примеры тест-кейсов ручного тестирования
    • Позитивный
    • Деструктивный
    • Негативный
  • Итоги: тестирование тест-кейса

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

Что такое тест-кейс и зачем он нужен

Тест-кейс — это четкое описание действий, которые нужно выполнить для проверки отдельной функции вашего приложения.

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

Чем отличаются тест-кейс и чеклист

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

Чеклист QA — это список того, что нужно протестировать. Благодаря ему процесс тестирования проходит более четко и аккуратно.

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

Позитивные, негативные и деструктивные тест-кейсы

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

В целом позитивное тестирование гарантирует, что система соответствует требованиям при позитивных сценариях нормального использования. 

Например, если поле пароля принимает десять символов, пользователь должен иметь возможность создать такой пароль.

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

Если вернуться к нашему примеру, пользователь не должен иметь возможность создать пароль, состоящий из 11 символов.

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

Для деструктивного тестирования QA-специалисты могут применять следующие методы:

  • создание большой нагрузки на систему, чтобы это привело к ее отказу;
  • злонамеренное внедрение JavaScript в веб-форму;
  • фаст-кликинг в попытках взломать веб-страницу и т. д.

Атрибуты тест-кейса для ручного тестирования

Как и все тестировочные документы, тест-кейс имеет определенный формат. Он содержит следующие атрибуты:

  1. ID — уникальное сочетание букв и цифр.
  2. Заголовок — основная идея тест-кейса, краткое описание его сути. Например, заголовок тест-кейса для ручного тестирования страницы входа может выглядеть следующим образом: «Проверить вход пользователя с корректными данными».
  3. Предусловия — список действий, которые необходимо выполнить перед выполнением тест-кейса. При необходимости здесь могут указываться учетные данные.
  4. Шаги — описание действий, необходимых для проверки.
  5. Постусловия — список действий, возвращающих систему в исходное состояние (указывается при необходимости).
  6. Ожидаемый результат — то, что мы ожидаем получить после успешного выполнения тест-кейса.
  7. Фактический результат — то, что мы получаем после выполнения тест-кейса (указывается при необходимости).
  8. Статус — Success (успех), Failed (провал), Blocked (блокировка) (указывается при необходимости).

Кроме того, для некоторых тест-кейсов могут потребоваться дополнительные атрибуты:

  • Требования к среде — специальное оборудование, программное обеспечение и т. п. вещи, необходимые для выполнения тест-кейса и не перечисленные в соответствующей спецификации проекта тестирования.
  • Специальные процедурные требования — особые процедуры настройки, выполнения или очистки, уникальные для этого тест-кейса.
  • Межкейсовые зависимости — тест-кейсы, которые нужно выполнить перед этим тест-кейсом.

Характеристики хорошего тест-кейса

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

Короче говоря, хороший тест-кейс:

  • понятен любому члену команды;
  • аккуратно и точно написан;
  • соответствует требованиям;
  • воспроизводим;
  • пригоден для многократного использования.

Best practices в написании тест-кейсов

Под  best practices мы подразумеваем правила, которые помогают создавать простые, понятные и полезные тест-кейсы:

  • Перед созданием нового тест-кейса убедитесь, что он не дублирует ни один из уже существующих в системе.
  • Убедитесь, что тест-кейс покрывает 100% требований, которые вы должны проверить.
  • Помните о теории методов тестирования, таких как анализ граничных значений, разделение эквивалентности, техника перехода состояния, угадывание ошибок.
  • Помимо требований к системе, всегда помните о конечном пользователе, который будет взаимодействовать с системой.
  • Не забудьте указать учетные данные, если они необходимы для выполнения теста.
  • Позаботьтесь о тестировщиках, которые будут работать с этим тест-кейсом в будущем. В частности, убедитесь, что все ссылки верны и кликабельны. Пожалуйста, не используйте ссылки на продакшен.
  • Используйте повелительное наклонение, например: «Перейдите на главную страницу», «Введите данные», «Кликните» и т. д. Такая формулировка упрощает понимание этапов тестирования и ускоряет их выполнение.

Формирование тест-кейсов

Обычно при написании тест-кейсов тестировщики пользуются таблицами Excel. Но вы также можете использовать инструменты управления тестированием, такие как TestRail.

Примеры тест-кейсов для ручного тестирования

Позитивный тест-кейс

Давайте попробуем создать наш собственный тест-кейс для ручного тестирования функции поиска на e-commerce сайте компании FootWear. Начнем с позитивного теста.

ID: FWSF-1. (Лучше использовать числа в возрастающем порядке. FWSF = FootWear Search Functionality. Попробуйте придумать комбинацию букв, имеющую отношение к проекту или функции, которую вы собираетесь тестировать).

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

Предусловия: Нужно иметь предварительно настроенные продукты из разных категорий, отображаемые на сайте. (Для проверки функциональности нам необходимо иметь элементы, доступные для поиска. Вы можете настроить это в панели администратора или в базе данных).

Шаги:

  1. Откройте домашнюю страницу. (Ссылка не обязательна, ее наличие может затруднить поддержку тест-кейса в будущем).
  2. Введите в поле поиска ключевое слово, связанное с названием доступного продукта.
  3. Выполните поиск, кликнув значок поиска или нажав Enter.
  4. Проверьте результаты.

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

Деструктивный тест-кейс

Еще один пример — деструктивный тест-кейс.

ID: FWSF-2.

Заголовок: Проверить устойчивость поиска к SQL-инъекциям.

Предусловия: Подготовьте SQL-запрос, который вы собираетесь вставить в поиск.

Шаги:

  1. Откройте домашнюю страницу.
  2. Введите SQL-запрос в поле поиска.
  3. Выполните поиск, кликнув значок поиска или нажав Enter.
  4. Проверьте, правильно ли отображаются результаты, нет ли сообщений об ошибках на странице результатов поиска.

Ожидаемый результат: Для защиты от SQL-инъекций отображение предупреждающих сообщений должно быть отключено.

Негативный тест-кейс

Наконец, вот вам негативный тест-кейс.

ID: FWSF-3.

Заголовок: Проверить ввод на недопустимые значения.

Предусловия: Выпишите недопустимые значения для поля ввода поиска из системных требований.

Шаги:

  1. Откройте домашнюю страницу.
  2. Введите комбинацию недопустимых значений в поле поиска.
  3. Выполните поиск, кликнув значок поиска или нажав Enter.
  4. Проверьте, отображается ли предупреждающее сообщение «Пожалуйста, используйте только допустимые символы».

Ожидаемый результат: Отображается предупреждающее сообщение «Пожалуйста, используйте только допустимые символы». Поиск можно продолжить.

Итоги: тестирование тест-кейса

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


Подборка по базе: ШАБЛОН ПАКЕТА СЕРВИСНОГО ДИЗАЙНА (SDP).docx, РП ОП.17 Пакеты прикладных программ для систем организационного , 4 44 сценарий, 4класс — копия.docx, Интегрированные пакеты MS Office.doc, Диагностический пакет дефектолога 5-11 лет.pdf, Практическое занятие №5. Формирование пакета документов организа, 2.1_9 Анализаторы сетевых пакетов.doc, 3 урок Файлы и пакеты.docx, Лекции Пакеты прикладных программ.docx


Лекционное занятие

Тема: Тестовый сценарий, тестовый пакет.

Цель: Ознакомиться с практическим применением техник тест дизайна при разработке тест кейсов. Анализом требований. Определением набора тестовых данных. Разработкой шаблона теста. Написанием тест кейсов на основании первоначальных требований, тестовых данных и шагов теста.

Оборудование: персональный компьютер, мультимедиа-проектор, MS Visio, Visual Studio, MS Office, методические рекомендации к проведению лекционных занятий, Гагарина, Л. Г. Технология разработки программного обеспечения: учеб. пособие / Л. Г. Гагарина, Е. В. Кокорева, Б. Д. Виснадул; Под ред. Л. Г. Гагариной. — М.: ФОРУМ: ИНФРА-М, 2017.-400 с., инструкционная карта для проведения лекционного занятия.
Тестирование ПО (Software Testing) — проверка соответствия между реальным и ожидаемым поведением программы, проводится на наборе тестов, который выбирается некоторым образом. Чем занимаются в тестировании:

  1. планированием работ (Test Management)
  2. проектированием тестов (Test Design) — этап, на котором создаются тестовые сценарии (тест кейсы), в соответствии с определёнными ранее критериями. Т.е., определяется, КАК будет тестироваться продукт.
  3. выполнением тестирования (Test Execution)
  4. анализом результатов (Test Analysis)

Основные цели тестирования

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

Следует уметь различать, что:

  • Error — это ошибка пользователя, то есть он пытается использовать программу иным способом (например, вводит буквы в поля, где требуется вводить цифры). В качественной программе предусмотрены такие ситуации и выдаются сообщение об ошибке (error message).
  • Bug (defect) — это ошибка программиста (или дизайнера или ещё кого, кто принимает участие в разработке), то есть когда в программе, что-то идёт не так, как планировалось. Например, внутри программа построена так, что изначально не соответствует тому, что от неё ожидается.
  • Failure — это сбой в работе компонента, всей программы или системы (может быть как аппаратным, так и вызванным дефектом).

Тестовый пакет

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

Набор тестов – это контейнер с набором тестов, который помогает тестировщикам выполнять и сообщать о состоянии выполнения теста. Может принимать любое из трех состояний: «Активно», «Выполняется» и «Завершено».
Тестовый набор может быть добавлен в несколько наборов тестов и планов тестирования. После создания плана тестирования создаются наборы тестов, которые, в свою очередь, могут иметь любое количество тестов.
Как правило, модульные тесты и тестовые конфигурации разрабатываются самими разработчиками, основная задача тестера в этом случае — организовать все тесты в упорядоченную структуру пакетов и указать, какие пакеты должны исполняться в каких условиях. Вся иерархия тестов хранится в так называемом файле метаданных, имеющем расширение vsmdi. Этот файл находится в системе контроля версий и может быть включен в решение как отдельный элемент.
Процесс тестирования

Как отмечалось ранее, в тестировании выделяются три основных уровня, или три фазы:

  1. Модульное тестирование.
  2. Интеграционное тестирование.
  3. Системное тестирование.

Задача планирования активности тестирования состоит в оптимальном распределении ресурсов между всеми типами тестирования. В дальнейшем изложении мы сконцентрируемся на системной фазе тестирования, как на наиболее важной и критичной активности для разработки качественного программного продукта.

Фазы процесса тестирования

В процессе тестирования выделяют следующие фазы:

  1. Определение целей (требований к тестированию), включающее следующую конкретизацию: какие части системы будут тестироваться, какие аспекты их работы будут выбраны для проверки, каково желаемое качество и т.п.
  2. Планирование: создание графика (расписания) разработки тестов для каждой тестируемой подсистемы; оценка необходимых человеческих, программных и аппаратных ресурсов; разработка расписания тестовых циклов. Важно отметить, что расписание тестирования обязательно должно быть согласовано с расписанием разработки создаваемой системы, поскольку наличие исполняемой версии разрабатываемой системы ( Implementation Under Testing (IUT) или Application Under Testing (AUT) – часто употребляемые обозначения для тестируемой системы) является одним из необходимых условий тестирования, что создает взаимозависимость в работе команд тестировщиков и разработчиков.
  3. Разработка тестов, то есть тестового кода для тестируемой системы, если необходимо — кода системы автоматизации тестирования и тестовых процедур (выполняемых вручную).
  4. Выполнение тестов: реализация тестовых циклов.
  5. Анализ результатов.

После анализа результатов возможно повторение процесса тестирования, начиная с пунктов 3, 2 или даже 1.

Тестовый цикл

Тестовый цикл – это цикл исполнения тестов, включающий фазы 4 и 5 тестового процесса. Тестовый цикл заключается в прогоне разработанных тестов на некотором однозначно определяемом срезе системы (состоянии кода разрабатываемой системы). Обычно такой срез системы называют build. Тестовый цикл включает следующую последовательность действий:

  1. Проверка готовности системы и тестов к проведению тестового цикла включающая:
    • Проверку того, что все тесты, запланированные для исполнения на данном цикле, разработаны и помещены в систему версионного контроля.
    • Проверку того, что все подсистемы, запланированные для тестирования на данном цикле, разработаны и помещены в систему версионного контроля.
    • Проверку того, что разработана и задокументирована процедура определения и создания среза системы, или build.
    • Проверки некоторых дополнительных критериев.
  2. Подготовка тестовой машины в соответствии с требованиями, определенными на этапе планирования (например, полная очистка и переустановка системного программного обеспечения). Конфигурация тестовой машины, так же, как и срез системы, должны быть однозначно воспроизводимыми.
  3. Воспроизведение среза системы.
  4. Прогон тестов в соответствии с задокументированными процедурами.
  5. Сохранение тестовых протоколов (test log). Test log может содержать вывод системы в STDOUT, список результатов сравнения полученных при исполнении данных с эталонными или любые другие выходные данные тестов, с помощью которых можно проверить правильность работы системы.
  6. Анализ протоколов тестирования и принятие решения о том прошел или не прошел каждый из тестов ( Pass/Fail ).
  7. Анализ и документирование результатов цикла.

Последний перед выпуском продукта тестовый цикл не должен включать изменений кода build или кода продукта тестируемой системы. Этот цикл называется » финальным «. Таким образом обеспечивается ситуация, когда финальный цикл полностью повторяем, а выпускаемый продукт полностью совпадает с продуктом, который прошел тестирование. Финальный цикл необходим для гарантии достоверности результатов тестирования.
Что такое тестовый сценарий

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

Что такое тестирование сценария

Тестирование сценариев — это вариант тестирования программного обеспечения, в котором для тестирования используются сценарии. Сценарии помогают в более простом способе тестирования более сложных систем
Зачем создавать тестовые сценарии

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

  • Создание тестовых сценариев обеспечивает полное покрытие тестами
  • Сценарии тестирования могут быть одобрены различными заинтересованными сторонами, такими как бизнес-аналитик, разработчики, клиенты, для обеспечения тщательного тестирования тестируемого приложения. Это гарантирует, что программное обеспечение работает для наиболее распространенных случаев использования.
  • Они служат быстрым инструментом для определения трудозатрат на тестирование и, соответственно, создают предложение для клиента или организуют рабочую силу.
  • Они помогают определить наиболее важные сквозные транзакции или реальное использование программных приложений.
  • Для изучения сквозного функционирования программы, тестовый сценарий имеет решающее значение.

Когда не создать тестовый сценарий

Тестовые сценарии не могут быть созданы, когда

  • Тестируемое приложение является сложным, нестабильным, и в проекте есть время.
  • Проекты, которые следуют Agile методологии, такие как Scrum, Kanban, могут не создавать тестовые сценарии.
  • Сценарий тестирования не может быть создан для исправления новой ошибки или регрессионного тестирования . В таких случаях сценарии тестирования должны быть уже задокументированы в предыдущих циклах тестирования. Это особенно верно для проектов технического обслуживания.

Как написать тестовые сценарии

Как тестер, вы можете выполнить следующие пять шагов для создания тестовых сценариев:

  • Шаг 1 : Прочтите документы с требованиями, такие как BRS, SRS, FRS, тестируемой системы (SUT). Вы также можете сослаться на примеры использования, книги, руководства и т. Д. Приложения, подлежащего тестированию.
  • Шаг 2 : Для каждого требования определите возможные действия и цели пользователей. Определить технические аспекты требования. Определите возможные сценарии злоупотребления системой и оцените пользователей с менталитетом хакера.
  • Шаг 3: После прочтения Документа с требованиями и проведения надлежащего анализа перечислите различные сценарии тестирования, которые проверяют каждую функцию программного обеспечения.
  • Шаг 4: После того, как вы перечислили все возможные сценарии тестирования, создается матрица отслеживания, чтобы убедиться, что каждому требованию соответствует соответствующий сценарий тестирования.
  • Шаг 5: Созданные сценарии проверяются вашим руководителем. Позже они также рассматриваются другими заинтересованными сторонами в проекте.

Советы по созданию тестовых сценариев

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

Пример 1. Сценарий тестирования для приложения электронной коммерции

Для приложения электронной коммерции несколько тестовых сценариев

Тестовый сценарий 1: проверка функциональности входа

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

  1. Проверьте поведение системы при вводе действительного адреса электронной почты и пароля.
  2. Проверьте поведение системы при вводе неверного идентификатора электронной почты и действительного пароля.
  3. Проверьте поведение системы при вводе действительного адреса электронной почты и неверного пароля.
  4. Проверьте поведение системы при вводе неверного идентификатора электронной почты и неверного пароля.
  5. Проверьте поведение системы, если адрес электронной почты и пароль оставлены пустыми и введен вход.
  6. Проверить Забыли пароль работает как положено
  7. Проверьте поведение системы при вводе действительного / недействительного номера телефона и пароля.
  8. Проверять поведение системы, когда установлен флажок «Держать меня в подписи»

Как видно, тестовые случаи являются более конкретными.
Тестовый сценарий 2. Проверка функциональности поиска


Тестовый сценарий 3: проверьте страницу описания продукта


Сценарий тестирования 4: Проверьте функциональность платежей

Тестовый сценарий 5: проверка истории заказов


Помимо этих 5 сценариев, здесь приведен список всех других сценариев.

  • Проверьте поведение домашней страницы для постоянных клиентов
  • Проверьте категорию / страницы продукта
  • Проверьте службу поддержки / контактные страницы
  • Проверьте страницы ежедневных предложений

Пример 2: Тестовые сценарии для банковского сайта

Тестовый сценарий 1 : Проверьте функциональность входа и аутентификации

Тестовый сценарий 2 : Проверить перевод денег можно

Тестовый сценарий 3. Проверьте выписку со счета.

Тестовый сценарий 4 : Проверка фиксированного депозита / периодического депозита может быть создана

И так далее…
Литература: Гагарина, Л. Г. Технология разработки программного обеспечения: учеб. пособие / Л. Г. Гагарина, Е. В. Кокорева, Б. Д. Виснадул; Под ред. Л. Г. Гагариной. — М.: ФОРУМ: ИНФРА-М, 2017.-400 с.

Any capability that may be tested is defined as a TEST SCENARIO. It’s also known as Test Possibility or Test Condition. As a tester, you should put yourself in the shoes of the end user and determine the Application Under Test’s real-world scenarios and use cases.

In liner statements, a test scenario is a complete list containing test cases that cover end-to-end functionality of a software program. A scenario is defined as a liner statement. The test scenario is a classification of testable requirements at a high level. These criteria are categorized according to a module’s functionality and derived from use cases.

Because there are so many test cases in the scenario, there is a thorough testing process. The tester must evaluate the test cases for each scenario before completing the test scenario. Testers must put themselves in the shoes of the user in the test scenario because they are testing the software application from the user’s perspective. The most important aspect of the process is scenario preparation, which necessitates seeking advice or assistance from customers, stakeholders, or developers.

Important − Because the text scenario process does not include navigation steps or input, the test execution process cannot be done.

These are high-level documents that describe all of the conceivable permutations or various ways or combinations of utilizing the application, with the primary goal of understanding the application’s general flow.

Method of Writing Test Scenario

To build Test Scenarios as a tester, follow these steps —

  • Examine the software’s requirement documents, such as SRS (System Requirement Specification), the BRS (Business Requirement Specification), and FRS (Functional Requirement Specification). You could also consult the application’s use cases, books, manuals, and other resources.

  • For each requirement, determine all technical aspects and objectives.

  • Find every feasible way for the user to interact with the software.

  • Determine all possible scenarios in which the system could be exploited, as well as users who could be hackers.

  • Make a list of various test cases to check each function of the software after reading the requirement document and completing the scheduled analysis.

  • Create a traceability matrix after you’ve identified all of the possible test scenarios to see if each requirement has a matching test scenario or not.

  • All possibilities are reviewed by the project supervisor. They are then evaluated by the project’s other stakeholders.

When writing test cases, we had to observe a few rules —

  • Always keep a list of the most frequently utilized features and modules.

  • We usually begin the scenarios by selecting modules one by one, in order to maintain a good sequence and avoid missing any module levels.

  • Scenarios are usually defined at the module level.

  • Delete scenario should always be the final resort; else, we will waste a lot of time re-creating data.

  • It should be written in plain English.

  • Every scenario should be written in a single or two-line format, try not to write in paragraphs.

  • Do’s and checks should be included in every scenario.

Reason for creating Test Scenario

One test scenario can cover several test cases. As a result, Test Scenarios and Test Cases have a one-to-many relationship. However, the tester must consider each scenario when developing it. It was created by testers to test the application from the perspective of an end-user. Testers look for crucial information from all developers, stakeholders, and customers.

The following are the reasons for their creation −

  • The design of excellent Test Scenarios ensures complete and proper Test Coverage.

  • It is necessary to create them in order to investigate a program’s end-to-end functionality.

  • They can be used to determine the most significant and critical end-to-end transactions or real-time application usage.

  • They can be used as a tool for quickly determining testing workforce, which can then be utilized to assist clients or organizations with proposal creation and testing workforce organization efficiently and effectively.

  • Approval of applications is done at multiple levels, including customers, business analysts, developers, and so on, to ensure thorough and proper testing.

When Test Scenario should not be created

There are some conditions in which its production should be prevented —

  • It is unlikely to be developed in projects that use Agile Methodologies like Scrum.

  • It may be avoided when the applications to be tested are unstable or excessively complicated, or when the project is in a critical-time state.

  • Its creation may be prevented for regression testing or a new defect because substantial documentation of them would happen in previous test cycles in maintenance projects.

Features of Test Scenario

  • The test scenario is a one-liner that directs testers through the testing process.

  • The product’s complexity and repetition are reduced by using a test scenario.

  • A test scenario is when you talk and think about tests in great detail yet write them down in liner statements.

  • It’s a series of procedures threaded together.

  • When the tester does not have enough time to write test cases and the team agrees on a comprehensive liner scenario, the test scenario becomes more significant.

  • The test scenario is a useful activity for saving time.

  • It is simple to maintain because adding and modifying test scenarios is simple and self-contained.

Test Scenario Examples

We’re using the Gmail application to create test cases for the most often used modules, such as Login, Compose, and inbox

Test Scenarios for the Login module

  • Check that the home page is displayed after entering the correct login information (username and password).

  • Check for the home page after entering the invalid Username and password.

  • Check for an error message if you leave the username and password fields blank.

  • Enter a valid Login, click Cancel, and look for the fields to be reset.

  • Check that the account has been blocked by entering invalid Login more than three times.

  • Check sure the Username is displayed on the home screen after entering a valid Login.

Test Scenario for compose module

  • Checks if all users have access to the To, Cc, and Bcc email addresses.

  • Check that the entire user has access to the To, Cc, and Bcc fields.

  • Prepare a message, send it, and wait for a confirmation message.

  • Compose an email, send it, and check the sender’s sent item as well as the inbox.

  • Create a message, send it, and check for invalid and legitimate email addresses (valid format) in the sender’s inbox

  • Check for conformation messages and check-in draft messages after composing main and then discarding it.

  • After you’ve finished writing your email, save it as a draft and look for the confirmation message.

  • Compose an email, shut it, and check for confirmation before saving it as a draft.

On the Inbox module, Test scenario.

  • Check that all received mail is shown and highlighted in the inbox by clicking on it.

  • Check that the sender email id for the most recent received email has been accurately displayed.

  • Select the email, reply, and forward it; check the sender’s sent item and the receiver’s inbox.

  • Examine any attached attachments to the email to see if they have been downloaded or not.

  • Before downloading, be sure the attachment has been properly inspected for malware.

  • Select the email, reply, and forward it, then save it as a draft. Check the Draft section for the confirmation message and checks.

  • Check that all of the emails that have been marked as read have not been highlighted.

  • Verify that all Cc recipients are visible to all users.

  • Checks that all Bcc email recipients are hidden from the users.

  • Select the message, delete it, and then check the Trash folder.

Any capability that may be tested is defined as a TEST SCENARIO. It’s also known as Test Possibility or Test Condition. As a tester, you should put yourself in the shoes of the end user and determine the Application Under Test’s real-world scenarios and use cases.

In liner statements, a test scenario is a complete list containing test cases that cover end-to-end functionality of a software program. A scenario is defined as a liner statement. The test scenario is a classification of testable requirements at a high level. These criteria are categorized according to a module’s functionality and derived from use cases.

Because there are so many test cases in the scenario, there is a thorough testing process. The tester must evaluate the test cases for each scenario before completing the test scenario. Testers must put themselves in the shoes of the user in the test scenario because they are testing the software application from the user’s perspective. The most important aspect of the process is scenario preparation, which necessitates seeking advice or assistance from customers, stakeholders, or developers.

Important − Because the text scenario process does not include navigation steps or input, the test execution process cannot be done.

These are high-level documents that describe all of the conceivable permutations or various ways or combinations of utilizing the application, with the primary goal of understanding the application’s general flow.

Method of Writing Test Scenario

To build Test Scenarios as a tester, follow these steps —

  • Examine the software’s requirement documents, such as SRS (System Requirement Specification), the BRS (Business Requirement Specification), and FRS (Functional Requirement Specification). You could also consult the application’s use cases, books, manuals, and other resources.

  • For each requirement, determine all technical aspects and objectives.

  • Find every feasible way for the user to interact with the software.

  • Determine all possible scenarios in which the system could be exploited, as well as users who could be hackers.

  • Make a list of various test cases to check each function of the software after reading the requirement document and completing the scheduled analysis.

  • Create a traceability matrix after you’ve identified all of the possible test scenarios to see if each requirement has a matching test scenario or not.

  • All possibilities are reviewed by the project supervisor. They are then evaluated by the project’s other stakeholders.

When writing test cases, we had to observe a few rules —

  • Always keep a list of the most frequently utilized features and modules.

  • We usually begin the scenarios by selecting modules one by one, in order to maintain a good sequence and avoid missing any module levels.

  • Scenarios are usually defined at the module level.

  • Delete scenario should always be the final resort; else, we will waste a lot of time re-creating data.

  • It should be written in plain English.

  • Every scenario should be written in a single or two-line format, try not to write in paragraphs.

  • Do’s and checks should be included in every scenario.

Reason for creating Test Scenario

One test scenario can cover several test cases. As a result, Test Scenarios and Test Cases have a one-to-many relationship. However, the tester must consider each scenario when developing it. It was created by testers to test the application from the perspective of an end-user. Testers look for crucial information from all developers, stakeholders, and customers.

The following are the reasons for their creation −

  • The design of excellent Test Scenarios ensures complete and proper Test Coverage.

  • It is necessary to create them in order to investigate a program’s end-to-end functionality.

  • They can be used to determine the most significant and critical end-to-end transactions or real-time application usage.

  • They can be used as a tool for quickly determining testing workforce, which can then be utilized to assist clients or organizations with proposal creation and testing workforce organization efficiently and effectively.

  • Approval of applications is done at multiple levels, including customers, business analysts, developers, and so on, to ensure thorough and proper testing.

When Test Scenario should not be created

There are some conditions in which its production should be prevented —

  • It is unlikely to be developed in projects that use Agile Methodologies like Scrum.

  • It may be avoided when the applications to be tested are unstable or excessively complicated, or when the project is in a critical-time state.

  • Its creation may be prevented for regression testing or a new defect because substantial documentation of them would happen in previous test cycles in maintenance projects.

Features of Test Scenario

  • The test scenario is a one-liner that directs testers through the testing process.

  • The product’s complexity and repetition are reduced by using a test scenario.

  • A test scenario is when you talk and think about tests in great detail yet write them down in liner statements.

  • It’s a series of procedures threaded together.

  • When the tester does not have enough time to write test cases and the team agrees on a comprehensive liner scenario, the test scenario becomes more significant.

  • The test scenario is a useful activity for saving time.

  • It is simple to maintain because adding and modifying test scenarios is simple and self-contained.

Test Scenario Examples

We’re using the Gmail application to create test cases for the most often used modules, such as Login, Compose, and inbox

Test Scenarios for the Login module

  • Check that the home page is displayed after entering the correct login information (username and password).

  • Check for the home page after entering the invalid Username and password.

  • Check for an error message if you leave the username and password fields blank.

  • Enter a valid Login, click Cancel, and look for the fields to be reset.

  • Check that the account has been blocked by entering invalid Login more than three times.

  • Check sure the Username is displayed on the home screen after entering a valid Login.

Test Scenario for compose module

  • Checks if all users have access to the To, Cc, and Bcc email addresses.

  • Check that the entire user has access to the To, Cc, and Bcc fields.

  • Prepare a message, send it, and wait for a confirmation message.

  • Compose an email, send it, and check the sender’s sent item as well as the inbox.

  • Create a message, send it, and check for invalid and legitimate email addresses (valid format) in the sender’s inbox

  • Check for conformation messages and check-in draft messages after composing main and then discarding it.

  • After you’ve finished writing your email, save it as a draft and look for the confirmation message.

  • Compose an email, shut it, and check for confirmation before saving it as a draft.

On the Inbox module, Test scenario.

  • Check that all received mail is shown and highlighted in the inbox by clicking on it.

  • Check that the sender email id for the most recent received email has been accurately displayed.

  • Select the email, reply, and forward it; check the sender’s sent item and the receiver’s inbox.

  • Examine any attached attachments to the email to see if they have been downloaded or not.

  • Before downloading, be sure the attachment has been properly inspected for malware.

  • Select the email, reply, and forward it, then save it as a draft. Check the Draft section for the confirmation message and checks.

  • Check that all of the emails that have been marked as read have not been highlighted.

  • Verify that all Cc recipients are visible to all users.

  • Checks that all Bcc email recipients are hidden from the users.

  • Select the message, delete it, and then check the Trash folder.

Понравилась статья? Поделить с друзьями:
  • Тесо праздник ведьм заказы
  • Тестовый сценарий образец
  • Тесо праздник ведьм билеты событий
  • Тестовые сценарии тестовые варианты оформление результатов тестирования лекции
  • Тесо праздник ведьм 2021