시각에 따른 테스트
공장에서 제품을 생산할 때는 각 공정 단계에서 필요한 텟트를 거치고 통과해야 다음 단계로 넘어간다. 이렇게 여러 단계를 거쳐 최종 생산된 제품도 시장에 내보내기 전에 마지막으로 검수하는 과정을 거쳐 이상이 없어야 출하한다. 소프트웨어도 각 단계에서는 개발자의 시각으로 테스트 하고 완선된 제품은 사용자의 시각으로 테스트 하는데, 이를 각각 확인(verification)테스트와 검증(validation)테스트라 한다.
확인(verification) 테스트
사용자가 1부터 10까지 곱하는 프로그램을 주문했는데, 개발자가 착각해 1부터 10까지 더하는 프로그램을 개발했다고 하자, 확인 테스트를 수행하면 1부터 10까지 더하는 계산과정이 정확하고, 결과가 맞는지ㅏㄴ 체크한다. 결과가 정확히 55이면 성공으로 판정된다. 그러나 실제 사용자가 원하는 것은 덧셈이 아니고 곱셈이므로 확인 텟트만으로는 사용자가 원하는 것을 개발했는지 알 수 없다.
이처럼 확인 테스트는 각 단계에서 개발자의 시각으로 테스트하는 것으로, 설계서대로 만들었는지를 테스트하는 것이다. 즉 이전 단계에서 생성된 산출물이 현 단계의 산출물에 정확히 반영되었는지를 테스트한다. 요구문석 명세서의 내용이 설계서에 전부 반영되어 있어야 하고, 설계서의 내용대로 코딩이 이루어져야 한다. 이것은 일치성을 통해 확인할 수 있다.
그런데 설계서가 요구 분석 명세서를 완벽하게 반영했다면 문제가 되지 않지만, 그러지 않은 경우에는 결국 틀린 요구사항을 가지고 개발하게 된다. 즉 확인(verification) 테스트만으로는 사용자의 요구가 완벽하게 반영되지 않을 수 있다. 그러면 아무리 개발 과정을 완벽하게 테스트했다고 해도 사용자에게는 쓸모없거나 불완전한 개발 결과가 나오게 된다.
검증(validation) 테스트
앞서 든 예에서 사용자가 원하는 것은 1부터 10까지의 곱셈이었는데 프로그램은 덧셈으로 개발되어 확인테스트에서 오류를 찾지 못했다. 이와 달리 검증(validation)테스트는 곱셈을 했는지 체크한다. 즉 사용자의 요구사항대로 만들었는지를 테스트한다. 이 예를 검증 테스트하면 사용자의 요구가 덧셈이 아닌 곱셈이므로 결과는 실패로 판정된다. 즉 검증은 사용자가 원하는것을 만들었는지, 완성된 제품이 사용자의 요구사항을 모두 충족하는지 사용자의 시각에서 테스트한다. 따라서 검증 테스트를 통해 소프트웨어가 사용자의 목적에 맞게 구현되었지 알 수 있다. 여기서 사용자의 목적에 맞게 개발했는지는 사용자의 요구가 요구 분석 명세서에 완전히 반영되었다고 했을 때 요구분석명세서대로 만들었는지가 기준이 된다.
결국 확인 테스트와 검증테스트를 함께 사용해야 좀 더 강력한 테스트가 될 수 있으며 이 둘을 묶어 V&V라고도 한다
'전공 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어 공학] 사용 목적에 따른 테스트 (0) | 2022.06.19 |
---|---|
[소프트웨어 공학] 소프트웨어 테스트의 분류 (0) | 2022.06.19 |
[소프트웨어 공학] 소프트웨어 테스트 (0) | 2022.06.19 |
[소프트웨어 공학] 행위 패턴(Behavioral Patterns) (0) | 2022.06.19 |
[소프트웨어 공학] 구조 패턴(Structural Patterns) (0) | 2022.06.19 |