Загрузка данных
ОТЧЕТ ПО РЕЗУЛЬТАТАМ ИЗУЧЕНИЯ ГЛАВЫ 4: «ТЕСТОВЫЕ ДАННЫЕ И СЦЕНАРИИ»
1. КОНСПЕКТ ТЕОРЕТИЧЕСКОЙ ЧАСТИ (Стр. 78–90)
1.1. Основные понятия
* Тестовый сценарий (Test Case / Тест-кейс): набор входных значений, предусловий выполнения, ожидаемых результатов и постусловий выполнения, разработанный для определенной цели или тестового условия (например, для проверки сценария работы программы или соответствия требованию к ПО).
* Тестовый оракул (Test Oracle): источник, при помощи которого определяются ожидаемые результаты для сопоставления с реальным поведением системы (ТЗ, руководство пользователя, спецификация, эталонная система или экспертиза специалиста). Исходный программный код тестовым оракулом выступать не может.
* Тестовое условие (Test Condition): объект или событие в компоненте или системе, которые должны быть проверены одним или несколькими тестовыми наборами (функция, транзакция, свойство, атрибут качества или структурный элемент).
* Базовая структура сценария:
* Предусловие (Pre Conditions): перечень действий или критериев, переводящих систему в состояние, пригодное для тестирования.
* Шаги и ожидаемые результаты (Actions/Results): цепочка действий по изменению состояния системы и критерии верификации корректности ее отклика.
* Постусловие (Post Conditions): действия, возвращающие систему в исходное состояние после завершения проверки.
* Тестовые данные (Test Data): данные, существующие в системе (например, в БД) до начала выполнения теста, влияющие на ее поведение или испытывающие влияние с ее стороны.
* Тестовый набор (Test Suite): группа взаимосвязанных сценариев, объединенных по функциональной области, объекту, целям или типам проверок.
* Проектирование тестов: включает тест-анализ и тест-дизайн с выбором подходов («черный ящик», на основе спецификаций, структуры или экспертного опыта).
1.2. Жизненный цикл и правила построения тестовых сценариев
* Состояния тест-кейса:
* Создан (New): начальный статус после формирования артефакта.
* Запланирован / Не выполнен (Planned / Not tested): готов к прогону и включен в план итерации.
* Выполняется (Work in progress): кейс находится в процессе выполнения.
* Пропущен (Skipped): проверка отменена из-за смены логики или нехватки времени.
* Провален (Failed): фактический результат хотя бы одного шага не совпал с ожидаемым.
* Пройден успешно (Passed): все шаги выполнены без расхождений с эталоном.
* Заблокирован (Blocked): прохождение невозможно из-за блокирующего стороннего дефекта.
* Закрыт (Closed): работа по кейсу на текущей итерации окончена.
* Требует доработки (Not ready): статус для переработки кейса при обнаружении неточностей или изменении требований.
* Требования к оформлению:
* Заглавие (Title): емкое, информативное и уникальное описание сути проверки.
* Ожидаемые результаты (Expected Results): однозначное описание поведения системы, исключающее субъективные трактовки (без конструкций «если..., то...»).
* Шаги (Steps): строгая последовательность пронумерованных действий в безличной форме («открыть», «ввести», «нажать»).
* Подход Data-driven: объединение схожих проверок с вынесением наборов тестовых данных (различных форматов файлов, граничных значений) в параметры, что сокращает дублирование документации.
* Уровень детализации: разделение на высокоуровневые описания для опытных специалистов и пошаговые инструкции со ссылками на базу знаний (KB) для новичков.
1.3. Атрибуты тест-кейса и версионность
* Идентификатор (ID): уникальный индекс с префиксами для быстрой идентификации.
* Приоритет (Priority): важность и очередность прохождения (A–E, 1–5, High/Medium/Low), определяемая рисками и значимостью требований.
* Связанное требование (Requirement): обеспечивает вертикальную и горизонтальную прослеживаемость (traceability).
* Модуль и подмодуль: структурная принадлежность к архитектуре декомпозиции ПО.
* Время прохождения: плановая оценка трудозатрат.
* Системы ведения документации: фиксация истории изменений и статистики прогона (в Git или специализированных TMS: TestRail, TestLink).
1.4. Метрики тестовых сценариев
* Test Coverage (Покрытие требований тест-кейсами):
где R_{\text{Covered}} — число покрытых тестами требований, а R_{\text{Total}} — общее количество требований в спецификации.
* Passed/Failed Test Cases (Успешность прохождения):
где T_{\text{Success}} — число успешно пройденных сценариев, а T_{\text{Total}} — суммарный объем выполненных проверок. Минимальные проектные пороги: начальная фаза — от 10%, основная — от 40%, финальная — не менее 85%.
* Not Run Test Cases: общее количество не запущенных в рамках итерации тестов.
2. ОТВЕТЫ НА ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ (Стр. 90)
* Что такое тестовые сценарии?
Это тест-кейсы (совокупность набора входных данных, условий выполнения, шагов и ожидаемых результатов), сформированные с целью всесторонней проверки конкретной функциональности или соответствия установленному требованию к ПО.
* Объясните, что представляют собой тестовые данные.
Это набор данных, существующих в системе (в базе данных, файлах конфигурации, памяти) к началу выполнения теста, которые непосредственно влияют на логику работы программы или сами модифицируются в процессе теста.
* Что такое тестовый оракул?
Источник данных и эталонных правил, позволяющий определить ожидаемый результат для последующего сопоставления с фактическим поведением системы. В роли оракула выступают ТЗ, спецификации, руководства, отраслевые стандарты, стабильные предыдущие сборки или профессиональный опыт, но не сам программный код.
* Кому полезнее тестовые сценарии — новичкам или профессионалам?
Новичкам детальные пошаговые тест-кейсы полезнее, так как они служат подробной обучающей инструкцией и исключают риск ошибок из-за незнания системы. Опытным специалистам достаточен высокоуровневый формат (чек-листы), не требующий лишних затрат времени на чтение элементарных шагов.
* Опишите стандартные атрибуты тест-кейса.
* Номер (ID): уникальный идентификатор проверки.
* Название (Title): краткая формулировка сути проверки.
* Предварительные шаги (Pre-conditions): условия и данные, необходимые до старта.
* Шаги (Steps): перечень выполняемых действий.
* Ожидаемый результат (Expected Result): эталонный отклик системы.
* Назовите все возможные атрибуты тест-кейса. Что они собой представляют?
* Идентификатор (ID): уникальный номер со смысловым кодовым обозначением.
* Приоритет (Priority): градация важности и срочности прохождения.
* Связанное требование (Requirement): ссылка на пункт технического задания.
* Модуль и подмодуль (Module/Submodule): структурная привязка к компоненту ПО.
* Планируемое время прохождения: расчетное время выполнения проверки.
* Предусловия (Pre-conditions): начальное состояние окружения и БД.
* Шаги (Steps): пошаговый алгоритм выполнения.
* Ожидаемый результат (Expected Result): нормативное поведение ПО.
* Постусловия (Post-conditions): действия по очистке и откату изменений.
* История изменений и прохождений: автор, дата правок, статус (Passed/Failed), фактические трудозатраты и привязанные дефекты.
3. ПРАКТИЧЕСКОЕ ЗАДАНИЕ (Стр. 90–91)
* Предметная область: Вариант 1.6 — Онлайн-банк.
* Объект тестирования: Веб-модуль «Личный кабинет клиента: Аутентификация и Переводы».
Разработанные тестовые сценарии (Тест-кейсы)
Тест-кейс TC_BANK_01
* Модуль / Подмодуль: Авторизация / Форма входа
* Приоритет: High (Критический)
* Связанное требование: REQ_AUTH_01 (Аутентификация клиента)
* Заглавие: Успешный вход в личный кабинет с валидными учетными данными
* Предусловия: Клиент зарегистрирован в системе (логин: client_ivan, пароль: ValidPass123!).
* Шаги:
* Перейти на страницу входа в онлайн-банк.
* В поле «Логин» ввести client_ivan.
* В поле «Пароль» ввести ValidPass123!.
* Нажать кнопку «Войти».
* Ожидаемый результат: Происходит успешная авторизация; пользователь перенаправляется на главную страницу личного кабинета; отображается баланс счетов.
* Постусловия: Нажать кнопку «Выйти».
Тест-кейс TC_BANK_02
* Модуль / Подмодуль: Авторизация / Форма входа
* Приоритет: High
* Связанное требование: REQ_AUTH_02 (Защита от несанкционированного доступа)
* Заглавие: Попытка входа с неверным паролем
* Предусловия: Пользователь client_ivan зарегистрирован.
* Шаги:
* Открыть форму авторизации.
* Ввести логин client_ivan.
* Ввести неверный пароль WrongPass000!.
* Нажать кнопку «Войти».
* Ожидаемый результат: Доступ отклоняется; отображается предупреждение красного цвета: «Неверный логин или пароль»; пароль сбрасывается, логин сохраняется.
* Постусловия: Отсутствуют.
Тест-кейс TC_BANK_03
* Модуль / Подмодуль: Платежи / Перевод по номеру телефона
* Приоритет: High
* Связанное требование: REQ_TRANS_01 (Внутрибанковские переводы)
* Заглавие: Перевод средств по номеру телефона при достаточном балансе
* Предусловия: Пользователь авторизован; на счете списания доступно не менее 1 000 руб.; получатель с номером +79991234567 существует.
* Шаги:
* Перейти во вкладку «Переводы» \rightarrow «По номеру телефона».
* В поле «Номер получателя» ввести +79991234567.
* В поле «Сумма перевода» ввести 500.
* Нажать кнопку «Перевести».
* Ввести код подтверждения из SMS (0000) и нажать «Подтвердить».
* Ожидаемый результат: Выводится сообщение «Перевод успешно выполнен»; формируется электронная квитанция; баланс уменьшается ровно на 500 руб.
* Постусловия: Отсутствуют.
Тест-кейс TC_BANK_04
* Модуль / Подмодуль: Платежи / Перевод по номеру телефона
* Приоритет: Medium
* Связанное требование: REQ_TRANS_03 (Проверка лимитов и остатка)
* Заглавие: Оформление перевода на сумму, превышающую остаток на счете
* Предусловия: Пользователь авторизован; баланс счета составляет 200 руб.
* Шаги:
* Открыть форму перевода по номеру телефона.
* В поле «Номер получателя» ввести +79991234567.
* В поле «Сумма перевода» указать 1000.
* Нажать кнопку «Перевести».
* Ожидаемый результат: Кнопка подтверждения блокируется; под полем суммы появляется текст ошибки: «Недостаточно средств на выбранном счете».
* Постусловия: Отсутствуют.
Тест-кейс TC_BANK_05
* Модуль / Подмодуль: Платежи / Валидация полей ввода
* Приоритет: Low
* Связанное требование: REQ_TRANS_04 (Контроль минимальной суммы)
* Заглавие: Ввод нулевой суммы при переводе
* Предусловия: Открыта форма оформления перевода.
* Шаги:
* В поле «Номер получателя» ввести +79991234567.
* В поле «Сумма перевода» ввести 0.
* Нажать кнопку «Перевести».
* Ожидаемый результат: Операция не отправляется на сервер; отображается ошибка валидации: «Минимальная сумма операции — 1 руб.».
* Постусловия: Отсутствуют.
Результаты тестирования и расчет метрик
Сводка выполнения:
* Всего требований в спецификации (R_{\text{Total}}): 5
* Покрыто тест-кейсами (R_{\text{Covered}}): 5
* Всего запланировано проверок (T_{\text{All}}): 5
* Выполнено тестов (T_{\text{Total}}): 4
* Успешно пройдено (T_{\text{Success}}): 3
* Завершилось ошибкой (T_{\text{Failed}}): 1 (TC_BANK_02 — не отобразилось сообщение об ошибке)
* Не запускалось (T_{\text{NotRun}}): 1 (TC_BANK_05)
Расчетные формулы:
* Покрытие требований (Test Coverage):
* Процент успешных тестов (Passed Ratio):
* Не запущенные сценарии (Not Run):