테스트 케이스 만들기

이 포스트는 “지식 제로부터 배우는 소프트웨어 테스트”를 읽고 학습한 내용입니다.

소프트웨어 테스트 지식의 필요성

사회에 나오고 제일 먼저 접했던 것이 소프트웨어 테스팅이라는 것이었다. 그 때는 팀장님이 스터디해서 발표 해봐 라고 하셔서 의무적으로 공부 했었다. Validation 이니 Verification 이니 Blackbox Test 니 Whitebox Test 니 학교에서 배운 적 없는 용어들이 난무하는 이 분야에 대해서 어렵게만 생각했었다.
개발 경력을 쌓아 나가면서 점점 소프트웨어의 품질에 대해서 관심이 생겼고, Project Manager 이자 Product Manager가 된 이 상황에서는 필수적인 지식이 되어야 했다. ( 근데 아는 게 없다. 회사 생활하면서 테스터들이 테스트 하는 것을 본 경험과 기본 개념 정도? )

이런 상황(PM 이 될 상황)들을 예상이라도 했듯이 1년 전에 테스터의 필요성을 설파하여, 지금은 팀에 테스트를 담당하는 멤버가 있다. 하지만 테스트 담당자가 대학교를 갓 졸업한 신입이라 “테스트는 그냥 만들어진 소프트웨어를 이것저것 눌러보다 발견된 문제점을 리포트 하는 것” 이라는 생각을 가지고 있었다. 1년이 지난 지금은 아니지만..

문제는 테스트 담당자는 있는데 경력이 없어서 테스트에 대해서는 문외한이라는 점이다. 그렇다고 가르쳐 주면서 일을 할 사람도 없다. 혼자서 공부를 하면서 일을 해 나가는데 어려움을 많이 겪고 있고, 나도 테스트 업무를 지시할 때 명확하지 못한 업무를 지시하는 경우가 많았다.

그래서 뒤늦게나마 책이라도 한권 읽고 중심이라도 잡아보자 라는 심정으로 읽게 된 책이 “지식 제로부터 배우는 소프트웨어 테스트” 이다.

책을 읽고 감상평만 쓰는 것은 항상 의미가 없다라는 생각이 들어서 실전에서 적용하는 사례를 책을 읽으면서 포스팅을 해 나갈 예정이다.

일단 오늘 읽은 데 까지만 포스팅!

소프트웨어 테스트 관련 책이 다 똑같듯이 테스트가 안 되면 어떤 문제가 발생하는지에 대한 것들이 초반에 나온다. 주로 많이 나오는게 나사 이야기 인데 여기서도…그 부분은 패스하고 “소프트웨어 테스트 실력 점검” 에 대해서 한번 해보겠다.

문제

예시

문제에 해당 하는 내용으로 일단 개발자 입장에서 프로그램을 작성 해 봤다.
Visual studio 2015 에서 C# 으로 작성 해 본 코드 이다.

예제 코드

테스트 케이스

이제 테스터 입장에서 테스트 케이스를 설계 해 보겠다.
( * 테스트 케이스란 무엇인가?
테스트 케이스가 무엇인지 정의한 내용을 구글에서 검색을 했는데 적당한 답을 찾지 못했다.잘 정리 해 두신 분도 있긴 한데.. 내가 생각하는 정의는 “개발한 소프트웨어의 동작에 대해서 검사할 항목” 이다.)
내가 설계한 테스트 케이스

정답은?

책에서 제시한 답

몇 개의 케이스를 놓쳤다. 특히 두 변의 합이 다른 한변의 합과 같음. 두 변의 합이 다른 한변의 합보다 적음 의 경우는 기하학적 지식(?)까지 요구 하는 내용이다. 사실 테스트라는게 소프트웨어의 도메인(적용되는 분야)에 대한 지식도 요구되는 작업은 맞다. 그래서 인정!

테스트 케이스를 작성하는 것은 프로그램을 작성하는 것보다
실제로 더 어려운 일입니다.

작가의 말도 인정!
다음 포스팅에서는 화이트박스 테스트와 블랙박스 테스트에 대해서 읽고 정리 해 보려고 한다.

공유하기