Рекомендация: Тестирование блоков
Тестирование блоков представляет собой подробное тестирование внутренней структуры модулей программного обеспечения. В этом руководстве обсуждаются методы прозрачного ящика и черного ящика для тестирование блоков.
Взаимосвязи
Основное описание

Введение

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

Оба метода применяются для разработки и реализации различных типов тестов (см. Методика: Тип тестов), необходимых для успешного и полного тестирования блоков. 

Дополнительная информация о создании вариантов тестирования для тестов блоков приведена в разделе Методика: Вариант тестирования.

Метод прозрачного ящика

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

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

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

Дополнительная информация приведена в разделе Методика: Вариант тестирования 

Метод черного ящика

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

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

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

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

Дополнительная информация приведена в разделе Методика: Вариант тестирования