वर्गीकरण वृक्ष विधि

वर्गीकरण वृक्ष विधि परीक्षण अभिकल्पना के लिए एक विधि है, क्योंकि इसका उपयोग सॉफ्टवेयर विकास के विभिन्न क्षेत्रों में किया जाता है। इसे 1993 में Grimm और Grochtmann द्वारा विकसित किया गया था। वर्गीकरण वृक्ष विधि के संदर्भ में वर्गीकरण वृक्ष को निर्णय वृक्ष के साथ विभ्रांत नहीं होना चाहिए।

वर्गीकरण वृक्ष विधि में दो प्रमुख चरण होते हैं:
 * 1) परीक्षण प्रासंगिक पहलुओं की पहचान (तथाकथित वर्गीकरण) और उनके संबंधित मूल्य (जिन्हें वर्ग कहा जाता है) और साथ ही
 * 2) परीक्षण प्रकरण में सभी वर्गीकरणों से विभिन्न वर्गों का संयोजन।

परीक्षण प्रासंगिक पहलुओं की पहचान सामान्यतः परीक्षण के अंतर्गत प्रणाली के (कार्यात्मक) विनिर्देश (जैसे आवश्यकताओं, उपयोग प्रकरणो ...) का विशेष विवरण करती है। ये पहलू परीक्षण वस्तु के निवेश और प्रक्षेपण डेटा स्थान का निर्माण करते हैं।

परीक्षण अभिकल्पना का दूसरा चरण तब संयोजी परीक्षण अभिकल्पना के सिद्धांतों का अनुसरण करता है।

जबकि विधि को कलम और काग़ज़ का उपयोग करके उपयोजित किया जा सकता है, सामान्य प्रकार में वर्गीकरण वृक्ष विधि का उपयोग सम्मिलित है, जो वर्गीकरण वृक्ष विधि को उपयोजित करने वाला एक सॉफ्टवेयर साधन है।

आवेदन
वर्गीकरण वृक्ष विधि (सीटीएम) को उपयोजित करने के लिए आवश्यक शर्तें परीक्षण के अंतर्गत एक प्रणाली का चयन (या परिभाषा) है। सीटीएम एक ब्लैक-बॉक्स परीक्षण विधि है और परीक्षण के अंतर्गत किसी भी प्रकार की प्रणाली का समर्थन करता है। इसमें हार्डवेयर प्रणाली, एकीकृत हार्डवेयर-सॉफ्टवेयर प्रणाली, अंतःस्थापित सॉफ़्टवेयर, उपयोक्‍ता अंतरापृष्‍ठ, संचालन प्रणाली, पार्सर और अन्य (या उल्लेखित प्रणाली के उपप्रणाली) सहित स्पष्ट सॉफ़्टवेयर प्रणाली सम्मिलित हैं (लेकिन यह इन्हीं तक सीमित नहीं है)।

परीक्षण के अंतर्गत एक चयनित प्रणाली के साथ, वर्गीकरण वृक्ष विधि का पहला चरण परीक्षण प्रासंगिक पहलुओं की पहचान है। परीक्षण के अंतर्गत किसी भी प्रणाली को वर्गीकरण के एक समुच्चय द्वारा वर्णित किया जा सकता है, जिसमें निवेश और प्रक्षेपण प्राचल दोनों सम्मिलित हैं। (निवेश प्राचल में वातावरण की स्थिति, पूर्व प्रतिबंध और अन्य, असामान्य प्राचल भी सम्मिलित हो सकते हैं)। प्राचल की उपस्थिति का वर्णन करते हुए प्रत्येक वर्गीकरण में कई अलग-अलग वर्ग हो सकते हैं। वर्गों का चयन सामान्यतः ठोस परीक्षण प्रकरणो के लिए सार परीक्षण प्रकरणो और सीमा-मूल्य विश्लेषण के लिए समकक्ष विभाजन के सिद्धांत का पालन करता है। सभी वर्गीकरण के साथ वर्गीकरण वृक्ष बनाते हैं। शब्दार्थ उद्देश्य के लिए, वर्गीकरण को रचनाओं में बांटा जा सकता है।

