3학년 2학기 공부 과정/소프트웨어공학

09. 테스팅

환성 2022. 12. 21. 22:04
728x90

 

9-1 테스트 개요

  • 테스트와 소프트웨어 테스트
    • 소프트웨어 개발에서의 테스트
    • 소프트웨어 개발은 인간 중심의 활동이며 지적 활동
    • 결함을 낮추는 방법
    • 테스트
  • 테스트의 필요성과 특징
    • 소프트웨어 테스트의 정의
    • 소프트웨어 테스트의 목표
      • 작은 의미
        • 원시 코드 속에 남아 있는 오류를 발견
        • 결함 생기지 않도록 예방
      • 큰 의미
        • 개발된 소프트웨어가 고객의 요구를 만족시키는지 확인시켜주는 것
        • 개발자와 고객에게 사용하기에 충분한 소프트웨어임을 보여주는 것
    • 소프트웨어 테스트 수행의 어려움
      • 테스트 케이스 적어 효과에 한계
      • 완벽한 테스트 케이스를 도출하기 어려움
      • 작은 실수를 발견하기 어려움
    • 소프트웨어 테스트 결함 관련 용어
      • 오류
      • 결함
      • 고장, 실패, 문제, 장애
  • 테스트 절차
    • 측정 도구나 장비를 이용해 구현된 소프트웨어가 사용자의 요구를 만족하는지를 테스트하는 절차
    • 테스트 목표 정의
      • 요구분석명세서를 기반으로 테스트할 목표를 정의
    • 테스트 대상 및 범위 결정
      • 테스트할 대상과 범위를 결정하는데, 이때는 업무 시스템별로 구분할 수 있음
    • 테스트 계획서 작성 및 검토
    • 오류 추적 및 수정
      • 테스트 결과 어디에서, 어떤 종류의 오류가 발생했는지 확인하고 수정

9-2 테스트 분류

  • 시각 테스트
    • 검증 테스트
      • 문서 기반의 정적인 분석 과정
    • 확인 테스트
      • 실제 제품을 검사하고 테스트하는 동적인 과정
    • 개요
      • 각 단계에서 개발자의 시각으로 테스트하는 것으로, 설계서대로 만들었는지를 테스트
      • 이전 단계에서 생성된 산출물이 현 단계의 산출물에 정확히 반영되었는지를 테스트
    • 한계
      • 설계서가 요구분석명세서를 완벽하게 반영하지 않을 경우에는 결국 틀린 요구사항으로 개발
  • 사용 목적에서 따른 테스트
    • 성능 테스트
      • 소프트웨어의 효율성을 진단하는 테스트
    • 스트레스 테스트
      • 평소보다 많은 비정상적인 값, 양, 빈도, 부피 등으로 부하를 발생시켜 부하가 최고치인 상황에서 시세틈의 반응을 살피고 이때 발생하는 오류를 찾는 것
    • 보안 테스트
      • 부당하고 불법적인 침입을 시도해, 시스템을 보호하기 위해 구축된 보안 시스템이 불법적인 침투를 잘 막아내는지 테스트
    • 안정성 테스트
      • 며칠 동안 부하를 주면서 시스템이 안정적으로 돌아가는지를 테스트
    • 복원 가능성 테스트
      • 소프트웨어를 고장 나게 해 놓고 소프트웨어 복구가 잘 되는지 확인해보는 테스트
  • 사용 목적에서 따른 테스트
    • 정적 테스트
      • 프로그램을 실행하지 않고 코드를 검토하여 오류를 찾는 방법
      • 실패보다는 결함을 찾아내는 방법
      • HTML, XML과 같은 산출물도 검토할 수 있음
      • 비공식 검토
      • 공식 검토
        • 계획 → 착수 → 개별 준비 → 검토회의 수행 → 재작업 및 수정 → 완료 작업
    • 동적 테스트
      • 프로그램을 실행하면서 찾는 경우
      • 명세 기반 테스트(블랙박스 테스트)
        • 입력 값에 대한 예상 출력 값을 정해 놓고 그대로 결과가 나오는지를 체크
        • 신텍스 기법
          • 가장 단순한 방법으로, 문법에 기반을 둔 테스트
          • 문법을 정해 놓고 적합/부적합 입력 값에 따른 예상 결과가 제대로 나오는지 테스트
        • 동등 분할 기법
          • 각 영역에 해당하는 입력 값을 넣고 예상되는 출력 값이 나오는지 실제 값과 비교
        • 경계 값 분석 기법
          • 경계에 있는 값을 테스트 데이터로 생성하여 테스트하는 방법
        • 원인- 결과 그래프 기법
          • 여러 입력 조건을 결합해 결과를 하나 이상 얻을 수 있으므로 이 단점을 극복할 수 있음
      • 구현 기반 테스트(화이트박스 테스트)
        1. 테스트 데이터 적합성 기준을 선정
        1. 테스트 데이터를 생성
        1. 테스트를 실행한다.
        • 분기 기반 검증(결정 검증 기준)
          • 사용시 분기 시점에서 조건과 관련된 오류를 찾을 수 있고, 또 분기가 합류하는 위치에서 오류를 발견할 가능성이 높음
        • 조건 검증 기준
          • 개별 조건식을 모두 만족하면서 전체 조건식도 만족하는 테스트 케이스

9-3 개발 단계별 테스트

  • 단위 테스트(모듈 테스트)
    • 프로그램 기본 단위인 모듈을 테스트
    • 드라이버와 스텁
      • 테스트 드라이버 : 상위 모듈의 역할을 하는 가상의 모듈
    • 단위 테스트 수행 후 발견오류
      • 잘못 사용한 자료형
      • 잘못된 논리 연산자
  • 통합 테스트
    • 개요
      • 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생할 수 있는 오류를 찾는 테스트
    • 모듈 통합 방법에 따른 분류
      • 한꺼번에 하는 테스트 : big-bang 테스트
      • 점진적으로 하는 방법 : 하향식 기법, 상향식 기법

 

 

'3학년 2학기 공부 과정 > 소프트웨어공학' 카테고리의 다른 글

08. 코딩과 리팩토링  (0) 2022.12.21
07. 설계_2  (0) 2022.12.21
06. 설계_1  (0) 2022.12.21
05. 요구 모델링  (0) 2022.12.21
04. 요구 분석  (2) 2022.12.19