Тестовые примеры

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

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

Тест-требования как основной источник информации для создания тестовых примеров

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

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

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

 

Функциональные требования на модуль расчета и проверки контрольной суммы

Внешний интерфейс модуля

1. Структура record_type

struct record_type

{

bool A;

int B[20];

signed char C[5];

unsigned int CRC;

double D[1];

}

2. Переменная Empty

bool Empty;

3. Функция подсчета контрольной суммы записиSet_CRC

void Set_CRC(record_type record);

Вход:

Запись record, c неопределенным значением поля CRC.

Выход:

Запись record, с вычисленным по заданным правилам значение поля CRC.

ПеременнаяEmpty.

4. Функция проверки контрольной суммы записиСheck_CRC

bool Check_CRC(record_type record);

Вход:

Запись Rec_Mess c определенным значением поля CRC.

Выход:

Возвращаемое значение true или false. ПеременнаяEmpty.

Функциональные требования

Инициализация модуля

При инициализации модуля переменная Empty должна быть установлена в значение TRUE.

 

Подсчет контрольной суммы записи