Study_Note

APFD(Average Percentage of Faults Detected) 본문

QA_study

APFD(Average Percentage of Faults Detected)

12월7일생 2024. 8. 1. 14:30
728x90

반응형

APFD(Average Percentage of Faults Detected)

APFD(Average Percentage of Faults Detected)는 소프트웨어 테스트에서 테스트 케이스의 우선 순위화를 평가하는 중요한 메트릭 중 하나입니다. 이 지표는 테스트 케이스가 발견하는 결함의 비율을 측정하여 테스트 효율성을 평가합니다. APFD는 특히 테스트 케이스가 얼마나 빠르게 소프트웨어 결함을 찾는지를 평가하는 데 유용합니다.

APFD의 정의

APFD는 다음과 같이 정의됩니다.

이 공식에서 APFD는 0에서 1까지의 값으로, 1에 가까울수록 테스트 케이스가 더 효과적으로 결함을 찾아내는 것을 의미합니다.

APFD 계산 과정

  1. 테스트 케이스 및 결함 식별
    먼저, 모든 테스트 케이스와 결함을 식별합니다. 각 결함이 어떤 테스트 케이스에 의해 검출되는지도 파악합니다.
  2. 테스트 케이스 우선순위 지정
    테스트 케이스에 우선순위를 매깁니다. 이 단계는 APFD 값에 큰 영향을 미치며, 목표는 중요한 결함을 가능한 빨리 발견하는 것입니다.
  3. TF 값 산출
    각 결함에 대해, 해당 결함을 처음으로 발견한 테스트 케이스의 순서를 기록합니다. 이 값을 "TF_i"라고 합니다.
  4. APFD 계산
    위의 공식에 따라 모든 "TF_i" 값을 더하고, 이를 전체 결함과 테스트 케이스 수로 나눕니다. 결과적으로 APFD 값을 계산하게 됩니다.

APFD의 중요성

APFD는 테스트 케이스 우선순위화 전략의 효율성을 측정하는 데 매우 유용합니다. 높은 APFD 값은 우선순위가 잘 매겨져서 테스트가 중요한 결함을 빨리 찾아내는 것을 의미합니다. 이는 다음과 같은 이점을 제공합니다:

  • 리소스 절약
    테스트 리소스를 최적화하여 중요한 결함을 빨리 찾아내고, 수정하는 데 드는 비용과 시간을 절약할 수 있습니다.
  • 품질 향상
    중요한 결함을 빨리 찾아내어 빠르게 수정할 수 있어 소프트웨어 품질을 높이는 데 도움이 됩니다.
  • 리스크 관리
    주요 결함을 초기에 발견하여 제품 출시 전에 수정할 수 있어 리스크를 줄입니다.

APFD는 주로 회귀 테스트나 지속적인 통합 시스템에서 사용되며, 이러한 시스템에서 테스트 케이스를 빠르게 실행하고 평가하는 것이 중요합니다.


[예시]

 

테스트 케이스가 tc1, tc2, tc3, tc4, tc5 의 순서대로 실행 되었을 때 APFD를 계산해보자

 

만약 테스트 케이스가 tc2, tc4, tc3, tc1, tc5 순서대로 실행되었을 때 APFD를 계산해보면 다음과 같다.

테스트 케이스의 실행 순서에 따라 APFD(Average Percentage of Faults Detected) 값이 큰 차이를 보일 수 있습니다. APFD는 테스트 과정에서 결함을 얼마나 빨리 검출할 수 있는지를 측정하는 지표로, 값이 높을수록 더 적은 테스트 케이스를 실행하여 많은 결함을 빠르게 찾아낼 수 있음을 의미합니다. 따라서 리그레션 테스트의 시간과 비용이 제한된 상황에서는, 테스트 케이스의 우선순위를 잘 설정하여 테스트의 효율성을 높이는 것이 중요합니다.

테스트 케이스의 우선순위는 결함 검출 가능성이 높은 테스트 케이스를 먼저 실행하는 것이 이상적이지만, 이를 사전에 정확히 예측하는 것은 쉽지 않습니다. 보통은 다음과 같은 요소들을 고려하여 우선순위를 설정합니다:

  • 비즈니스 중요도 : 시스템의 핵심 기능과 관련된 테스트 케이스는 더 높은 우선순위를 갖습니다.
  • 리스크 : 발생할 수 있는 결함이 시스템에 미치는 영향이 큰 경우, 해당 테스트 케이스의 우선순위를 높입니다.
  • 테스트 케이스의 실행 시간 : 시간이 오래 걸리는 테스트는 나중에 실행할 수 있도록 조정합니다.
  • 커버리지 : 더 많은 코드나 기능을 커버하는 테스트 케이스는 높은 우선순위를 가질 수 있습니다.
  • 결함 검출 내역 : 과거에 결함을 많이 검출했던 테스트 케이스는 앞으로도 중요한 결함을 찾아낼 가능성이 크므로 우선순위를 높게 설정합니다.

이러한 요소들을 종합적으로 고려하여 테스트 케이스의 우선순위를 정함으로써, 제한된 자원 내에서 최대한의 결함을 신속하게 검출할 수 있는 전략을 수립할 수 있습니다.

'QA_study' 카테고리의 다른 글

test bed, test driver, test stub  (0) 2024.07.26
sanity test , smoke test , regression test  (1) 2024.02.26
why perfect testing is impossible  (0) 2023.12.18
requirements engineering  (1) 2023.12.08
software life cycle model  (2) 2023.12.06