분류 트리 방법

Classification Tree Method

분류 트리 방법소프트웨어 개발의 다른 영역에서 사용되기 때문에 시험 설계를 위한 방법이다.[1][2]1993년 그림(Grim)과 그로흐트만(Grochtmann)에 의해 개발되었다.[3]분류 트리 방법에 따른 분류 트리는 의사결정 트리와 혼동해서는 안 된다.

분류 트리 방법은 크게 두 단계로 구성된다.[4][5]

  1. 시험 관련 측면(즉, 분류)과 그에 상응하는 값(계급이라 함)의 식별
  2. 모든 분류에서 시험 사례로 서로 다른 분류의 조합.

시험 관련 측면의 식별은 일반적으로 시험 대상 시스템의 (기능적) 규격(예: 요건, 사용 사례 등)을 따른다.이러한 측면은 테스트 객체의 입력 및 출력 데이터 공간을 형성한다.

그 다음 두 번째 단계 시험 설계는 조합 시험 설계의 원칙을 따른다.[4]

펜과 종이를 사용하여 이 방법을 적용할 수 있지만, 일반적인 방법은 분류 트리 방법을 구현하는 소프트웨어 도구인 분류 트리 편집기의 사용을 포함한다.[6]

적용

분류 트리 방법(CTM)을 적용하기 위한 전제조건은 시험 대상 시스템의 선택(또는 정의)이다.CTM은 블랙박스 테스트 방식으로 테스트 중인 모든 유형의 시스템을 지원한다.여기에는 하드웨어 시스템, 통합 하드웨어 소프트웨어 시스템, 임베디드 소프트웨어를 포함한 일반 소프트웨어 시스템, 사용자 인터페이스, 운영 체제, 파서 및 기타(또는 언급된 시스템의 하위 시스템)가 포함된다.

선택된 시스템을 시험 중인 상태에서, 분류 트리 방법의 첫 번째 단계는 시험 관련 측면의 식별이다.[4]시험 대상 시스템은 입력 및 출력 매개변수를 모두 보유하는 분류 집합으로 설명할 수 있다(입력 매개변수에는 환경 상태, 사전 조건 및 다소 드문 다른 매개변수도 포함될 수 있다).[2]각 분류에는 매개변수의 발생을 기술하는 임의의 수의 분리 클래스가 있을 수 있다.전형적으로 등급 선정은 추상적 시험사례에 대한 동등성 분할 원칙과 콘크리트 시험사례에 대한 경계-가치 분석 원칙을 따른다.[5]모든 분류가 함께 분류 트리를 형성한다.의미적 목적을 위해 분류는 구성으로 분류될 수 있다.

테스트 사례의 최대 수는 트리 내 모든 분류의 모든 등급에 대한 데카르트 산물로, 현실적인 테스트 문제에 대한 많은 수의 결과를 신속하게 도출한다.시험 사례의 최소 개수는 등급이 가장 많이 포함된 분류의 등급 수입니다.

두 번째 단계에서는 분류 트리의 모든 분류에서 정확히 하나의 등급을 선택하여 시험 케이스를 구성한다.시험사례 선정은 원래[3] 시험 엔지니어가 수행해야 할 수작업이었다.

데이터베이스 시스템의 분류 트리

데이터베이스 시스템의 경우 테스트 설계를 수행해야 한다.분류 트리 방법을 적용하여 시험 관련 측면의 식별은 다음과 같은 분류를 제공한다.사용자 권한, 작동액세스 방법.사용자 권한의 경우 다음 두 가지 클래스를 식별할 수 있다.일반 사용자관리자.운영에는 다음 세 가지가 있다.추가, 편집삭제.액세스 방법의 경우 다음 세 가지 클래스를 다시 식별한다.Native Tool, Web Browser, API.웹 브라우저 클래스는 테스트 측면 브랜드로 더욱 세분화되었으며, 여기에는 다음 세 가지 클래스가 포함된다.Internet Explorer, Mozilla FirefoxApple Safari.

이제 분류 트리 방법의 첫 번째 단계가 완료되었다.물론, 연결의 접근 속도, 데이터베이스에 존재하는 데이터베이스 기록의 수 등을 포함시킬 수 있는 시험 측면도 있다.나무의 관점에서 그래픽 표현을 사용하면 선택한 측면과 그에 상응하는 값을 신속하게 검토할 수 있다.

통계의 경우, 총 30개의 가능한 테스트 사례(2개의 권한 * 3개의 작업 * 5개의 액세스 방법)가 있다.최소 적용범위의 경우 5개의 접근방법이 있으므로(그리고 접근방법은 분리계급이 가장 많은 분류) 5개의 시험사례로 충분하다.

