본문 바로가기
소프트웨어공학

[소프트웨어공학] L9 - Verification, Validation, and Test: Fundamentals of SW Test (2)

by leziwn.cs 2023. 11. 17.
Principles of Test
  • Testing은 defects의 존재를 알려준다. (버그가 없음을 증명하지는 않는다.

▶ Exhaustive Testing

: Defects가 없음을 증명하는 testing. 

  • Exhaustive testing is impossible.
  • Absence-of-errors fallay: Bug를 찾아내서 고치는 것이 곧 유저/고객의 만족을 의미하는 것은 아니다.
  • Context dependent: 테스팅은 서로 다른 context에서는 서로 다르게 이루어져야 한다.
  • Defect clustering: 모듈의 작은 부분이 대부분의 defects를 포함한다.
  • Early testing: 테스팅은 SW/system development life cycle 내에서 최대한 빠르게 시작되어야 한다.

 

 

Testing Capability Level
  • 각 단계별 테스트 전략!!!
레벨 1

레벨 1

: 디버깅을 테스트로 인식하는 단계

  • '소프트웨어가 작동하는 것'을 보여줄 뿐, 소프트웨어의 품질 보증과는 무관하다.

 

레벨 2

레벨 2

: 디버깅과 테스트가 구분되는 단계

  • 테스트는 프로젝트 수준에서 관리된다.
  • 테스트 계획이 소프트웨어 개발 생명주기에서 늦게 세워진다.
  • 테스트 케이스는 테스트 레벨 별 테스트 수행 직전에 설계되고, 기능성 중심의 테스트를 수행한다.
  • 독립적인 테스트 조직은 없지만, 테스트를 연구하는 기술 그룹의 도움으로 간단한 테스트 기법와 도구 등이 활용되기 시작한다.

 

레벨 3

레벨 3

: 소프트웨어 개발 생명 주기와 통합된 표준 테스트 프로세스가 정의되는 단계

  • 테스트 계획은 요구사항 단계에서부터 시작되며, V-model의 체계를 갖춘다.
  • 소프트웨어 개발 생명 주기의 단계별 검증(verification)과 확인(validation)을 수행한다.
  • 테스트 레벨 별 테스트 케이스가 관련된 생명 주기 단계에서 계획되고 설계된다.
  • 독립적인 테스트 전문가 그룹이 구성된다.

 

레벨 4

레벨 4

: 단계별로 진행되는 V&V 작업을 통한 측정 데이터 수집으로 품질이 측정되는 단계

  • 품질 보증 위원회를 구성하여 테스트 측정 프로그램을 개발하고, 수집된 측정 데이터를 정량적으로 분석하여, 소프트웨어 품질을 평가한다.

 

레벨 5

레벨 5

: Optimizing

  • 지속적으로 개선 활동을 계획하고 추진한다.
  • 결함 예방, 품질 제어가 수행된다.
  • 독립적인 테스트 프로세스 개선 그룹의 지원으로, 개선 활동을 계획하고 추진한다.

 

 

 

 

 

출처: 이화여자대학교 박지현교수님 소프트웨어공학