기본 콘텐츠로 건너뛰기

소원의 나무로 테스트 케이스 만들기

소원의 나무라는 기법이 있습니다.

아마 여러분은 한번도 들어보신적이 없는 기법일 것입니다.

왜냐하면 이 기법은 제가 만들어낸 기법이기 때문입니다. 제약이론의 사고 프로세스의 기본 뼈대를 응용하여 이 기법을 만들어서 사용한지 벌써 2년정도가 되었습니다.

아주 예전에 UX Camp Seoul에서 발표했던 적도 있지만 아마 기억하시는 분은 거의 없으실 것입니다.

기본적인 내용은 옛날 옛적 제 글을 보시면 아주 조금 도움이 되실 것입니다.

만드는 사람이 행복해야 쓰는 사람도 행복하다.(소원의 나무 - UXcampSeoul 발표자료)

이번에 모처에 강의할 교육자료를 만들면서 제가 만든 이 기법으로 테스트 케이스를 만드는 방법을 PPT 자료로 만든것을 공유해볼까 합니다.

해당 강의가 진행될 확률이 적어져서 이왕 만든 자료를 그냥 가지고 있는 것도 아깝고, 혹시라도 관심을 가지고 써주시는 분이 계실지도 모른다는 생각에 공유를 해봅니다.

관심 있으신 분께서는 아낌없는 피드백을 주시면 고맙겠습니다.

사실 '소원의 나무'는 기법이라고 부르기도 좀 부끄럽습니다.

이 기법이 어디에선가 보장성이 검증 받은 것도 아니고 어떠한 논리적인 배경이나 논문 등에 소개된 적도 없기 때문에 좀 부끄럽기는 합니다. 하지만 2년 동안 제가 써본바로는 꽤 유용하다고 생각되는 기법입니다.

저는 주로 탐색적 테스팅과 같은 활동에서 주로 사용하고 있습니다.

어쩌면 탐색적 테스팅이라는 방법론에 딱 부러지게 명확한 설계 기법이 없는 상황에서 이 기법이 분명 유용하다는 생각도 해봅니다.

자, 그럼 사설이 너무 길어졌으므로 바로 '소원의 나무'로 테스트 케이스 만들기를 진행하도록 하겠습니다.


소원의 나무로 테스트 케이스를 만드는 순서는 위와 같습니다.

가장 중요한 포인트는 제약조건을 식별하는 것입니다.


예제로 안드로이드 마켓에서 구할 수 있는 'iPlayer'라는 앱을 이용했습니다.


기존에 기능리스트가 존재하는가와 관계 없이 우선 제품을 사용하면서 기능리스트를 작성합니다.

만약 기능리스트가 있다면 해당 기능리스트와 작성한 기능리스트를 비교 검증하면 좋습니다.

만약 기능리스트가 없다면 작성한 기능리스트는 개발자 등의 리뷰를 거치는 것이 좋습니다.


여러 기능 중에서 반복재생 기능에 대하여 작성한 초기 시나리오입니다.

여기서 중요한 것이 저 시나리오만으로는 실제로 결과값을 확인할 방법이 없기 때문에 결과값을 확인하기 위한 제약조건을 식별하고 시나리오를 확장하는 것이 이 기법의 핵심입니다.


위의 빈칸에 들어갈 내용이 무엇일까요?

모범답안 보기


도출된 제약 조건을 포함하여 시나리오를 확장합니다.


그리고 확장된 시나리오에 대하여 동일한 방식으로 제약 조건을 찾습니다.

위 빈칸과 검증식은 여러분이 직접 해보시기 바랍니다.


제약 조건을 반복해서 도출하면서 시나리오를 확장하다보면 결국에는 테스트 데이터에 도달하게 됩니다.

이 때 테스트에 필요한 테스트 데이터, 테스트 환경 등을 정합니다.


정해진 테스트 데이터와 테스트 환경 등과 시나리오를 결합하면 테스트 케이스가 완성됩니다.


