स्वचालित इकाई परीक्षण, एकीकरण परीक्षण या स्वीकृति परीक्षण [बंद]


29

टीडीडी और यूनिट टेस्टिंग इस समय बड़ी तेजी है। लेकिन यह वास्तव में स्वचालित परीक्षण के अन्य रूपों की तुलना में उपयोगी है?

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

क्या मुझे कुछ गलतफहमी है, या एकीकरण परीक्षण की तुलना में यूनिट परीक्षण को इतना अधिक ध्यान क्यों दिया जा रहा है? यह केवल इसलिए है क्योंकि यह माना जाता है कि एकीकरण परीक्षण आपके पास कुछ है, और इकाई परीक्षण अगली चीज है जो हमें डेवलपर्स के रूप में लागू करने के लिए सीखने की आवश्यकता है?

या हो सकता है कि इकाई परीक्षण केवल इसे स्वचालित करने की जटिलता की तुलना में सबसे अधिक लाभ प्राप्त करता है?

आप स्वचालित इकाई परीक्षण, स्वचालित एकीकरण परीक्षण और स्वचालित स्वीकृति परीक्षण के साथ क्या अनुभव कर रहे हैं, और आपके अनुभव में उच्चतम आरओआई का क्या लाभ हुआ है? और क्यों?

यदि आपको अपनी अगली परियोजना पर स्वचालित होने के लिए परीक्षण का सिर्फ एक रूप चुनना था, तो यह कौन सा होगा?

अग्रिम में धन्यवाद।


मैं सिर्फ जेबी रेन्सबर्गर के इंटीग्रेशन टेस्ट ए स्कैम के लिए एक लिंक जोड़ना चाहूंगा । यह कई कारणों को उजागर करता है एकीकरण परीक्षण एक झूठी अर्थव्यवस्था हैं।
टिम

1
निम्नलिखित रिश्तेदार लिंक की जाँच करें: stackoverflow.com/questions/437897/… stackoverflow.com/questions/520064/… stackoverflow.com/questions/4904096/…
CodyChan

6
यह एक सवाल को बंद करने का एक और उदाहरण है जो तीन साल पहले पूछे जाने पर इस साइट पर पूरी तरह से ठीक था! यह वास्तव में एक समुदाय में योगदान करने के लिए कष्टप्रद है जहां नियम बदलते हैं और आप बस सभी पुराने सामान को बाहर फेंक देते हैं!
बजरैक फ्रायंड-हेन्सन

जवाबों:


34

एक महत्वपूर्ण कारक जो यूनिट परीक्षणों को बेहद उपयोगी बनाता है, वह है तेज़ प्रतिक्रिया

विचार करें कि क्या होता है जब आपके पास आपका ऐप पूरी तरह से एकीकरण / प्रणाली / कार्यात्मक परीक्षणों (जो पहले से ही एक आदर्श स्थिति है, वास्तविकता से सबसे अधिक विकास की स्थिति में है) के साथ कवर किया गया है। ये अक्सर एक समर्पित परीक्षण टीम द्वारा चलाए जाते हैं।

  • आप SCM रेपो में बदलाव करते हैं,
  • कुछ समय बाद (संभवतः दिन) बाद में परीक्षण करने वालों को एक नई आंतरिक रिलीज़ मिलती है और इसका परीक्षण शुरू करते हैं,
  • वे एक बग ढूंढते हैं और एक बग रिपोर्ट दर्ज करते हैं,
  • (आदर्श मामले में) कोई आपको बग रिपोर्ट वापस भेज देता है।

यह सब दिन या सप्ताह भी लग सकता है। इस समय तक आप पहले से ही अन्य कार्यों पर काम कर रहे हैं, इसलिए आपके पास पहले से लिखे कोड का मिनट ब्योरा आपके दिमाग में नहीं है। इसके अलावा, आपके पास आमतौर पर कोई प्रत्यक्ष प्रमाण भी नहीं होता है कि बग वास्तव में कहां है, इसलिए बग को खोजने और उसे ठीक करने में काफी समय लगता है।

जबकि यूनिट टेस्टिंग (TDD) में

  • आप एक परीक्षण लिखते हैं,
  • आप परीक्षण को संतुष्ट करने के लिए कुछ कोड लिखते हैं,
  • परीक्षण अभी भी विफल रहता है,
  • आप कोड को देखते हैं और आमतौर पर आपके पास कुछ सेकंड में "उफ़" अनुभव होता है (जैसे "उफ़, मैं उस स्थिति की जांच करना भूल गया!"), फिर!
  • बग को तुरंत ठीक करें।

