본문 바로가기

전공/소프트웨어공학

검증과 확인(V & V = Verification and Validation)

검증과 확인(V & V = Verification and Validation)

- 소프트웨어 시스템이 사용자의 요구를 만족한다는 것을 보증하는 것.

 

Validation(확인) - 사용자 요구사항을 전부 만듬.

 

Verification(검증) - 사용자가 요구한 시스템 요구사항까지 모두 만족. 명세서와 일치해야함

 

V&V process의 목적

1. 시스템의 결함(defects) 발견

2. 실제 운용 환경에서 시스템이 사용 가능한지의 여부에 대한 평가

 

static(정적) and dynamic(동적) verification

static verification - 소프트웨어의 감사(inspections) 문제들을 발견하기 위해 시스템에 대한 정적 분석을 수행

dynamic verification - 소프트웨어의 동작들을 시험해보고 관찰함

 

Program testing

- 오류의 부재가 아닌 오류의 존재를 알아낼 수 있음

- 성공적인 테스트는 하나 이상의 오류를 찾아내는 것 = detection

- 비기능적 요구사항을 위한 유일한 Validation(확인) 기법

- 완전한 V&V를 수행하기 위해 static verification(정적 검증)과 함께 사용될 수 있음

 

Testing 종류

1. 결함 테스팅(Defect testing)

: 시스템 결함을 발견하기 위해 고안된 테스트로, 성공적인 결함 테스트는 결함을 발견한 테스트

 

2. 통계적 테스팅(Statistical testing)

: 사용자 입력의 빈도를 반영하기 위해 고안된 테스트로, 신뢰도 추정을 위해 사용.

: Operational profile을 작성하며 Failure 사이의 시간을 측정함

 

V&V의 목표

- 소프트웨어가 목적에 부합한다는 신뢰감 확립

- 결함이 전혀 없다는 의미는 아님

- 오히려 소프트웨어가 의도했던 용도대로 사용하기 충분하다는 것을 보이는 것

(사용 방식에 따라 필요한 신뢰정도가 결정됨)

 

V&V Confidence(확신성) - 시스템의 목적, 사용자의 기대, 마케팅 환경에 의존

- Software function : 신뢰 수준은 소프트웨어가 조직에 얼마나 중요한가에 따라 달라짐

- User expectations : 사용자들은 어떤 종류의 소프트웨어에 대해서는 낮은 기대치를 가질 수 있음

- Marketing enviornment : 시장에 제품을 빨리 출하하는게 프로그램에 있는 결함들을 찾는 것보다 더 중요할 수 있음

 

Testing and debugging

- 결함테스팅(Defect testing)과 디버깅은 다른 프로세스

- V&V는 프로그램에 결함이 존재한다는 것을 입증하는 것과 관련

- 디버깅을 이런 오류들의 위치를 찾아내고 고치는 것과 관련

 

'전공 > 소프트웨어공학' 카테고리의 다른 글

Defect testing  (0) 2021.12.02
소프트웨어 감사(inspections)  (0) 2021.11.26
설계 개념과 원리  (0) 2021.11.26
시스템 모델  (0) 2021.11.09
요구 공학 프로세스  (0) 2021.10.16