728x90
반응형
※ 공부 내용의 복습 개념으로 정리된 글입니다. - 출처 시나공
애플리케이션 테스트의 개념
애플리케이션 테스트는 애플리케이션에 잠재되어 있는 결합을 찾아내는 일련의 행위 또는 절차입니다.
- 애플리케이션 테스트는 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인(Validation)하고 소프트웨어가 기능을 정확히 수행하는지 검증(Verification)합니다.
- 애플리케이션 테스트를 실행하기 전에 개발한 소프트웨어의 유형을 분류하고 특성을 정리해서 중점적으로 테스트할 사항을 정리해야 합니다.
소프트웨어 유형별 특징
※ Validation
Validation은 사용자의 입장에서 개발한 소프트웨어가 고객의 요구사항에 맞게 구현되었는지를 확인하는 것입니다.
※ Verification
Verification은 개발자의 입장에서 개발한 소프트웨어가 명세서에 맞게 만들어졌는지를 점검하는 것입니다.
애플리케이션 테스트의 필요성
- 애플리케이션 테스트를 통해 프로그램 실행 전에 오류를 발번하여 예방할 수 있습니다.
- 애플리케이션 테스트는 프로그램이 사용자와 요구사항이나 기대 수준 등을 만족 시키는지 반복적으로 테스트하므로 제품의 신뢰도를 향상시킵니다.
- 애플리케이션의 개발 초기부터 애플리케이션 테스트를 계획하고 시작하면 단순한 오류 발견뿐만 아니라 새로운 오류의 유입도 예방할 수 있습니다.
- 애플리케이션 테스트를 효과적으로 수행하면 최소한의 시간과 노력으로 많은 결함을 찾을 수 있습니다.
애플리케이션 테스트의 기본 원리
- 애플리케이션 테스트는 소프트웨어의 잠재적인 결함을 줄일 수 있지만 소프트웨어에 결함이 없다고 증명할 수는 없습니다.
즉 완벽한 소프트웨어 테스팅은 불가능합니다. - 애플리케이션의 결함은 대부분 개발자의 특성이나 애플리케이션의 기능적 특징 때문에 특정 모듈에 집중되어 있습니다.
애플리케이션의 20%에 해당하는 코드에서 전체 80%의 결함이 발견된다고 하여 파레토 법칙을 적용하기도 합니다. - 애플리케이션 테스트에서는 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 '살충제 패러독스(Pesticide Paradox) 현상이 발생합니다.
살충제 패러독스를 방지하기 위해서 테스트 케이스를 지속적으로 보완 및 개선해야 합니다. - 애플리케이션 테스트는 소프트웨어 특징, 테스트 환경, 테스트 역량 등 정황(Context)에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행해야 합니다.
- 소프트웨어의 결함을 모두 제거해도 사용자의 요규사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없습니다.
이것을 오류-부재의 궤변(Absence of Errors Fallacy)이라고 합니다. - 테스트와 위험은 반비례합니다.
테스트를 만힝 하면 할수록 미래에 발생할 위험을 줄일 수 있습니다. - 테스트는 작은 부분에서 시작하여 점점 확대하며 진행해야 합니다.
- 테스트는 개발자와 관계없는 별도의 팀에서 수행해야 합니다.
※ 특정 모듈 집중
대부분의 결함이 소수의 특정 모듈에 집중해서 발생하는 것을 결함 집중(Defect Clustering)이라고 합니다.
※ 파레토 법칙(Pareto Principle)
파레토의 법칙은 상위 20% 사람들이 전체 부위 80%를 가지고 있다거나, 상위 20% 고객이 매출의 80%를 창출한다는 의미로, 이법칙이 애플리케이션 테스트에도 적용된다는 것입니다.
즉 테스트로 발견된 80%의 오류는 20%의 모듈에서 발견되므로 20%의 모듈을 집중적으로 테스트하여 효율적으로 오류를 찾자는 것입니다.
※ 테스트 케이스(Test Case)
테스트 케이스는 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등올 구성된 테스트 항목에 대한 명세서입니다.
※ 살충제 패러독스(Pesticide Paradox)
살충제 패러독스는 살충제를 지속적으로 뿌리면 벌레가 내성이 생겨서 죽지 않는 현상을 의미합니다.
728x90
반응형
'정보처리산업기사' 카테고리의 다른 글
정보처리산업기사 - 테스트 및 배포 - 테스트 기법에 따른 애플리케이션 테스트 (0) | 2024.07.21 |
---|---|
정보처리산업기사 - 테스트 및 배포 - 애플리케이션 테스트의 종류 (0) | 2024.07.20 |
정보처리산업기사 - 테스트 및 배포 - 개발 지원 도구 (0) | 2024.07.18 |
정보처리산업기사 - 애플리케이션 설계 - 디자인 패턴 (0) | 2024.07.17 |
정보처리산업기사 - 애플리케이션 설계 - 객체지향 분석 및 설계 (0) | 2024.07.16 |