Study_Note

defects by development stage 본문

CSTS

defects by development stage

12월7일생 2023. 10. 11. 16:18
728x90
반응형

개발 단계별 결함
(defects by development stage)

 

결함이 마치 소스 코드에만 존재한다고 생각할 수 있다.하지만 결함은 소스 코드를 포함해서 최종적으로 소프트웨어 동작의 장애를 유발할 수 있는 모든 개발 산출물에 존재할 수 있다. 예를 들어, 소스 코드에서 발견된 결함이 소스 코드를 작성하는 구현 단계가 아니라 설계 명세서의 부정확한 알고리즘에 기인한 것일 수도 있는데, 이러한 경우에는 소스 코드의 결함이라기보다는 설계의 결함이라고 볼 수 있다.

 

일반화하면 개발자는 소프트웨어를 개발하는 각 단계에서 오류를 범할 수 있으므로 각 단계의 산출물에는 결함이 존재할 가능성이 있는 것이다.

 

아래 이미지는 전체 결함에 대하여 소프트웨어 주요 개발 단계별 결함의 발생 비율을 보여준다.

결함 발생 단계

결함의 35%가 코딩단계의 오류에 따른 것이고, 요구분석 단계에서 20%, 설계 단계에서 25%의 결함이 발생함을 알 수 있다. 참고로 결함 해결 오류는 결함을 해결하는 과정에서 새롭게 발생한 결함의 비율을 의미한다.

 

결함이 발생했을 때, 해당 단계에서 적절하게 검출하여 제거하지 않으면 이후 단계를 거쳐 소스 코드에 영향을 미치며 결국에는 장애를 유발하게 된ㄷ. 게다가 결함이 발생한 시점에 제거되지 않고 이후 개발 단계에서 그대로 전달되면 이 결함을 제거하기 위하여 더 많은 비용이 소요된다.

 

아래 이미지는 소프트웨어 개발 단계에 따라 결함을 제거하는 데 소요되는 비용을 상대적인 수치로 나타낸 것이다.

결함 해결 비용

예를 들어 요구분석 단계에서 결함을 해결하면 "0.1 ~ 0.2" 정도의 비용이 소요되지만 이를 코딩 단계에서 제거하려면 "1"의 비용이 소요되고, 인수 테스트 단계에서는 "5"의 비용이 소요된다. 유지보수 단계에서는 심지어 "20"의 비용이 소요됨을 알 수 있다.

 

그러므로 결함 해결에 소요되는 비용을 최소화하기 위해서는 각 개발 단꼐의 결과물을 테스트하여 해당 산출물에 존재하는 결함을 최대한 빨리 검출하고 제거해야 한다.

'CSTS' 카테고리의 다른 글

test principle  (0) 2023.12.08
the evolutionary process of testing  (1) 2023.12.06
testing, debugging, re_testing  (0) 2023.12.04
type of defects  (1) 2023.10.11
concept of error, defect, failure  (0) 2023.10.04