품생품사(品生品死)

소프트웨어 품질에 살고 품질에 죽는 그런 평범한 일상 블로그

EDUCATION

[TMMi] 레벨.2 기준 상태전이 테스팅에 대해서 알아보자

품생품사(品生品死) 2021. 1. 2. 00:44
반응형

정책, 전략, 가이드(410) - 테스트 설계 명세 가이드 : 상태 전이 테스팅(4) #7

표준 테스트 설계 명세 가이드에 대해서 알아보도록 하겠습니다.

많은 설계 기법을 다루어야 하기 때문에 8 파트로 나누어서 작성을 하도록 하겠습니다.

 

정책/전략/가이드의 문서 번호는 410번이며, 이 전 글을 참고하시기 바랍니다.

 

[TMMi : Level 2] 프레임워크 및 문서 양식 #1

목차 TMMi Level 2 : 프레임워크 및 문서 양식 #1 TMMi에 대해서는 동일 카테고리 내에 블로그가 있습니다. TMMi(Test Maturity Model integration) 목차 The TMMi model (see figure below) looks at software te..

qa-testing.tistory.com

 

개정 이력

{고객사명} SW 정책/전략/가이드 작성자  
테스트 설계 명세 가이드
(상태전이 테스팅)
검토자  
승인자  

 

<관련 부서 합의>

부서 이름 Comment 일자
       
       
       

<문서 제/개정 이력>

번호 제/개정 일자 제/개정 내용 문서 버전 개정자 승인자
           
           
           

 

1. 개요

1) 목적 

📌 본 문서는 테스트 설계 기법 적용방법의 가이드를 목적으로 한다.
📌 실제 프로젝트 산출물을 테스트 베이시스로 하여 테스트 케이스 설계 기법 적용 과정을 예시로 들어 설명한다.
📌 각 기법에 대한 기본적인 내용은 SW테스팅 관련 서적 또는 교육교재 등을 참조하기 바란다.

2) 적용범위

📌 본 가이드는 ABC사(이하 ‘당사’ 라 함)의 SW 테스팅을 수행하기 위한 모든 설계 시 적용한다.

3) 참고 문서

📌 개발자도 알아야 할 소프트웨어 테스팅 3판

📌 ISTQB Syllabus Test Analysit

 

[v.2011-KOR] ISTQB CTFL 실라버스 요약 : 테스트 설계 기법 - Chapter 4

목차 ※ "개발자도 알아야 할 소프트웨어 테스팅 실무"를 기반으로 요약 ※ Part 4.테스트 설계 기법 4.1 테스트 설계 및 구현 프로세스 < 테스트 케이스 포함내용 > 1. ID(식별번호) - 테스

qa-testing.tistory.com

4) 문서 관리 담당자

📌 본 문서의 관리 담당자는 아래와 같음

역할 담당부서 담당자 내용
문서 책임자 OOO OOO 본 문서 생성 및 수정 권한 부여
문서 검토자 OOO OOO, OOO 작성 완료된 본 문서에 대하여 검토하고 의견 개진
문서 승인자 OOO OOO 본 문서의 베이스라인을 승인하고 배포 허가

 

2. 테스트케이스 설계 기법 예시

👀 각 기법 별로 본 문서를 참고한다.

  • 동등 분할 및 경곗값 분석 기법
  • 페어 와이즈 테스팅
  • 결정 테이블 테스팅
  • 상태 전이 테스팅 > 이번에 다룰 내용
  • 기본 경로 테스팅
  • 제어 흐름 테스팅
  • 최소 비교 테스팅
  • 유스 케이스 테스팅

3. 테스트케이스 설계 명세서 작성 가이드(기존 동일)

1) 절차

선행 작업 리스크 분석 및 레벨별 테스트 설계 전략 수립
명세 절차 리스크 아이템 분석서 참조
리스크 아이템 별 테스트 컨디션 도출(기법을 적용, 테스트케이스 설계 기법 예시 참조)
각 테스트 레벨의 설계 전략에 맞는 템플릿 선정(기능 베이스, 시나리오 베이스)
테스트 스위트 작성(케이스 및 프로시저)
후행 작업 테스트 실행 및 로그 생성
테스트 결과 분석

2) 역할과 책임

