Classification Tree Method: Difference between revisions

Content deleted Content added
m Fixed a typo.
 
(6 intermediate revisions by 4 users not shown)
Line 7:
The classification tree method consists of two major steps:<ref name=lkk>{{cite book|last=Kuhn|first=D. Richard|author2=Kacker, Raghu N. |author3=Lei, Yu |title=Introduction to combinatorial testing|year=2013|publisher=Crc Pr Inc|isbn=978-1466552296|pages=76–81}}</ref><ref name=pierre>{{cite book|last=Henry|first=Pierre|title=The testing network an integral approach to test activities in large software projects|year=2008|publisher=Springer|___location=Berlin|isbn=978-3-540-78504-0|page=87}}</ref>
# Identification of test relevant aspects (so called ''classifications'') and their corresponding values (called ''classes'') as well as
# Combination of different classes from all classifications into [[test case (software)|test case]]s.
 
The identification of test relevant aspects usually follows the (functional) [[specification]] (e.g. [[requirements]], [[use case]]s …) of the [[system under test]].
Line 21:
The CTM is a [[black-box testing]] method and supports any type of system under test. This includes (but is not limited to) [[Computer hardware|hardware systems]], integrated hardware-software systems, plain [[software system]]s, including [[embedded software]], [[user interface]]s, [[operating system]]s, [[parser]]s, and others (or [[subsystem]]s of mentioned systems).
 
With a selected system under test, the first step of the classification tree method is the identification of test relevant aspects.<ref name=lkk>{{cite book|last=Kuhn|first=D. Richard|author2=Kacker, Raghu N. |author3=Lei, Yu |title=Introduction to combinatorial testing|year=2013|publisher=Crc Pr Inc|isbn=978-1466552296|pages=76–81}}</ref>
Any system under test can be described by a set of classifications, holding both input and output parameters.
(Input parameters can also include [[Environment (systems)|environment]]s states, [[pre-condition]]s and other, rather uncommon parameters).<ref name=advStest>{{cite book|last=Hass|first=Anne Mette Jonassen|title=Guide to advanced software testing|year=2008|publisher=Artech House|___location=Boston|isbn=978-1596932869|pages=179–186}}</ref>
Each classification can have any number of disjoint classes, describing the occurrence of the parameter.
The selection of classes typically follows the principle of [[equivalence partitioning]] for abstract test cases and [[boundary-value analysis]] for concrete test cases.<ref name=pierre>{{cite book|last=Henry|first=Pierre|title=The testing network an integral approach to test activities in large software projects|year=2008|publisher=Springer|___location=Berlin|isbn=978-3-540-78504-0|page=87}}</ref>
Together, all classifications form the classification tree.
For semantic purpose, classifications can be grouped into ''compositions''.
Line 33:
 
In the second step, test cases are composed by selecting exactly one class from every classification of the classification tree.
The selection of test cases originally<ref name=GG>{{cite journal|last=Grochtmann|first=Matthias|author2=Grimm, Klaus|title=Classification Trees for Partition Testing|journal=Software Testing, Verification & Reliability|year=1993|volume=3|issue=2|pages=63–82|doi=10.1002/stvr.4370030203|s2cid=33987358}}</ref> was a manual task to be performed by the [[test engineer]].
 
=== Example ===
Line 59:
=== Background ===
 
The CTM introduced the following advantages<ref name=advStest /> over the Category Partition Method<ref>{{cite journal|last=Ostrand|first=T. J.|author2=Balcer, M. J.|title=The category-partition method for specifying and generating functional tests|journal=Communications of the ACM|year=1988|volume=31|issue=6|pages=676–686|doi=10.1145/62959.62964|s2cid=207647895|doi-access=free}}</ref> (CPM) by Ostrand and Balcer:
* '''Notation''': CPM only had a textual notation, whereas CTM uses a graphical, tree-shaped representation.
* '''Refinements''' Selecting one representative might have an influence on the occurrence of other representatives.
Line 87:
=== Test Sequence Generation ===
 