परीक्षण प्रकरणो की अधिकतम संख्या वृक्ष में सभी वर्गीकरणों के सभी वर्गों का कार्टेशियन उत्पाद है, जिसके परिणामस्वरूप यथार्थवादी परीक्षण समस्याओं के लिए बड़ी संख्या में परिणाम मिलते हैं। परीक्षण प्रकरणो की न्यूनतम संख्या वर्गीकरण में वर्गों की संख्या है जिसमें सबसे अधिक वर्ग हैं।

दूसरे चरण में, वर्गीकरण वृक्ष के प्रत्येक वर्गीकरण से ठीक एक वर्ग का चयन करके परीक्षण प्रकरणो की रचना की जाती है। मूल रूप से परीक्षण प्रकरणो का चयन परीक्षण अभियन्ता द्वारा किया जाने वाला एक हस्तेन कार्य था।

उदाहरण
डेटाबेस प्रणाली के लिए, परीक्षण अभिकल्पना का प्रदर्शन किया जाना है। वर्गीकरण वृक्ष विधि को उपयोजित करते हुए, परीक्षण प्रासंगिक पहलुओं की पहचान वर्गीकरण देती है: उपयोगकर्ता विशेषाधिकार, संचालन और अभिगम विधि। उपयोगकर्ता विशेषाधिकारों के लिए, दो वर्गों की पहचान की जा सकती है: नियमित उपयोगकर्ता और प्रशासक उपयोगकर्ता। तीन संचालन हैं: जोड़ें, संपादित करें और हटाएं। अभिगम विधि के लिए, फिर से तीन वर्गों की पहचान की जाती है: मूल उपकरण, वेब ब्राउज़र, एपीआई। वेब ब्राउजर वर्ग को परीक्षण पहलू ब्रांड के साथ और परिष्कृत किया गया है, यहां तीन संभावित वर्ग सम्मिलित हैं: इंटरनेट एक्सप्लोरर, मोज़िला फ़ायरफ़ॉक्स और एप्पल सफारी

वर्गीकरण वृक्ष विधि का पहला चरण अब पूरा हो गया है। निस्सन्देह, सम्मिलित करने के लिए और भी संभावित परीक्षण पहलू हैं, उदा. संयोजन की अभिगम गति, डेटाबेस में उपस्थित डेटाबेस अभिलेख की संख्या, आदि। एक वृक्ष के संदर्भ में चित्रमय प्रतिनिधित्व का उपयोग करके, चयनित पहलुओं और उनके संबंधित मूल्यों की शीघ्रता से समीक्षा की जा सकती है।

आँकड़ों के लिए, कुल 30 संभावित परीक्षण प्रकरण हैं (2 विशेषाधिकार * 3 संचालन * 5 अभिगम विधियाँ)। न्यूनतम व्यापकता के लिए, 5 परीक्षण प्रणाली पर्याप्त हैं, क्योंकि 5 अभिगम विधियाँ हैं (और अभिगम विधि वह वर्गीकरण है जिसमें सबसे अधिक संख्या में असंयुक्त वर्ग हैं)।

दूसरे चरण में, तीन परीक्षण प्रकरण हस्तेन रूप से चयन किए गए हैं:
 * 1) एक नियमित उपयोगकर्ता मूल उपकरण का उपयोग करके डेटाबेस में एक नया डेटा समुच्चय जोड़ता है।
 * 2) व्यवस्थापक उपयोगकर्ता फ़ायरफ़ॉक्स ब्राउज़र का उपयोग कर उपस्थित डेटा समुच्चय संपादित करता है।
 * 3) एक नियमित उपयोगकर्ता एपीआई का उपयोग करके डेटाबेस से डेटा समुच्चय को हटा देता है।