테스트 케이스는 예외 흐름까지 고려해서 작성하도록 합니다.

소원의 나무에 대한 소개는 여기까지입니다.

이 기법은 확실히 테스터의 역량에 따라 테스트 케이스의 품질에 대한 편차가 클 수밖에 없습니다.

반면에 그러한 편차를 보정해줄 도구는 취약한 편이고 대체적으로 그러한 편차 보정을 집단 지성의 힘을 빌리는 형식을 취하고 있습니다.

시간은 없고 좀 더 논리적으로 체크리스트나 테스트 케이스를 작성하고 싶으신 분들은 한번 적용해 보시기 바랍니다.

댓글

이 블로그의 인기 게시물

스위치봇 & 스위치봇 허브 미니 간단 사용기

제 블로그에 예전부터 오셨던 분들은 제가 사브작 사브작 홈 오토메이션을 어설프게 해온 것을 아실겁니다. 작년부터 너무 하고 싶었던 도어락 자동화에 도전해봤습니다. 우리 나라에 자체 서비스로 앱을 통해 도어락을 제어하는 제품은 꽤 있습니다. 게이트맨도 있고, 키위도 있고, 삼성도 있죠.. 그런데.. 전 그것보다 구글 어시스턴트를 지원하는 도어락이 필요했는데... 그런건 안만들더라구요.. 꼭 필요한건 아니지만 웬지 해보고 싶은데... 언제 제품이 출시될지도 몰라서.. 가능한 방법을 찾아보다가.. 스위치봇이라는 제품으로 도어락을 버튼을 꾹 누르는 방법을 찾아서 스위치봇이 직구가 아닌 국내에 출시되었길래 낼름 구매해서 도전해봤습니다. 스위치봇 제품에 대한 내용이나 구매는  https://www.wakers.shop/  에서 하시면 됩니다. 저는 스위치봇에 스위치봇을 구글 홈에 연결시키기 위해 스위치봇 허브 미니까지 구매했습니다. 스위치봇 허브 미니가 없으면 스위치봇을 외부에서 제어하거나 구글 홈에 연결할 수 없습니다. 그리고 제가 스위치봇 허브 미니를 구매한 이유 중 다른 하나는 이 제품이 RF 리모컨 기능이 지원됩니다. 집에 있는 모니터를 제어할 필요가 있어서 이참 저참으로 같이 구매했습니다. 제품 등록은 어렵지 않습니다. 여기서는 스위치봇 허브 미니에 RF 리모컨을 등록해서 구글 어시스턴트로 제어하는 방법을 소개해드릴까 합니다. 제가 스위치봇 허브 미니로 모니터를 제어하고 싶었던 부분은 컴퓨터에서 크롬캐스트로 외부 입력을 때에 따라 바꿔야 하는데.. 그때마다 리모컨을 찾는게 너무 불편해서였습니다.  어차피 리모컨은 외부 입력 바꿀 때 빼고는 쓸 일도 없는지라.. 매번 어디로 사라지면 정말 불편해서 이걸 자동화 하고 싶었습니다. 그런데, 처음에 스위치봇 허브 미니를 등록하고 여기에 리모컨을 등록하니.. 구글 홈에 등록된 리모컨이 자동으로 등록이 됩니다. 그런데, 등록된걸 확인해보니 전원 On/Off만 제어되는 것이고, 나머지 버튼은 구글 홈...

murianwind의 트위터 - 2011년 12월 30일 ~ 2012년 01월05일

