모델 기반 테스팅 실전 — 모델 표기법·생성 알고리즘·모델 커버리지·도구 실습·유지보수
케이스를 손으로 쓰는 대신 모델을 유지보수한다. UML 상태기계·BPMN 등 모델 표기법과 모델 품질 판단 기준, 테스트 생성 알고리즘과 상태·전이·경로 모델 커버리지, GraphWalker·TESTONA·Tosca 모델링 실습, 요구사항을 모델로 옮기는 워크숍과 모델 유지보수 비용 판단을 다룬다.
★ 모델을 고치면 테스트가 따라온다 — 그래서 모델의 품질이 곧 테스트의 품질이다.
학습 목표
이 모듈 한 줄 요약 — "그림을 그려 두면 시험을 도구가 뽑아 준다". 모듈 3 에서 개념으로 본 것을 실제로 운영할 수 있는 수준까지 내린다. 화면 흐름을 그림으로 그리고, 그 그림이 맞는지부터 검사하고, 거기서 시험 경로를 뽑는다. 그림이 틀리면 틀린 시험을 꼼꼼하게 만들어 낸다는 것이 가장 중요한 주의점이다.
모듈 3(레슨 11)에서 "모델을 도구가 순회해 케이스를 뽑는다" 는 개념을 봤다. 이 모듈은 그 개념을 실제로 운영할 수 있는 수준 까지 끌어내린다. UML 상태기계·BPMN·결정 표가 각각 어떤 시스템에 맞는지 고르고, 모델 자체를 도달 불가 상태·데드엔드·비결정성·가드 중복이라는 기준으로 검사한다. 상태·전이· N-스위치·경로 커버리지의 정의를 같은 모델에 적용해 케이스 수가 어떻게 폭발하는지 숫자로 확인하고, GraphWalker 로 모델 파일에서 경로를 뽑아 실행 코드에 잇는다. 마지막으로 요구사항을 모델로 옮기는 워크숍을 진행하고, 제품이 바뀔 때 모델·생성기· 실행 코드 중 무엇을 고치는지 — 그리고 MBT 를 언제 쓰지 말아야 하는지 — 를 판단한다.
완료 후 할 수 있는 것
- 대상 시스템의 성격에 맞는 모델 표기법(UML 상태기계·BPMN·결정 표)을 근거와 함께 고를 수 있다
- 모델을 리뷰해 도달 불가 상태·데드엔드·비결정 전이·가드 중복·추상화 수준 불일치를 찾아낼 수 있다
- 상태·전이·N-스위치·경로 커버리지를 구분해 설명하고, 같은 모델에서 기준별 케이스 수를 계산할 수 있다
- 무작위·결정적 순회·순회 최적화(중국인 집배원 문제) 생성 방식의 산출물 성격 차이를 설명할 수 있다
- GraphWalker 모델 파일을 작성하고 생성기·정지 조건을 지정해 경로를 뽑아 실행 코드에 연결할 수 있다
- 요구사항·명세에서 모델을 뽑는 워크숍을 진행하고 그 자리에서 드러난 명세 공백을 기록할 수 있다
- 모델 유지보수 비용을 추정하고 MBT 도입이 손해가 되는 조건을 체크리스트로 판정할 수 있다
채용시장에서의 위치
MBT 는 채용공고에 자주 등장하는 키워드가 아니다. 그래서 오히려 면접에서 차별점이 되는 영역 이다. ISTQB 는 모델 기반 테스팅을 별도 전문 자격 (CT-MBT, Certified Tester Model-Based Tester)으로 두고 있어, 자격 체계 안에서도 독립 분야로 인정된다 — 실러버스 범위는 ISTQB 공식 사이트에서 직접 확인하는 것을 권한다.
실무에서 이 역량이 요구되는 자리는 뚜렷하다. 워크플로 엔진·결제 라이프사이클· 통신 프로토콜·차량 ECU 처럼 상태가 많고 전이 규칙이 규제 문서로 고정된 도메인이다. 금융·통신·자동차·의료기기 QA 공고에서 "상태 기반 테스트 설계", "요구사항 추적성", "테스트 설계 자동화" 로 표현되는 요구가 대개 이 역량을 가리킨다.
다만 면접에서 평가되는 것은 도구 숙련도가 아니다. "모델을 유지할 사람이 없어서 반년 뒤 모델이 낡았습니다" 라는 실패를 설명할 수 있는지, 그리고 "이 기능에는 MBT 를 쓰지 않는 게 맞습니다" 라고 판단할 수 있는지 가 층을 가른다. 생성 도구는 몇 주면 익히지만 그 판단은 그렇지 않다.
레슨 (4개)
- 고급약 35분
모델 표기법과 모델 품질 — UML 상태기계·BPMN·결정 표
MBT 를 도입하면 유지보수 대상이 케이스 문서에서 모델로 옮겨간다. UML 상태기계·BPMN·결정 표가 각각 어떤 시스템에 맞는지 고르고, 도달 불가 상태·데드엔드·비결정 전이·가드 중복과 누락·추상화 수준이라는 기준으로 모델 자체를 리뷰하는 절차를 익힌다.
- 고급약 40분
테스트 생성 알고리즘과 모델 커버리지 기준
같은 모델에 기준만 바꿔 끼우면 케이스 수가 8개에서 27개로, 전이 하나를 더하면 39개로 뛴다. 상태·전이·N-스위치·경로 커버리지의 정의와 폭발 규모를 실제 숫자로 계산하고, 무작위·결정적·순회 최적화 생성 방식의 산출물 성격을 비교한 뒤, 생성된 경로의 기대 결과를 어디서 얻을지 정한다.
- 고급약 45분
MBT 도구 실습 — GraphWalker 로 모델에서 경로 뽑기
모델 파일을 JSON 으로 쓰고 검사한 뒤, 생성기와 정지 조건을 지정해 경로를 뽑고 실행 코드에 잇는 전 과정을 GraphWalker 로 돌려 본다. 공식 문서로 확인한 문법과 플래그만 쓰고, 확인되지 않은 상용 도구의 라이선스 상태는 단정하지 않는다.
- 고급약 40분
요구사항을 모델로 옮기는 워크숍과 유지보수 비용
모델은 혼자 그리면 틀린다. 요구사항과 명세에서 모델을 뽑는 워크숍을 누구와 어떤 순서로 진행하는지, 모델이 틀렸을 때 어떤 신호로 드러나는지, 제품이 바뀔 때 모델·생성 설정·어댑터 코드 중 무엇을 고치는지 정리한다. 그리고 가장 중요한 질문 — MBT 를 언제 쓰지 말아야 하는가 — 을 도입 판단 체크리스트로 답한다.