애플리케이션 테스트
- 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차
- 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인하고 소프트웨어가 기능을 정확히 수행하는지 검증함
애플리케이션 테스트의 기본 원리
- 파레토 법칙(Pareto Principle) : 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙
- 살충제 패러독스(Pesticide Paradox) : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상
- 오류-부재의 궤변(Absence of Errors Fallacy) : 소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없는 것
개발 단계에 따른 애플리케이션 테스트
프로그램 실행 여부에 따른 테스트
- 정적 테스트 : 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트(워크스루, 인스펙션, 코드 검사 등)
- 동적 테스트 : 프로그램을 실행하여 오류를 찾는 테스트(블랙박스 테스트, 화이트박스 테스트)
테스트 기반에 따른 테스트
- 명세 기반 테스트 : 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트
- 구조 기반 테스트 : 소프트웨어 내부의 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트
- 경험 기반 테스트 : 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행하는 테스트
시각에 따른 테스트
- 검증(Verification) 테스트 : 개발자의 시각에서 제품의 생산 과정을 테스트하는 것
- 확인(Validation) 테스트 : 사용자의 시각에서 생산된 제품의 결과를 테스트하는 것
목적에 따른 테스트
- 회복(Recovery) 테스트: 여러 가지 결함을 주어 실패하도록 한 후 올바르게 복구되는지를 확인하는 테스트
- 안전(Security) 테스트 : 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 시스템을 보호할 수 있는지 확인하는 테스트
- 강도(Stress) 테스트 : 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트
- 성능(Performance) 테스트 : 소프트웨어의 실시간 성능이나 전체적인 효율성을 진단하는 테스트. 소프트웨어의 응답 시간, 처리량 등을 테스트함
- 구조(Structure) 테스트 : 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트
- 회귀(Regression) 테스트 : 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트. 이미 테스트된 프로그램의 테스팅을 반복하는 것
- 병행(Parallel) 테스트 : 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교하는 테스트
화이트박스 테스트
- 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
- 모듈 안의 작동을 직접 관찰할 수 있음
- 모든 문장을 한 번 이상 실행함으로써 수행됨
화이트박스 테스트의 종류
기초 경로 검사(Base Path Testing)
제어 구조 검사(Control Structure Testing)
- 조건 검사(Condition Testing) : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
- 루프 검사(Loop Testing) : 프로그램의 반복 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
- 데이터 흐름 검사(Data Flow Testing) : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
화이트박스 테스트의 검증 기준
- 문장 검증 기준(Statement Coverage) : 최소 한번은 모든 문장이 수행되도록 구성
- 결정(분기) 검증 기준(Branch Coverage) : 조건식이 참/거짓일 때 수행되도록 구성
- 조건 검증 기준(Condition Coverage) : 조건식에 상관없이 개별 조건이 참/거짓일 때 수행되도록 구성
- 분기/조건 기준(Branch/Condition Coverage) : 분기 검증 기준과 조건 검증 기준을 모두 만족하는 설계
블랙박스 테스트
- 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트
- 기능 테스트라고도 함
블랙박스 테스트의 종류
- 동치 분할 검사(Equivalence Partitioning Testing) : 프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 하여 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법
- 경계값 분석(Boundary Value Analysis) : 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법
- 원인-효과 그래프 검사(Cause-Effect Graphing Testing) : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
- 오류 예측 검사(Error Guessing) : 과거의 경험이나 확인자의 감각으로 테스트하는 기법
- 비교 검사(Comparison Testing) : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법
'정보처리기사' 카테고리의 다른 글
정처기 독학 그 후.. (2) | 2023.11.28 |
---|---|
보안 위협과 보안 솔루션 (0) | 2023.07.21 |
스케줄링 (0) | 2023.07.21 |
네트워크 관련 신기술 (0) | 2023.07.21 |
형상 관리 도구 (0) | 2023.07.21 |