테스트 매니저(또는 리더) "테스트 설계 가이드"의 유지 관리, 수정 및 배포에 대한 책임이 있다.
테스트 엔지니어 "테스트 설계 가이드"를 기반으로 테스트 케이스 도출 시 참조하여 개발한다.

3) 표준 템플릿

👀 ABC사 테스트 설계 명세서 템플릿. xlsx

 

4. 결정테이블 테스팅

1) 기법 적용 절차

① 테스트 베이시스에서 상태와 이벤트를 식별하여 상태-이벤트 테이블을 작성한다.
② 테스트 설계 강도(n-Switch)에 따라 전이 트리를 작성한다.
③ 전이 트리의 모든 유효 전이를 커버하는 유효한(Valid) 테스트 케이스를 작성한다.
④ 비유효 전이를 커버하는 비유효 한(InValid) 테스트 케이스를 작성한다.
⑤ 전이의 이벤트 가드(Guard)에 대한 테스트 케이스를 작성한다.
⑥ 위에서 도출한 유효, 비유효, 가드 테스트 케이스를 모두 포함하는 테스트 프로시저를 작성한다.

2) 테스트 베이시스

👀 Capture - Image Stitching 메뉴

This is audit_00011
이미지 스티칭 메뉴 예시

👀 테스트 베이시스는 요구사항을 포함하는 모든 문서를 얘기한다. 자세한 용어의 뜻은 아래 링크를 확인 바랍니다.

 

[v.2018-KOR(ㄱ ~ ㅅ)] Standard Glossary of Terms used in Software Testing Version 3.2

"[참고] Ctrl+F로 찾아서 확인하세요." "Please, Use (Ctrl+F) to find it." 목차 GUI 그래픽 사용자 인터페이스(Graphical User Interface)의 약자 IDEAL 시작, 기획, 구현을 위해 로드맵 역할을 하는 조..

qa-testing.tistory.com

 

[v.2018-KOR(ㅇ ~ ㅎ)] Standard Glossary of Terms used in Software Testing Version 3.2

"[참고] Ctrl+F로 찾아서 확인하세요." "Please, Use (Ctrl+F) to find it." 목차 아웃풋 output 참조 : ISO 24765 컴포넌트나 시스템에서 외부 목적지로 전송되는 데이터 안전성 safety 참조 : IS..

qa-testing.tistory.com

3) 기법 적용

📌 상태 - 이벤트 테이블 작성

👀 Image Stitching 메뉴를 분석하여 상태와 이벤트를 각각 식별하고 상태-이벤트 테이블을 작성한다.

✔ "상단/하단/전체 이미지 편집" 상태: 상단/하단/전체 이미지가 선택되거나 편집 중인 상태를 의미

 "Stitching Point 삽입됨" 상태 : Stitching Point가 삽입되어 상단/하단/전체 이미지가 선택되거나 편집 중인 상태를 의미

이벤트 / 상태 상단 이미지 편집 하단 이미지 편집 전체 이미지 편집 Stitching Point 삽입됨 Stitching Preview Select Series 종료
Tools
- Select [상단]
- 상단 이미지 편집 상단 이미지 편집 Stitching Point 삽입됨 n/a n/a n/a
Tools
- Select [하단]
하단 이미지 편집 - 하단 이미지 편집 Stitching Point 삽입됨 n/a n/a n/a
Tools
- Select [전체]
전체 이미지 편집 전체 이미지 편집 - Stitching Point 삽입됨 n/a n/a n/a
Tools
- Non Select [Panning, Zoom, Invert, Reset, CCW 90° Rotation, CW 90° Rotation, Horizontal Flip, Vertical Flip]
상단 이미지 편집 하단 이미지 편집 전체 이미지 편집 Stitching Point 삽입됨 n/a n/a n/a
Insert Stitching Point - - Stitching Point 삽입됨 - n/a n/a n/a
Delete Stitching Point - - - 전체 이미지 편집 n/a n/a n/a
Select All Image 전체 이미지 편집 전체 이미지 편집 - Stitching Point 삽입됨 n/a n/a n/a
Swap Image 상단 이미지 편집 하단 이미지 편집 전체 이미지 편집 전체 이미지 편집 n/a n/a n/a
Stitching n/a n/a n/a Stitching Preview n/a n/a n/a
Save n/a n/a n/a n/a Select Series n/a n/a
Cancel n/a n/a n/a n/a Stitching Point 삽입됨 n/a n/a
Close 종료 종료 종료 종료 n/a n/a n/a