यह सब कुछ ही मिनटों में होता है ।

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

उस इकाई परीक्षण का उल्लेख नहीं करना भी प्रयोज्य / सुरक्षा आदि के लिए आपके इंटरफेस का परीक्षण करता है, इस प्रकार आपको अपने डिजाइन और एपीआई को बेहतर बनाने के लिए महत्वपूर्ण रूप से महत्वपूर्ण प्रतिक्रिया देता है। कौन सा IMHO मॉड्यूल / susbsystem एकीकरण बग की संभावना को काफी कम कर सकता है: एपीआई जितना आसान और साफ है, गलतफहमी या चूक की संभावना उतनी ही कम है।

आप स्वचालित इकाई परीक्षण, स्वचालित एकीकरण परीक्षण और स्वचालित स्वीकृति परीक्षण के साथ क्या अनुभव कर रहे हैं, और आपके अनुभव में उच्चतम आरओआई का क्या लाभ हुआ है? और क्यों?

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

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

यदि आपको अपने अगले प्रोजेक्ट पर स्वचालित रूप से परीक्षण करने के लिए सिर्फ एक फॉर्म चुनना था, तो वह कौन सा होगा?

यह एक सैद्धांतिक सवाल है और मैं इसे व्यर्थ मानता हूं। सभी प्रकार के परीक्षणों का उपयोग एक अच्छे SW इंजीनियर के टूलबॉक्स में किया जाता है, और इन सभी में ऐसे परिदृश्य होते हैं जहाँ वे अपूरणीय होते हैं।


2
यूनिट परीक्षणों के लिए "फास्ट फीडबैक" के लिए +1। इसके अलावा, एक निरंतर एकीकरण सर्वर पर पोस्ट-कमिट के रूप में चलने के लिए बहुत आसान है।
फ्रैंक शीयर

1
"सभी प्रकार के परीक्षणों का उपयोग एक अच्छे SW इंजीनियर के टूलबॉक्स में होता है, और इन सभी में ऐसे परिदृश्य होते हैं जहाँ वे अप्रतिस्पर्धी होते हैं।" - काश मैं उसके लिए कई बार वोट कर सकता! जो लोग सोचते हैं कि वे केवल एक आदर्श परीक्षण उपकरण / विधि पा सकते हैं और इसे हर जगह लागू कर सकते हैं मुझे नीचे पहना है।
पीटीएक्स

8

सभी प्रकार के परीक्षण बहुत महत्वपूर्ण हैं, और यह सुनिश्चित करते हैं कि सिस्टम के विभिन्न पहलू कल्पना में हों। इसलिए पीछे की ओर काम करने के लिए, "अगर मुझे एक प्रकार का परीक्षण चुनना था ..." मैं नहीं करूंगा। यूनिट परीक्षण मुझे एक व्यक्ति द्वारा एकीकरण परीक्षण या इंटरैक्टिव परीक्षण की तुलना में अलग प्रतिक्रिया प्रदान करता है।

यहाँ हम परीक्षण के प्रकार / लाभ हैं:

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

वैकल्पिक लेकिन अनुशंसित परीक्षण:

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

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

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


"सिस्टम परीक्षण - यह सुनिश्चित करता है कि सिस्टम आवश्यकताओं / विनिर्देशों को पूरा करता है आमतौर पर लोग इस प्रकार का परीक्षण करते हैं"। सिस्टम / उर्फ ​​कार्यात्मक / aka "एंड-टू-एंड" / aka उच्च-स्तरीय एकीकरण परीक्षण स्वचालन के लिए भी अच्छे हैं।
MiFreidgeim SO-stop बुराई

3

ये विभिन्न लक्ष्यों के साथ अलग-अलग उपकरण हैं:

  • यूनिट परीक्षण एक डिजाइन टूल (टीडीडी) है, और रिफैक्टिंग के लिए लगभग शर्त है।

  • एकीकरण परीक्षण परियोजना की प्रगति की कल्पना करने के लिए महान हैं, और प्रतिगमन कीड़े से बचने के लिए भी महान हैं।

याद रखने वाली बात यह है कि आप वास्तव में एकीकरण परीक्षणों के साथ डिजाइन नहीं कर सकते हैं, और आपको यूनिट परीक्षणों के साथ प्रतिगमन नहीं मिलेगा।


@ आप वास्तव में एकीकरण परीक्षणों के साथ डिजाइन नहीं कर सकते, और आपको यूनिट परीक्षणों के साथ प्रतिगमन नहीं मिलेगा। ठीक ठीक!
चण्डी पाठक