पृष्ठभूमि
सीटीएम ने निम्नलिखित फायदे पेश किए श्रेणी विभाजन विधि पर (सीपीएम) ऑस्ट्रैंड और बाल्सर द्वारा:
 * अंकन: सीपीएम में केवल एक शाब्दिक संकेतन था, जबकि सीटीएम एक चित्रमय, वृक्ष के आकार का प्रतिनिधित्व करता है।
 * परिशोधन एक प्रतिनिधि का चयन करने से अन्य प्रतिनिधियों की घटना पर प्रभाव पड़ सकता है।
 * सीपीएम केवल इस परिदृश्य को संभालने के लिए प्रतिबंध प्रदान करता है।
 * CTM वर्गीकरण वृक्ष में पदानुक्रमिक परिशोधन की मॉडलिंग की अनुमति देता है, जिसे 'अंतर्निहित निर्भरता' भी कहा जाता है।


 * उपकरण सपोर्ट: ऑस्ट्रैंड और बाल्सर द्वारा प्रस्तुत उपकरण केवल परीक्षण केस जेनरेशन को सपोर्ट करता है, लेकिन पार्टिशनिंग को नहीं।
 * ग्रोचटमैन और वेगेनर ने अपना उपकरण, क्लासिफिकेशन वृक्ष मेथड # क्लासिफिकेशन वृक्ष एडिटर (सीटीई) प्रस्तुत किया, जो विभाजन के साथ-साथ परीक्षण केस जेनरेशन दोनों का समर्थन करता है।



एंबेडेड प्रणाली के लिए वर्गीकरण वृक्ष विधि
वर्गीकरण वृक्ष विधि पहले सार परीक्षण प्रकरणो के अभिकल्पना और विनिर्देश के लिए अभिप्रेत थी। एम्बेडेड प्रणाली के लिए वर्गीकरण वृक्ष विधि के साथ, परीक्षण कार्यान्वयन भी किया जा सकता है। कई अतिरिक्त विशेषताएं विधि के साथ एकीकृत हैं: मॉड्यूल और इकाई का परीक्षण  उपकरण टेस्सी (सॉफ्टवेयर) इस एक्सटेंशन पर निर्भर करता है।
 * 1) परमाणु परीक्षण प्रकरणो के अलावा, कई परीक्षण चरणों वाले परीक्षण अनुक्रमों को निर्दिष्ट किया जा सकता है।
 * 2) प्रत्येक परीक्षण चरण के लिए एक ठोस समय (जैसे सेकंड, मिनट ...) निर्दिष्ट किया जा सकता है।
 * 3) विभिन्न परीक्षण चरणों के चयनित वर्गों के बीच सिग्नल संक्रमण (जैसे रैखिक, तख़्ता (गणित), साइन ...) निर्दिष्ट किया जा सकता है।
 * 4) घटना (कंप्यूटिंग) और राज्य (कंप्यूटर विज्ञान) के बीच एक अंतर को मॉडल किया जा सकता है, एक परीक्षण में विभिन्न दृश्य चिह्नों द्वारा दर्शाया गया है।

निर्भरता नियम और स्वचालित परीक्षण केस जनरेशन
मॉडलिंग बाधाओं का एक तरीका वर्गीकरण वृक्ष विधि में शोधन तंत्र का उपयोग कर रहा है। हालांकि, यह विभिन्न वर्गीकरणों के वर्गों के बीच मॉडलिंग बाधा (सूचना सिद्धांत) की अनुमति नहीं देता है। लेहमन और वेगेनर ने सीटीई के अपने अवतार के साथ बूलियन अभिव्यक्तियों पर आधारित निर्भरता नियम पेश किए। आगे की विशेषताओं में मिश्रित परीक्षण अभिकल्पना (उदाहरण के लिए सभी जोड़े परीक्षण) का उपयोग करके परीक्षण सूट की स्वचालित पीढ़ी सम्मिलित है।

