일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- test
- 위험 기반 테스트
- risk-based testing
- 테스트케이스
- Python
- QA
- SQA
- Testing
- 비기능테스트
- ISTQB
- seleium
- selenium
- 테스트 케이스
- testcase
- regression test
- maintainability test
- Test Case
- 애자일
- 자동화
- 테스트
- agile
- RBT
- testing method
- 품질
- 셀레니움
- csts
- 유지보수성 테스트
- 파이썬
- Software life cycle model
- 테스트 설계 기법에 따른 분류
- Today
- Total
Study_Note
defects by development stage 본문
개발 단계별 결함
(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 |