[팀블로그] 소프트웨어 테스팅 참고서

     

질문

Verification과 Validation에 대해 ISTQB 설명은 명확히 이해가 안 돼요. 다시 설명해 주실 수 있나요?

 

ISTQB 버전

ISTQB Syllabus 2018

 

답변

흔히 V&V라고 부르는 Validation과 Verification, 두 용어에 대한 내용은 아래와 같습니다.

1. 검증(Validation)

  • 목적 : 올바른 제품을 만들고 있는가? (Are you building the right product?)

    • 사용자의 입장에서 소프트웨어가 만족스러운지를 평가하는 프로세스입니다. 기본적으로 사용자 요구 사항들이 소프트웨어에 모두 구현되었는지를 테스트해야 하며, 이들은 최종적으로 사용자를 만족시켜야 합니다.

    • 소프트웨어의 이슈들은 모두 수정하고, 모든 요구 사항대로 구현하였음에도 불구하고 사용자는 '불만족'을 표현할 수 있으며, 이 경우 검증(Validation)은 실패했다고 할 수 있습니다. 만족도 여부를 전적으로 사용자의 주관에 좌우되기 때문입니다. 특히, 불특정 다수의 프로젝트의 경우 검증(Validation)을 만족시키기는 굉장히 어렵다고 할 수 있습니다.

    • 고객의 니즈(Needs, 요구 명세)를 분석가가 받아들이는 데 있어 혹여나 주관적인 관점이 들어가 발생할 수 있는 문제 즉, 실제 고객의 니즈와 분석가가 받아들인 니즈가 차이가 나는지를 테스트하는 프로세스입니다.

 

2. 확인(Verification)

  • 목적 : 제품을 올바르게 만들고 있는가? (Are we building the product right?)

    • 요구사항 명세서와 설계 명세서에 따라 소프트웨어를 구현하였는지 혹은 결함이 있는지를 평가하는 프로세스입니다.

    • 사용자에게 소프트웨어를 보여주기 전에 확인(Verification)은 반드시 수행되어야 하며, 오류나 요구 누락이 존재하는 소프트웨어는 고객에게 신뢰를 줄 수 없기 때문입니다.

    • 고객의 니즈에 따라 제품이 설계에 맞게 만들어지고 있는가 혹은 제품이 명세서를 충족하는가를 검사하는 절차입니다.

 

3. 검증과 확인(Validation & Verification)

즉, 쉽게 말하면 고객의 요구사항」에 기반한 결과물을 도출하였는 지를 확인하는 과정/프로세스를 Validation이라고 하고, 이런 결과물을 만드는 과정이 충분히 납득할만한 전문적인 개발 과정을 거쳤는 지를 증명하는 과정을 Verification이라고 보시면 될 듯합니다.

 

사실 이 글에서는 설명을 쉽게 하기 위해 Verification과 Validation을 분리하여 설명하고 있지만, 실제 업무를 진행 시에는 정확하게 Verification과 Validation이 구분되지 않는 모호한 영역도 있습니다.

 
Verification & Validation

위 그림을 소개한 원문 글에서는 "모델링(Modeling)"에 대한 증명, 혹은 "모델링 검사(Modeling checking)" 시 소프트웨어 동작의 추상화된 동작 방식을 구축하고, 분석하여 증명하기 위한 목적을 기반으로 하여 V&V의 영역을 구분한다고 하였습니다.

 

위 그림에서 짚어 드리고 싶은 부분은 "testing"이라고 표시된 부분입니다. 이 부분은 실제 업무에서는 "동적 테스팅(Dynamic Testing)"으로 분류된 활동들이며, 해당 부분이 우리가 흔히 실무에서 Validation이라 부르는 부분입니다. 그리고 Unit testing이나 Automated testing은 Verification으로 분류되나 실제 목적은 Validation에 더 가깝다는 의미입니다.

 

"testing" 외 부분을 다룰 때, 반대로도 마찬가지입니다. Customer Acceptance Testing은 실제 수행하는 주체의 입장에서는 Validation 활동이라 볼 수 있으나, 전체 사업 영역 관점에서 보면 해당 부분은 Verification의 목적을 많이 가지고 수행하는 활동이라 할 수 있습니다.

 

4. 예시

 방송과 관계없습니다. 친숙한 예시를 들고자 했습니다.

 

(주)신박 기획에서 새로운 뮤직 앱 출시를 위해 앱 개발 의뢰가 (주)앞마당 대표인 당신에게 들어왔습니다. 신박 기획 대표인 지미 유는 앱 첫 페이지에 자체 추천 음악이 표시되도록 강력하게 요구하였습니다. 이에 어떤 알고리즘을 써야 할지에 대해 계속 많은 고민을 하고 리뷰(=Verification)하는 등 많은 노력을 들여 개발하였습니다. 결과물에 지미 유도 만족한 표정을 지었습니다.

 

이후 회사 직원들 상대로 앱을 오픈하여 이용형태를 봤더니, 대부분이 첫 페이지에 나오는 추천 음악을 듣지 않고 TOP 100 페이지로 이동하여 음악을 듣는 것을 알게 되었습니다.(=Validation)

 

