애플리케이션 테스트
- 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차
파레토 법칙 (Pareto Princile)
- 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙
살충제 패러독스 (Pesticide Paradox)
- 동일한 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을 수 없다.
애플리케이션 테스트 유형 분류
- 프로그램 실행 여부 – 정적 / 동적테스트
- 정적 테스트
- 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트
- 종류 – 워크스루, 인스펙션, 코드 검사
- 동적 테스트
- 프로그램을 실행하여 오류를 찾는 테스트
- 종류 – 화이트박스 테스트, 블랙박스 테스트
- 정적 테스트
- 테스트 기법 – 화이트박스 / 블랙박스 테스트
- 테스트에 대한 시각 – 검증 / 확인 테스트
- 테스트 목적 – 회복 / 안전 / 강도(스트레스) / 성능 / 구조 / 회귀 / 병행 테스트
- 테스트 기반 – 명세 / 구조 / 경험 기반 테스트
워크스루 (Walkthrough, 검토 회의)
- 소프트웨어 개발자가 모집한 전문가들이 개발자의 작업 내역을 검토하는 것
- 소프트웨어 검토를 위해 미리 준비된 자료를 바탕으로 정해진 절차에 따라 평가한다.
인스펙션 (Inspection)
- 워크스루를 발전시킨 형태
- 소프트웨어 개발 단계에서 산출된 결과물의 품질을 평가하고, 이를 개선하기 위한 방법을 제시한다.
화이트박스 테스트 – 소스코드를 보며 테스트
- 기초 경로 검사 (Base Path Testing)
- 제어 구조 검사 (Control Structure Testing)
- 조건 검사
- 루프 검사
- 데이터 흐름 검사
블랙박스 테스트 – 소프트웨어의 기능이 완전히 작동하는 것을 입증하는 테스트 (기능 테스트)
- 동등 분할 기법 (Equivalence Partitioning) – 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법, 유효값과 그렇지 않은 범위를 나눠야 할 경우 사용하는 테스트
- 경계값 분석 (Boundary Value Analysis) – 입력 조건의 경계값을 테스트 케이스로 선정하는 방법
- 원인-효과 그래프 검사 (Cause Effect Graph) – 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
- 오류 예측 검사 (Error Guessing) – 과거의 경험이나 테스터의 감각으로 테스트하는 기법
- 비교 검사 (Comparison Testing) – 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법
코드 커버리지 ( Code Coverage )
- 구문 커버리지 – 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지
- 조건 커버리지 – 결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지
- 결정 커버리지 – 결정 포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리지
- 조건/결정 커버리지 – 결정포인트 T/F, 개별조건식 T/F를 가져야 한다.
- 변경/조건 커버리지 – 모든 결정 포인트 내의 개별 조건식은 적어도 한 번 T, F를 가져야 한다.
- 다중 조건 커버리지 – 결정 포인트 내 모든 개별 조건식의 가능한 조합을 100% 보장해야 한다.
단위테스트 – 통합테스트 – 시스템테스트 – 인수테스트
단위테스트
- 정적 테스트 – 프로그램을 실행 시키지 않고, 소스코드에 대한 코딩 표준, 코딩 스타일, 복잡도, 보안 취약점, 잠재적인 결함을 찾는 테스트 활동
- 동적 테스트 – 함수를 실행시켜 코드 결과를 보는 테스트
통합테스트
- 상향식 테스트
- 하향식 테스트
- 빅뱅 테스트
시스템테스트
- 기능 테스트
- 비기능 테스트
인수테스트
- 알파 테스트
- 베타 테스트
테스트 케이스
테스트 시나리오
테스트 오라클 – 테스트의 결과가 참인지 거짓인지 판단하기 위해서 미리 정의된 참값을 대입해서 비교하는 기법
- 참(True) 오라클 – 모든 것들에 대해서 테스트
- 샘플링(Sampling) 오라클 – 몇 개의 입력 값에 대해서만 기대하는 결과를 제공
- 휴리스틱(Heuristic, 추정) 오라클 – 샘플링 + 나머지 것들은 추정
- 일관성 검사(Consistent) 오라클 – 애플리케이션에 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지 확인하는 오라클
Leave a Reply