본문 바로가기
Embedded/미래자동차SW캠프

소프트웨어 테스팅 종류

by kjy1010 2023. 12. 4.

No. Test Category
1 Static / Unit Testing
2 SW Unit Integration Testing
3 SW Component Integration Testing
4 SW Testing
5 HW SW Integration
6 System Element Integration
7 System Testing ( Acceptance Testing )

 

테스트 유형은 다음과 같은 특정한 테스트 목적에 중점

  • 소프트웨어가 수행하는 기능에 대한 테스팅
  • 호환성, 신뢰성, 사용성과 같은 비기능적인 품질 특성 테스팅
  • 소프트웨어나 시스템의 구조나 아키텍처에 대한 테스팅
  • 변경 내용에 관한 테스팅 ( 유지보수 테스팅)

소프트웨어 테스트 설계 기법의 종류

  • 테스트 기법을 블랙박스와 화이트박스로 구분하는 전통적 방식
  • 테스트 설계의 근원을 기분으로 명세 기반 기법, 구조 기반 기법, 경험 기반 기법, 분류하는 기준
  • 여기서 전통적인 기법 분류와 연계하여 명세 기반 기법과 경험 기반 기법을 블랙박스 기법으로 보고, 구조 기반 기법을 화이트박스 기법으로 간주

명세 기반 기법의 일반적인 특징

  • 해결할 문제를 명세하기 위해 공식적이거나 비공식인 모델을 사용한다.
  • 이러한 모델에서 테스트 케이스를 시스템적으로 도출하는 것이 가능하다.
  • 커버리지를 측정할 수 있으나 그 의미가 구조 기반 기법의 커버리지에 비해 제한적이다
    ex) 상태 전이 커버리지, 결정 테이블 커버리지, 요구사항 커버리지 등.

구조 기반 기법의 일반적인 특징 

  • 코드와 개발 설계 등의 소프트웨어 구현 정보를 기반으로 테스트 케이스를 도출한다.
  • 수행된 테스트 케이스를 바탕으로 테스트 커버리지를 측정할 수 있으며, 커버리지를 높이기 위해 테스트 케이스를 시스템적으로 도출해 추가할 수 있다.

경험 기반 기법의 일반적인 특징

  • 테스트 관련 인력의 지식이나 경험으로 테스트 케이스를 도출한다.
  • 테스터, 개발자, 사용자의 소프트웨어에 대한 지식
  • 소프트웨어에서 자주 발생하는 결함이나 결함 분포 등의 지식

Black - box testing

  • 내부 설계 구조나 작동원리를 모르는 상태에서 동작을 검사하는 테스트방식에 해당한다.
  • 올바른 값과, 올바르지 않은 값을 입력값으로 주어, 도출된 결과를 보고 판단하는 방식이 Blackbox test이다.
  • 블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 한다.

White - box testing

  • 응용 프로그램의 내부 구조와 로직(Logic)을 검사하는 테스트방식으로, 내부 소스코드를 테스트하는 방식을 예로 들 수 있다.
  • 화이트박스 테스트는 소프트웨어, 모듈 등의 소스코드를 오픈시킨 상태에서 논리적인 모든 경로를 테스트하여  테스트 케이스를 설계하는 방법이다.

Black - box testing과 White - box testing의 비교

구분 Black-box testing White-box testing
목적 시스템의 내부 동작 및 코드 구조에 대한 지식 없이 기능적인 측면을 테스트하는 데 중점을 둡니다. 소프트웨어의 내부 동작, 코드 로직, 구조에 집중하여 테스트합니다.
접근 방식 시스템을 외부에서 살펴보며 입력과 출력 간의 관계를 테스트합니다. 코드의 내부를 살펴보고, 각각의 구성 요소에 대한 테스트를 수행합니다.
테스트 케이스 설계 테스트 케이스는 요구 사항 명세서에 기반하여 설계되며, 시스템이 예상대로 작동하는지 확인합니다. 코드의 특정 부분이나 경로에 초점을 맞추어 설계됩니다. 논리적인 결함이나 코드 실행 경로 등을 확인합니다.
테스터의 지식 시스템 내부 동작에 대한 세부 정보를 알 필요가 없습니다. 테스터는 소스 코드에 대한 지식이 필요하며, 코드의 내부 동작을 이해해야 합니다.

 

Funtional Test

  • Functional Testing은 소프트웨어 애플리케이션의 기능이 요구 사항과 일치하는지 검증하기 위한 테스트 프로세스를 의미합니다.
  • 이는 사용자의 입장에서 애플리케이션의 기능을 확인하고 예상대로 작동하는지 확인하는 것을 중점으로 합니다.
  • Functional Testing은 개발된 소프트웨어가 사용자 요구사항을 충족하는지 검증하는 데 도움이 됩니다.