오류, 결함, 고장, 7가지 원칙, 살충제 패러독스, 오류-부재의 원칙 |
I. 숨어있는 결함을 찾는 행위, 소프트웨어 테스트의 개요
가. 소프트웨어 테스트(Software Test)의 정의
- 노출되지 않은 숨어있는 결함(Fault)를 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차
나. 소프트웨어 테스트의 필요성
구조 측면 |
시스템 구조의 복잡도 증가에 따라, 잠재된 발견되지 않은 오류의 증거 |
비용 측면 |
시스템 오류 증가에 따른 재 작업은 시스템 구축의 시간 및 비용 증가를 초래 |
품질 측면 |
테스트를 통한 시스템 신뢰도 확보 및 고객 만족의 필요 |
조기 검증을 통해 안정성과 신뢰성을 보장하는 시스템 구축 |
다. 테스트의 목표
- 에러가 없다는 것을 보여주는 게 아닌 결함이 존재하는 것을 보여줌으로 제품이 인도되기 전에 수정할 수 있는 기회 제공
라. 소프트웨어 관련 용어
소프트웨어 오류 |
시간적인 압박, 복잡한 코드, 환경의 복잡성 등 이유로 결함을 발생시키는 원인 |
소프트웨어 결함 |
성능 및 규격상 부적합 발생, 고객 불만족을 야기하는 결함은 고장(장애) 원인 |
소프트웨어 고장 |
요구되는 기능을 다하지 못하고 장애를 일으키는 현상 |
II. 소프트웨어 테스트의 원칙과 원리
가. 소프트웨어 테스트의 원칙과 경제성의 원리
대상 |
내용 |
|
테스트 원칙 |
마이어의 원칙 |
개발자가 자신의 프로그램을 테스트하지 않는 원칙 |
Test Case |
기대되는 표준 결과 포함(테스트 오라클),예측오류,기대되지 않은 결함이 잇다는 가정 아래 Test Plan 수립 |
|
결과 Review |
Test 내용을 점검하여 누락된 사례 도출 |
|
경제성의 원리 |
- 추가 결함이 발견 될 확률은 기 발견된 결함 수에 정비례 - 개발 시 노력 분포도 40:20:40 = 설계:프로그래밍:테스트 - SW 의 내재된 결함을 찾아 내는 시기가 중요 |
나. 소프트웨어 테스트의 7가지 원칙 (결투 초기에 살점을 오려내라)
원리 |
설명 |
결함 존재 증명의 원리 |
테스트는 결함이 존재함을 밝히는 행위 |
완벽한 테스팅 불가능의 원리 |
무한경로,무한입력값,무한타이밍 등의 이유로 완벽한 테스트 불가능 |
초기 테스팅 시작의 원리 |
테스트 활동은 가능한 초기에 시작, 설정한 테스트 목표에 집중 |
결함 집중의 원리 |
출시 전 대다수 결함들이 소수의 특정 모듈에 집중되는 경향 |
살충제 패러독스의 원리 |
동일한 케이스의 반복 테스트는 신규 결함 가능성이 낮아짐 |
정황 의존성의 원리 |
많이 하는 것보다, 특성에 따른 수행 방법 및 절차를 적절히 테스트 |
오류-부재의 궤변의 원리 |
사용자 요구 충족이 안되면 오류가 없어도 품질이 높은 게 아님 |
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
테스트 오라클(Test Oracle) (0) | 2021.02.02 |
---|---|
테스트 베드(Test Bed) (0) | 2021.02.02 |
테스트 케이스(Test Case) (0) | 2021.02.02 |
소프트웨어 테스트 프로세스 (0) | 2021.02.02 |
SPA(Single Page Web Application) (0) | 2021.02.01 |
코드스멜, 클린코드 (0) | 2021.02.01 |
리팩토링(Refactoring) (0) | 2021.02.01 |
TDD(Test-Driven Development) (0) | 2021.02.01 |
댓글