두 번째 단계에서는 세 가지 테스트 사례를 수동으로 선택했다.

  1. 일반 사용자는 기본 도구를 사용하여 데이터베이스에 새 데이터 세트를 추가한다.
  2. 관리자는 Firefox 브라우저를 사용하여 기존 데이터 세트를 편집한다.
  3. 일반 사용자는 API를 사용하여 데이터베이스에서 데이터 세트를 삭제한다.

향상된 기능

배경

CTM은 Tazand와 Balcer의 CPM(Category Partition Method[7])에 비해 다음과 같은 장점을[2] 소개했다.

  • 표기법: CPM은 텍스트 표기법만 가지고 있는 반면, CTM은 그래픽의 트리 모양의 표현을 사용한다.
  • 개선 한 명의 대표자를 선택하는 것은 다른 대표자의 발생에 영향을 미칠 수 있다.
CPM은 이 시나리오를 처리하기 위한 제한사항만 제공한다.
CTM은 분류 트리에서 계층적 세분화를 모델링할 수 있으며, 이를 암시적 종속성이라고도 한다.
  • 도구 지원:Tazand와 Balcer가 제시한 도구는 테스트 케이스 생성을 지원했을 뿐 파티셔닝 자체는 지원하지 않았다.
그로트만과 베게너는 그들의 도구인 분류 트리 편집기(CTE)를 제시했는데, 이는 분할과 테스트 케이스 생성을 모두 지원하는 것이다.[6]
콘크리트 값, 콘크리트 타이밍, (다른) 전환 및 상태와 행동을 구분하는 임베디드 시스템의 분류 트리 예

임베디드 시스템의 분류 트리 방법

분류 트리 방법은 우선 추상적인 시험 사례의 설계와 명세를 위한 것이었다.임베디드 시스템에 대한 분류 트리 방식으로도 테스트 구현이 가능하다.[8]몇 가지 추가 기능이 이 방법과 통합된다.

  1. 원자성 시험 사례 외에도 여러 시험 단계를 포함하는 시험 시퀀스를 지정할 수 있다.
  2. 각 테스트 단계에 대해 구체적인 타이밍(예: 초, 분 ...)을 지정할 수 있다.
  3. 서로 다른 테스트 단계의 선택된 클래스 사이의 신호 전환(: 선형, 스플라인, 사인...)을 지정할 수 있다.
  4. 이벤트상태의 구별은 시험에서 다른 시각적 표시로 표현되는 모델링될 수 있다.

모듈 및 유닛 테스트 툴 테시는 이 확장에 의존한다.

종속성 규칙 및 자동 테스트 사례 생성

제약조건을 모델링하는 한 가지 방법은 분류 트리 방법에 정제 메커니즘을 사용하는 것이다.그러나 이것은 서로 다른 분류의 종류들 사이의 모델링 제약조건을 허용하지 않는다.레만과 베게너는 CTE의 화신으로 부울 표현에 기초한 종속성 규칙을 도입했다.[9]추가 기능에는 조합 시험 설계를 사용한 시험 세트 자동 생성(예: 올페어 시험)이 포함된다.

우선순위 지정 테스트 사례 생성

분류 트리 방법에 대한 최근의 개선사항에는 우선순위화된 테스트 사례 생성이 포함된다.발생 및 오류 확률 또는 위험 측면에서 분류 트리의 요소에 가중치를 할당할 수 있다.이 가중치는 테스트 사례 생성 중에 테스트 사례의 우선순위를 정하기 위해 사용된다.[10][11]요소 가중치를 이산 확률 분포로 해석하여 통계적 시험(예: 마모 피로 시험)도 이용할 수 있다.

테스트 시퀀스 생성

분류의 개별 클래스 사이에 유효한 전환이 추가되면서 분류는 상태 시스템으로 해석될 수 있으며, 따라서 전체 분류 트리는 상태표로 해석될 수 있다.이것은 시험 단계에서 허용되는 클래스 사용 순서를 정의하고 시험 시퀀스를 자동으로 작성할 수 있다.[12]상태 범위, 전환 범위 및 상태 쌍과 전환 쌍의 범위와 같이 서로 다른 적용 범위 수준을 사용할 수 있다.

수치 제약 조건

분류 트리의 클래스를 참조하는 부울 종속성 규칙 외에도, 숫자 제약조건은 분류가 변수로 된 공식을 지정할 수 있으며, 이는 테스트 사례에서 선택한 클래스에 대해 평가된다.[13]

