Specification by example
उदाहरण द्वारा विनिर्देशन (एस. बी. ई.) अमूर्त कथनों के बजाय यथार्थवादी उदाहरणों का उपयोग करके आवश्यकताओं को पकड़ने और चित्रित करने के आधार पर सॉफ्टवेयर उत्पादों के लिए आवश्यकताओं और व्यवसाय-उन्मुख कार्यात्मक परीक्षणों को परिभाषित करने के लिए एक सहयोगी दृष्टिकोण है। यह फुर्तीले सॉफ्टवेयर विकास विधियों के संदर्भ में लागू किया जाता है, विशेष रूप से व्यवहार-संचालित विकास में। यह दृष्टिकोण विशेष रूप से महत्वपूर्ण क्षेत्र और संगठनात्मक जटिलता की बड़े पैमाने की परियोजनाओं पर आवश्यकताओं और कार्यात्मक परीक्षणों के प्रबंधन के लिए सफल है। उदाहरण द्वारा विनिर्देशन को उदाहरण-संचालित विकास, निष्पादन योग्य आवश्यकताएँ, स्वीकृति परीक्षण-संचालित विकास (ए. टी. डी. डी. या ए-टी. डी. डी.), फुर्तीली स्वीकृति परीक्षण, परीक्षण-संचालित आवश्यकताएँ (टी. डी. आर.) के रूप में भी जाना जाता है। लाभ अत्यधिक अमूर्त या नवीन नई अवधारणाओं को ठोस उदाहरणों के बिना समझना मुश्किल हो सकता है। उदाहरण द्वारा विनिर्देशन का उद्देश्य एक सटीक समझ का निर्माण करना है, और सॉफ्टवेयर विकास में प्रतिक्रिया लूप को काफी कम कर देता है, जिससे कम पुनर्निर्माण, उच्च उत्पाद गुणवत्ता, सॉफ्टवेयर परिवर्तन के लिए तेजी से बदलाव का समय और सॉफ्टवेयर विकास में शामिल विभिन्न भूमिकाओं की गतिविधियों जैसे परीक्षकों, विश्लेषकों और डेवलपर्स का बेहतर संरेखण होता है। सत्य के एकल स्रोत के रूप में उदाहरण उदाहरण द्वारा विनिर्देशन का एक प्रमुख पहलू सभी दृष्टिकोणों से आवश्यक परिवर्तनों के बारे में सत्य का एक एकल स्रोत बनाना है। जब व्यापार विश्लेषक अपने स्वयं के दस्तावेजों पर काम करते हैं, तो सॉफ्टवेयर डेवलपर अपने स्वयं के प्रलेखन को बनाए रखते हैं और परीक्षक कार्यात्मक परीक्षणों का एक अलग सेट बनाए रखते हैं, सच्चाई के उन विभिन्न संस्करणों को लगातार समन्वय और समन्वयित करने की आवश्यकता से सॉफ्टवेयर वितरण प्रभावशीलता काफी कम हो जाती है। छोटे पुनरावृत्ति चक्रों के साथ, इस तरह के समन्वय की अक्सर साप्ताहिक या द्विसाप्ताहिक आधार पर आवश्यकता होती है। उदाहरण द्वारा विनिर्देशन के साथ, विभिन्न भूमिकाएँ सत्य का एक एकल स्रोत बनाने में भाग लेती हैं जो सभी की समझ को पकड़ती है। स्पष्टता और सटीकता प्रदान करने के लिए उदाहरणों का उपयोग किया जाता है, ताकि एक ही जानकारी का उपयोग विनिर्देश और व्यवसाय-उन्मुख कार्यात्मक परीक्षण दोनों के रूप में किया जा सके। विकास या वितरण के दौरान खोजी गई कोई भी अतिरिक्त जानकारी, जैसे कि कार्यात्मक अंतराल का स्पष्टीकरण, गायब या अधूरी आवश्यकताएं या अतिरिक्त परीक्षण, सच्चाई के इस एकल स्रोत में जोड़ी जाती है। चूंकि कार्यात्मकता के बारे में सच्चाई का केवल एक ही स्रोत है, इसलिए वितरण चक्र के भीतर ज्ञान के समन्वय, अनुवाद और व्याख्या की कोई आवश्यकता नहीं है। जब आवश्यक परिवर्तनों पर लागू किया जाता है, तो उदाहरणों का एक परिष्कृत सेट प्रभावी रूप से एक विनिर्देश और सॉफ्टवेयर कार्यक्षमता की स्वीकृति के लिए एक व्यवसाय-उन्मुख परीक्षण है। परिवर्तन लागू होने के बाद, उदाहरणों के साथ विनिर्देशन मौजूदा कार्यक्षमता की व्याख्या करने वाला एक दस्तावेज बन जाता है। चूंकि ऐसे दस्तावेजों का सत्यापन स्वचालित होता है, जब उन्हें बार-बार मान्य किया जाता है, तो ऐसे दस्तावेज अंतर्निहित सॉफ्टवेयर की व्यावसायिक कार्यक्षमता पर जानकारी का एक विश्वसनीय स्रोत होते हैं। ऐसे दस्तावेजों और विशिष्ट मुद्रित दस्तावेजों के बीच अंतर करने के लिए, जो जल्दी से पुराने हो जाते हैं, उदाहरणों के साथ विनिर्देशों का एक पूरा सेट जीवित प्रलेखन कहा जाता है। प्रमुख अभ्यास समूह जो उदाहरण द्वारा विनिर्देशन को लागू करते हैं, आम तौर पर निम्नलिखित प्रक्रिया पैटर्न को सफलतापूर्वक लागू करते हैंः लक्ष्यों से गुंजाइश प्राप्त करना-सभी-टीम विनिर्देशन कार्यशालाओं, छोटी बैठकों या टेलीकॉन्फ्रेंस समीक्षाओं के माध्यम से सहयोगात्मक रूप से निर्दिष्ट करना उदाहरणों का उपयोग करके आवश्यकताओं का चित्रण करना विनिर्देशनों को परिष्कृत करना उदाहरणों के आधार पर स्वचालित परीक्षण अक्सर परीक्षणों का उपयोग करके अंतर्निहित सॉफ़्टवेयर को मान्य करना भविष्य के विकास सॉफ़्टवेयर टीमों का समर्थन करने के लिए उदाहरणों के साथ विनिर्देशों से एक प्रलेखन प्रणाली विकसित करना जो एक स्क्रम ढांचे के भीतर उदाहरण द्वारा विनिर्देशन को लागू करते हैं, आमतौर पर उत्पाद बैकलॉग को परिष्कृत करने में अपने समय का 5%-10% खर्च करते हैं, जिसमें सहयोगात्मक रूप से निर्दिष्ट करना, उदाहरणों का उपयोग करके आवश्यकताओं का चित्रण करना और उदाहरणों को परिष्कृत करना शामिल है। उदाहरण मानचित्रण उदाहरण मानचित्रण एक सरल तकनीक है जो बातचीत को आगे बढ़ा सकती है और कम समय में स्वीकृति मानदंड प्राप्त कर सकती है। यह प्रक्रिया कहानियों को नियमों और उदाहरणों में विभाजित करती है जिन्हें उदाहरण के रूप में विनिर्देशन के रूप में प्रलेखित किया गया है, और बी. डी. डी. क्षेत्र में व्यापक रूप से उपयोग की जाने वाली तकनीक है। उदाहरण के लिए प्रयोज्यता विनिर्देशन व्यावसायिक क्षेत्र के दृष्टिकोण से आवश्यकताओं को समझने या संचार करने में समस्या पैदा करने के लिए पर्याप्त संगठनात्मक और क्षेत्र की जटिलता वाली परियोजनाओं पर लागू होता है। यह विशुद्ध रूप से तकनीकी समस्याओं पर लागू नहीं होता है या जहां प्रमुख जटिलता ज्ञान को समझने या संचार करने में नहीं है। निवेश बैंकिंग, वित्तीय व्यापार, बीमा, एयरलाइन टिकट आरक्षण, ऑनलाइन गेमिंग और मूल्य तुलना सहित डोमेन में इस दृष्टिकोण के प्रलेखित उपयोग हैं। परमाणु-ऊर्जा संयंत्र अनुकरण परियोजना में भी इसी तरह के दृष्टिकोण का दस्तावेजीकरण किया गया है। साझा उदाहरणों पर आधारित परीक्षण एक व्यावसायिक दृष्टिकोण से सॉफ्टवेयर वितरित करते समय एक टीम का समर्थन करने के लिए डिज़ाइन किए गए परीक्षणों की श्रेणी में सबसे उपयुक्त हैं (एजाइल टेस्टिंग क्वाड्रेंट्स देखें)-यह सुनिश्चित करना कि सही उत्पाद बनाया गया है। वे ऐसे परीक्षणों को प्रतिस्थापित नहीं करते हैं जो विशुद्ध रूप से तकनीकी दृष्टिकोण से एक सॉफ्टवेयर प्रणाली को देखते हैं (वे जो मूल्यांकन करते हैं कि क्या कोई उत्पाद सही तरीके से बनाया गया है, जैसे इकाई परीक्षण, घटक या तकनीकी एकीकरण परीक्षण) या ऐसे परीक्षण जो किसी उत्पाद के विकसित होने के बाद उसका मूल्यांकन करते हैं (जैसे सुरक्षा प्रवेश परीक्षण)। सॉफ्टवेयर परियोजनाओं पर सच्चाई, आवश्यकताओं और स्वचालित परीक्षणों के एकल स्रोत के रूप में यथार्थवादी उदाहरणों का सबसे पहला प्रलेखित उपयोग वायकैश + परियोजना है, जिसका वर्णन वार्ड कनिंघम ने 1996 में पेपर ए पैटर्न लैंग्वेज ऑफ कॉम्पिटिटिव डेवलपमेंट में किया था। उदाहरण द्वारा विनिर्देशन नाम 2004 में मार्टिन फाउलर द्वारा गढ़ा गया था। उदाहरण द्वारा विनिर्देशन 1997 के आसपास प्रस्तावित चरम प्रोग्रामिंग के ग्राहक परीक्षण अभ्यास और 2004 से डोमेन-संचालित डिजाइन से सर्वव्यापी भाषा विचार का एक विकास है, जिसमें 1989 में वेनबर्ग और गॉस द्वारा वर्णित आवश्यकताओं के रूप में ब्लैक-बॉक्स परीक्षणों के विचार का उपयोग किया गया है। स्वचालन बड़े पैमाने पर परियोजनाओं पर उदाहरण द्वारा विनिर्देशन के सफल अनुप्रयोग के लिए उदाहरणों (परीक्षणों) के एक बड़े समूह के खिलाफ सॉफ्टवेयर कार्यक्षमता के लगातार सत्यापन की आवश्यकता होती है। व्यवहार में, इसके लिए उदाहरणों पर आधारित परीक्षणों को स्वचालित होने की आवश्यकता होती है। एक सामान्य दृष्टिकोण परीक्षणों को स्वचालित करना है, लेकिन उदाहरणों को पढ़ने योग्य और गैर-तकनीकी और तकनीकी टीम के सदस्यों के लिए सुलभ रूप में रखना है, उदाहरणों को सच्चाई के एकल स्रोत के रूप में रखना है। यह प्रक्रिया परीक्षण स्वचालन उपकरणों के एक वर्ग द्वारा समर्थित है जो दो पहलुओं में विभाजित परीक्षणों के साथ काम करती है-विनिर्देश और स्वचालन परत। एक परीक्षण का विनिर्देश जो अक्सर एक सादे पाठ या एच. टी. एम. एल. रूप में होता है और जिसमें उदाहरण और सहायक विवरण होते हैं। स्वचालन परत उदाहरण को परीक्षण के तहत एक सॉफ्टवेयर प्रणाली से जोड़ती है। ऐसे उपकरणों के उदाहरण हैंः. NET गेज के लिए एकीकृत परीक्षण रोबोट फ्रेमवर्क के लिए बेहट कॉनकॉर्डियन ककड़ी फिटनेसे फ्रेमवर्क (सॉफ्टवेयर) संदर्भ बाहरी लिंक गूगल चर्चा समूह पुस्तकें, वीडियो, उपकरण और प्रस्तुतियाँ Specificationbyexample.com से मार्टिन फाउलर के ब्लिकी सॉफ्टवेयर विकास दर्शन पर परिभाषा सॉफ्टवेयर परीक्षण व्यवसाय विश्लेषण