Hello

[정처기 필기] SW 테스트 원리 및 테스트 종류

by 볼빵빵오춘기

소프트웨어 테스트의 원리

  • 테스팅은 결함이 존재함을 밝히는 활동이다.
  • 완벽한 테스팅은 불가능하다.
  • 테스팅은 개발 초기에 시작해야 한다.
  • 결함 집중
  • 살충제 패러독스
    동일한 테스트 케이스로 반복 테스트 시 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개선해야 한다.
  • 테스팅은 정황에 의존한다.
  • 오류-부재의 궤변
    사용자의 요구사항을 만족하지 못하는 오류를 발견하고 그 오류를 제거하였다 해도, 해당 애플리케이션의 품질이 높다고 말할 수 없다.

 

동치 분할 테스트

검사 사례 설계를 프로그램의 입력 명세 조건에 따라 설정한다.

즉, 검사 사례는 일반적으로 입역 데이터에 해당하므로 프로그램의 입력 조건에 중점을 두고, 어느 하나의 입력 조건에 대하여 타당한 값과 그렇지 못한 값을 설정한다.

 

파레토의 법칙

상위 20%가 전체 생산의 80%를 해낸다는 법칙

 

테스트 오라클

테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참(True)값을 입력하여 비교하는 기법

  • 참(True) 오라클
    모든 입력값에 대하여 적합한 결과를 생성하여, 발생한 오류를 모두 검출할 수 있는 오라클
  • 일관성 검사(Consistent) 오라클
    애플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클
  • 샘플링(Sampling) 오라클
    임의의 선정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공한다.
  • 휴리스틱(Heuristic) 오라클
    샘플링 오라클을 개선한 오라클로, 임의 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리한다.

테스트 레벨의 종류

단위 테스트

  • 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다.
  • 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것이다.
  • 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.

통합 테스트

단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트한다.

 

시스템 테스트

  • 단위/통합 테스트가 가능한 완벽히 완료되어 기능상에 문제가 없는 상태에서 실제 환경과 가능한 유사한 환경에서 진행한다.
  • 시스템 성능과 관련된 요구사항이 완벽하게 수행되는지를 테스트하기 때문에 사전 요구사항이 명확해야 한다.
  • 개발 조직과는 독립된 테스트 조직에서 수행한다.

 

인수 테스트

  • 일반적인 테스트 레벨의 가장 마지막 상위 레벨로, SW 제품에 대한 요구사항이 제대로 이행되었는지 확인하는 단계이다.
  • 테스팅 환경을 실 사용자 환경에서 진행하며 수행하는 주체가 사용자이다.
  • 알파/베타 테스트와 가장 밀접한 연관이 있다.
    • 알파 테스트
      베타 테스트 전에 프로그램 개발 시 내부에서 미리 평가하고 버그를 찾아 수정하기 위해 시험해 보는 검사이다.
    • 베타 테스트
      정식으로 프로그램을 공개하기 전에 한정된 집단 또는 일반인에게 공개하여 기능을 시험하는 검사이다.

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기