상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 소프트웨어 통합 테스트

정보처리기사 공부지식

by 소란한소란 2024. 2. 27. 13:34

본문

728x90

소프트웨어 통합 테스트: 품질을 고민하다

소프트웨어 통합 테스트는 소프트웨어 품질을 보장하기 위한 중요한 단계 중 하나입니다. 이번 글에서는 결함관리 도구, 테스트 자동화 도구, 그리고 통합 테스트에 대한 주요 내용을 알아보겠습니다.

 


결함관리 도구

  • 개념
    • 각 단계별 테스트 수행 후 발생한 결함의 재발 방지를 위해 유사 결함 발견 시 처리 시간 단축을 위해 결함을 추적하고 관리할 수 있게 해주는 도구

결함관리 프로세스 (★)

  • 에러 발견
  • 에러 등록
  • 에러 분석
  • 결함 확정
  • 결함 할당
  • 결함 조치
  • 결함 조치 검토 및 승인

 

결함 추이 분석

  • 테스트 완료 후 발견된 결함의 결함 관리 측정 지표의 속성 값들을 분석하고, 향후 애플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생할지를 추정하는 작업

결함 관리 측정 지표 종류

  • 결함 분포
  • 결함 추세
  • 결함 에이징

결합 심각도별 분류

  • 치명적 결함(Critical)
  • 주요 결함(Major)
  • 보통 결함(Normal)
  • 낮은 결함(Low, Minor)

결함 우선순위

  • 결정적(Critical)
  • 높음(high)
  • 보통(Medium)
  • 낮음(Low)

결함관리 도구

 


테스트 자동화 도구

  • 개념
    • 테스트 작업을 스크립트 형태로 구현하여 테스트를 반복 수행
    • 테스트 시간 단축
    • 인력 투입 비용 최소화
    • 쉽고 효율적인 테스트를 수행
  • 테스트 자동화 도구의 장/단점

 

테스트 자동화 도구 유형

  • 정적 분석 도구(Static Analysis Tools)
    • 애플리케이션을 실행하지 않고 분석하는 도구
    • 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용
    • 종류 : pmd, SonarQube, cppcheck, checkstyle 등
  • 테스트 실행 도구(Test Execution Tools)
    • 테스트를 위해 작성된 스크립트를 실행
    • 작성된 스크립트는 각 스크립트마다 특정 데이터와 테스트 수행 방법을 포함
    • 테스트 실행 도구 방식 (데이터 주도 접근 방식, 키워드 주도 접근 방식)
  • 성능 테스트 도구(Performance Test Tools)
    • 많은 수의 가상의 사용자를 생성하여 부하를 테스트
    • 애플리케이션의 처리량, 응답 시간, 경과 시간 , 자원 사용률을 확인하여 성능 목표를 달성했는지 확인
  • 테스트 통제 도구(Test Control Tools)
    • 테스트 관리 도구 : 테스트 계획 및 관리
    • 형상 관리 도구: 테스트 수행에 필요한 데이터와 도구를 관리
    • 결함 추적/관리 도구 : 테스트에서 발생한 결함에 대해 관리하거나 협업을 지원
  • 테스트 장치(Test Harness)
    • 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분
    • 테스트를 지원하기 위한 코드와 데이터
    • 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성

테스트 장치 구성요소 (★)

구성요소 설명
테스트 드라이버 (Test Driver)

테스트 대상 하위 모듈을 호출하고, 파라미터를 전달하고, 모듈 테스트 수행 후의 결과를 도출하는 등 상향식 테스트에 필요하다.
테스트 스텁 (Test stub)  제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 하향식 테스트에 필요하다.
테스트 슈트 (Test Suites) 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합을 말한다.
테스트 케이스 (Test Case) 입력 값, 실행 조건, 기대 결과 등의 집합을 말한다.
테스트 스크립트 (Test Script) 자동화된 테스트 실행 절차에 대한 명세를 말한다.
목 오브젝트 (Mock Object) 사용자의 행위를 조건부로 사전에 입력해 두면, 그 상황에 예정된 행위를 수행하는 객체를 말한다.

 

통합 테스트

  • 개념
    • 단위 테스트가 끝난 모듈을 통합는 과정에서
    • 발생할 수 있는 오류를 찾는 테스트 기법
    • 수행 방법
      • 비점증적 방식 : 빅뱅
      • 점증적 방식 : 상향식 , 하향식

통합 테스트 수행 방법의 분류

 

하향식 통합 테스트(Top Down)

  • 메인 제어 모듈로부터 아래 방향으로
  • 제어의 경로를 따라 이동하면서 하향식으로 통합하면서 테스트 진행
  • ‘깊이-우선’또는 ‘너비-우선’방식으로 통합
  • 아직 개발되지 않은 하위 모듈은 더미 모듈인
  • 스텁(Stub)을 개발하여 테스트 진행

상향식 통합 테스트 (Bottom Up)

  • 최하위 레벨의 모듈부터 위쪽 방향으로
  • 제어의 경로를 따라 통합하면서 테스트 진행
  • 하위 모듈을 순서에 맞게 호출하고, 호출할 때 필요한 매개 변수를 제공하며, 반환 값을 전달하는 드라이버(Driver)개발하여 테스트 진행
  • 하위 수준의 모듈을 클러스터(Cluster)로 결합
  • → 드라이버 제거 후 상위로 결합
  • → 드라이버 작성 → 클러스터 검사

빅뱅 테스트

  • 모든 구성요소들을 한꺼번에 통합하여 테스트
  • 소규모 시스템에 편리한 테스트 방식

백본 테스트

  • 샌드위치 테스트
  • 상향식과 하향식의 장점을 이용하는 방식
  • 드라이버/스텁을 필요에 따라 만들어 사용
  • 대규모 프로젝트에 사용하는 방식
  • 비용이 많이 들어간다.

통합 테스트 수행 순서

  • 통합 테스트 계획서를 검토
  • 통합 테스트를 수행할 테스트 환경을 준비
  • 통합 테스트 케이스 및 시나리오를 검토
  • 통합 모듈 및 인터페이스가 요구사항을 충족하는지 테스트를 수행
  • 통합 테스트 결과를 기록

애플리케이션 통합 테스트를 통해 안정적이고 품질 높은 소프트웨어를 제공하는 것은 프로젝트 성공에 중요한 부분입니다. 결함을 효과적으로 관리하고 자동화 도구를 효율적으로 활용하는 것은 품질 관리의 핵심입니다. 이러한 접근 방식을 통해 프로젝트 팀은 안정성과 신뢰성 있는 애플리케이션을 개발할 수 있을 것입니다. 2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90

관련글 더보기