블랙박스 테스팅에서 외부사용자들로 하여금 소프트웨어를 검증하는 방법

컴퓨터과학/소프트웨어공학

[소프트웨어공학] 검증과 확인 - 테스팅(화이트박스/블랙박스/기본경로)

2021. 6. 2.

Github로 보기

검증과 확인 프로세스

검증과 확인

  • 검증
    • 올바른 제품을 생성하고 있는가 -> 요구사항 명세서 기반 판단
  • 확인
    • 제품이 올바르게 생성되고 있는가
    • 고객이 의도한 요구사항에 따라 구현되었는지(명시되지 않은 것도 포함)
  • 검증과 확인 작업은 실제로 구분하기 어려운 경우가 존재

방법과 종류

  • 정적인 방벙
    • 소프트웨어 개발 중에 생성되는 모든 산출물들에 대해 적용 가능
      • 검토 - 코드리뷰 등
      • (인스펙션)
      • (워크스루)
  • 동적인 방법
    • 소프트웨어 실행하여 결함을 찾아냄
    • 대표적인 방법: 테스팅

Peer review란

동료 검토 절차

  • 공지와 배포
  • 준비
    • 검토자는 에러 체크리스트로 산출물을 검토
  • 검토
    • 작성자, 진행자, 검토자들이 모여 산출물 검토
  • 검토 보고서 작성
  • 후속 조치

소프트웨어 테스팅

결함을 지칭하는 다양한 용어

  • error : 결함의 원인
  • defect, fault, bug : 실패 또는 문제의 원인
  • failure, problem : 결함이 있는 부분이 실행될 때 발생하는 현상

테스트 케이스

목적

  • 테스터가 테스팅을 체계적으로 할 수 있도록
  • 개발자가 테스트 케이스 결과를 통해 디버깅을 함

테스팅 종류

  • 블랙박스 테스팅
    • 요구사항 명세서나 설계서로부터 테스트 케이스 추출
  • 화이트박스 테스팅
    • 내부구조(코드)를 기반으로 테스트 케이스 추출

블랙박스 테스팅

신택스 테스팅

  • 입력을 적합과 부적합으로 분류한 뒤, 예상되는 결과를 검증하는 기법

동등 분할

  • 입력이 범위가 정해져 있을 경우, 각 범위의 대표값(중간, 경계, 벗어나는 값 등)을 이용하여 테스팅

의사결정 테이블

  • 입/출력이 true, false로 결정될 수 있는 경우 모든 경우의 수를 확인해 볼 수 있는 방법

화이트박스 테스팅

특징

  • 테스트의 목적과 조건에 맞게 적절한 방법 선택
  • 각 테스팅 방버베 따라 복잡도, 소요되는 시간(비용)이 다름

문장 커버리지

  • 프로그램을 구성하는 문장들이 최소한 한번은 실행될 수 있는 입력 값을 테스트 케이스로 선정함

분기 커버리지

  • 프로그램에 있는 분기를 최소한 한번은 실행하게 하는 테스팅 방법
  • and or에서 모든 조건을 테스트 해볼 수 없음

조건 커버리지

  • and(&&), or(||) 등의 조건을 가진 분기문에서 각 조건식이 참 한 번, 거짓 한 번을 갖도록 테스트 케이스를 만듬

범위: 문장<분기<조건

기본경로 테스팅

  • 프로그램의 제어구조를 플로우 그래프로 표현
  • 순환복잡도를 통해 독립적인 경로의 수를 찾아 테스트 케이스를 추출

테스트케이스 추출 단계

  1. 프로우 그래프를 그린다

  2. 순환복잡도 계산

  3. 독립적인 경로 정의

  4. 정의된 각 경로의 테스트케이스 작성

테스팅 단계

소프트웨어 개발 단계와 테스팅

단위 테스팅(Unit Testing)

  • 각 모듈이 완성되었을 경우 개별적인 모듈 테스팅
  • 해당 모듈의 개발자가 테스팅
  • Stub: 테스팅 대상 모듈에서 호출하는 모듈
  • Test Driver: 테스팅 대상 모듈을 호출하는 환경

통합 테스팅(Integrating Testing)

  • 모듈을 통합한 단계에서 수행되는 테스팅
  • 종류
    • 빅뱅 기법
      • 모듈을 한꺼번에 통합하여 테스팅
      • but, 오류가 발생했을 때 어디에서 났는지 찾기 어려움
    • Top-Down 기법
      • 가장 상위 모듈부터 하위 모듈로 점진적으로 통합
      • 하위 모듈에 대한 스텁이 필요
    • Bottom-Up 기법
      • 하위 모듈 부터 점진적으로 통합
      • 상위 모듈에 대한 테스트 드라이버가 필요

시스템 테스팅(System Testing)

  • 고객에게 시스템을 전달하기 전, 시스템을 개발한 조직이 테스팅
  • 테스팅 대상
    • 요구사항 명세서를 기반으로 사용자의 기능 요구사항
    • 보안, 성능, 신뢰성 등의 비기능 요구사항

인수 테스팅(Acceptance Testing)

  • 시스템이 사용자에게 인수되기 전, 사용자에 의해 실시되는 테스팅

reference

  • 상명대학교 한종대 교수님

'컴퓨터과학 > 소프트웨어공학' 카테고리의 다른 글

SOLID 원칙  (0) [소프트웨어공학] 형상 관리 - 형상 항목, 형상 식별자, 베이스라인  (0) [소프트웨어공학] 설계 2 - 객체 지향, 클래스 다이어그램, 시퀀스 다이어그램  (0) [소프트웨어공학] 설계 1 - 추상화, 모듈화, 정보은닉, 응집력, 결합도  (0) [소프트웨어공학] 프로젝트 계획 및 통제 - WBS, PERT, Gantt, EVM  (0)
2021.06.13
2021.06.03
2021.05.17
2021.05.11
2021.04.13

