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

  • Все независимые пути каждого модуля выполняются хотя бы один раз.
  • Решения используются в их истинной части и в их ложной части.
  • Все циклы выполняются на пределе своих возможностей.
  • Используются все внутренние структуры данных.

Базовый путь тестирование

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

Обозначение потокового графа или графа программы

Представляет логический поток управления в следующих обозначениях:

Вот пример, основанный на блок-схеме, представляющей управляющую структуру программы.

Цикломатическая сложность

Это мера, которая дает представление о логической сложности программы.

  • Цикломатическая сложность совпадает с количеством областей потокового графа.
  • Цикломатическая сложность V (G) потокового графа G определяется как V (G) = Ребра - Узлы + 2.
  • Цикломатическая сложность V (G) потокового графа G также определяется как V (G) = узлы предиката + 1.

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

  • Поскольку на графике четыре области, V (G) = 4
  • Поскольку в графе 11 ребер и 9 узлов, V (G) = 11 - 9 - 2 = 4.
  • Поскольку в графе 3 узла предиката, V (G) = 3 + 1 = 4

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

  • 1–11
  • 1–2–3–4–5–10–1–11
  • 1–2–3–6–7–9–10–1–11
  • 1–2–3–6–8–9–10–1–11

Этапы разработки теста по основному пути

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

Циклическое тестирование

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

Можно определить четыре различных типа петель:

  • Простые петли.
  • Вложенные петли.
  • Составные петли.
  • Неструктурированные петли.

Простые петли

Следующий набор тестов необходимо применить к простым циклам (из n итераций):

  • Пропустить петлю.
  • Пропустить только один раз через петлю.
  • Пройдите петлю дважды.
  • Сделайте m шагов петли с помощью m ‹n
  • Выполните n - 1, n и n + 1 шагов по циклу.

Вложенные циклы

Если мы расширим набор тестов с простых циклов до вложенных циклов, количество тестов вырастет геометрически, поэтому Бейзер предлагает следующий набор тестов для вложенных циклов:

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

Составные циклы

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

Неструктурированные петли

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

Применяя теорию

Мы рассмотрим простой пример того, как это можно применить. Так как это не совсем справедливо с теорией.

Посмотрите этот код ниже:

Учитывая приведенный выше код, конкретный потоковый граф для этой программы будет:

А математически формула, которая будет применяться, будет следующей:

  • V(G) = 9 – 7 + 2 = 4
  • V (G) = 3 + 1 = 4 (узлы условий - это 1, 2 и 3 узла)
  • Basis Set - набор возможных путей выполнения программы.
  • 1-7
  • 1-2-6-1-7
  • 1-2-3-4-5-2-6-1-7
  • 1-2-3-5-2-6-1-7

Заключение

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

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