प्राथमिकता वाले परीक्षण केस जेनरेशन
वर्गीकरण वृक्ष विधि में हालिया संवर्द्धन में जोखिम-आधारित परीक्षण सम्मिलित है: वर्गीकरण वृक्ष के तत्वों को घटना और त्रुटि संभावना या जोखिम के संदर्भ में भार देना संभव है। परीक्षण प्रकरणो को प्राथमिकता देने के लिए परीक्षण केस निर्माण के दौरान इन भारों का उपयोग किया जाता है। असतत संभाव्यता वितरण के रूप में तत्व भार की व्याख्या करके सांख्यिकी भी उपलब्ध है (उदाहरण के लिए पहनने और थकान (सामग्री) परीक्षणों के लिए)।

परीक्षण अनुक्रम जनरेशन
एक वर्गीकरण के अलग-अलग वर्गों के बीच मान्य संक्रमणों को जोड़ने के साथ, वर्गीकरण को परिमित-राज्य मशीन के रूप में व्याख्या किया जा सकता है, और इसलिए पूरे वर्गीकरण वृक्ष को एक स्टेटचार्ट#हारेल स्टेटचार्ट के रूप में समझा जा सकता है। यह परीक्षण चरणों में कक्षा के उपयोग के अनुमत क्रम को परिभाषित करता है और स्वचालित रूप से परीक्षण अनुक्रम बनाने की अनुमति देता है। विभिन्न कवरेज स्तर उपलब्ध हैं, जैसे कोड कवरेज # मूल कवरेज मानदंड, संक्रमण कवरेज और राज्य जोड़े और संक्रमण जोड़े का कवरेज।

संख्यात्मक प्रतिबंध
बूलियन डिपेंडेंसी रूल्स के अलावा, वर्गीकरण वृक्ष की कक्षाओं का जिक्र करते हुए, न्यूमेरिकल कॉन्स्ट्रेंट्स, वेरिएबल्स के रूप में वर्गीकरण के साथ फ़ार्मुलों को निर्दिष्ट करने की अनुमति देते हैं, जो एक परीक्षण मामले में चयनित वर्ग का मूल्यांकन करेगा।

वर्गीकरण वृक्ष संपादक
वर्गीकरण वृक्ष संपादक (सीटीई) परीक्षण अभिकल्पना के लिए एक सॉफ्टवेयर उपकरण है जो वर्गीकरण वृक्ष विधि को उपयोजित करता है। समय के साथ, CTE उपकरण के कई संस्करण सामने आए हैं, जो कई (उस समय तक लोकप्रिय) प्रोग्रामिंग भाषाओं में लिखे गए हैं और कई कंपनियों द्वारा विकसित किए गए हैं।

सीटीई 1
CTE का मूल संस्करण डेमलर बेंज  इंडस्ट्रियल रिसर्च में विकसित किया गया था   बर्लिन में सुविधाएं। यह 1993 में दिखाई दिया और पास्कल (प्रोग्रामिंग भाषा) में लिखा गया था। यह केवल यूनिक्स प्रणाली पर उपलब्ध था।

सीटीई 2
1997 में एक प्रमुख पुनर्कार्यान्वयन किया गया, जिससे CTE 2 का निर्माण हुआ। विकास फिर से डेमलर-बेंज इंडस्ट्रियल रिसर्च में था। यह C (प्रोग्रामिंग भाषा) में लिखा गया था और win32 प्रणाली के लिए उपलब्ध था।

CTE 2 को 1997 में Razorcat को लाइसेंस दिया गया था और यह TESSY इकाई परीक्षण उपकरण का हिस्सा है। एम्बेडेड प्रणाली के लिए वर्गीकरण वृक्ष संपादक भी इस संस्करण पर आधारित है।

Razorcat 2001 से CTE का विकास कर रहा है और CTE ने 2003 में एक ब्रांड नाम पंजीकृत किया है।

अंतिम संस्करण CTE 3.2 को 2016 में TESSY 4.0 उपकरण के साथ प्रकाशित किया गया था। नीचे दी गई संस्करण तालिका पर ध्यान दें।