With the addition of valid transitions between individual classes of a classification, classifications can be interpreted as a [[Finite-state machine|state machine]], and therefore the whole classification tree as a [[Statechart#Harel statechart|Statechart]]. This defines an allowed order of class usages in test steps and allows to automatically create test sequences.<ref name="seqgen">{{cite book|last=Kruse|first=Peter M.|author2=Wegener, Joachim|title=Test2012 SequenceIEEE GenerationFifth fromInternational ClassificationConference on Trees|journal=Software Testing, Verification and Validation (ICST),|chapter=Test 2012Sequence IEEEGeneration Fifthfrom InternationalClassification ConferenceTrees on|date=April 2012|pages=539–548|doi=10.1109/ICST.2012.139|isbn=978-0-7695-4670-4|s2cid=581740}}</ref> Different coverage levels are available, such as [[Code coverage#Basic coverage criteria|state coverage]], transitions coverage and coverage of state pairs and transition pairs.
 
=== Numerical Constraints ===
 
In addition to Boolean dependency rules referring to classes of the classification tree, Numerical Constraints allow to specify [[formula]]s with classifications as variables, which will evaluate to the selected class in a test case.<ref name="numdeb">{{cite book|last=Kruse|first=Peter M.|author2=Bauer, Jürgen |author3=Wegener, Joachim |title=Numerical2012 ConstraintsIEEE forFifth CombinatorialInternational InteractionConference on Testing|journal=Software Testing, Verification and Validation (ICST),|chapter=Numerical 2012Constraints IEEEfor FifthCombinatorial InternationalInteraction ConferenceTesting on|date=April 2012|pages=758–763|doi=10.1109/ICST.2012.170|isbn=978-0-7695-4670-4|s2cid=16683773}}</ref>
 
== Classification Tree Editor ==
The '''Classification Tree Editor''' (CTE) is a software tool for test design that implements the classification tree method.<ref name=vehicleElectronics>{{cite book|last=International|first=SAE|title=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]|year=2004|publisher=Society of Automotive Engineers|___location=Warrendale, Pa.|isbn=978-0768015430|pages=305–306}}</ref><ref name=behave>{{cite book|last=[edited by] Gomes|first=Luís|author2=Fernandes, João M.|title=Behavioral modeling for embedded systems and technologies applications for design and implementation|year=2010|publisher=Information Science Reference|___location=Hershey, PA|isbn=978-1605667515|page=386}}</ref><ref name=justyna>{{cite book|last=[edited by] Zander|first=Justyna|title=Model-based testing for embedded systems|publisher=CRC Press|___location=Boca Raton|isbn=978-1439818459 |author2=Schieferdecker, Ina |author3=Mosterman, Pieter J.|page=10|date=2011-09-15}}</ref><ref name=model2>{{cite book|last=[edited by] Rech|first=Jörg|author2=Bunse, Christian|title=Model-driven software development integrating quality assurance|year=2009|publisher=Information Science Reference|___location=Hershey|isbn=978-1605660073|page=101}}</ref>
 
Over the time, several editions of the CTE tool have appeared, written in several (by that time popular) [[programming languages]] and developed by several companies.
Line 119:
=== CTE XL ===
 
In 2000, Lehmann and Wegener introduced Dependency Rules with their incarnation of the CTE, the CTE XL (eXtended Logics).<ref name=LW /><ref name=vehicleElectronics /><ref name=model2 /><ref name=rob>{{cite book|last=Olejniczak|first=Robert|title=Systematisierung des funktionalen Tests eingebetteter Software|year=2008|publisher=Technical University Munich|___location=Doctoral dissertation|pages=61–63|url=http://d-nb.info/988858436/34.pdf|accessdate=10 October 2013|archive-url=https://web.archive.org/web/20160306062722/http://d-nb.info/988858436/34.pdf|archive-date=6 March 2016|url-status=dead}}</ref> Further features include the automated generation of [[test suite]]s using combinatorial test design (e.g. [[all-pairs testing]]).<ref>{{cite book|last=Cain|first=Andrew|author2=Chen, Tsong Yueh|author3=Grant, Doug|author4=Poon, Pak-Lok|author5=Tang, Sau-Fun|author6=Tse, TH|title=Software Engineering Research and Applications |chapter=An Automatic Test Data Generation System Based on the Integrated Classification-Tree Methodology|journal=First International Conference, SERA 2003, San Francisco, CA, USA, June 25–27, 2003, Selected Revised Papers|volume=3026|year=2004|pages=[https://archive.org/details/softwareengineer0000soft/page/225 225–238]|doi=10.1007/978-3-540-24675-6_18|chapter-url=https://archive.org/details/softwareengineer0000soft/page/225|accessdate=10 October 2013|series=Lecture Notes in Computer Science|isbn=978-3-540-21975-0|hdl=10722/43692}}</ref>
 
Development was performed by [[DaimlerChrysler]]. CTE XL was written in [[Java (programming language)|Java]] and was supported on win32 systems.
Line 153:
|CTE 2.1
|2003
|Embedded system version of [[Razorcat|Razorcats]]s part of the [[TESSY]] tool.
|C++
|win32
Line 165:
| CTE XL 1.9 ||2009|| Last Java-only Version|| Java || win32
|-
| CTE XL Professional 2.1 || 2011-02-21 || First [[Eclipse (software)|Eclipse]]-based Version, Prioritized Test Case Generation,<ref name=luniak /> [[Deterministic]] Test Case Generation, [[Requirements traceability|Requirements-Tracing]] with [[IBM Rational DOORS|DOORS]]|| [[Java_version_historyJava version history#Java_SE_6Java SE 6|Java 6]], [[Eclipse (software)|Eclipse]] 3.5 || win32
|-
| CTE XL Professional 2.3 || 2011-08-02 || [[Quality Center|QualityCenter]] integration, Requirements Coverage Analysis and [[Traceability matrix|Traceability Matrix]], [[API]]|| Java 6, Eclipse 3.6 || win32
Line 173:
| CTE XL Professional 2.7 || 2012-01-30 || Bug fix release|| Java 6, Eclipse 3.6 || win32, win64
|-
| CTE XL Professional 2.9 || 2012-06-08 || Implicit Mark Mode, Default classes, [[Commandcommand-line Line Interfaceinterface]]|| Java 6, Eclipse 3.7 || win32, win64
|-
| CTE XL Professional 3.1 || 2012-10-19 || Test Post-Evaluation (e.g. for [[Root cause analysis|Root Cause Analysis]]), Test Sequence Generation,<ref name=seqgen /> Numerical Constraints<ref name=numdeb />|| Java 6, Eclipse 3.7 || win32, win64
Line 179:
| CTE XL Professional 3.3 || 2013-05-28 || Test Coverage Analysis, Variant Management (e.g. as part of [[Product family engineering|Product Family Engineering]]), Equivalence Class Testing|| Java 6, Eclipse 3.7 || win32, win64
|-
| CTE XL Professional 3.5 || 2013-12-18 || Boundary Value Analysis Wizard, Import of [[AUTOSAR]] and [[MATLAB]] models || [[Java_version_historyJava version history#Java_SE_7Java SE 7|Java 7]], Eclipse 3.8 || win32, win64
|-
| TESTONA 4.1 || 2014-09-22 || Bug fix release || Java 7, Eclipse 3.8 || win32, win64
Line 187:
| TESTONA 4.5 || 2016-01-21 || Enhanced Export Facilities, [[GUI]] Improvements || Java 7, Eclipse 3.8 || win32, win64
|-
| TESTONA 5.1 || 2016-07-19 || Bug fix release, Switch to [[Java_version_historyJava version history#Java_SE_8Java SE 8|Java 8]], Eclipse 4.5 || [[Java_version_historyJava version history#Java_SE_8Java SE 8|Java 8]], Eclipse 4.5 || win32, win64
|-
|CTE 4.0
Line 206:
* When test design with the classification tree method is performed without proper test decomposition, classification trees can get large and cumbersome.
* New users tend to include too many (esp. irrelevant) test aspects resulting in too many test cases.
* There is no algorithm or strict guidance for selection of test relevant aspects.<ref>{{cite book|last=Chen|first=T.Y.|author2=Poon, P.-L.|title=Proceedings of 1996 Australian Software Engineering Conference |chapter=Classification-Hierarchy Table: aA methodology for constructing the classification tree|journal=Australian Software Engineering Conference, 1996., Proceedings of 1996|year=1996|pages=93–104|doi=10.1109/ASWEC.1996.534127|isbn=978-0-8186-7635-2|s2cid=6789744}}</ref>
 
== References ==