📌 상태 전이도

👀 상태-전이 테이블을 기반으로 상태 전이도를 작성한다. 상태 전이도가 존재하는 경우에는 상태 전이도를 기반으로 상태-전이 테이블을 작성한다.

 

This is audit_00012
상태-전이도 예시

📌 전이 트리 작성(0-Switch 기준)

👀 상태-전이 테이블을 기반으로 0-Switch 수준의 상태 전이 경로(트리)를 도출한다. Switch 수준은 테스트 전략이나 테스트 컨디션에서 결정된다.

시작 상태 종료 상태 Path ID
상단 이미지 편집 하단 이미지 편집 Path01
전체 이미지 편집 Path02
상단 이미지 편집 Path03
전체 이미지 편집 Path04
상단 이미지 편집 Path05
종료 Path06
하단 이미지 편집 상단 이미지 편집 Path07
전체 이미지 편집 Path08
하단 이미지 편집 Path09
전체 이미지 편집 Path10
하단 이미지 편집 Path11
종료 Path12
전체 이미지 편집 상단 이미지 편집 Path13
하단 이미지 편집 Path14
전체 이미지 편집 Path15
Stitching Point 삽입됨 Path16
전체 이미지 편집 Path17
종료 Path18
Stitching Point 삽입됨 Stitching Point 삽입됨 Path19
Stitching Point 삽입됨 Path20
Stitching Point 삽입됨 Path21
Stitching Point 삽입됨 Path22
전체 이미지 편집 Path23
Stitching Point 삽입됨 Path24
전체 이미지 편집 Path25
Stitching Preview Path26
종료 Path27
Stitching Preview Select Series Path28
Stitching Point 삽입됨 Path29

📌 유효한 테스트 케이스 도출

👀 위에서 도출된 상태 전이 경로를 모두 커버하는 유효한 경우의 테스트 케이스를 도출한다.

ID 시작 상태 이벤트 가드 종료 상태
V01 상단 이미지 편집 Tools - Select [하단]   하단 이미지 편집
V02 상단 이미지 편집 Tools - Select [전체]   전체 이미지 편집
V03 상단 이미지 편집 Tools - Non Select Panning  상단 이미지 편집
V04 상단 이미지 편집 Select All Image   전체 이미지 편집
V05 상단 이미지 편집 Swap Image   상단 이미지 편집
V06 상단 이미지 편집 Close   종료
V07 하단 이미지 편집 Tools - Select [상단]   상단 이미지 편집
V08 하단 이미지 편집 Tools - Select [전체]   전체 이미지 편집
V09 하단 이미지 편집 Tools - Non Select Panning 하단 이미지 편집
V10 하단 이미지 편집 Select All Image   전체 이미지 편집
V11 하단 이미지 편집 Swap Image   하단 이미지 편집
V12 하단 이미지 편집 Close   종료
V13 전체 이미지 편집 Tools - Select [상단]   상단 이미지 편집
V14 전체 이미지 편집 Tools - Select [하단]   하단 이미지 편집
V15 전체 이미지 편집 Tools - Non Select Panning 전체 이미지 편집
V16 전체 이미지 편집 Insert Stitching Point   Stitching Point 삽입됨
V17 전체 이미지 편집 Swap Image   전체 이미지 편집
V18 전체 이미지 편집 Close   종료
V19 Stitching Point 삽입됨 Tools - Select [상단]   Stitching Point 삽입됨
V20 Stitching Point 삽입됨 Tools - Select [하단]   Stitching Point 삽입됨
V21 Stitching Point 삽입됨 Tools - Select [전체]   Stitching Point 삽입됨
V22 Stitching Point 삽입됨 Tools - Non Select Panning Stitching Point 삽입됨
V23 Stitching Point 삽입됨 Delete Stitching Point   전체 이미지 편집
V24 Stitching Point 삽입됨 Select All Image   Stitching Point 삽입됨
V25 Stitching Point 삽입됨 Swap Image   전체 이미지 편집
V26 Stitching Point 삽입됨 Stitching   Stitching Preview
V27 Stitching Point 삽입됨 Close   종료
V28 Stitching Preview Save   Select Series
V29 Stitching Preview Cancel   Stitching Point 삽입됨

