Тестирование по стратегии чёрного ящика

Тестирование по стратегии чёрного ящика (англ. black-box testing) или поведенческое тестирование — стратегия тестирования функционального поведения объекта (программы или системы) с позиции внешнего наблюдателя, при которой не используется знание о внутреннем устройстве (коде) тестируемого объекта.[1] Иными словами, тестированием по стратегии чёрного ящика занимаются специалисты, не имеющие доступа к исходному коду приложения. Под стратегией в данном контексте понимаются систематические методы отбора и создания тестов для тестового набора. Данная стратегия исходит из технических требований и их спецификаций[2].

Понятие «чёрного» ящика

Под понятием «чёрный ящик» подразумевается объект исследования, внутреннее устройство которого неизвестно. Термин был предложен У. Р. Эшби. В кибернетике это понятие позволяет изучать поведение систем — их реакции на различные внешние воздействия, при одновременном абстрагировании от их внутренней структуры.[3]

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

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

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

Существуют два вида «чёрных» ящиков. К первому виду относят любые «чёрные» ящики, которые можно рассматривать как автомат, называемый конечным или бесконечным, у которых поведение известно. Ко второму виду относят «чёрные» ящики, поведение которых можно наблюдать только экспериментально; в этом случае формулируется гипотеза о вероятностном поведении. Без предварительных гипотез невозможно делать обобщения или выводы на основе экспериментов с «чёрным» ящиком.

Для модели «чёрного» ящика Н. Винер предложил понятие «белого ящика», у которого все компоненты (X, Y, δ, λ) известны. Его организация специально подбирается для воспроизведения той же зависимости выхода от входа, что и у исследуемого «чёрного» ящика. В ходе исследований и при выдвижении гипотез о закономерностях может возникнуть необходимость корректировать модель «белого» ящика, а потому исследователь должен обращаться к отношению «чёрный ящик» — «белый ящик» многократно.

Исследование поведения «чёрного» ящика

Поведение «чёрного» ящика второго типа оценивается экспериментально, когда устройство системы управления неизвестно. Система имеет входы и выходы .

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

Таблица 1

Способ исследования «чёрного» ящика
Состояние входов Состояние выходов Время
............ ............ ....
............ ............ ....

Иной способ заключается в том, чтобы на входы подавать стандартные последовательности. Это позволяет сравнивать поведение разных «чёрных» ящиков на соответствие необходимым требованиям.

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

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

Создание математического описания — это своего рода искусство. В ряде случаев можно построить алгоритм, определяющий реакцию «чёрного» ящика на входной сигнал; чаще задаются дифференциальные уравнения, связывающие реакции с входами.

Метод «чёрного ящика» имел большое значение для науки и привёл к ряду важных открытий. Так, Уильям Гарвей в XVII веке предсказал строение сердца, моделируя его как насос (аналогия из гидравлики). Применимость метода заключается в исследовании сложных динамических систем и возможности подмены одного «ящика» на другой. Примеры этого подхода имеются как в биологии, так и во многих областях науки и техники.

Принципы тестирования по стратегии чёрного ящика

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

Свойства правильно выбранного теста

  1. Позволяет сократить объём других тестов, необходимых для разумного тестирования.
  2. Охватывает значительную часть вариантов, что косвенно свидетельствует о наличии или отсутствии ошибки при использовании ограниченного множества тестов.

Методы тестирования чёрного ящика

  1. Эквивалентное разбиение.
  2. Анализ граничных значений.
  3. Анализ причинно-следственных связей.
  4. Предположение об ошибке.

Подробно:

Эквивалентное разбиение

Метод основывается на следующих принципах:

  1. Входные данные разбивают на конечное число классов эквивалентности: тесты одного класса эквивалентности должны обнаруживать одинаковые ошибки.
  2. Каждый тест, по возможности, должен охватывать максимальное число классов эквивалентности, чтобы уменьшить общее число тестов.

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

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

Входное условие Правильные классы эквивалентности Неправильные классы эквивалентности

Выделение классов — эвристический процесс, но возможны рекомендации:

  1. Если условие задаёт диапазон, например, «Целое число от 0 до 999», — будет один правильный и два неправильных класса.
  2. Если условие задаёт количество, например, «Число строк в файле — от 1 до 6», — аналогично.
  3. Если условие описывает множество входов — количество правильных классов соответствует числу элементов; если это требование «должно быть», то один правильный, один неправильный.
  4. Если подозревается различная обработка внутри класса — делят класс на подклассы. На этом этапе строят тесты для всех вариантов, минимизируя их общее число.

Определяя тесты:

  1. Назначают уникальный номер каждому классу.
  2. Если остались непокрытые правильные классы, создают тесты, перекрывающие максимальное число классов.
  3. Если остались непокрытые неправильные классы — каждый покрывается отдельным тестом.

Анализ граничных значений

Граничные условия — ситуации на верхней и нижней границах классов эквивалентности.

Ключевые отличия от эквивалентного разбиения:

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

Метод требует творческого подхода и спецификации задачи.

Рекомендации:

  1. Создавать тесты с незначительным превышением диапазона входных данных (например, −1.000001 для диапазона от −1.0 до +1.0).
  2. Обязательно проверять значения на минимальной и максимальной границе диапазона.
  3. Применять эти правила ко всем входным и выходным значениям.
  4. Если данные — упорядоченное множество, отдельное внимание уделяется первым и последним элементам.

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

Анализ причинно-следственных связей

Этапы построения теста:

  1. Разделяют спецификацию на рабочие участки.
  2. В спецификации определяют перечень причин (входных условий/классов эквивалентности) и следствий (выходных условий/преобразований). Каждое — с уникальным номером.
  3. По смыслу спецификации строят таблицу истинности, перебирая комбинации причин, и определяют для каждой комбинации соответствующие следствия.

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

Предположение об ошибке

Опытный тестировщик может находить дефекты без формальных методов, бессознательно используя предположение об ошибке. Главная идея — составить список вероятных ошибок и ситуаций для их проявления, затем по этому списку разрабатывать тесты.

Примечания

Литература

  • Росс Эшби У. Глава 6. Чёрный ящик // Введение в кибернетику. — Издательство иностранной литературы, 1959. — P. 127–169.
  • Бейзер Б. Тестирование чёрного ящика. Технологии функционального тестирования программного обеспечения и систем. — Питер, 2004. — ISBN 5-94723-698-2.

Категории