관련글

  • SOLID 원칙
  • [소프트웨어공학] 형상 관리 - 형상 항목, 형상 식별자, 베이스라인
  • [소프트웨어공학] 설계 2 - 객체 지향, 클래스 다이어그램, 시퀀스 다이어그램
  • [소프트웨어공학] 설계 1 - 추상화, 모듈화, 정보은닉, 응집력, 결합도

1. 화이트박스 테스트(White Box Test)

- 화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드논리적인 모든 경로를 테스트하여  테스트 케이스를 설계하는 방법이다.

화이트박스 테스트

  • 화이트박스 테스트는 설계된 절차에 초점을 둔 구조적 테스트며, 테스트 과정의 초기에 적용된다.
  • 모듈 안의 작동을 직접 관찰한다.
  • 원시 코드(모듈)의 모든 문장을 한 번 이상 실행함으로써 수행된다.
  • 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로를 제어한다.

2. 화이트박스 테스트의 종류

- 화이트박스 테스트의 종류에는 기초 경로 검사, 제어 구조 검사 등이 있다.

기초 경로 검사
(Base Path Testing)
- 대표적인 화이트박스 테스트 기법이다.
- 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법, 테스트 측정 결과는 실행 경로의 기초를 정의하는 데 지침으로 사용된다.
제어 구조 검사
(Control Structure Testing)
- 조건 검사(Condition Testing): 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
- 루프 검사(Loop Testing): 프러그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
- 데이터 흐름 검사(Data Flow Testing): 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법

3. 블랙박스 테스트(Black Box Test)

- 블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 한다.

  • 사용자의 요구사항 명세를 보면서 테스트하는 것으로, 주로 구현된 기능을 테스트한다.
  • 소프트웨어 인터페이스에서 실시되는 테스트이다.
  • 부정확하거나 누락된 기능, 인터페이스 오류, 자료 구조나 외부 데이터베이스 접근에 따른 오류, 행위나 성능 오류, 초기화와 종료 오류 등을 발견하기 위해 사용되며, 테스트 과정의 후반부에 적용된다.

4. 블랙박스 테스트의 종류

- 블랙박스 테스트의 종류에는 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사 등이 있다.

동치 분할 검사
(Equivalence Partitioning Testing)
- 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법으로 동등 분할 기법이라고도 한다.
경계값 분석
(Boundary Value Analysis)
- 입력 자료에만 치중한 동치 분할 기법을 보완하기 위한 기법이다.
- 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법이다.
원인-효과 그래프 검사
(Cause-Effect Graphing Testing)
- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법이다.
오류 예측 검사
(Error Guessing)
- 과거의 경험이나 확인자의 감각으로 테스트하는 기법
- 다른 블랙 박스 테스트 기법으로는 찾아낼 수 없는 오류를 찾아내는 일력의 보충적 검사 기법, 데이터 확인 검사라고도 한다.
비교 검사
(Comparison Testing)
- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법이다.

정보처리기사 필기 기출문제

32.
White Box Testing에 대한 설명으로 옳지 않은 것은?
[정답률: 64%] 정보처리기사(2020년 이후) 필기 (2020년 1회·2회 통합 기출문제)
① Base Path Testing, Boundary Value Analysis가 대표적인 기법이다. Base Path Testing(기초 경로 검사)는 화이트박스 테스트의 기법이 맞지만, Boundary Value Analysis(경계값 분석)은 블랙바스 테스트의 기법이다.
② Source Code의 모든 문장을 한 번 이상 수행함으로써 진행 된다.  
③ 모듈 안의 작동을 직접 관찰할 수 있다.  
④ 산출물의 각 기능별로 적절한 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검 한다.  
21.
평가 점수에 따른 성적부여는 다음 표와 같다. 이를 구현한 소프트웨어를 경계 값 분석 기법으로 테스트 하고자 할 때 다음 중 테스트 케이스의 입력 값으로 옳지 않은 것은?
[정답률: 78%] 정보처리기사(2020년 이후) 필기 (2020년 1회·2회 통합 기출문제)
① 59 위 표의 평가점수의 C - 경계 값에 해당
② 80 위 표의 평가점수의 A와 B - 경계 값에 해당
③ 90 위 표의 평가점수의 A - 중간 값에 해당
④ 101 위 표의 평가점수의 A - 경계 값에 해당
25.
블랙박스 테스트의 유형으로 틀린 것은?
[정답률: 69%] 정보처리기사(2020년 이후) 필기 (2020년 3회 기출문제)
① 경계값 분석  
② 오류 예측  
③ 동등 분할 기법  
④ 조건, 루프 검사 조건, 루프 검사는 화이트 박스 테스트의 기법이다.
37.
블랙박스 테스트 기법으로 거리가 먼 것은?
[정답률: 54%] 정보처리기사(2020년 이후) 필기 (2020년 4회 기출문제)
① 기초 경로 검사 기초 경로 검사는 화이트 박스 테스트의 기법이다.
② 동치 클래스 분해  
③ 경계값분석  
④ 원인 결과 그래프  
66.
화이트박스 검사찾기 힘든 오류는?
[정답률: 13%] 정보처리기사(2019년 이전) 필기 (2019년 3회 기출문제)
① 논리흐름도  
② 자료구조 화이트박스 검사는 설계된 절차에대한 구조적 테스트다.
③ 루프구조  
④ 순환복잡도  

Toplist

최신 우편물

태그