애플리케이션 테스트의 기본원리
- 파레토 법칙 : APP의 20%에 해당하는 코드에서 전체 80%의 결함이 발견된다.
- 살충제 패러독스 : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상의 결함을 발견할 수 없다.
- 오류-부재의 궤변 : 결함이 없는 프로그램이라도 사용자의 요구사항을 만족하지 못하면 좋은 프로그램이 될 수 없다.
- 브록스의 법칙 : SW 개발 일정이 지연된다고 해서 새로운 개발 인력을 진행 중인 프로젝트에 투입할 경우 일정이 더욱 지연된다.
-테스팅은 정황 의존 : 애플리케이션 테스트는 소프트웨어 특징, 테스트 환경, 테스터 역량 등 정황 (Context)에 따라 테스트 결과가 달라질 수 있으므 로, 정황에 따라 테스트를 다르게 수행해야 함
애플리케이션 테스트의 분류
- 시각의 따른 테스트
-검증 : 개발자의 시각에서 제품의 생산과정을 테스트
-확인 : 사용자의 시각에서 생산된 제품의 결과를 테스트
- 목적에 따른 테스트
-회복 테스트 : 시스템에 여러가지 결함을 주어 올바르게 복구되는지 확인하는 테스트
-안전테스트 : 불법적인 침입으로부터 시스템을 보호할 수 있는지 테스트
-강도테스트 : 과부하에 정상적으로 실행되는지 확인하는 테스트
-구조테스트 : 소스 코드의 복잡도를 평가하는 테스트
-회귀 테스트 : 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트
-병행테스트 : 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교하는 테스트
화이트박스 테스트
- 정의 : 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논 리적인 모든 경로를 테스트하여 테스트 케이스를 설계 하는 방법이다.
- 종류
-기초 경로검사 : 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법
-제어 구조검사
- 조건검사 : 논리적 조건 테스트
- 루프검사 : 반복구조에 초점을 맞춰 테스트
- 데이터 흐름 검사 : 변수의 정의와 변수 사용의 위치에 초점을 맞춰 테스트
블랙박스 테스트
- 정의 : 소프트웨어의 내부 구조나 작동원리를 모르는 상태에서 동작을 검사하는 방식
- 유형
-동치분할검사 : 입력자료에 초점을 맞추어 테스트케이스를 만들고 검사하는 방법
- 경계값 분석 : 입력조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법
- 원인-효과 그래프 검사 : 입력 데이터간의 관계와 출력에 미치는 상황을 체계적으로 분석하여 효율성이 높은 테스트 케이스 선정하여 검사
- 오류 예측 검사 : 과거의 경험이나 확인자의 감각으로 테스트하는 기법
- 비교검사 : 여러 버전의 프로그램에 동일한 테스트 케이스를 넣어서 동일한 결과가 출력되는지 확인
개발 단계에 따른 애플리케이션 테스트
단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
테스트 데이터
컴퓨터의 동작이나 시스템의 적합성을 시험하기 위해 특별히 개발된 데이터 집합
테스트 하네스
애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분. 테스트를 지원하기 위한 코드와 데이터
테스트 커버리지
주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준
- 유형
-기능 기반 커버리지: 테스트 대상 애플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정
-라인 커버리지 : 애플리케이션 전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 소스 코드의 라인 수를 측정
-코드 커버리지: 소프트웨어 테스트 충분성 지표 중 하나. 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트되었는지를 측정하
정적 테스트
-워크스루 : 개발자가 모집한 전문가들이 검토
-인스펙션 : SW 개발단계에서 산출된 결과물의 품질을 평가하여 개선하는 방법
통합 테스트
-하향식 테스트(스텁) : 상위 모듈 → 하위 모듈 순으로 테스트
-상향식 테스트(드라이버) : 하위 모듈 → 상위 모듈 순으로 테스트
-회귀 테스팅 : 이미 테스트된 프로그램의 테스팅 반복하여 새로운 오류가 있는지 확인
- 빅뱅 통합테스트 : 모든 컴포넌트를 사전에 통합하여 전체 프로그램을 한꺼번에 테스트하는 방법
테스트기반에 따른 테스트
명세기반 테스트, 구조기반 테스트, 경험 기반 테스트
테스트 오라클
- 정의 : 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동이다.
- 유형
- 참 오라클 : 모든 테스트 케이스의 입력값에 대해 기대하는 결과를 제공하는 오라클
- 샘플링 오라클 : 몇몇 테스트 케이스 입력값에 대해서만 결과를 제공하는 오라클
- 추정오라클 : 샘플링 오라클 + 나머지 테스트 케이스는 추정으로 처리하는 오라클
- 일관성 검사 오라클 : APP의 변경이 있을 때 테스트 케이스의 결과값이 같은지를 확인할 수 있는 오라클
애플리케이션 성능
- 처리량 : 일정시간 내에 애플리케이션이 처리하는 일의 양
- 응답시간 : APP에 요청을 전달한 시간부터 응답이 도착할 때 까지 걸린 시간
- 경과시간 : APP에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 자원사용률 : APP이 의뢰한 작업을 처리하는 동안의 CPU 사용량
Uploaded by Notion2Tistory v1.1.0