애플리케이션 테스트
잠재된 결함을 찾아내는 일련의 행위 또는 절차
확인하고 검증하는데
- 확인(validation) : 사용자중심에서 sw가 요구사항에 맞게 구현되었는지 확인
- 검증(verification) : 개발자 입장에서 sw가 명세서에 맞게 만들어졌는지를 점검하는 것
애플리케이션 테스트의 기본 원리
- 완벽한 테스트는 없다.
- 기능적 특징 때문에 특정 모듈에 결함이 집중되어있다. (파레토 법칙 80% 20%)
- 동일 테스트케이스로 테스트를 반복하면 살충제 패러독스가 발생함(내성이 생김)
테스트케이스를 계속 바꿔주어야 함
- 결함을 모두 제거해도 요구사항을 만족시키지 못하면 해당 sw는 품질이 높다고 할 수 없다.
오류-부재의 궤변이라고 함
- 작은부분 → 큰부분으로 진행
- 개발자와 관계없는 별도의 팀에서 진행함
애플리케이션 테스트의 분류
프로그램 실행 여부에 따른 테스트
- 정적테스트 : 명세서나 코드를 대상으로 분석하는 테스트
개발 초기에 결함을 발견할 수 있어 개발비용을 낮추는데 도움이 됨
- 워크스루, 인스펙션, 코드검사 등
- 동적테스트 : 프로그램을 실행하여 오류를 찾는 테스트
- 블랙박스, 화이트박스 테스트가 있음
목적에 따른 테스트
- 회복테스트 : 실패한 후 올바르게 복구되는지
- 안전테스트 : 침입으로부터 시스템을 보호할 수 있는지
- 강도테스트 : 과부하에도 정상적으로 실행되는지
- 성능테스트 : 효율성 진다.
- 구조 테스트 : 논리적인 경로, 소스코드의 복잡도 등을 평가하는 테스트