Теоретическая часть. Одним из способов изучения поставленного вопроса является исследование стратегии тестирования, называемой стратегией «чёрного ящика»
Одним из способов изучения поставленного вопроса является исследование стратегии тестирования, называемой стратегией «чёрного ящика», тестированием с управлением по данным, или тестированием с управлением по входу-выходу. При использовании этого способа программа рассматривается как «чёрный ящик». Иными словами, такое тестирование имеет целью выяснение обстоятельств, в которых поведение программы не соответствует ее спецификации. Тестовые же данные используются только в соответствии со спецификацией программы (т.е. без учета знаний о её внутренней структуре). При таком подходе обнаружение всех ошибок в программе является критерием исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве тестовых наборов использовать все возможные наборы входных данных.
Для исчерпывающего тестирования определённых задач требуется бесконечное число тестов. Допустим, что делается попытка тестирования методом «чёрного ящика» интерпретатора с языка Java. Для построения исчерпывающего теста нужно использовать всё множество правильных программ на Java (фактически их число бесконечно) и все множество неправильных программ (т.е. действительно бесконечное число), чтобы убедиться в том, что компилятор обнаруживает все ошибки. Только в этом случае синтаксически неверная программа не будет компилирована. Если же программа имеет собственную память (например, операционная система, база данных или система распределенных вычислений), то дело обстоит еще хуже. В таких программах исполнение команды (например, задание, запрос в базу данных, выполнение расчёта) зависит от того, какие события ей предшествовали, т.е. от предыдущих команд. Здесь следует перебрать не только все возможные команды, но и все их возможные последовательности. Тестирование «чёрного ящика» – это функциональное тестирование.
Из изложенного следует, что построение исчерпывающего входного теста невозможно. Это подтверждается двумя аргументами: во-первых, нельзя создать тест, гарантирующий отсутствие ошибок; во-вторых, разработка таких тестов противоречит экономическим требованиям. Поскольку исчерпывающее тестирование исключается, целью должна стать максимизация результативности капиталовложений в тестирование (иными словами, максимизация числа ошибок, обнаруживаемых одним тестом).
К способам тестирования «чёрного ящика» относятся следующие способы:
a) Эквивалентное тестирование (разбиение по классам эквивалентности).
b) Анализ граничных условий.
c) Тестирование на основе диаграмм причин-следствий.
Первые два способа будут объединены и рассмотрены совместно.