이처럼 요구사항대로 잘 만들었으나 실제 사용자의 만족도와는 다를 수도 있습니다.

 

5. 검증과 확인 비교

이 두 용어는 사용하는 대부분의 사람들에게 매우 혼란스러운 용어입니다. 다음 표를 보고 검증과 확인의 차이를 알 수 있습니다.

 

Sr.No. Validation Verification
1 Validation addresses the concern: "Are you building the right thing?" Verification addresses the concern: "Are you building it right?"
2 Ensures that the functionalities meet the intended behavior. Ensures that the software system meets all the functionality.
3 Validation occurs after verification and mainly involves the checking of the overall product. Verification takes place first and includes the checking for documentation, code, etc.
4 Done by testers. Done by developers.
5 It has dynamic activities, as it includes executing the software against the requirements. It has static activities, as it includes collecting reviews, walkthroughs, and inspections to verify a software.

6

It is a subjective process and involves subjective decisions on how well a software works.

It is an objective process and no subjective decision should be needed to verify a software.

그 밖에도 관련하여 들려드리고 싶은 이야기가 많지만 다른 프스트에서 추가로 다루도록 하겠습니다. 추가로 이해관계자의 요구를 만족시키는지를 확인하는 밸리데이션(검증 validation) 또한 테스팅에 포함된다. 는 의미가 무엇인가요?" 포스트도 참고하여 주세요.

 

참여자 정보

• 글쓴이 : 품생품사, 천년나무, Bykj

• 검토한이 : 아이티마니

 

STEEG 개인 의견

※ STEEG 개인 의견은 각 전문가 개인이 경험한 경력에 따른 의견이므로, 주관적 견해가 개제될 수 있습니다. 개인 의견에 대한 내용은 본 블로그와 관련이 없습니다.

본 글과 관련한 전문가 의견이 없습니다.

 

관련 참고 자료

 ※ 아래는 필자들이 선정한 관련 외부 자료입니다. 
     아래 자료들은 필자들이 작성한 본문 의견과 다를 수 있으며, 필자들과 관련되지 않았을 수 있습니다.
 

The difference between Verification and Validation

Sometime in the 1990’s, I drafted a frequently asked question list for NASA’s IV&V facility. Here’s what I wrote on the meaning of the terms “validation” and ̶…

www.easterbrook.ca

 

Verification & Validation Model

Explains the various SDLC(Software Development Life Cycle) phases involved in verification and validation model to simultaneously progress on development and testing of the underlying software.

www.technolush.com

 

Validation Versus Verification | PM Study Circle

Validation and verification are independent procedures. The project manager uses them to make sure they have built the right product in the correct way.

pmstudycircle.com

 

Verification - Project Management Knowledge

 

project-management-knowledge.com

 

Validation - Project Management Knowledge

 

project-management-knowledge.com

※ 알림 : V&V의 영역 관련 내용을 처음 접한 곳은 자료를 찾던 중 발견한 지식스폰지님의 블로그 포스트입니다. 그 후, 지식스폰지님의 포스팅이 원본과 차이가 있는 부분을 발견하여, 해당 포스트에 소개된 원본 링크를 본 포스트의 저자들이 다시 공부하여 내용을 기입하였습니다. (P.S. - 지식스폰지님 감사합니다.)

 

검증(Verification)과 확인(Validation)

줄여서 V&V로 칭하기도 합니다. 검증은 제품이 요구사항을 만족하는지를 증명하는 활동으로써 Revie...

blog.naver.com

 

The difference between Verification and Validation

Sometime in the 1990’s, I drafted a frequently asked question list for NASA’s IV&V facility. Here’s what I wrote on the meaning of the terms “validation” and ̶…

www.easterbrook.ca

 

이 글을 공유합니다.

facebook twitter kakaoTalk kakaostory naver band

※ 알림 : 본 블로그는 소프트웨어 테스트&품질 카페 (https://cafe.naver.com/swtester)의 '앞마당멀티' 사이트이며, 본 블로그 자체에서 댓글, 방명록 등 커뮤니티 기능을 지원하지 않습니다.

일반적으로 공개 커뮤니티에서는 다양한 사람들의 의견이 모이기 때문에 많은 논의가 다양한 관점에서 이루어지기 적합하지만, 또 다양한 사람들이 모이는 커뮤니티의 특성상 객관성과 주관성이 모호하게 표현되기도 합니다. 그렇기 때문에 전문적인 지식을 정리하기에 적합하지 않다고 생각하여 전문 지식 컨텐츠 게시를 목적으로 할 공간을 확보할 필요가 있었습니다. 그런 이유로 본 블로그에서는 전문 지식의 내용이 희석되거나, 변질될 가능성이 높은 커뮤니티 기능을 분리하기로 결정하였습니다.

본 블로그 내용에 대해 논의하고 싶으신 내용이 있으시거나, 반론 게재, 수정 요청, 개인 의견 추가, 혹은 추가로 궁금하신 점들 등은 소프트웨어 테스터&품질 카페의 '질문과 답' 게시판에서 언급하여 진행해 주십시오. 필진들이 진중하게 논의하여 반영이 필요하다고 생각되는 내용은 참고하여 반영하겠습니다.