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

वर्गीकरण वृक्ष विधि परीक्षण डिजाइन के लिए एक विधि है, क्योंकि इसका उपयोग सॉफ्टवेयर विकास के विभिन्न क्षेत्रों में किया जाता है। इसे 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