개발자꿈나무

애플리케이션 테스트의 개념 및 기본 원리 본문

CS/소프트웨어공학

애플리케이션 테스트의 개념 및 기본 원리

망재이 2024. 1. 3. 15:53
  • 애플리케이션 테스트의 개념
    - 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인하고 소프트웨어가 기능을 정확히 수행하는지 검증
    - 테스트를 실행하기 전에 개발한 소프트웨어의 유형을 분류하고 특성을 정리해서 중점적으로 테스트할 사항을 정리

    * 확인 (Validation) : 사용자의 입장에서 개발한 소프트웨어가 고객의 요구사항에 맞게 구현되었는지를 확인(결과를 테스트)
    * 검증 (Verification) : 개발자의 입장에서 개발한 소프트웨어가 명세서에 맞게 구현되었는지 점검(개발 과정을 테스트)
  • 애플리케이션 테스트의 필요성
    - 프로그램 실행 전에 오류를 발견하여 예방할 수 있음
    - 프로그램이 사용자의 요구사항이나 기대 수준 등을 만족시키는지 반복적으로 테스트하므로 제품의 신뢰도를 향상
    - 개발 초기부터 애플리케이션 테스트를 계획하고 시작하면 단순한 오류 발견뿐만 아니라 새로운 오류의 유입도 예방 가능
    - 테스트를 효과적으로 수행하면 최소한의 시간과 노력으로 많은 결함을 찾을 수 있음

  • 애플리케이션 테스트의 기본 원리
    - 소프트웨어의 잠재적인 결함을 줄일 수 있지만 소프트웨어에 결함이 없다고 증명할 수는 없음
    - 애플리케이션의 결함은 대부분 개발자의 특성이나 애플리케이션의 기능적 특징 때문에 특정 모듈에 집중되어 있음. 애플리케이션의 20%에 해당하는 코드에서 전체 80%의 결함이 발견된다고 하여 파레토 법칙(Pareto Principle)을 적용하기도 함
    - 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 '살충제 패러독스(Pesticide Paradox)' 현상이 발생. 테스트 케이스를 지속적으로 보완 및 개선해야 함
    - 소프트웨어 특징, 테스트 환경, 테스터 역량 등 정황에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행
    - 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없음. 이것을 오류-부재의 궤변(Absence of Errors Fallacy)라고 함
    - 테스트와 위험은 반비례
    - 테스트는 작은 부분에서 시작하여 점점 확대하며 진행해야 함
    - 테스트는 개발자와 관계없이 별도의 팀에서 수행해야 함
728x90

'CS > 소프트웨어공학' 카테고리의 다른 글

화이트박스 & 블랙박스 테스트  (2) 2024.01.05
애플리케이션 테스트의 분류  (0) 2024.01.03
개발 지원 도구  (2) 2024.01.03
객체지향 분석 및 설계  (4) 2024.01.02
객체지향 특징  (0) 2024.01.02