सीटीई 4
CTE 4 को TESSY 4.1.7 में 2018 में ग्रहण (सॉफ्टवेयर) प्लग-इन के रूप में उपयोजित किया गया था। नवीनतम CTE 4 संस्करण अभी भी 2021 में TESSY 4.3 के हिस्से के रूप में विकसित किया जा रहा है।

सीटीई एक्सएल
2000 में, लेहमन और वेगेनर ने सीटीई, सीटीई एक्सएल (एक्सटेंडेड लॉजिक्स) के अपने अवतार के साथ निर्भरता नियम पेश किए।  आगे की विशेषताओं में मिश्रित परीक्षण अभिकल्पना (उदाहरण के लिए सभी जोड़े परीक्षण) का उपयोग करके परीक्षण सूट की स्वचालित पीढ़ी सम्मिलित है। विकास डेमलर क्रिसलर द्वारा किया गया था। CTE XL जावा (प्रोग्रामिंग भाषा)  में लिखा गया था और win32 प्रणाली पर समर्थित था। सीटीई एक्सएल मुफ्त डाउनलोड के लिए उपलब्ध था।

2008 में, बर्नर एंड मैटनर ने सीटीई एक्सएल पर सभी अधिकार हासिल कर लिए और सीटीई एक्सएल 1.9.4 तक विकास जारी रखा।

सीटीई एक्सएल प्रोफेशनल
2010 में शुरू होकर, सीटीई एक्सएल प्रोफेशनल को बर्नर एंड मैटनर द्वारा विकसित किया गया था। जावा (प्रोग्रामिंग लैंग्वेज) का उपयोग करते हुए फिर से एक पूर्ण पुन: कार्यान्वयन किया गया था, लेकिन इस बार एक्लिप्स (सॉफ्टवेयर) आधारित। CTE XL प्रोफेशनल win32 और win64 प्रणाली पर उपलब्ध था।

नए घटनाक्रम में सम्मिलित हैं:
 * प्राथमिकता परीक्षण मामले का निर्माण: घटना और त्रुटि संभावना या जोखिम के संदर्भ में वर्गीकरण वृक्ष के तत्वों को भार देना संभव है। परीक्षण प्रकरणो को प्राथमिकता देने के लिए परीक्षण केस निर्माण के दौरान इन भारों का उपयोग किया जाता है। जोखिम-आधारित परीक्षण | जोखिम-आधारित और सांख्यिकीय परीक्षण भी उपलब्ध है।
 * परीक्षण अनुक्रम जनरेशन मल्टी-एजेंट प्रणाली का उपयोग करना
 * संख्यात्मक प्रतिबंध

परीक्षणोना
2014 में, बर्नर एंड मैटनर ने अपने वर्गीकरण वृक्ष संपादक को ब्रैंड  नाम TESTONA के अंतर्गत जारी करना शुरू किया।

TESTONA का मुफ्त संस्करण अभी भी मुफ्त डाउनलोड के लिए उपलब्ध है, हालांकि, कम कार्यक्षमता के साथ।

लाभ

 * परीक्षण प्रासंगिक पहलुओं का चित्रमय प्रतिनिधित्व
 * प्रासंगिक परीक्षण पहलुओं की पहचान और परीक्षण प्रकरणो में उनके संयोजन दोनों के लिए विधि

सीमाएं

 * जब उचित परीक्षण अपघटन के बिना वर्गीकरण वृक्ष विधि के साथ परीक्षण अभिकल्पना किया जाता है, वर्गीकरण वृक्ष बड़े और बोझिल हो सकते हैं।
 * नए उपयोगकर्ता बहुत अधिक (विशेष रूप से अप्रासंगिक) परीक्षण पहलुओं को सम्मिलित करते हैं जिसके परिणामस्वरूप बहुत अधिक परीक्षण मामले होते हैं।
 * परीक्षण प्रासंगिक पहलुओं के चयन के लिए कोई एल्गोरिदम या सख्त मार्गदर्शन नहीं है।

बाहरी संबंध

 * Systematic Testing