📌 비유효한 테스트 케이스 도출

👀 상태-이벤트 테이블을 기반으로 비유효 한 테스트 케이스를 도출한다. 단, 테스트 수행이 불가능한 경우(n/a)는 제외한다.

ID 시작 상태 이벤트 기대 결과
IV01 상단 이미지 편집 Tools - Select [상단] -
IV02 상단 이미지 편집 Insert Stitching Point -
IV03 상단 이미지 편집 Delete Stitching Point -
IV04 하단 이미지 편집 Tools - Select [하단] -
IV05 하단 이미지 편집 Insert Stitching Point -
IV06 하단 이미지 편집 Delete Stitching Point -
IV07 전체 이미지 편집 Tools - Select [전체] -
IV08 전체 이미지 편집 Delete Stitching Point -
IV09 전체 이미지 편집 Select All Image -

📌 가드 테스트 케이스 도출

👀 전이에 가드 조건이 있는 경우의 테스트 케이스를 도출한다.

ID 시작 상태 이벤트 가드 종료 상태
G01 상단 이미지 편집 Tools - Non Select Zoom 상단 이미지 편집
G02 상단 이미지 편집 Tools - Non Select Invert 상단 이미지 편집
G03 상단 이미지 편집 Tools - Non Select Reset 상단 이미지 편집
G04 상단 이미지 편집 Tools - Non Select CCW 90° Rotation 상단 이미지 편집
G05 상단 이미지 편집 Tools - Non Select CW 90° Rotation 상단 이미지 편집
G06 상단 이미지 편집 Tools - Non Select Horizontal Flip 상단 이미지 편집
G07 상단 이미지 편집 Tools - Non Select Vertical Flip 상단 이미지 편집
G08 하단 이미지 편집 Tools - Non Select Zoom 하단 이미지 편집
G09 하단 이미지 편집 Tools - Non Select Invert 하단 이미지 편집
G10 하단 이미지 편집 Tools - Non Select Reset 하단 이미지 편집
G11 하단 이미지 편집 Tools - Non Select CCW 90° Rotation 하단 이미지 편집
G12 하단 이미지 편집 Tools - Non Select CW 90° Rotation 하단 이미지 편집
G13 하단 이미지 편집 Tools - Non Select Horizontal Flip 하단 이미지 편집
G14 하단 이미지 편집 Tools - Non Select Vertical Flip 하단 이미지 편집
G15 전체 이미지 편집 Tools - Non Select Zoom 전체 이미지 편집
G16 전체 이미지 편집 Tools - Non Select Invert 전체 이미지 편집
G17 전체 이미지 편집 Tools - Non Select Reset 전체 이미지 편집
G18 전체 이미지 편집 Tools - Non Select CCW 90° Rotation 전체 이미지 편집
G19 전체 이미지 편집 Tools - Non Select CW 90° Rotation 전체 이미지 편집
G20 전체 이미지 편집 Tools - Non Select Horizontal Flip 전체 이미지 편집
G21 전체 이미지 편집 Tools - Non Select Vertical Flip 전체 이미지 편집
G22 Stitching Point 삽입됨 Tools - Non Select Zoom Stitching Point 삽입됨
G23 Stitching Point 삽입됨 Tools - Non Select Invert Stitching Point 삽입됨
G24 Stitching Point 삽입됨 Tools - Non Select Reset Stitching Point 삽입됨
G25 Stitching Point 삽입됨 Tools - Non Select CCW 90° Rotation Stitching Point 삽입됨
G26 Stitching Point 삽입됨 Tools - Non Select CW 90° Rotation Stitching Point 삽입됨
G27 Stitching Point 삽입됨 Tools - Non Select Horizontal Flip Stitching Point 삽입됨
G28 Stitching Point 삽입됨 Tools - Non Select Vertical Flip Stitching Point 삽입됨

📌 테스트 프로시저 작성

