소프트웨어공학_0527_테스트 프로세스_블랙박스 테스트

지원·2025년 5월 27일
0

소프트웨어공학

목록 보기
11/11
post-thumbnail

테스트 프로세스

조직 테스트 프로세스
조직 레벨의 테스트 정책과 전략을 수립하는 프로세스

  • 테스트 정책과 테스트 전략을 수립

테스트 관리 프로세스
테스트 관리를 위한 프로세스

  • 테스트 계획에 따라 테스트가 수행되는지를 모니터링하고 문제가 발생하면 이에 대한 대책을 수립하여 대응하기위한 프로세스

  • 테스트 프로세스는 측정되고 통제되어야 함

  • 테스트 진행 상태를 알 수 있도록 여러 매트릭이 준비되고 측정되어야 하며 이를 정기적으로 보고할 수 있는 매커니즘이 구비되어있어야 함

동적 테스트 프로세스
테스트 계획에 따라 테스트 케이스를 설계하고 테스트 환경을 구축하여 테스트를 실제 수행하는 프로세스

  • 테스트 계획에 따라 테스트 케이스를 설계하고 테스트를 환경을 구축하여 실행하는 프로세스
  • 만약 문제가 발견되면 인시던트 레포팅 프로세스 수행

테스트 케이스

  • 테스트 항목을 정리한 문서
  • 테스트를 체계적으로 진행할 수 있도록 구조화된 방법 제공
  • 응용 프로그램의 기능 측정에 사용되는 시나리오로, 특정 조건이나 작업이 예상 결과와 동일하게 나타나는지 확인하는데 사용됨

테스트 케이스 설계 기법

- 블랙박스 테스트
명세기반테스트(ISO 29119)
출력 인터페이스 정보나 명세정보를 이용하여 테스트 케이스를 설계

  • 소스코드에 대한 정보 없이 요구사항 명세만 이용하여 테스트 케이스를 생성하는 기법
  • 내부 구조나 세부 작동 원리를 모르는 상태에서 소프트웨어 동작을 검사하는 방법

- 블랙박스 테스트 기번에서 제공하는 휴리스틱
-- 동치 분할
-- 경계치 커버리지
-- 특수치 커버리지
-- 원인/효과 커버리지(의사결정 테이블 분석)

  • 소프트웨어 테스트 및 블랙박스 테스트 수행 절차
  • 테스트 목표
    -- 결함 제거를 통한 품질 향상이나 유지보수성 향상
  • 테스트 종료 조건
    -- 기간 혹은 모듈당 결함 수

블랙박스 테스트 기반에서 제공하는 휴리스틱

동치 분할

  • 모집단 구간을 동등한 처리를 수행하는 그룹으로 분할
  • 모듈이 제공하는 인터페이스와 모듈의 기능을 중심으로 수행
  • 모듈에 입력되는 데이터와 이를 이용하여 수행되는 기능 간 관계 이용하여 테스트 데이터 생성

동치 분할 기법 고려할 상황
입력 조건이 일정 값의 영역을 갖는 경우, 주어진 영역의 값 범위 내에 존재하는 임의의 값과 범위 밖에 존재하는 임의의 값이 선정됨

  • 예) 주어진 입력 변수의 범위: 1~99로 정의되었다면
    -- 데이터 = (50, 120) => (범위 안, 범위 밖)
  • 특정 타입의 1개 데이터와 다른 타입의 1개 데이터를 테스트 데이터로 선정
  • 동치 클래스 내에서 제약 조건을 갖는 경우
    -- 하위 동치 클래스: 1=100보다 작은 정수형
    -- 하위 동치 클래스: 2=100과 200사이의 정수형
    -- 하위 동치 클래스: 3=200보다 큰 정수형

반드시 테스트 데이터 이외에 올바르지 않은 데이터도 고려해야 함

경계치 커버리지

  • 동치 분할에 의해 분리된 동치 클래스의 경계에 해당하는 값을 테스트 데이터로 선정하는 방법

  • 입력 변수가 특정 영역[-1.0, +1.0]으로 정의된 경우,
    -- 경계치 커버리지: (-1.1, -1.0, +1.0, +1.1)과 같은 4개의 데이터를 테스트 데이터로 선정

특수치 커버리지

모듈의 인터페이스가 아닌 모듈의 기능을 중심으로 테스트 케이스를 선정 하는 방법
모듈의 알고리즘에 대한 특징을 반영하거나 내부적으로 특수한 함수를 사용하는 경우, 오류 발생이 빈번하다고 알려진 특정 변수를 사용하는 경우 사용

예) 변수 y값의 갑싱 -1 또는 1의 값을 갖는다고 하더라도 변수 x에 대한 테스트 데이터로 0, 파이/2, 파이, 3파이/2, 2파이와 같은 값이 선정 되어야 함

원인/결과 커버리지(의사결정 테이블 분석)
입력 조건에 따라 결과가 다르게 나타날 때 해당 입력 조건을 각각 테스트 데이터로 선정하는 방법

의사결정 테이블

  • 동치클래스와 이들의 조합 클래스 구조를 테이블 형태로 쉽게 표현한 테스트 데이터 선정 방법
  • 테이블 상단에는 입력 변수 조건을 나열, 하단에는 상단 조건에 의해 수행될 수 있는 동작 기술
  • 의사결정 테이블의 각 칼럼은 하나의 테스트 데이터가 될 수 있음

조합 테스팅(Combinatorial Testing)
다양한 입력 값의 조합을 통해 테스트를 수행하는 방법

  • 페어와이즈 테스팅
    -- 모든 가능한 입력값 쌍에 대해 테스트를 수행, 가장 일반적인 조합 테스팅 방법 중 하나로 대부분의 결함이 두 개의 변수 간 상호작용에 의해 발생한다는 가정에 기반
    -- 장점
    --- 효율성, 결함 발견율 향상, 테스트 자동화
    -- 단점
    --- 복잡성, 제한된 적용

페어와이즈 테스팅 자동화 도구: ACTS, PICT, Hexawise 등

  • N-원(n-way) 테스팅
    -- N개의 변수 간의 모든 가능한 조합을 테스트함
    -- 브라우저-서버-DB 3개의 조합을 동시에 커버

테스트 시나리오 생성 방법

  • 객체지향 시스템에 시스템 테스트를 수행하기 위한 테스트 시나리오 생성 방법
    -- 아웃라인 방법: 기능의 연계성을 고려하여 시나리오 구성
    -- 유스케이스 방법: 시스템의 엑터를 중심으로 시나리오 생성

아웃라인 방법에 의한 태스트 케이스 생성

  • 사용자(고객)가 시스템 사용을 시작하는 입력으로부터 서비스 종료까지 순차적인 과정을 식별해야 함

테스트 케이스 생성 방법

  • 구현된 시스템에서 각 화면 단위의 사용자 입력에 대하여 테스트 케이스 생성
  • 테스트 결과는 화면 전환이 이루어지도록 구성
  • 요구사항에 제시된 스펙에 따라 테스트 입력에 대한 결과를 예상 결과로 정의
  • 각 화면에서 다음 화면으로 분기 가능한 모든 입력에 대하여 예상 결과 생성
  • 예상 결과대로 구현한 시스템이 동작하는지를 점검하고 Pass 또는 Fail을 실제 결과에 기록

유스케이스 방법에 의한 테스트 케이스 생성

  • 유스케이스를 이용하여 시스템 수준의 테스트 케이스를 생성하는 이유
    -- 사용자 관점으로 분석 단계의 산출물인 유스케이스 설명서에서 시스템에 포함된 사용 사례를 얻기 위해

0개의 댓글