품생품사(品生品死)

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

EDUCATION

[TMMi] 레벨.2 기준 기본 경로 테스팅에 대해서 알아보자

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

테스트 설계 명세 가이드 : 기본 경로 테스팅(5) #8

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

많은 설계 기법을 다루어야 하기 때문에 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) 기법 적용 절차

① 명세서를 분석하여 각 실행문과 분기문(if, for, switch 등)을 식별하고 식별번호를 부여한다.
② 처음 만나는 분기 노드면 Default Path(반복하지 않는 path)를 선택하여 아래 Node로 계속 내려가면서 Path를 기록한다.
③ 마지막 노드를 만나면 기록한 Path 경로로 선택한다.
④ 방문한 노드를 만나면 그 노드에서 방문하지 않은 Path를 선택하여 아래 노드로 계속 내려가면서 2번 항목부터 다시 반복한다.

2) 테스트 베이시스

👀 소스 코드의 각 분기문을 식별하여 결정 포인트(Dn) ID를 부여한다.

  Public Ldata ModifyTpsClbIf(LData iTpsClbClnRgIfMapMAP) throws LException {
  ITpsClbCusMgr tpsClbCusMgr = new TpsClbCusMgr();

  int iNnIrNsLmaTmp = 0;

  if(iBesTpsClbGcd.equals("01")){
        iNnIrNsLmaTmp = 5000000;
  } else if(iBesTpsClbGcd.equals("02")) {
        iNnIrNsLmaTmp = 3000000;
  } else if(iBesTpsClbGcd.equals("03")) {
        iNnIrNsLmaTmp = 2000000;
  } else if(iBesTpsClbGcd.equals("04")) {
        iNnIrNsLmaTmp = 1000000;
  } else {
        iNnIrNsLmaTmp = 0;
  }     

  int rPsRu = 0; // modifyTpsClbIf에서 return value
  LData input = new LData();
  input.setString("CLNN", iTpsClbClnRgIfMapMAP.getString("CLNN"));
  input.setString("TPS_CLB_RG_YM",iTpsClbClnRgIfMapMAP.getString("TPS_CLB_RG_YM"));

  for(int inx = 0; inputs.getDataCount();intx++) {
       LData condition = new LData();
       condition.setString("CLNN",iTpsClbClnRgIfMapMAP.getString("CLNN");
      
       inputs.addLData(condition);
      rPsRu += tpsClbCusMgr.modifyTpsClbIfGrid(inputs.getLData(inx));
}
   LData result = new LData();
  result.setNullToInitialize(true);
  result.setInt("PS_RU",rPsRu);

  return result;
}

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

 

[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) 기법 적용

📌 흐름도 작성

👀 프로그램 소스의 구조를 분석하여 흐름도를 작성한다.

 

This is audit_00014
흐름도 작성 예시

📌 기본 경로 도출

👀 Test Depth Level 2 강도를 기준으로 제어 흐름 경로 조합을 도출한다.

👀 Test Depth Level 강도는 테스트 전략이나 테스트 컨디션에서 결정된다.

기본 경로 설명
Basis Path 1 1 ➡ 2 12 15 18
Basis Path 2 1 12 15 16 17 18
Basis Path 3 1 3 4 13 15 18
Basis Path 4 1 3 5 6 14 15 18
Basis Path 5 1 3 5 7 8 10 15 18
Basis Path 6 1 3 5 7 9 11  15 18

📌 적용 유의 사항

① 기본 경로의 수(6)는 소스의 복잡도(Cyclomatic Complexity: 순환 복잡도)와 일치한다.

  • 그리고 복잡도는 Branch coverage(분기 커버리지)를 달성하는 최대 테스트 케이스 수이다.
  • 모든 경로를 테스트 하는 것은 불가능하므로 최소한 Branch Coverage(분기 커버리지)를 달성하는 테스트는 실행하도록 한다.

② Branch Coverage <= Cyclomatic Complexity <= All Path Coverage

③ 순환복잡도 구하는 공식

  • = 영역의 개수
  • = 분기 노드 수 + 1 = Edge(Control Flow) - Node(Statement, Decision) + 2

④ 위 예제의 순환 복잡도는

  • = 영역수 6
  • = 분기 노드 수 (5) + 1 = Edge 수 (18) - Node (14) + 2 = 6

Related References

 

Decision-to-decision path - Wikipedia

A decision-to-decision path, or DD-path, is a path of execution (usually through a flow graph representing a program, such as a flow chart) between two decisions. More recent versions of the concept also include the decisions themselves in their own DD-pat

en.wikipedia.org

 

Basis Path Testing in Software 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

 

Various examples in Basis Path 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

 

Basis Path Testing - Tutorialspoint

Basis Path Testing What is Basis Path Testing? Basis path testing, a structured testing or white box testing technique used for designing test cases intended to examine all possible paths of execution at least once. Creating and executing tests for all pos

www.tutorialspoint.com

 

Understand Basis Path Testing & its Steps with Example | ReQtest

What is basis path testing? It is a white box method for designing test cases. Understand basis path testing, its steps and advantages with example.

reqtest.com

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

728x90
반응형