परीक्षण-प्रथम प्रोग्रामिंग के लिए पहला प्रकाशित संदर्भ क्या है?


11

मैं मार्टिन फाउलर द्वारा रीफैक्टरिंग कर रहा हूं। अध्याय 4, भवन परीक्षण में, मैं निम्नलिखित मार्ग के पार आया।

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

जब मैं अब परीक्षण-संचालित विकास का एक वकील हूं, तो मुझे यह याद नहीं था कि जब मैं मूल रूप से लगभग 5 साल पहले इस पुस्तक को पढ़ता हूं तो मुझे इस अवधारणा से परिचित नहीं कराया गया था।

Amazon.com के अनुसार, यह पुस्तक मूल रूप से 8 जुलाई, 1999 को प्रकाशित हुई थी। क्या यह परीक्षण-पहली प्रोग्रामिंग के लिए पहला प्रकाशित संदर्भ है या पहले कुछ है?


यह व्यक्तिपरक नहीं है। क्या यह प्रासंगिक है? मुझे ऐसा नहीं लगता। यदि आपके पास इस प्रश्न को फिर से खोलने का एक अच्छा मकसद है, तो meta.programmers.stackexchange.com
Maniero

@bigown: मुझे यकीन नहीं है कि मैं समझ सकता हूँ। क्या आप यह कह रहे हैं कि आपने इस प्रश्न को बंद कर दिया क्योंकि यह व्यक्तिपरक नहीं है या यह सापेक्ष नहीं है?
एरिक विलेनू सेप

यह स्पष्ट रूप से उद्देश्य है।
मनिएरो

2
यह संबंधित और दिलचस्प प्रोग्रामिंग भी है, और हालांकि एक सच्चा उत्तर हो सकता है, यह साबित करना आसान नहीं है। और कहां जाता है? ProgrammingHistory.stackexchange?
एएसपीली

4
हम यहां वस्तुनिष्ठ प्रश्नों की अनुमति दे सकते हैं - हम व्यक्तिपरक प्रश्नों को पसंद करते हैं लेकिन स्टैक ओवरफ्लो की तरह ही कुछ संदिग्ध प्रश्न हैं जो जीवित रहते हैं, इस साइट में कुछ ओब्जेक्टिव प्रश्न हो सकते हैं जो जीवित रहते हैं। (मैं किसी भी "मैं कैसे काम करने के लिए इस पर्ल कोड प्राप्त करने की उम्मीद नहीं करूँगा" सवाल यहाँ, हालांकि)
जेफ एटवुड

जवाबों:


9

टेस्ट संचालित विकास अनुबंध द्वारा डिजाइन के समान है, जहां आपके पास पूर्व शर्त, आक्रमणकारी और पोस्टकंडिशन हैं।

यह शब्द बर्ट्रेंड मेयर ने एफिल प्रोग्रामिंग भाषा के अपने डिजाइन के संबंध में बनाया था और पहली बार 1986 में शुरू होने वाले विभिन्न लेखों में वर्णित किया गया था [विकिपीडिया]

औपचारिक तरीके कम से कम 1983 से तारीख करते हैं, और सुरक्षा महत्वपूर्ण प्रणालियों के लिए उपयोग किया जाता है जैसे कि बी-पद्धति का उपयोग करके ड्राइवरलेस पेरिस मेट्रो:

पहले और सबसे सार संस्करण में, जिसे सार मशीन कहा जाता है, डिजाइनर को डिजाइन के लक्ष्य को निर्दिष्ट करना चाहिए। [विकिपीडिया]

ये कुछ चीजें हो सकती हैं जिनमें से केंट बेक ने "अग्रणी बनने में मदद की ... परीक्षण-पहले प्रोग्रामिंग की पुनर्खोज"।

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

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

रिपोर्ट का बाकी हिस्सा भी दिलचस्प है, यह कहने के लिए आगे बढ़ता है:

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

स्वचालित परीक्षण के अलावा, 1968 की रिपोर्ट समानांतर कोडिंग और परीक्षण की वकालत करती है, यदि परीक्षण-प्रथम नहीं:

जी। प्रत्येक प्रोग्राम ब्लॉक का डिटेल डिज़ाइन, कोडिंग और प्रलेखन।
एच। स्टेप (छ) के समानांतर प्रत्येक प्रोग्राम ब्लॉक के लिए परीक्षण विधियों का डिजाइन और प्रलेखन।


4

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

यह काफी परीक्षण-पहले नहीं है, लेकिन वह निश्चित रूप से कुछ जमीनी कार्य कर रहा था।

इसके अलावा,

CIO मैगज़ीन, मार्च 1993, बुगी बस्टर्स , लूसी जूनो द्वारा, पृष्ठ 84 :

टेस्ट केस ... किसी भी कोड के लिखे जाने से पहले ही विकसित किया जा सकता है। आदर्श रूप से ये मामले एक आवेदन की आवश्यकताओं पर आधारित होते हैं ... यदि कोड लिखना शुरू करने से पहले डेवलपर्स को आवश्यकता-आधारित परीक्षण दिए जाते हैं, तो वे एक उत्पाद डिज़ाइन करेंगे जो उन परीक्षणों को पारित कर सकता है ... "


दूसरा संस्करण Amazon.com के अनुसार 7 अक्टूबर, 1999 को प्रकाशित हुआ था। 1 9 86 में कुछ समय पहले संस्करण प्रकाशित किया गया था। क्या यह 1 संस्करण में संदर्भ था?
एरिक वील्नाउ

मैंने केवल दूसरा संस्करण पढ़ा है। प्रस्तावना से प्रतीत होता है कि केवल "राइटिंग करेक्ट प्रोग्राम्स" अध्याय 1 संस्करण में था, स्वचालित परीक्षण अध्याय नया है।
16

3

वह केंट बेक था , अपनी पुस्तक एक्सट्रीम प्रोग्रामिंग में , जो 1999 में भी प्रकाशित हुई ।

वैकल्पिक शब्द


Amazon.com के अनुसार, यह पुस्तक मूल रूप से 5 अक्टूबर, 1999 को प्रकाशित हुई थी। रिफैक्टरिंग प्रकाशित होने के लगभग 3 महीने बाद यह बात सामने आई है। मैंने Amazon.com के अनुसार प्रकाशन की सटीक तारीख को शामिल करने के लिए अपने प्रश्न को संपादित किया है। मैंने केंट की किताब नहीं पढ़ी है, लेकिन यह मान लिया है कि यह परीक्षण-पहले प्रोग्रामिंग पर कहीं अधिक जानकारी प्रदान करता है।
एरिक वीलनू सेप

3
यह दिलचस्प है कि उस पुस्तक का पिछला कवर केंट बेक कहता है "अग्रणी बनने में मदद की .. परीक्षण-प्रथम प्रोग्रामिंग का पुनर्वितरण।" उसने इसे कहां से फिर से खोजा?
एशेल्ली

दिलचस्प खोज!

1
@AShelly: कुछ साल पहले केंट बेक ने RailsConf में एक कीनोट दिया था। इसमें उन्होंने बताया कि वह टीडीडी के साथ कैसे आए और उन्होंने उल्लेख किया कि उन्होंने 60 के दशक के एक पुराने लेख में इसके बारे में पढ़ा था।
जर्ग डब्ल्यू मित्तग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.