SW Test Case 작성하기

라메드랩스(LahmedLabs)·2022년 11월 24일
3
post-thumbnail

ISTQB 또는 ISO29119 표준에서 제안하는 테스트 케이스는 어떨까? 간략히 소개한다.

소프트웨어 테스트 엔지니어(엄격하게 QA는 다른 직군임)는 테스트 케이스를 설계하는 기본적이면서 주요 업무이다. 새로울게 없겠지만 기초를 잘 다지는 것은 중요하다.
대부분 현업에서 사용하던 형식의 테스트 케이스 양식을 가지고 사용할 것이다. 그럼에도 이게 최선인가? 개선할 사항은 없을까? 고민할 수 있다.
이번 포스팅에서는 테스트 케이스가 갖춰야할 구성요소와 간단한 예시를 소개하려고 한다.

테스트 케이스 구성요소

테스트 케이스는 테스트 유형이나 레벨, 대상 시스템이나 도메인 특성에 따라 다양하게 작성한다. 하지만 공통적으로 갖춰야할 구성요소는 다음과 같다.

  • ID: Test Case 식별을 위한 고유 번호로서, 추적성 관리를 위해 필요하다.
  • 목적: 본 테스트 케이스를 통해 테스트하는 기능을 기술하며, 보통 제목으로 대체한다.
  • 사전조건: 테스트 수행 전 선결되어야 하는 조건에 대한 정보 (구동 환경, 데이터 초기화 등)를 기술한다.
  • 수행순서: 사전조건이 준비된 후, 구체적인 테스트 수행 절차를 기술한다.
  • 기대결과: 수행 순서에 따라 테스트가 수행된 후 의도한 대로 동작하였는지를 확인하기 위한 판단 근거를 기술한다. 경우에 따라 사후조건(Post-condition)을 기술하기도 하지만 일반적이지는 않다.
  • 추적성: 해당 테스트와 연관된 산출물 항목을 기술한다. 이 테스트 케이스가 어떤 산출물에 근거하여 작성되었는지를 찾아갈 수 있는 연결점이다. 경우에 따라 추적성을 별도의 파일로 관리하기 도한다.
  • 중요도: 일반적으로 잘 작성을 안하는 항목인데, 테스트 수행을 위해 시간적 제약 발생 시 우선순위를 정해서 테스트 수행여부를 판단하기 위한 기준으로 사용한다.
  • 합격/불합격: 이 항목으 테스트 수행 후에 결과(예, Pass/Fail/NotTested/Blocked 등)를 기술한다.

테스트 케이스 양식 (예시)

일반적으로 단위 테스트는 테스트 코드를 테스트 케이스로 대신하는 경우가 많다. 시스템 테스트와 통합 테스트에서 사용한 테스트 케이스 예시를 소개한다.

먼저 시스템 테스트 케이스 양식이다.

다음은 플랫폼 소프트웨어의 API 테스트 케이스를 작성한 사례이다. API 테스트는 통합 테스트 레벨로 볼 수 있는데, 소스코드 기반의 함수 호출을 통해 결과를 확인한다. 그래서 양식이 살짝 다르다.

모든 구성 요소를 다 작성해야 하나?

앞에서도 기술했듯이 테스트 케이스는 엑셀이나 MS Word같은 문서로 작성하기도 하고, 위키나 이슈관리 스타일의 웹 시스템으로 운영하기도 한다. 이를 위한 오픈소스나 상용 소프트웨어도 다양하다.
형식과 운영방식은 다양하지만 테스트 목적에 맞게 필요한 구성요소를 조합하여 사용한다. 표준은 Best practice 관점에서 범용적으로 사용할 수 있도록 가이드하기 때문에 적절히 테일러링해서 사용하면 된다.

profile
Field-oriented software engineering

0개의 댓글