소프트웨어 공학에서 테스트의 시작은 바로 verification과 validation를 이해하고 이들을 구별하는 것입니다. 이번 포스트에서는 이들에 대해 이야기하는데요. 이들의 차이점을 구별할 수 있어야 합니다.
Verification이란?
Verification은 요구사항 명세서와 설계 명세서에 따라 소프트웨어를 구현하였는지, 소프트웨어에 버그가 있는지를 평가하는 프로세스입니다. 사용자에게 소프트웨어를 보여주기 전에 verification은 반드시 수행하여야 합니다. 오류나 누락이 존재하는 소프트웨어는 고객에게 신뢰를 줄 수 없기 때문입니다.
Validation이란?
Validation은 사용자의 입장에서 소프트웨어가 만족스러운지를 평가하는 프로세스입니다. (verification은 개발자 입장에서 소프트웨어를 평가하는 것이죠.) 기본적으로 사용자 요구 사항들이 소프트웨어에 모두 구현되었는지를 시험해야 하며, 이들이 최종적으로 사용자들을 만족해야 합니다. 소프트웨어의 이슈들을 모두 수정했음에도, 소프트웨어를 모든 요구 사항대로 구현하였음에도 불구하고 사용자는 '불만족'을 표현할 수 있으며, 이 경우 valication은 '실패'로 끝나게 됩니다. 만족의 여부는 전적으로 사용자의 주관에 좌우되기 때문입니다. 특히, 사용자가 불특정 다수인 프로젝트의 경우 validation은 굉장히 어렵습니다.
출처 : http://blog.naver.com/PostView.nhn?blogId=netrance&logNo=110142854374
[출처] [소프트웨어 공학] Verification & Validation|작성자 도모네