분류 트리 편집기

CTE(Classification Tree Editor)는 분류 트리 방법을 구현하는 테스트 설계를 위한 소프트웨어 도구다.[14][15][16][17]

그 동안 여러 버전의 CTE 툴이 등장하여 여러 (당시 인기 있었던) 프로그래밍 언어로 작성되고 여러 회사가 개발하였다.

CTE 1

CTE의 원형은 베를린의 다임러-벤츠 산업 연구[6][16] 시설에서 개발되었다.1993년에 등장하여 파스칼로 쓰여졌다.그것은 유닉스 시스템에서만 이용 가능했다.

CTE 2

1997년에 주요 재이행이 수행되어 CTE 2. 다시 다임러-벤츠 산업연구소에서 개발이 이루어졌다.그것은 C로 쓰여졌고 win32 시스템에 사용할 수 있었다.

CTE 2는 1997년 레이저캣에 면허를 받았으며 TESY 장치 시험 도구의 일부다.임베디드 시스템의[8][15] 분류 트리 편집기도 이 버전에 기초한다.

레이저캣은 2001년부터 CTE를 개발해 왔으며 2003년 CTE가 브랜드명을 등록했다.

마지막 버전 CTE 3.2는 2016년에 TESY 4.0 도구와 함께 출판되었다.아래 버전 표를 참조하십시오.

CTE 4

CTE 4는 2018년 Eclipse 플러그인으로 TESY 4.1.7에서 구현되었다.최신 CTE 4 버전은 2021년 TESY 4.3의 일부로 여전히 개발되고 있다.

CTE XL

2000년에 레만과 베게너는 CTE의 화신인 CTE XL(eXtended Logics)과 함께 종속성 규칙을 도입했다.[9][14][17][18]추가 기능에는 조합 시험 설계를 사용한 시험 세트 자동 생성(예: 올페어 시험)이 포함된다.[19]

개발은 다임러크라이슬러에 의해 수행되었다.CTE XL은 자바로 작성되었으며 win32 시스템에서 지원되었다.CTE XL은 무료로 다운로드할 수 있었다.

2008년에 베르너&매트너는 CTE XL에 대한 모든 권리를 취득하고 CTE XL 1.9.4까지 개발을 계속하였다.

CTE XL 프로페셔널

2010년부터 CTE XL 프로페셔널은 베르너&매트너가 개발했다.[10]자바를 이용한 완전한 재실행이 이루어졌지만 이번에는 이클립스를 기반으로 했다.CTE XL 프로페셔널은 win32 및 win64 시스템에서 사용할 수 있었다.

새로운 개발 내용 포함:

  • 우선 순위 지정 테스트 사례 생성:발생 및 오류 확률 또는 위험 측면에서 분류 트리의 요소에 가중치를 할당할 수 있다.이 가중치는 테스트 사례 생성 중에 테스트 사례의 우선순위를 정하기 위해 사용된다.[10][20]위험 기반 시험과 통계 시험도 이용할 수 있다.
  • Multi-에이전트 시스템을 사용하여 시퀀스 생성[12] 테스트
  • 수치 제약[13] 조건

테스토나

2014년 버너앤매트너는 테스토나라브랜드명으로 분류 트리 편집기를 출시하기 시작했다.

그러나 기능이 저하된 TESTONA 무료판은 여전히 무료로 다운로드할 수 있다.

버전

