반응형
-
소프트웨어 테스트의 개요
-
정의
- 기대되는(Expected) 수행 결과를 무한 실행 도메인(Infinite Execution Domain)에서 적절히 선택된(Selected) 유한(Finite) 테스트 케이스를 통하여 프로그램의 수행 결과를 동적(Dynamic)으로 검증하는 것
-
Expected | 사용자의 기대치, 명세, 묵시적 요구 사항, 합당한 기대치 |
Selected | 테스트 집합의 선택 기준에 따라 효과가 크게 달라짐 |
Finite | 한정된 자원과 일정 대비 무한한 테스트 요구 사항 사이의 Trade-off 고려가 필요 |
Dynamic | 비확정된 시스템 상태에 따라 입력에 대한 프로그램의 실행 |
-
노출되지 않은 숨어있는 결함(Fault)을 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차로, 오류 발견을 목적으로 프로그램을 실행하여 품질을 평가하는 과정
-
목적
- 프로그램에 잠재된 오류의 발견
- 기술적인 기능 및 성능의 확인
- 사용자 요구 사항 만족도 향상
-
제품에 대한 신뢰도 향상
-
중요성
- 단순히 코딩이 끝난 후 결함을 찾아내기 위한 한정된 활동이 아니고 개발과 유지보수 프로세스 전체를 포함하는 활동
- 테스트 계획 수립은 요구 사항 프로세스의 초기 단계에서 시작되어야 하며, 테스트 계획서와 절차는 지속적으로 정제되어야 함.
-
테스트는 예방이 효과적인지 점검하고 미처 예방하지 못했을 때 결함을 찾아내는 수단
- 소프트웨어 테스트의 계획 수립은 분석 단계 후반기에 수행되어야 하며, 이후 설계 개발 단계를 거쳐 지속적으로 정제되어야 합니다.
-
테스트의 결과는 테스트 케이스와 시나리오를 얼마나 적정하게 구성하였는지에 따라 결정됩니다.
-
소프트웨어 테스트의 기본 이론
-
소프트웨어 테스트의 특징
- 테스트 케이스 선정과 테스트 계획 수립에 따라 영향 받음
- 좋은 테스트 케이스는 미발견 결함의 발견 확률을 높여줌
- 성공적인 테스트는 결함을 찾는 데 있음
- 효율적인 테스트 및 최소 시간 노력이 필수
-
테스트 집합의 구성 방안테스트 대상과 테스트 목적에 따른 테스트 집합의 구성을 결정
-
구분 | 내용 | 기준 |
테스트의 일관성 | 테스트의 목적 달성을 위한 테스트 수행 횟수 | 테스트 타당성 기준 |
테스트의 구성 | 테스트의 목적 달성을 위한 테스트 케이스 선택 | 테스트 선택 기준 |
-
테스트 관련 용어
- 오류(Error) : 계산된 결과와 정확한 결과 사이의 차이
- 결함(Fault/Defect) : 프로그램에서 잘못된 단계, 프로세스나 데이터의 정의로, 기능 불량의 원인
- 장애(Failure) : 결함의 부정확한 결과로, 즉 시스템이 제공하는 서비스에서 관찰된 원하지 않은 결과를 의미
- 착오(Mistake) : 잘못된 결과를 만드는 인간의 행위
-
테스트 주요 이슈
-
테스트 선택 기준 및 테스트 타당성 검증 기준테스트 선택 기준은 테스트에 적절한 케이스의 집합을 결정하는 방법으로, 테스트가 목적을 충족하여 완료될 수 있는지 결정하는데 이용 가능
-
결함 식별을 위한 테스트결함 식별 을 위한 테스트는 시스템의 장애를 유발해야 성공적임
-
테스트의 이론과 실제성완전한 테스트는 실제 소프트웨어에서 시행하기 어려우므로 테스트는 위험을 기반으로 시행되어야 함
-
실행 불가능한 경로어떤 입력 자료를 넣어도 실행되지 않는 제어 흐름 경로는 테스트에서 심각한 문제임
-
-
소프트웨어 테스트의 법칙
- 개발자가 자기 프로그램을 직접 테스트하지 않음
- 테스트 케이스는 기대되는 표준 결과를 포함
- 예측 오류나 기대되지 않는 결함이 있다는 가정 하에 테스트 계획 수립
- 추가 결함이 발견될 확률은 이미 발견된 결함 수에 정비례
- 개발 시 노력 분포도 40%(분석/설계) : 20%(개발) : 40%(테스트) 규칙을 제안할 정도로 테스트의 중요성 및 집중도를 요구
반응형
'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글
ITIL(Information Technology Infrastructure Library) ver. 3.0 (0) | 2010.12.30 |
---|---|
SLA(Service Level Agreement) (0) | 2010.12.30 |
소프트웨어 테스트의 분류 (0) | 2010.12.27 |
소프트웨어 테스트 기법 (0) | 2010.12.27 |
소프트웨어 테스트 프로세스 (0) | 2010.12.27 |