👀 하나의 테스트 케이스의 종료 상태가 다른 테스트 케이스의 시작 상태와 연결될 수 있다면, 각각의 테스트 테이스를 실행 순서가 있는 테스트 시나리오로 연결한다.

ID 테스트 프로시저
TP01 V01 ➡ V11 V07 V02 V16 V26 V29 V26 V28
TP02 V03 G01 G02 G03 G04 G05 G06 G07 IV01 IV02 IV03 V04 V13 V05 V06
TP03 V08 V14 V09 G08 G09 G10 G11 G12 G13 G14 IV04 IV05 IV06 V12
TP04 V10 V15 G15 G16 G17 G18 G19 G20 G21 IV07 IV08 IV09 V17 V18
TP05 V16 V19 V20 V21 V22 G22 G23 G24 G25 G26 G27 G28 V23 V16 V24 V25 V16 V27

👀 각 테스트 프로시저의 테스트 케이스 커버리지를 확인할 수 있도록 테스트 프로시저 추적 표를 작성하여 확인한다.

ID TP01 TP02 TP03 TP04 TP05
V01        
V02        
V03        
V04        
V05        
V06        
V07        
V08        
V09        
V10        
V11        
V12        
V13        
V14        
V15        
V16      
V17        
V18        
V19        
V20        
V21        
V22        
V23        
V24        
V25        
V26        
V27        
V28        
V29        
IV01        
IV02        
IV03        
IV04        
IV05        
IV06        
IV07        
IV08        
IV09        
G01        
G02        
G03        
G04        
G05        
G06        
G07        
G08        
G09        
G10        
G11        
G12        
G13        
G14        
G15        
G16        
G17        
G18        
G19        
G20        
G21        
G22        
G23        
G24        
G25        
G26        
G27        
G28        

📌 적용 유의 사항

① 상태 전이 테스팅 기법의 효과성은 상태 전이 다이어그램에 품질에 의해 좌우되므로 상태 전이 다이어그램을 의미 있게 작성하는 것이 필요하다.
② 테스터가 테스트의 목적으로 상태 전이 다이어그램을 작성했을 경우, 반드시 개발/사용자 측의 검토를 받는 것이 좋다.
③ 상태 전이 다이어그램 명세서의 상태, 이벤트, 액션, 가드의 정의 내용을 반드시 이해관계자간에 공유하여 그 의미에 혼동이 없도록 명확하게 하는 것이 중요하다.
④ 모든 유효, 비유효, 가드 테스트 케이스 도출을 권장하지만 테스트 목적에 따라 일부는 생략 될 수 있다.
⑤ 테스트 케이스 결과를 검토하여 경험적으로 의미 있는 테스트 케이스를 추가할 것을 권장한다.

 

Related References

 

What is State Transition Testing? Diagram, Technique, Example

To understand Cyclomatic Complexity, lets first understand - What is Software Metric? Measurement is...

www.guru99.com

 

State Transition Testing Technique and State Transition Diagram with Examples

Learn what is State Transition Testing and How to use  State Transition Diagram: In our last article, we saw the ‘Cause and Effect graph’ test case writing technique. Today let’s move to the next dynamic test case writing method – State Transitio

www.softwaretestinghelp.com

 

State Transition Testing - Tutorialspoint

State Transition Testing What is State Transition Testing? State Transition testing, a black box testing technique, in which outputs are triggered by changes to the input conditions or changes to 'state' of the system. In other words, tests are designed to

www.tutorialspoint.com

 

What is State transition testing in software testing?

Study material for ISTQB Exam Certification Foundation level, Premium & Free for ISTQB and ASTQB Exam, Certification questions, answers, software testing tutorials and more

tryqa.com

 

ISTQB - What is State Transition Testing in Software Testing - Get Software Service

State Transition Testing Technique This technique falls under the Black Box testing techniques and the ISTQB syllabus excepts the tester to 1.  understand State Transition diagrams and State tables 2.  derive test cases from the State Transition diagram

www.getsoftwareservice.com

 

State Transition Testing - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

요약 : 소프트웨어어 qa, 웹 qa, 앱 qa, 소프트웨어 테스트 자동화, 자동화 소프트웨어, pm 교육, 비즈니스 소프트웨어, 기업 교육, audit, auditer

728x90
반응형