Опубликован: 28.11.2007 | Уровень: специалист | Доступ: платный | ВУЗ: Национальный исследовательский ядерный университет «МИФИ»
Лекция 4:

Тестирование программного кода (покрытия)

Аннотация: Лекция завершает тему "тестирование программного кода". В лекции рассмотрены вопросы объединения тестовых примеров в тест-планы; определяются методы оценки результатов выполнения тестов. Значительная часть лекции посвящена покрытию программного кода тестами, различным типам покрытия, методам его анализа. Цель данной лекции: дать знания, необходимые для составления тест-планов и проведения анализа покрытия программного кода тестами

6.1. Тест-планы

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

Тест-план представляет собой документ, в котором перечислены либо все тестовые примеры, необходимые для тестирования системы, либо часть тестовых примеров, объединенных по определенному признаку.

Тест-план может быть написан на естественном или формальном языке; в последнем случае возможна передача тест-плана на вход тестового окружения для автоматического выполнения определенных в тест-плане тестовых примеров.

Существует несколько причин для объединения описаний тестовых примеров в единый документ или несколько документов.

  • Единая схема идентификации и трассировки тестовых примеров

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

  • Объединение тестовых примеров в смысловые группы

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

  • Внесение изменений в тестовые примеры

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

  • Определение последовательности тестирования

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

6.1.1. Типовая структура тест-плана

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

Каждый тестовый пример в этом тест-плане имеет уникальный номер и ссылку на тест-требование, на основе которого он написан.

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

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

Тест-план
Тестовый пример 1
Номер тест-требования: 2а, 2b
Описание теста: В данном тесте проверяется правильность 
вычисления значения контрольной суммы (поля CRC) 
при непустом значении поля CRC и нулевых значениях элементов записи.
Входные данные: CRC = 12345, A=0, B=0, C=0, D=0
Ожидаемые выходные данные: CRC = 0, A=0, B=0, C=0, D=0, Empty = TRUE
Сценарий теста: 
   1. Установка значения поля CRC в 12345
   2. Установка значений полей A-F в 0
   3. Вызов функции Set_CRC
   4. Проверка значений CRC на 0 и Empty на TRUE
Тестовый пример 2
Номер тест-требования: 2a
Описание теста: В данном тесте проверяется соответствие 
алгоритма вычисления поля CRC, заданному в спецификации требований.
Входные данные: CRC = 0, A-D заполнены байтами 01010101b
Ожидаемые выходные данные: CRC = 0111100b, Empty = FALSE
Сценарий теста: 
   1. Установка значения поля CRC в 0
   2. Заполнение байт полей A-D байтами 01010101b
   3. Вызов функции Set_CRC
   4. Проверка значений CRC на 0111100b и Empty на FALSE
Тестовый пример 3
Номер тест-требования: 2a
Описание теста: В данном тесте проверяется неизменность 
полей A-F записи при вычислении поля CRC (подсчете контрольной суммы).
Входные данные: CRC = 0, A-D заполнены байтами 01010101b
Ожидаемые выходные данные: A-D заполнены байтами 01010101b, 
Сценарий теста: 
   1. Установка значения поля CRC в 0
   2. Заполнение байт полей A-D байтами 01010101b
   3. Вызов функции Set_CRC
   4. Проверка значений байт полей A-D на 01010101b

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

Илья Макаренко
Илья Макаренко

Добрый день.

Вопрос №1

Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте?

Вопрос №2

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

Александр Медов
Александр Медов

Здравствуйте, какова полная сумма предоставленной услуги с печатью документа и отправкой по почте?

Александр Толкач
Александр Толкач
Беларусь
А И
А И
Беларусь