Presentation: Keynote: Predictability and Measurement with Kanban http://t.co/gitzf2Qv posted at 16:05:31 The Lean Startup Frenzy http://t.co/PwzqKTQl posted at 16:07:42 [테스팅 히치하이커를 위한 안내서] murianwind의 트위터 - 2011년 12월 23일 ~ 12월 29일 http://t.co/mE3hIC2t posted at 16:16:37 예다함은 배가 부른건지.. 내가 친히 가입을 해주겠다고 홈페이지 상담 게시판에 글까지 남겼거만 해가 바뀌도록 연락이 없다. 이거 내가 가입 좀 시켜달라고 전화를 해야하는건가? 주객전도인 것 같은데... posted at 16:34:20 RT @n0lb00 : 2011년 좀 더 생산적이기 위한 무료 안드 앱 20+선e http://t.co/FTJqQFtV posted at 14:23:34 2011년은 아내의 3도 화상으로 액땜.. 송구영신예배는 못가고 그냥.. 집에서.. 평소처럼.. 아웅다웅.. 하지만 나의 새해는 언제나 설날 기준.. 나에게 내일은 아직 2011년... posted at 23:20:10 [테스팅 히치하이커를 위한 안내서] 내 인생 첫 차량 구매 후기 - 쉐보레 스파크 http://t.co/m6dJp9sn posted at 16:56:15 웹 접근성 평가 도구 N-WAX http://t.co/lU8f1lBF posted at 15:25:21 [4일(수) 조간] 한심한 MB..."뭐? 배추국장, 샴푸과장 만들라고?" http://t.co/faY21DG0 posted at 10:02:04 Customer Experience v User Experience http://t.co/uk6ZDRy1 posted at 23:00:27 10 Reasons to Root Your Android Device [Android]...

에이전틱 AI 시대의 소프트웨어 테스팅: 왜 '아키텍트' 역량이 필요한가?

최근 "프로그래밍이란 무엇인가?"라는 근본적인 질문에서 출발해, 하드웨어의 가장 밑바닥인 CPU 명령어 디코더의 원리부터 최근 화두인 에이전틱 AI(Agentic AI)와 바이브 코딩(Vibe Coding)에 이르기까지 AI와 함께 이런 저런 대화를 나누어 보았다.. 사실 내가 처음 컴퓨터를 공부할 때부터 컴퓨터가 내 명령을 어떻게 이해하고 처리해서 이런 결과가 출력되는지는 정말 이해하기 어려운 마법 같은 것이었다.  그래서인지.. 나이가 들어도 프로그래밍은 여전히 어렵다. 하지만 요즘은 AI와 함께 무언가를 만드는 재미를 만끽하고 있다.  어쨌든 AI와의 즐거운 대화의 끝에서 필연적으로 마주한 질문이 있다. "코드를 AI가 스스로 짜고 조립하는 시대에, 소프트웨어 테스팅은 무엇이며 우리는 어떤 역량을 키워야 하는가?" 지금까지의 고민을 바탕으로, 다가오는 AI 시대에 테스트 엔지니어가 나아가야 할 방향과 '아키텍트(Architect)' 역량의 중요성에 대해 정리해 본다. 현대의 소프트웨어 개발은 무(無)에서 유(有)를 창조하는 것이 아니다. 전 세계의 천재적인 엔지니어들이 만들어둔 수많은 라이브러리와 프레임워크라는 '레고 블록'을 조합해 원하는 서비스를 구축하는 과정이다. 내가 젋어서 이걸 잘 이해만 했었어도.. 테스터라는 직업의 세계에 발을 들이지는 않았을 텐데.. 어린 나이에 너무 생각이 많았었다. 그런데 에이전틱 AI가 등장하면서 거대한 변화가 일어났다. 이제는 인간이 직접 레고를 조립할 필요조차 없어지고 있다. "이런 기능을 만들어줘"라는 의도(Intent)만 던지면, AI가 기존에 학습한 방대한 오픈소스와 코드를 바탕으로 알아서 뼈대를 세우고 코드를 완성해 낸다. 개발자는 직접 코드를 타이핑하는 노동자에서, AI 에이전트를 부리는 총괄 기획자로 역할이 변하고 있는 것이다. 하지만 AI가 만들어내는 코드는 필연적인 한계를 지닌다. AI는 과거 인류가 작성한 코드를 학습하...