Study_Note

classification according to test design techniques - static testing 본문

CSTS

classification according to test design techniques - static testing

12월7일생 2024. 2. 13. 15:44
728x90

반응형

테스트 설계 기법에 따른 분류 - 정적 테스트
(Classification according to test design techniques - static testing)

테스트는 테스트 설계 기법에 따라 정적 테스트와 동적 테스트로 나뉩니다. 여기서 정적 테스트는 리뷰와 정적 분석으로 구분되며, 동적 테스트는 명세 기반 테스트, 구조 기반 테스트, 그리고 경험 기반 테스트로 분류됩니다.

정적 테스트(static testing)

정적 테스트는 테스트 대상을 실행하지 않고도 테스트를 수행하는 방식입니다. 주요한 방법으로는 리뷰와 정적 분석이 있습니다.

리뷰(review)

리뷰는 소프트웨어의 다양한 산출물에서 결함을 발견하거나 프로젝트의 진행 상황을 확인하기 위한 중요한 활동입니다. 이를 전문가 그룹이 수행하며, 효과적으로 진행하기 위해서는 일정한 절차를 준수해야 합니다.

리뷰 활동의 일반적인 순서는 다음과 같습니다:

 

  1. 준비 (Preparation)
    리뷰를 수행하기 전에 필요한 자료를 수집하고, 리뷰에 참여할 인원을 선정하고 팀을 구성합니다.
  2. 계획 (Planning)
    리뷰의 목적, 범위, 일정, 참여자 역할 등을 명확히 정의하고 계획을 수립합니다.
  3. 개요 설명 (Overview)
    리뷰 대상물에 대한 전반적인 내용과 목적을 설명합니다.
  4. 작업물 설명 (Presentation of Work)
    리뷰 대상물의 세부 내용과 기능을 설명하고, 개발 과정에 대한 배경을 제시합니다.
  5. 개별 준비 (Individual Preparation)
    개별 참여자들은 리뷰 대상물을 개별적으로 분석하고 준비합니다.
  6. 그룹 검토 (Group Review)
    리뷰 팀이 모여서 리뷰 대상물을 집중적으로 검토하고 토론합니다. 발견된 결함이나 개선점을 식별하고 기록합니다
  7. 재작업 (Rework)
    리뷰 결과를 바탕으로 발견된 결함을 수정하고 개선하기 위해 추가 작업을 수행합니다.
  8. 후속 작업 (Follow-up Actions)
    리뷰 결과를 바탕으로 필요한 조치를 취하고, 결함이나 개선 사항을 추적하고 관리합니다.

리뷰는 목적과 수행 방법에 따라 관리 리뷰, 기술 리뷰, 인스펙션(inspection) , 워크스루(walk-through) , 그리고 감사(audit)로 구분됩니다.

  • 관리 리뷰는 프로젝트의 진행 상황을 면밀히 살펴보고, 그 결과를 바탕으로 일정, 인력, 범위 등을 효과적으로 관리하고 의사결정을 지원하는 활동입니다.
  • 기술 리뷰는 프로젝트에서 정의된 계획과 명세가 적절하게 준수되고 있는지를 검토합니다. 이를 통해 프로젝트의 기술적 측면에서의 일관성과 품질을 유지할 수 있습니다.
  • 인스펙션은 프로젝트 진행 중에 발생할 수 있는 문제점이나 결함을 식별하고, 이에 대한 올바른 해결책을 검토하며, 그 효과를 검증합니다. 이를 통해 프로젝트의 진행 속도와 품질을 향상시킬 수 있습니다.
  • 워크스루는 문제점을 식별하는 것을 넘어서, 그 문제에 대한 대안을 모색하고, 창의적인 개선 활동을 도모하며, 팀원들에게 학습의 기회를 제공합니다. 이를 통해 프로젝트의 창의성과 협업력을 향상시킬 수 있습니다.
  • 감사는 프로젝트가 객관적인 표준과 규제를 준수하고 있는지를 독립적으로 평가합니다. 이를 통해 프로젝트의 투명성과 법적 적합성을 보장할 수 있습니다.

정적 분석(Static Analysis)

정적 분석은 소프트웨어의 산출물, 주로 소스 코드를 대상으로 하는데, 이를 자동화된 도구를 통해 수행됩니다. 이러한 분석은 산출물의 구조적인 속성을 검토하여 소프트웨어의 품질을 평가하고 개선하는 데 도움을 줍니다.

 

  • 코딩 표준 (Coding Standards)
    정적 분석은 코딩 표준을 준수하는지를 확인합니다. 코딩 표준은 코드의 일관성과 가독성을 유지하고, 유지보수를 용이하게 합니다.
  • 복잡도 측정 (Complexity Measurement)
    소스 코드의 복잡성을 측정하여 이해하기 쉬운 간단한 코드를 작성하도록 돕습니다. 이는 소프트웨어의 이해도와 유지보수성을 향상시키는 데 도움이 됩니다.
  • 자료 흐름 분석 (Data Flow Analysis)
    정적 분석은 소스 코드 내에서 데이터의 흐름을 추적하여 잠재적인 결함을 식별합니다. 이를 통해 변수 값의 불일치나 데이터의 오용 등을 사전에 감지할 수 있습니다. 

이러한 정적 분석은 소프트웨어 개발 과정에서 품질을 향상시키고 결함을 사전에 발견하여 비용과 시간을 절약하는 데 기여합니다.