brunch

You can make anything
by writing

C.S.Lewis

by 이지원 Oct 01. 2022

17화 테스트 설계 기법 EP/BVA Partition

소프트웨어 테스팅

유효한 파티션과 유효하지 않는 파티션에 대해 알아보겠습니다. 사실 앞서 기법 원리를 살펴보며 언급하지 않았지만 이미 알고 있는 내용일 수도 있는데요. 다룰까 말까 고민 끝에 EP/BVA 설명을 이대로 끝마칠 경우 팥 없는 붕어빵 느낌이 강해서 파티션 개념까지 다루게 되었습니다. 개념 설명을 위해 만들어본 그림을 살펴보겠습니다.

쉽게 생각해서 유효한 파티션은 사용자가 입력 가능한 범위에서의 값입니다. 비 유효한 파티션은 사용자가 입력 가능한 범위를 벗어난 값이라고 이해하면 좋습니다. 실무에서는 요구사항 범위에 따라서 Invalid와 Valid 영역 모두 테스트하는 것이 좋습니다. 따라서 등가 분할만 단독으로 사용하기보단 경곗값 분석을 함께 활용하면 위 그림처럼 커버할 수 있는 테스트 커버리지가 많아지는 것이죠.



일부로 가득 차 있게 만들어봤지만 그래도 EP와 BVA를 함께 활용하니 든든해 보이죠? :) 만약 EP만 활용했다면 MIN/MAX 경계구간에서의 BVA 값들은, EP 적용 간에 대표 값으로 다루지 않았을 경우 커버하지 못합니다. 따라서 해당 구간에 만약 이슈가 발생한다면 EP로는 발견하기 어려운 이슈입니다.



보충 설명을 위해 몇 가지 요구사항을 만들어보겠습니다. 서비스 중인 웹 서비스의 회원가입 규칙입니다. 나이가 19세 미만인 경우 가입 불가 오류 메시지를 출력해야 합니다. 하지만 19세 이상 80세 미만인 경우 정상 처리되면서 사용자에게 회원가입 완료 팝업을 출력해야 합니다.



이때 사용자가 입력할 수 있는 유효한 파티션(Valid Partition)은 무엇일까요? 유효한 파티션은 쉽게 말해 사용자가 해당 기능을 사용할 수 있는 값이라고 이해하시면 좋습니다. 19세부터 80세까지네요. 19세부터 80세까지의 유효한 파티션 중에서 28세를 테스트 값으로 선정하겠습니다. 즉 회원가입이 가능토록 유효한 값을 선택한 것이죠.



비 유효한 파티션(Invalid Partition)은 무엇일까요? 19세 미만이거나 80세 이상이겠죠. 즉 회원가입 불가한 데이터라고 생각하시면 좋습니다. 음수가 될 수도, 양수 값이 200처럼 유효한 파티션에 비해 너무 클 수도, 혹은 "six"와 같은 문자열일 수도 있습니다. 즉 19세 이상 80세 미만인 경우에만 회원가입 가능할 때, 18세도 비 유효한 파티션 중 하나입니다. 하지만 음수 값, 문자열 등도 비 유효한 파티션 중 하나이기 때문에 비유효 한 파티션을 어디까지 테스트 데이터로 선택할 거냐는 꽤 중요한 문제일 수 있습니다.



목표로 하는 품질 수준에 따라 다르겠지만 제 생각에는 일정이 넉넉하다면 많은 경우의 수를 테스트해보는 것이 좋을 것 같습니다. 하지만 일정이 부족하다면 유효, 비 유효 파티션 모두 최소한으로 진행하는 것이 좋을 것 같습니다.



페이스북 회원가입을 살펴보면 나이에 음수 값을 사용할 수 없도록 하여 사용자가 잘못된 파티션을 사용하는 것을 방지했습니다. 음수 값을 사용할 수 없기 때문에 테스트가 불가하네요. 경우의 수가 줄어들었기 때문에 테스터 입장에서는 좋은 현상입니다. 나이가 정말 많은 경우를 살펴보니 1905년이 마지막입니다. 대략 115세~117세쯤 되어 보입니다. 페이스북은 오래 살아가는 사람들을 위해서도 이용 가능하게끔 생년월일을 1905년까지 허용했네요.



한 가지 재밌는 상황을 살펴보고 마치겠습니다. 예를 들어, 오늘은 2016년 2월 29일입니다. 13세 미만일 경우 서비스 중인 웹 서비스 회원가입이 불가합니다. 이때 경계 값은 2003년 2월 29일일까요? 아니죠. 2016년은 윤년이기 때문입니다. 윤년은 4년마다 다가오는 해로 2월 29일이죠. 따라서 2003년으로 거슬러 올라가면 2003년에는 2월 29일이 없습니다. 2003년 2월은 28일에 끝나버리죠. 따라서 경계 구간은 2003년 2월 28일이 됩니다. 이렇듯 요구사항 분석과 테스트 디자인 활동은 테스터의 꼼꼼함과 다양한 상황을 도출할 수 있는 능력이 요구됩니다.

매거진의 이전글 16화 테스트 설계 기법 경곗값 분석(BVA)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari