소프트웨어 경로 테스트 및 기본 경로 테스트(예제 포함)
⚡ 스마트 요약
기본 경로 테스트는 프로그램의 논리적 경로에서 테스트 케이스를 도출하는 화이트 박스 기법으로, 제어 흐름 그래프와 순환 복잡도를 사용하여 최소 독립 경로 집합을 찾습니다.

소프트웨어 테스팅에서 경로 테스팅이란 무엇입니까?
경로 테스트는 가능한 모든 실행 경로를 찾기 위해 프로그램의 소스 코드를 사용하는 구조적 테스트 방법입니다. 이는 코드 내에 있는 모든 결함을 확인하는 데 도움이 됩니다. 이 방법은 컴퓨터 프로그램을 통해 전체 또는 선택된 경로를 실행하도록 설계되었습니다.
복잡한 프로그램에는 수많은 실행 경로가 존재합니다. 모든 경로를 테스트하는 것은 어렵고 시간이 많이 소요될 뿐만 아니라, 대부분의 경로가 서로 중복됩니다. 기본 경로 테스트는 모든 명령문과 모든 분기문을 최소 한 번씩 실행하면서도 실행 가능한 최소한의 경로 집합을 식별함으로써 이러한 중복성을 줄여줍니다.
소프트웨어 엔지니어링의 기본 경로 테스트
기본 경로 테스트 소프트웨어 공학은 백 Box 지원 프로그램을 통해 수행할 수 있는 흐름이나 논리적 경로를 기반으로 테스트 케이스를 정의하는 방법입니다. 기본 경로 테스트의 목적은 독립적인 경로의 수를 정의하는 것입니다. 따라서 테스트 적용 범위를 최대화하기 위해 필요한 테스트 사례의 수를 명시적으로 정의할 수 있습니다.
In 소프트웨어 공학, 기본 경로 테스트에는 프로그램에서 가능한 모든 블록의 실행이 포함되며 최소한의 테스트 사례로 최대 경로 적용 범위를 달성합니다. 이는 분기 테스트와 경로 테스트 방법의 하이브리드 방법입니다.
간단한 예를 통해 개념을 구체화할 수 있습니다.
위의 흐름도에는 조건문이 포함되어 있으므로 제어는 여러 경로를 통해 출구에 도달할 수 있습니다. 이를 위해서는 세 개의 독립적인 경로가 필요합니다.
- 경로 1: 1,2,3,5,6, 7
- 경로 2: 1,2,4,5,6, 7
- 경로 3: 1, 6, 7
제어 흐름 그래프를 그리는 방법
기본 경로 테스트의 모든 단계는 제어 흐름 그래프에 따라 달라지므로, 제어 흐름 그래프를 어떻게 구성하는지 정확하게 파악하는 것이 중요합니다.
- 마디: 항상 함께 실행되는 일련의 명령문은 원으로 표시됩니다. 분기가 없는 명령문의 연속은 하나의 노드로 축소됩니다.
- 가장자리: 제어권이 한 노드에서 다음 노드로 이동하는 것을 화살표로 나타냅니다. 제어권 이동은 에지를 통해서만 가능합니다.
- 술어 노드: 조건을 포함하는 노드와 해당 노드에서 나가는 두 개 이상의 간선이 있습니다. 이러한 간선들이 복잡도 계산에 영향을 미칩니다.
- 지역 : 간선과 노드로 둘러싸인 영역. 영역의 개수에 1을 더하면 순환 복잡도가 됩니다.
두 가지 선택 사항이 있는 짧은 모듈을 생각해 보세요.
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을 초과하는 모듈은 이러한 방식으로 처리하는 것이 비실용적입니다.
- 보도 범위가 곧 정확성을 의미하는 것은 아닙니다. 경로를 실행하는 것은 코드가 실행된다는 것을 증명하는 것이지, 올바른 답을 도출한다는 것을 증명하는 것은 아닙니다. 각 테스트에는 여전히 의미 있는 검증이 필요합니다.
- 데이터에 따라 달라지는 경로. 일부 경로는 특정 입력 조합을 통해서만 도달할 수 있는데, 이러한 조합을 구성하는 것은 어렵거나 불가능할 수 있습니다.