버전 날짜 댓글 기록 위치 OS
CTE 1.0 1993 원래 버전,[6][16] 1000개의 테스트 사례로 제한(수정!) 파스칼 유닉스
CTE 2.0 1998 Windows 버전,[15] 무제한의 테스트 사례 C++ 윈32
CTE 2.1 2003 TESY 도구의 레이저캣 부분 임베디드 시스템 버전. C++ 윈32
CTE XL 1.0 2000 종속성 규칙, 테스트 사례 생성[9][14][17] 자바 윈32
CTE XL 1.6 2006 다임러-벤츠의[18] 마지막 버전 자바 윈32
CTE XL 1.8 2008 Berner&Mattner의 개발 자바 윈32
CTE XL 1.9 2009 마지막 Java 전용 버전 자바 윈32
CTE XL 프로페셔널 2.1 2011-02-21 첫 번째 Eclipse 기반 버전, 우선순위화된 테스트 사례 생성,[10] 결정론적 테스트 사례 생성, 요구사항-문자 추적 자바 6, 이클립스 3.5 윈32
CTE XL 프로페셔널 2.3 2011-08-02 QualityCenter 통합, 요구사항 범위 분석 및 추적성 매트릭스, API 자바 6, 이클립스 3.6 윈32
CTE XL 프로페셔널 2.5 2011-11-11 테스트 결과 어노테이션, MindMap 가져오기 자바 6, 이클립스 3.6 윈32, 윈64
CTE XL 프로페셔널 2.7 2012-01-30 버그 수정 릴리스 자바 6, 이클립스 3.6 윈32, 윈64
CTE XL 프로페셔널 2.9 2012-06-08 Implicit Mark Mode, 기본 클래스, 명령줄 인터페이스 자바 6, 이클립스 3.7 윈32, 윈64
CTE XL 프로페셔널 3.1 2012-10-19 테스트 사후 평가(예: 근본 원인 분석), 테스트 시퀀스 생성,[12] 수치 제약[13] 조건 자바 6, 이클립스 3.7 윈32, 윈64
CTE XL 프로페셔널 3.3 2013-05-28 검정 범위 분석, 변종 관리(예: 제품군 엔지니어링의 일부로), 동등성 등급 테스트 자바 6, 이클립스 3.7 윈32, 윈64
CTE XL 프로페셔널 3.5 2013-12-18 경계 값 분석 마법사, AUTOSARMATLAB 모델 가져오기 자바 7, 이클립스 3.8 윈32, 윈64
테스토나 4.1 2014-09-22 버그 수정 릴리스 자바 7, 이클립스 3.8 윈32, 윈64
테스토나 4.3 2015-07-08 실행 가능한 테스트 스크립트 생성(코드 생성), 테스트 결과[21] 가져오기 자바 7, 이클립스 3.8 윈32, 윈64
테스토나 4.5 2016-01-21 향상된 수출 시설, GUI 개선 자바 7, 이클립스 3.8 윈32, 윈64
테스토나 5.1 2016-07-19 버그 수정 릴리즈, Java 8, Eclipse 4.5로 전환 자바 8, 이클립스 4.5 윈32, 윈64
CTE 4.0 2018-08-01 Eclipse를 기반으로 TESY 4.1 공구의 플러그인으로 레이저캣을 새롭게 구현.(모델 기반) 테스트 사례 생성 지원 자바 윈32

윈64

이점

  • 테스트 관련 측면의[2] 그래픽 표현
  • 관련 테스트 측면의 식별과 테스트 사례와의[4] 결합을 위한 방법

제한 사항

  • 적절한 테스트 분해 없이 분류 트리 방식으로 테스트 설계를 수행하면 분류 트리가 크고 번거로울 수 있다.
  • 새로운 사용자는 너무 많은 (관련되지 않은) 시험 측면을 포함시켜 너무 많은 시험 사례를 초래하는 경향이 있다.
  • 시험 관련 측면의 선택을 위한 알고리즘이나 엄격한 지침이 없다.[22]

