PCE(Phase Containment Effectiveness)

PCE(Phase Containment Effectiveness)는 소프트웨어 개발 공정에서 결함이 발생한 해당 단계(Phase) 내에서 얼마나 많은 결함을 발견하고 제거했는지를 나타내는 지표입니다. 쉽게 말해, "결함이 다음 단계로 넘어가기 전에 제때 잘 잡았는가?"를 측정하는 효율성 지표라고 보시면 됩니다.

 

1. PCE의 목적 (언제 사용하는가?)

PCE는 주로 프로세스 개선과 품질 통제를 위해 다음과 같은 상황에서 사용됩니다.

  • 공정 효율성 측정 : 각 개발 단계(요구분석, 설계, 코딩 등)의 검토 및 테스트 프로세스가 얼마나 견고한지 확인하고 싶을 때
  • 비용 절감 : 결함이 후반 단계(테스트, 운영)에서 발견될수록 수정 비용이 기하급수적으로 늘어나므로, 이를 조기 차단하기 위한 관리 지표로 활용
  • 프로세스 병목 구간 확인 : 특정 단계의 PCE가 낮다면, 해당 단계의 리뷰나 검토 프로세스에 보완이 필요하다는 신호로 해석

 

2. PCE 계산 방법

PCE는 해당 단계에서 발견된 결함 수를 그 단계에서 발생한 전체 결함 수로 나누어 백분율로 계산합니다.

 

$$PCE = \frac{E}{E + L} \times 100 (\%)$$

 

  • $E$ (Errors found in phase) : 해당 단계에서 발생하고, 그 단계 내에서 발견된 결함 수
  • $L$ (Errors Leaked) : 해당 단계에서 발생했지만, 발견되지 못하고 다음 단계로 누출되어 나중에 발견된 결함 수

 

예를 들어, 설계 단계에서 총 10개의 결함이 만들어졌다고 가정해 봅시다. 설계 리뷰를 통해 8개의 결함을 찾아냈습니다. ($E = 8$)나머지 2개는 설계 단계에서 놓쳤고, 나중에 코딩이나 테스트 단계에서 발견되었습니다. ($L = 2$) 이 경우 설계 단계의 PCE는 다음과 같습니다.

 

$$\frac{8}{8 + 2} \times 100 = 80\%$$

 

PCE가 높을수록(100%에 가까울수록) 결함 유출이 적고 해당 단계의 필터링 기능이 우수하다는 뜻입니다. PCE가 낮을수록 결함이 다음 단계로 많이 전이되고 있으며, 이는 프로젝트 후반부에 과부하를 줄 위험이 크다는 것을 의미합니다.

 

3. 유사 지표와의 차이 (DRE)

자주 혼동되는 지표로 DRE(Defect Removal Efficiency, 결함 제거 효율)가 있습니다.

  • PCE : 특정 단계(Phase) 내에서의 봉쇄 효율을 강조합니다. (수평적 관점)
  • DRE : 프로젝트 전체 과정에서 출시 전까지 얼마나 많은 결함을 제거했는지를 강조합니다. (수직적/전체적 관점)

결함 관리 효율성을 높이기 위해서는 PCE를 통해 각 공정별 "그물망"을 촘촘하게 만드는 것이 핵심입니다.

 

2023년 정보시스템감리사 41번 문제

 

위 그림의 표를 잘 이해해야 합니다. 우선 세로축을 보면 결함의 생성단계는 분석-설계-구현 이고 가로축은 분석-설계-구현-테스트입니다. 

가로축으로 분석-설계-구현의 총 합을 계산하면 각각, 160, 123, 318이 나옵니다. 이 말은 분석단계에 결함이 160개 발생했고, 설계단계에서는 123개, 구현단계에서는 318개 나왔다는 이야기입니다. 분석단계에서 총 160개의 결함이 나왔지만 정작 같은 단계에서는 114개만 발견되고 다음 단계인 설계단계에서 27개, 구현단계에서 4개, 테스트 단계에서 15개나 발견되었다는 이야기입니다. 

제일 좋은 것은 각 단계에서 생성된 결함을 해당 단계에서 다 찾아내는게 좋겠죠?

자, 그럼 이제 세로축의 결함의 발견 즉, 분석-설계-구현 단계의 각각 수를 알아볼까요? 각각 114개, 93개, 213개입니다. 그럼 이제 공식에 대입해 봅시다. 그러면 각각 아래와 같습니다. 

$$ \frac{114}{160} , \quad \frac{93}{123} , \quad \frac{213}{318} $$

백분율로 계산해보면 각각 71.3%, 75.6%, 67% 정도 됩니다. 따라서 답은 4번입니다.