यूनिट परीक्षण, रिफैक्टिंग के कारण होने वाले प्रतिगमन पा सकते हैं, जैसे एक परिवर्तित साझा सहायक विधि। एकीकरण परीक्षण हालांकि इसके लिए बहुत बेहतर हैं।
स्टुपरयूजर

एकीकरण परीक्षणों के बारे में दूसरे बिंदु में "सिस्टम / कार्यात्मक" (उर्फ "एंड-टू-एंड") परीक्षण शामिल हैं
MiFreidgeim SO-stop बुराई

पूरी तरह से सहमत; इसी तरह के बिंदु को स्टीव सैंडरसन ने कुछ साल पहले बनाया था। अपने स्वयं के यहाँ कुछ पूरक विचारों के लिए ब्लॉग. stevensanderson.com/2009/08/24/… पर 2009 ब्लॉग पोस्ट में "लक्ष्य - सबसे मजबूत तकनीक" तालिका देखें ।
मार्क ए। फिट्जगेराल्ड

1

मैंने सेलेनियम का बड़े पैमाने पर इस्तेमाल किया है ।

एक बड़ी वेब प्रकाशन कंपनी में, जब एक नई रिलीज़ की गई थी, तो आमतौर पर साइटों के सभी परिवारों का दौरा करने और परीक्षण स्क्रिप्ट के अनुसार सब कुछ ठीक था, यह सुनिश्चित करने के लिए एक या दो घंटे के आसपास लगभग 3 परीक्षकों को लिया। सेलेनियम के साथ, हम परीक्षण को स्वचालित करने में सक्षम थे, और इसे कई मशीनों और ब्राउज़रों में वितरित करते थे। वर्तमान में, जब परीक्षण स्क्रिप्ट चलती है, तो स्वचालित रूप से एक ही काम करने के लिए 3 पीसी लगते हैं और एक सुंदर रिपोर्ट तैयार करते हैं।

सेलेनियम के बारे में महान बात यह है कि आप इसे एक्सयूनिट, टेस्टएनजी, या एमएसटीएस्ट जैसे इकाई परीक्षण ढांचे के साथ जोड़ सकते हैं।

मेरे अनुभव में, यह बहुत मूल्यवान रहा है, हालांकि कुछ इस तरह की स्थापना वास्तव में आपकी परियोजना और आपकी टीम पर निर्भर करती है, इसलिए आरओआई निश्चित रूप से भिन्न होगा।


1

सबसे अच्छा आरओआई आमतौर पर जल्द से जल्द परीक्षण है जो उस प्रकार के बग का पता लगा सकता है।

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

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

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

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

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


विशेष रूप से बहुत अंतिम पैराग्राफ के लिए धन्यवाद, मैंने ऐसा नहीं सोचा था।
बजरैक फ्रायंड-हेंसन

FYI करें, मैंने उत्तर को अपडेट किया जब से आपने इसे पढ़ा - महसूस किया कि मैंने मूल प्रश्न को पर्याप्त रूप से नहीं पढ़ा है
Ethel Evans

@EthelEvans, नई परियोजनाओं के लिए इकाई परीक्षण प्राथमिकताओं के बारे में आपके कारण सही हैं। विरासत परियोजनाओं के लिए, जो कि परीक्षण कवरेज को ध्यान में रखते हुए लिखे गए थे, सिस्टम / उर्फ ​​कार्यात्मक / उर्फ ​​उच्च-स्तरीय एकीकरण परीक्षण सबसे महत्वपूर्ण हैं। प्रोग्रामर का आखिरी भाग देखें ।stackexchange.com/a/ 39370/ 31574 उत्तर।
MiFreidgeim SO-stop बुराई

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

1

मुझे लगता है कि स्वीकृति परीक्षण इस परिदृश्य में राजा हैं।

यदि एक प्रतिबद्धता स्वीकृति परीक्षणों को तोड़ देती है तो इसे हल करने की आवश्यकता होती है।

स्वीकृति परीक्षण आपको बताते हैं कि आपका सॉफ़्टवेयर कहां है, इकाई परीक्षण नहीं करते हैं।

इसलिए यूनिट परीक्षण सुरक्षा का बहुत गलत अर्थ प्रदान कर सकते हैं।


0

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

यूनिट परीक्षण दिखाते हैं कि क्या एक विशेष रूप से उद्देश्य के लिए एक छोटा घटक फिट है, और आमतौर पर छोटे और चलाने के लिए त्वरित हैं। छोटे होने के नाते, वे आमतौर पर स्वचालित रूप से आसान होते हैं।

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.