[자율 공부방] 학습(작업) 내용 공유 - 33

[자율 공부방] 학습(작업) 내용 공유 - 33

영남이공대학교 자율 공부 모임에 공유할 목적으로 작성하는 포스트입니다.
학습 내용에 대한 구체적인 사항은 별도 포스트에서 다룰 예정입니다.
개인적으로 학습하며 기록하고 있기 때문에 잘못된 내용이 있을 수 있습니다. 잘못된 내용이 있다면 댓글로 알려주세요.

개요

  • 날짜: 2021년 04월 02일 금요일
  • 내용
    • 교과목 QA실습 강의 수강 후 관련 내용을 정리하며 학습했습니다.
    • 백준 온라인저지 81문제 풀이 진행했습니다.

QA실습

테스트 설계 및 구현 프로세스

테스트 설계 관련 용어

요구사항(Requirement)

  • 고객이 시스템이나 SW에 요구하는 기능적, 비기능적 요소
  • 기능적: 프로그램의 기능 / 비기능적: 퍼포먼스(성능)

테스트 시나리오(Test Scenario)

  • 시스템이나 SW에 존재하는 기능을 테스트 하기 위해 수행해야 되는 절차나 정보

테스트 케이스(Test Case)

  • 테스트를 위해 작성된 입력과 예상 결과

테스트 절차서(Test Procedure)

  • 테스트를 수행하기 위해 요구되는 절차를 기술한 문서
  • 절차서에 시나리오가 포함될 수 있다.

테스트 케이스 구성 요소

테스트에 사용되는 테스트 케이스는 입력과 예상 결과로 이루어져 있지만 사용 목적이나 사용되는 곳에 따라 추가적인 정보가 추가됨

image-20210402091245707

요구사항과 구현에 따른 테스트 전략

image-20210402091721736
  • (1)요구사항에 명시되어 있으나 구현되지 않은 경우
    • 요구사항을 기반으로 테스트 케이스를 작성해 실행해야 한다.
  • (2)요구사항대로 구현되었으나 때에 따라 정상동작 하지 않는 경우
    • 요구사항을 기반으로 테스트 케이스를 작성해 실행하고 추가적인 테스트 케이스를 수행한다(네거티브 테스트 포함)
  • (3)요구사항에 명시되어 있지 않지만 구현된 경우
    • 요구사항 기반의 테스트로 해당 결함을 발견하기 어려우므로 비공식적인 테스트를 추가적으로 실행 하여야 함
    • 결함을 발견하기 위해서는 실제 구현된 부분을 반영하여 요구사항을 변경해야 함
  • (4)요구사항에 명시되어 있지 않지만 구현되었으며, 정상동작 하지 않는 경우

테스트 설계 기법의 종류

테스트 설계 기법

테스트의 설계 기법은 블랙박스 테스트와 화이트 박스 테스트로 나누어짐

블랙박스 테스트

image-20210402092118177
  • 소프트웨어 내부(소스코드)를 생각하지 않고 테스트를 진행
  • 주로 소프트웨어 스펙(Specification)을 참고하여 테스트를 수행함

화이트박스 테스트

image-20210402092134884
  • 소스코드를 보고 테스트를 진행
  • 소스코드를 기반으로 테스트를 진행하므로 개발 관련 지식이 요구됨

테스트 설계 기법

  • 명세 기반 기법
    • 명세를 기반으로 테스틀 설계, 주로 개발 문서를 참고하여 수행함
  • 구조 기반 기법
    • 코드와 개발 설계 등의 소프트웨어 구현 정보를 기반으로 수행함
  • 경험 기반 기법
    • 테스터, 개발자 등의 경험에 기반으로 수행함
  • 소프트웨어 실행(Dynamic Test)
    • 소프트웨어를 실행하면서 테스트를 수행
  • 소프트웨어 비 실행(Static Test)
    • 소프트웨어를 실행하지 않고 테스트를 수행, 주로 문서나 프로세스 관점에서 수행

명세 기반 기법

주어진 명세를 바탕으로 테스트 케이스를 도출하는 기법. 요구사항 분석서, 설계서 등 구현하고자 하는 소프트웨어를 최대한 이해하기 쉽게 체계적으로 표현한 것.

최근에는 UML(Unified Modeling Language)을 많이 사용하고 있음

UML(Unified Modeling Language)

소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어

image-20210402092929314

동등 분할(Equivalence partitioning)

image-20210402093125148

소프트웨어나 시스템이 특정 범위의 입력에 의해 결과가 동일하다면 이러한 입력의 범위를 하나의 그룹으로 구분할 수 있음

  • 구조 기반 기법과 경험 기반 기법에서 입/출력 데이터가 필요한 경우에도 사용가능
  • 동등 분할은 모든 테스트 유형에서 적용 가능함

교재 p.98 실습 예제 1 / 실습 예제 2

경계값 분석(Boundary value analysis)

image-20210402093515082

경계값 분석은 동등 분할의 경계에서 결함이 발견될 확률이 높기 때문에 결함을 예방하기 위해 경계값까지 테스트하는 기법

  • 동등 분할과 마찬가지로 모든 테스트 레벨, 모든 테스트 유형에 적용 가능함
  • 결함 발견율이 높고 적용하기 쉽다는 장점이 있음

교재 p.101 실습 예제 3

image-20210402095242520

결정 테이블 테스팅(Decision table testing)

결정 테이블은 논리적인 조건이나 상황을 구현하는 시스템에서 요구 사항을 도출하거나 내부 시스템 설계를 문서화하는 매우 유용한 도구

  • 논리적으로 의존적인 가능한 모든 조건들의 조합을 생성
  • 복잡한 시스템은 표현하기 어렵고 작성 시 논리적 실수의 가능성이 있음

교재 p.102~103 적용 사례1 / 표 4.5

시나리오 테스팅(Scenario testing)

image-20210402100502308

시나리오를 기반으로 수행하는 테스팅

  • 실제 시나리오를 기반으로 수행하는 테스팅
  • 인수 테스트 설계 시 유용함

유즈케이스 테스팅(Use case testing)

유즈케이스나 비즈니스 시나리오를 기반으로 테스트를 명세화할 수 있음

  • 유즈케이스를 기반으로 생성된 T.C는 실제 프로세스 흐름에서 결함을 발견하는데 유용함

컴포넌트 레벨 유즈케이스 테스팅: 교재 p.123 적용 사례1 / 표 4.18

시스템 레벨 유즈케이스 테스팅: 교재 p.125~126 적용 사례2 / 표 4.19

백준 온라인저지 문제 풀이

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×