[엘리스 QA트랙] 테스팅의 개념

황인철·2025년 1월 22일

엘리스 QA트랙

목록 보기
2/18

테스트 설계 기법의 선택 기준

  • 소프트 웨어의 복잡성 고려
  • 목표 및 리스크 파악
  • 리소스 평가
  • 요구사항의 명확성 평가

[대표 적인 테스트 기법]

  1. 명세 기반 테스트

소프트 웨어의 요구사항이나 사양서를 바탕으로 테스트를 설계하는 방법

1-1. 목적

요구 사항에 맞게 기능이 동작하는지 확인하고, 결함을 최대한 빠르게 발견하는 것

1-2. 명세 기반 테스트의 유형

동등 분할 기법, 경계값 분석, 상태 전이 테스트

  1. 동등 분할 테스트 기법

입력값을 비슷한 특성을 가진 그룹으로 나누어 테스트 하는 방법

2-1. 목적

모든 값을 일일이 테스트 하지 않고 대표값을 골라 효율적으로 검증하는 것

2-2. 장단점

  1. 경계값 분석

    입력값이 특정 범위의 가장자리에 있을 때 결함이 발생하기 쉽다는 원리를 이용한 방법

3-1. 순서

  • 경계값 설정
  • 테스트 케이스 작성
  • 예상 결과와 실제 결과 비교
  • 차이가 발생할 경우, 결함 기록 및 원인 분석
  • 재테스트 진행 및 결과 문서화

3-2. 장단점

  1. 상태 전이 테스트

    시스템이 특정 입력에 따라 상태가 어떻게 바뀌는지를 확인하는 방법
    주로 여러 상태를 가진 시스템이나 단계적으로 변화하는 프로그램에서 사용

4-1. 상태 전이 테스트 주요 활동

4-2. 장단점

  1. 결정 테이블 테스트
    1. 여러 조건과 그에 따른 결과를 표로 정리해 확인하는 방법
    2. 정확하고 꼼꼼하게 조건별 결과를 검증하기 위한 필수적인 방법

5-1. 장단점

  1. 구조 기반 테스트

    프로그램 내부를 확인하며 문제를 찾는 방법

목적 : 프로그램이 정상적으로 작동하는지, 코드가 예상대로 실행되는지 확인

6-1. 필요성

  1. 코드 단계에서 오류를 빨르게 발견,수정 ->비용,시간절약
  2. SW 내부 동작 꼼꼼히 검증 -> 시스템 안정성 증가
  3. 자동화 도구와 병행 -> 반복적 테스트 빠름, 정확하게 수행
  4. 코드 변경 시 빠르게 확인 -> 유지보수에 좋음

6-2. 구조 기반 테스트의 유형

  • 제어 흐름 기반 테스트
    • 코드의 제어 구조(반복문, 조건문)를 기반으로 테스트 설계
    • 조건문이 많은 시스템에서 유용하게 사용됨
    • 주요 목표 : 모든 실행경로가 한 번 이상 테스트
  • 데이터 흐름 기반 테스트
    • 변수의 정의와 사용 간의 관계를 검증하는 기법
    • 주요 목표 : 변수가 올바르게 초기화 되고, 사용 후 예상대로 변경되지 않았는지 확인하는 것
    • 데이터 일관성과 안정성을 보장함
  • 코드 커버리지
    • 소스 코드의 실행된 부분과 실행되지 않은 부분을 측정
    • 주요 기준으로는 Line Coverage, Branch Coverage, Path Coverage가 있음
    • 자동화 도구와 함께 사용하면 큰 효과 발휘
  1. Line Coverage

    • 소스 코드의 모든 라인이 한 번 이상 실행되었는지 확인하는 기준
    • 초기 테스트 단계에서 유용함
    • 다른 커버리지 기준과 결합하여 더욱 철저한 검증 가능
  2. Branch Coverage

    • True(참)과False(거짓) 두 가지 결과 모드 테스트
    • 잘못된 조건문 로직으로 인한 오류를 조기에 발견가능
    • 복잡한 조건문이 포함된 시스템에서 유용
  3. Path Coverage

    • 다중 조건문과 반복문이 포함된 코드에서 모든 조합과 경로를 테스트
    • 가장 철저한 검증 방식 중 하나로, 복잡한 로직에서 유용
    • 높은 리소스와 시간이 요구되지만 결함 발견율 높음
  4. 구조 기반 테스트 vs 명세 기반 테스트

10-1. 구조 기반 테스트의 적용 전략

  1. 경험 기반 테스트의 개념
    • 테스터의 경험과 직관을 바탕으로 결함을 찾는 방법
    • 사전에 복잡한 TC를 만들 필요가 없기에 준비 시간 짧음
    • 특정 상황에서 발생할 수 있는 문제를 빠르게 발견하는 데 효과적

중요성

  1. 탐색적 테스트

    • 테스터가 테스트를 설계, 실행, 결과 분석을 동시에 수행하는 기법
    • 자신의 경험과 직관을 활용해 예상치 못한 문제를 발견
    • 주요 목표 : 제한된 시간내에 결함 탐지와 더불어 시스템의 전반적인 동작을 이해하는 것
  2. 오류 추정

    • 테스터의 경험과 시스템 지식을 바탕으로 결함이 발생할 가능성이 높은 부분을 예측하여 테스트 하는 기법
    • 주요 목표 : 숨겨진 결함 탐지, 결함의 재발 방지

13-1. 오류 추정의 주요 활동

  1. 체크리스트 기반 테스트

    • 미리 작성된 목록을 활용해 시스템을 검증하는 방법
    • 주요 기능, 요구사항, 표준 규격 등이 포함
    • 작성된 내용을 기반으로 검증하기 때문에 일관된 테스트 진행
  2. 탐색적 테스트 VS 오류 추정 VS 체크리스트

  3. 테스트 관리

    -SW품질 보장을 위해 테스트 활동을 체계적으로 계획하고 실행하는 프로세스

    • 테스트 계획 수립, 자원 관리, 테스트 실행 및 결과 분석
    • 결함을 조기에 발견하고, 시간 및 비용을 줄이는데 기여
  4. 테스트 계획의 정의 및 중요성

  5. 리스크 분석

    • 프로젝트에서 발생할 수 있는 위험 요소를 미리 파악하고 평가 하는 과정
    • 기술적 문제, 자원 부족, 일정 지연 등 다양한 원인으로 발생
    • 이를 통해 리스크를 최소화 하고 효율적인 자원관리 가능

18-1. 리스크 분석 단계

  1. 테스트 종료

    • 모든 테스트 활동을 완료하고, 종료기준을 충족했는지 확인
    • 프로젝트 종료 전 테스트 완료 여부를 공식적으로 확인하는 단계
  2. 테스트 결과 보고서

    • 테스트 활동의 결과를 체계적으로 기록한 문서
    • 테스프 프로세스의 투명성을 높이고, 향후 분석 자료로 활용
  3. 테스트 회고

profile
열심히하는QA가되고싶어요

0개의 댓글