스물두줄

컴퓨터시스템응용기술사 · 개념서 · 소프트웨어 공학 및 아키텍처

소프트웨어 테스트

설명 영상 소프트웨어 테스트 · 2:44

왜 배우는가: 소프트웨어 테스트는 품질 보증의 근간이며, 시험에서는 KS X ISO/IEC/IEEE 29119 같은 국제 표준 기반 테스트 설계 프로세스와 기법을 묻는 문제가 반복적으로 출제된다. 개념의 정의와 구성 체계를 정확히 잡아두면 설계 기법, 품질특성 매핑, 단위 테스트 종료 기준 등 여러 문항에 응용할 수 있다.

출제 이력: 제128회 3교시 5번, 제122회 4교시 5번

1. 한 줄 정의와 핵심 키워드

소프트웨어 테스트는 소프트웨어가 요구사항을 만족하는지 결함을 찾기 위해 계획·설계·실행·평가하는 체계적 검증 활동이다.

핵심 키워드

  • 소프트웨어 테스트
  • 테스트 설계 및 구현 프로세스
  • 명세기반 테스트
  • 구조기반 테스트
  • 경험기반 테스트
  • 테스트 커버리지
  • KS X ISO/IEC/IEEE 29119
  • ISO/IEC 25010 품질특성

2. 개념 풀이

쉬운 말로 풀면, 테스트는 "프로그램이 맞게 동작하는지 확인하고, 틀린 곳을 찾아내는 일"이다. 개발자가 만든 결과물을 믿기 전에 기준(요구사항, 설계서)과 비교해 보는 과정이다.

정식 정의는 다음과 같다. 소프트웨어 테스트는 테스트 대상의 품질을 평가하기 위해 테스트 조건을 식별하고, 테스트 케이스를 설계·구현·실행하여 결과를 판정하는 활동이다. KS X ISO/IEC/IEEE 29119는 이 활동을 프로세스(29119-2), 문서(29119-3), 기법(29119-4) 등으로 나누어 표준화한다.

핵심 용어 풀이:

  • 명세기반 테스트: 기능 명세(요구사항, 입출력 규칙)를 근거로 케이스를 만든다. 내부 구조를 보지 않으므로 블랙박스 기법이라고도 한다.
  • 구조기반 테스트: 코드의 구문·분기 구조를 근거로 케이스를 만든다. 화이트박스 기법이라고도 한다.
  • 경험기반 테스트: 테스터의 지식과 경험에 기대는 탐색적 테스트, 오류추정 등이 속한다.
  • 테스트 커버리지: 테스트 케이스가 대상의 요소(구문, 조건, 결정 등)를 얼마나 실행했는지 나타내는 지표다. 주어진 테스트 케이스가 수행하는 범위를 측정하는 기준이다.

코드 커버리지의 기본 단위는 다음과 같이 구분한다. 구문 커버리지는 실행 코드 라인이 한 번 이상 실행되면 충족된다. 조건 커버리지는 각 내부 조건이 참과 거짓을 모두 갖는 것이다. 결정 커버리지는 분기 전체 결과가 참과 거짓을 모두 갖는 것이다. MC/DC 커버리지는 조건과 결정을 함께 고려한다.

3. 등장 배경과 필요성

소프트웨어 규모와 복잡도가 커지면서 테스터의 경험이나 개인 역량에만 의존하는 테스트는 재현성과 객관성을 확보하기 어려워졌다. 같은 제품을 두 팀이 테스트했을 때 결과 문서의 형식과 범위가 달라 품질을 비교할 수 없는 문제가 생겼다.

이 문제를 해결하기 위해 ISO는 소프트웨어 테스트 전문 워킹그룹(WG26)을 만들었다. 초기에는 개념·정의, 테스트 프로세스, 테스트 문서, 테스트 기법의 네 부분이 개발되었다. 이후 키워드 기반 테스트 부분이 추가되어 5부 체계가 되었다. 이 체계가 국내에서는 KS X ISO/IEC/IEEE 29119로 채택되어 사용된다.

표준의 목적은 세 가지로 요약된다. 첫째, 테스트 용어와 프로세스를 통일한다. 둘째, 테스트 문서의 형식을 정해 추적성을 확보한다. 셋째, 테스트 기법과 커버리지 측정 방법을 표준화하여 결과의 재현성을 높인다. 기술사 답안에서는 이 세 가지 배경이 표준의 필요성으로 연결된다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기