7. 애플리케이션 테스트 관리

애플리케이션 테스트

  • 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차

파레토 법칙 (Pareto Princile)

  • 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙

살충제 패러독스 (Pesticide Paradox)

  • 동일한 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을 수 없다.

애플리케이션 테스트 유형 분류

  • 프로그램 실행 여부 – 정적 / 동적테스트
    • 정적 테스트
      • 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트
      • 종류 – 워크스루, 인스펙션, 코드 검사
    • 동적 테스트
      • 프로그램을 실행하여 오류를 찾는 테스트
      • 종류 – 화이트박스 테스트, 블랙박스 테스트
  • 테스트 기법 – 화이트박스 / 블랙박스 테스트
  • 테스트에 대한 시각 – 검증 / 확인 테스트
  • 테스트 목적 – 회복 / 안전 / 강도(스트레스) / 성능 / 구조 / 회귀 / 병행 테스트
  • 테스트 기반 – 명세 / 구조 / 경험 기반 테스트

워크스루 (Walkthrough, 검토 회의)

  • 소프트웨어 개발자가 모집한 전문가들이 개발자의 작업 내역을 검토하는 것
  • 소프트웨어 검토를 위해 미리 준비된 자료를 바탕으로 정해진 절차에 따라 평가한다.

인스펙션 (Inspection)

  • 워크스루를 발전시킨 형태
  • 소프트웨어 개발 단계에서 산출된 결과물의 품질을 평가하고, 이를 개선하기 위한 방법을 제시한다.

화이트박스 테스트 – 소스코드를 보며 테스트

  • 기초 경로 검사 (Base Path Testing)
  • 제어 구조 검사 (Control Structure Testing)
    • 조건 검사
    • 루프 검사
    • 데이터 흐름 검사 

블랙박스 테스트 – 소프트웨어의 기능이 완전히 작동하는 것을 입증하는 테스트 (기능 테스트)

  • 동등 분할 기법 (Equivalence Partitioning) – 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법, 유효값과 그렇지 않은 범위를 나눠야 할 경우 사용하는 테스트
  • 경계값 분석 (Boundary Value Analysis) – 입력 조건의 경계값을 테스트 케이스로 선정하는 방법
  • 원인-효과 그래프 검사 (Cause Effect Graph) – 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
  • 오류 예측 검사 (Error Guessing) – 과거의 경험이나 테스터의 감각으로 테스트하는 기법
  • 비교 검사 (Comparison Testing) – 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

코드 커버리지 ( Code Coverage )

  • 구문 커버리지 – 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지
  • 조건 커버리지 – 결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지
  • 결정 커버리지 – 결정 포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리지
  • 조건/결정 커버리지 – 결정포인트 T/F, 개별조건식 T/F를 가져야 한다.
  • 변경/조건 커버리지 – 모든 결정 포인트 내의 개별 조건식은 적어도 한 번 T, F를 가져야 한다.
  • 다중 조건 커버리지 – 결정 포인트 내 모든 개별 조건식의 가능한 조합을 100% 보장해야 한다.

단위테스트 – 통합테스트 – 시스템테스트 – 인수테스트

단위테스트

  • 정적 테스트 – 프로그램을 실행 시키지 않고, 소스코드에 대한 코딩 표준, 코딩 스타일, 복잡도, 보안 취약점, 잠재적인 결함을 찾는 테스트 활동
  • 동적 테스트 – 함수를 실행시켜 코드 결과를 보는 테스트

통합테스트

  • 상향식 테스트
  • 하향식 테스트
  • 빅뱅 테스트

시스템테스트

  • 기능 테스트
  • 비기능 테스트

인수테스트

  • 알파 테스트
  • 베타 테스트

테스트 케이스

테스트 시나리오

테스트 오라클 – 테스트의 결과가 참인지 거짓인지 판단하기 위해서 미리 정의된 참값을 대입해서 비교하는 기법

  • 참(True) 오라클 – 모든 것들에 대해서 테스트
  • 샘플링(Sampling) 오라클 – 몇 개의 입력 값에 대해서만 기대하는 결과를 제공
  • 휴리스틱(Heuristic, 추정) 오라클 – 샘플링 + 나머지 것들은 추정
  • 일관성 검사(Consistent) 오라클 – 애플리케이션에 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지 확인하는 오라클

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *