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

Что такое тестирование пути в тестировании программного обеспечения?
Тестирование пути — это метод структурного тестирования, который предполагает использование исходного кода программы для поиска всех возможных путей к исполняемому файлу. Это помогает определить все ошибки, лежащие в пределах фрагмента кода. Этот метод предназначен для выполнения всего или выбранного пути с помощью компьютерной программы.
Любая нетривиальная программа содержит множество возможных путей выполнения. Проверка каждого из них сложна и трудоемка, и большинство из них перекрываются. Базовое тестирование путей выполнения уменьшает эту избыточность, определяя наименьший набор путей, который по-прежнему проверяет каждое оператор и каждую ветвь хотя бы один раз.
Тестирование базового пути в разработке программного обеспечения
Тестирование базового пути в разработке программного обеспечения - это Белый Box Тестирование метод, в котором тестовые примеры определяются на основе потоков или логических путей, которые можно пройти через программу. Целью тестирования базового пути является определение количества независимых путей, чтобы количество необходимых тестовых случаев можно было определить явно, чтобы максимизировать тестовое покрытие.
In разработка программного обеспеченияТестирование базового пути включает выполнение всех возможных блоков в программе и обеспечивает максимальное покрытие пути с наименьшим количеством тестовых случаев. Это гибридный метод тестирования ветвей и методов тестирования путей.
Простой пример делает идею более наглядной.
Представленная выше блок-схема содержит условные операторы, поэтому управление может достичь выхода более чем одним путем. Для ее прохождения необходимы три независимых пути:
- Путь 1: 1,2,3,5,6, 7
- Путь 2: 1,2,4,5,6, 7
- Путь 3: 1, 6, 7
Как построить диаграмму потока управления
Каждый этап тестирования базового пути зависит от графа потока управления, поэтому важно точно определить, как он строится.
- Узел: Последовательность операторов, которые всегда выполняются одновременно, изображена в виде круга. Последовательность операторов без ветвлений сводится к одному узлу.
- Край: Передача управления от одного узла к другому, изображенная стрелкой. Управление осуществляется только по ребрам.
- Предикатный узел: Узел, содержащий условие, от которого отходят два или более ребер. Именно они определяют сложность вычисления.
- Регион: Область, ограниченная ребрами и узлами. Число регионов плюс один также равно цикломатической сложности.
Рассмотрим короткий модуль, содержащий два варианта решения:
if (a > b) { // node 1, predicate max = a; // node 2 } else { max = b; // node 3 } if (max > limit) { // node 4, predicate alert(); // node 5 } return max; // node 6
Граф имеет 6 узлов и 6 ребер, что дает V(G) = 6 – 6 + 2 = 2 по формуле ребер. Подсчет предикатов дает тот же ответ быстрее: 2 решения плюс 1 равны 3 независимым путям через две ветви, взятые вместе. Используйте ту форму, которую вы можете надежно вычислить, и перепроверьте с другой.
Два правила, которые предотвращают большинство ошибок. Во-первых, сложное состояние, такое как если (x > 0 && y > 0) Это считается двумя узлами-предикатами, а не одним, потому что короткое замыкание создает второе решение. Во-вторых, цикл добавляет один узел-предикат независимо от того, сколько раз он выполняется.
Этапы тестирования базового пути
Основные этапы тестирования базового пути включают в себя:
- Нарисуйте граф управления (чтобы определить различные пути программы)
- Рассчитать Цикломатическая сложность (метрики для определения количества независимых путей)
- Найдите базовый набор путей
- Создать контрольные примеры пройти каждый путь
Преимущества и ограничения тестирования базового пути.
Преимущества тестирования базовых путей
- Это помогает сократить количество избыточных тестов.
- Он фокусирует внимание на логике программы.
- Это заменяет произвольный выбор тестовых примеров аналитическим обоснованием.
- Тестовые случаи, которые используют базовый набор, будут выполнять каждый оператор в программе хотя бы один раз.
Ограничения тестирования базовых путей.
- Программа не может найти отсутствующий код. Требование, которое так и не было реализовано, не имеет пути выполнения, поэтому для него не будет сгенерирован тест. Базовое тестирование пути выполнения должно сочетаться с тестированием на основе требований.
- Количество путей быстро растёт. Вложенные циклы и составные условия быстро увеличивают сложность, и модуль с V(G) выше 20 становится непрактичным для покрытия таким способом.
- Охват информации не означает её корректность. Выполнение пути доказывает, что код работает, а не то, что он выдает правильный ответ. Каждая проверка по-прежнему нуждается в осмысленном утверждении.
- Пути, зависящие от данных. Некоторые пути достижимы только при определенных комбинациях входных данных, которые может быть сложно или невозможно построить.

