Software Verification과 Validation

2008. 7. 16. 08:20Software Engineering/Software Testing

최근 테스팅에 대한 여러 자료들을 읽어 보면서
http://blog.naver.com/sunofweb/80001092315

Verification 과 Validation 간의 차이에 대한 정리를 해 두고자 합니다.

Verification: "Are we building the product right?"
-> 우리가 설계한대로 제품을 만들었는지?

Validation: "Are we building the right product?"
-> 우리가 제품을 제대로 설계했는지?

즉 Validation 은 사용자의 머리속에만 있는 개념을 설계자 또는 분석가가 올바로 이해를 한 후 올바로 설계에 반영을 하였는지를 보고자 하는 것이며.

Verification 은 위에서 작성된 설계를 기준으로 해당 설계서를 충실히 구현하였는지를 보고자 하는 것입니다.

따라서 Validation 은
"Validation is the process of evaluation a system or component at the end of the  development process to determine whether it satisfies specified requirements."  와 같이 요구사항 만족의 관점에서.

Verification 은
"Verification : An attempt to find errors by executing a program as a test or simulated environment (its now preferable to view verification as the process of proving the programs correctness)." 와 같이 정상수행 증명의 관점에서.

접근하게 됩니다. 

제 생각에는 명확한 차이가 있는 것 같은데 같은 단어들의 조합을 이용해서 "building the product right?" / "building the right product?"  로 표현을 해서 비영어권인 저 같은 사람들은 볼 때마다 헷갈리는 군요.

아무튼 정리하자면 물론 Verification 과정에서도 설계도에 대한 수정작업에 영향을 주긴 하겠지만. Validation 의 한계 내에서 Verification 이 수행된다고 생각합니다.

아무리 명세서대로 오류없이 모든 기능을 개발(Verification OK) 하였다고 해도 고객이 원했던 것이 메신져이었는데 잘 동작하는 P2P 클라이언트를 만들어서(Validation Fail)  준다면  Verification 에 소요된 모든 자원은 낭비였을 뿐이라는 평가밖에는 할 수 없지 않을까요?

출처 : 한울아이티 _  한재정 / jaejung.han@_anti_spam_gmail.com dreamholic.egloos.com