참조

  1. ^ Bath, Graham; McKay, Judy (2008). The software test engineer's handbook : a study guide for the ISTQB test analyst and technical test analyst advanced level certificates (1st ed.). Santa Barbara, CA: Rocky Nook. ISBN 9781933952246.
  2. ^ a b c d Hass, Anne Mette Jonassen (2008). Guide to advanced software testing. Boston: Artech House. pp. 179–186. ISBN 978-1596932869.
  3. ^ a b Grochtmann, Matthias; Grimm, Klaus (1993). "Classification Trees for Partition Testing". Software Testing, Verification & Reliability. 3 (2): 63–82. doi:10.1002/stvr.4370030203. S2CID 33987358.
  4. ^ a b c d Kuhn, D. Richard; Kacker, Raghu N.; Lei, Yu (2013). Introduction to combinatorial testing. Crc Pr Inc. pp. 76–81. ISBN 978-1466552296.
  5. ^ a b Henry, Pierre (2008). The testing network an integral approach to test activities in large software projects. Berlin: Springer. p. 87. ISBN 978-3-540-78504-0.
  6. ^ a b c d Grochtmann, Matthias; Wegener, Joachim (1995). "Test Case Design Using Classification Trees and the Classification-Tree Editor CTE" (PDF). Proceedings of the 8th International Software Quality Week(QW '95), San Francisco, USA. Archived from the original (PDF) on 2015-09-24. Retrieved 2013-08-12.
  7. ^ Ostrand, T. J.; Balcer, M. J. (1988). "The category-partition method for specifying and generating functional tests". Communications of the ACM. 31 (6): 676–686. doi:10.1145/62959.62964. S2CID 207647895.
  8. ^ a b Conrad, Mirko; Krupp, Alexander (1 October 2006). "An Extension of the Classification-Tree Method for Embedded Systems for the Description of Events". Electronic Notes in Theoretical Computer Science. 164 (4): 3–11. doi:10.1016/j.entcs.2006.09.002.
  9. ^ a b c Lehmann, Eckard; Wegener, Joachim (2000). "Test Case Design by Means of the CTE XL" (PDF). Proceedings of the 8th European International Conference on Software Testing, Analysis & Review (EuroSTAR 2000). Archived from the original (PDF) on 2016-03-04. Retrieved 2013-08-12.
  10. ^ a b c d Kruse, Peter M.; Luniak, Magdalena (December 2010). "Automated Test Case Generation Using Classification Trees". Software Quality Professional. 13 (1): 4–12.
  11. ^ 프랑크 M, 게르케 D, 한스 C. und 앤더.기능 시스템 검증을 위한 Method-Driven Test Case 생성.의사 진행 ATOS.델프트 2012.페이지 36-44.
  12. ^ a b c Kruse, Peter M.; Wegener, Joachim (April 2012). Test Sequence Generation from Classification Trees. Software Testing, Verification and Validation (ICST), 2012 IEEE Fifth International Conference on. pp. 539–548. doi:10.1109/ICST.2012.139. ISBN 978-0-7695-4670-4. S2CID 581740.
  13. ^ a b c Kruse, Peter M.; Bauer, Jürgen; Wegener, Joachim (April 2012). Numerical Constraints for Combinatorial Interaction Testing. Software Testing, Verification and Validation (ICST), 2012 IEEE Fifth International Conference on. pp. 758–763. doi:10.1109/ICST.2012.170. ISBN 978-0-7695-4670-4. S2CID 16683773.
  14. ^ a b c International, SAE (2004). Vehicle electronics to digital mobility : the next generation of convergence ; proceedings of the 2004 International Congress on Transportation Electronics, Convergence 2004, [Cobo Center, Detroit, Michigan, USA, October 18 - 20, 2004]. Warrendale, Pa.: Society of Automotive Engineers. pp. 305–306. ISBN 978-0768015430.
  15. ^ a b c [edited by] Gomes, Luís; Fernandes, João M. (2010). Behavioral modeling for embedded systems and technologies applications for design and implementation. Hershey, PA: Information Science Reference. p. 386. ISBN 978-1605667515. {{cite book}}: last=일반 이름 포함(도움말)
  16. ^ a b c [edited by] Zander, Justyna; Schieferdecker, Ina; Mosterman, Pieter J. (2011-09-15). Model-based testing for embedded systems. Boca Raton: CRC Press. p. 10. ISBN 978-1439818459. {{cite book}}: last=일반 이름 포함(도움말)
  17. ^ a b c [edited by] Rech, Jörg; Bunse, Christian (2009). Model-driven software development integrating quality assurance. Hershey: Information Science Reference. p. 101. ISBN 978-1605660073. {{cite book}}: last=일반 이름 포함(도움말)
  18. ^ a b Olejniczak, Robert (2008). Systematisierung des funktionalen Tests eingebetteter Software (PDF). Doctoral dissertation: Technical University Munich. pp. 61–63. Archived from the original (PDF) on 6 March 2016. Retrieved 10 October 2013.
  19. ^ Cain, Andrew; Chen, Tsong Yueh; Grant, Doug; Poon, Pak-Lok; Tang, Sau-Fun; Tse, TH (2004). An Automatic Test Data Generation System Based on the Integrated Classification-Tree Methodology. First International Conference, SERA 2003, San Francisco, CA, USA, June 25–27, 2003, Selected Revised Papers. Lecture Notes in Computer Science. Vol. 3026. pp. 225–238. doi:10.1007/978-3-540-24675-6_18. hdl:10722/43692. ISBN 978-3-540-21975-0. Retrieved 10 October 2013.
  20. ^ Franke, M.; Gerke, D.; Hans, C. 등: 기능 시스템 검증, 항공 운송 및 운영 Sym-posium 2012; 페이지 354-365를 위한 방법 중심 시험 케이스 생성.의사 진행 ATOS.델프트 2012.
  21. ^ Berner&Mattner. "Press Release: Test Case Implementation with TESTONA 4.3".
  22. ^ Chen, T.Y.; Poon, P.-L. (1996). Classification-Hierarchy Table: a methodology for constructing the classification tree. Australian Software Engineering Conference, 1996., Proceedings of 1996. pp. 93–104. doi:10.1109/ASWEC.1996.534127. ISBN 978-0-8186-7635-2. S2CID 6789744.

외부 링크