एकीकरण परीक्षण और कार्यात्मक परीक्षण के बीच अंतर क्या है? [बन्द है]


132

कार्यात्मक परीक्षण और एकीकरण एक ही परीक्षण कर रहे हैं?

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


1
[द एज वे: डुप्लिकेट टेस्टिंग बनाम कार्यात्मक परीक्षण या दोनों का संभव डुप्लिकेट? ] ( stackoverflow.com/questions/555899/… )
पास्कल थिवेंट

14
क्या मेरा सुझाव है कि आपके द्वारा किए गए पिछले प्रश्नों के कुछ उत्तर स्वीकार किए जाएं?
स्टेफानो बोरीनी

मेरा जवाब यहाँ देखें: stackoverflow.com/questions/2741832/…
बेन्सन

6
मुझे यह कहना है कि यह प्रश्न इस साइट के साथ क्या गलत है, का प्रतिनिधित्व करता है। इस सवाल में क्या गलत है? यह कैसे व्यापक है? यह प्रोग्रामिंग से संबंधित बहुत कुछ विशिष्ट पूछ रहा है। कुछ के बीच अंतर क्या है यह भी गणितीय रूप से प्रतिनिधित्व किया जा सकता है यह सिर्फ लगता है कि वास्तव में महत्वपूर्ण, वास्तव में प्रासंगिक प्रश्नों की एक बड़ी संख्या है जो कि अपरिहार्य कारणों से बंद हो जाती है। मुझे पता है कि आप गंभीर हैं, लोग मुझे बताने जा रहे हैं कि मैं गलत हूं, लेकिन तथ्य यह है कि क्वारा डॉट कॉम जैसी साइटों के बारे में बताया गया है कि मैं सही हूं। [मूल रूप से एसओ बाजार हिस्सेदारी को कम कर रहा है]।
जिम मगुइरे

1
मैं @JimMaguire से सहमत हूं: जैसा कि पूछा गया प्रश्न "हां / नहीं" प्रश्न है (प्लस हां या नहीं का स्पष्टीकरण)। मैं यह नहीं देख रहा हूं कि इसे फोकस क्यों नहीं माना जाता है।
बॉब

जवाबों:


101

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

कार्यात्मक परीक्षण तब होता है जब आप उत्पाद की कार्यात्मक आवश्यकताओं के विरुद्ध प्रणाली का परीक्षण करते हैं। उत्पाद / परियोजना प्रबंधन आमतौर पर इन्हें लिखते हैं और QA इस प्रक्रिया को औपचारिक करता है कि उपयोगकर्ता को क्या देखना चाहिए और क्या अनुभव होना चाहिए, और उन प्रक्रियाओं का अंतिम परिणाम क्या होना चाहिए। उत्पाद के आधार पर यह स्वचालित हो सकता है या नहीं।


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

3
हमारे वातावरण में विशेष रूप से, हम हमेशा इकाई परीक्षण को एक एकल वर्ग के खिलाफ लिखे गए न्युनिट परीक्षण, ननिट परीक्षण या एसक्यूएल लिपि परीक्षण जो कक्षा, या एक डेटाबेस, या एक अन्य प्रणाली (आमतौर पर एक पूर्ण स्थापना की आवश्यकता होती है) से अधिक की आवश्यकता होती है। और कार्यात्मक परीक्षण वह परीक्षण है जो QA चलाता है या स्वचालित UI परीक्षण करता है।
ऐसिथेहोल

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

1
यह स्वीकृत उत्तर नहीं है !?
tftd

@tftd क्योंकि इस क्सिटॉन का ऑटोर 2010 से निष्क्रिय है ...
t3chb0t

20

कार्यात्मक परीक्षण :

हां, हम उत्पाद या सॉफ्टवेयर को पूरे कार्यात्मक रूप से परीक्षण कर रहे हैं कि क्या यह कार्यात्मक रूप से ठीक से काम कर रहा है या नहीं (परीक्षण बटन, लिंक आदि)

उदाहरण के लिए: लॉगिन पृष्ठ।

आप उपयोगकर्ता नाम और पासवर्ड प्रदान करते हैं, आप परीक्षण करते हैं कि यह आपको होम पेज पर ले जा रहा है या नहीं।

एकीकरण परीक्षण :

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

उदाहरण के लिए: ई-मेल भेजना

आप किसी को एक मेल भेजते हैं, एक डेटा फ्लो होता है और डेटाबेस में भी बदलाव होता है (भेजे गए टेबल की वैल्यू 1 से बढ़ जाती है)


याद रखें - लिंक और छवियों पर क्लिक करना एकीकरण परीक्षण नहीं है। आशा है कि आप समझ गए होंगे, क्योंकि केवल एक लिंक पर क्लिक करने से डेटाबेस में कोई बदलाव नहीं होता है।

आशा है कि इसने आपकी मदद की।


3
डेटाबेस कार्यक्रम राज्य का कार्यान्वयन विस्तार है। लिंक पर क्लिक करने से प्रोग्राम स्टेट भी बदल सकता है।
एलेरो

@ jsborn17 एक एपीआई के साथ संचार करने वाले फ्रंट-एंड एप्लिकेशन के लिए एकीकरण परीक्षण लागू है यहां तक ​​कि हम एपीआई को चलाने में सक्षम नहीं हैं?
वैंकेहो

8

यह एक महत्वपूर्ण अंतर है, लेकिन दुर्भाग्य से आप कभी भी समझौता नहीं करेंगे। समस्या यह है कि अधिकांश डेवलपर्स इन्हें अपने दृष्टिकोण से परिभाषित करते हैं। यह प्लूटो पर बहस के समान है। (यदि यह सूर्य के करीब होता तो क्या यह एक ग्रह होता?)

इकाई परीक्षण को परिभाषित करना आसान है। यह CUT ( कोड अंडर टेस्ट ) का परीक्षण करता है और कुछ नहीं। (खैर, जितना संभव हो उतना कम।) इसका मतलब है कि नकली, नकली, और जुड़नार।

स्पेक्ट्रम के दूसरे छोर पर कई लोग हैं जो सिस्टम एकीकरण परीक्षण कहते हैं । यह जितना संभव हो उतना परीक्षण कर रहा है, लेकिन अभी भी अपने CUT में बग ढूंढ रहा है।

लेकिन बीच के विशाल विस्तार के बारे में क्या?

  • उदाहरण के लिए, क्या होगा यदि आप CUT से थोड़ा अधिक परीक्षण करते हैं? क्या होगा यदि आप एक फिबोनाची फ़ंक्शन को शामिल करते हैं, बजाय एक स्थिरता का उपयोग किए जिसे आपने इंजेक्ट किया था? मैं उस कार्यात्मक परीक्षण को कहूंगा , लेकिन दुनिया मुझसे असहमत है।
  • यदि आप शामिल हैं time()या rand()? या अगर आप फोन करते हैं तो क्या होगा http://google.com? मैं उस सिस्टम टेस्टिंग को कॉल करूंगा , लेकिन फिर से, मैं अकेला हूं।

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

मैंने 3 अक्षों पर परीक्षण किए, यूनिट-टेस्टिंग में उनके सभी शून्य के साथ :

  1. फ़ंक्शनल-टेस्टिंग: वास्तविक कोड का उपयोग करके अपने कॉल-स्टैक को गहरा और गहरा करें।
  2. एकता परीक्षण: उच्च और उच्च ऊपर अपने कॉल-ढेर; दूसरे शब्दों में, कोड का उपयोग करके अपने CUT का परीक्षण करें जो इसका उपयोग करेगा।
  3. सिस्टम-परीक्षण: अधिक से अधिक अप्राप्य संचालन (O / S अनुसूचक, घड़ी, नेटवर्क, आदि )

एक परीक्षा आसानी से सभी 3 हो सकती है, अलग-अलग डिग्री तक।


कार्यात्मक परीक्षण हमेशा पास? या क्या आपका मतलब है कि कार्यात्मक परीक्षण हमेशा पास होना चाहिए ?
ऐसिन्थेहोल

1
उन्हें बेतरतीब ढंग से विफल नहीं होना चाहिए। जब वे असफल होते हैं, तो उन्हें हर बार असफल होना चाहिए। उदाहरण के लिए, उन्हें अन्य होस्ट में कॉल शामिल नहीं करना चाहिए। शायद उन्हें व्यवहार परीक्षण कहा जाना चाहिए ? मैं सबसे अच्छा शब्द नहीं जानता। मुझे सिर्फ इतना पता है कि वे सबसे महत्वपूर्ण परीक्षण हैं, और वे आम तौर पर शुद्ध, पूरी तरह से मॉक किए गए यूनिट परीक्षणों और उच्च-स्तरीय सिस्टम-एकीकरण परीक्षणों के बीच व्यापक अंतर में अनदेखी की जाती हैं ।
cdunn2001

"उन्हें अनियमित रूप से विफल नहीं होना चाहिए।" - शब्द वहाँ हो सकता है कि वे "निर्धारक" हैं
kalver

7

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

एकीकरण परीक्षण: वह प्रक्रिया जहाँ 2 मॉड्यूल के बीच डेटाफ़्लो की जाँच की जाती है।


4

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

कार्यात्मकता परीक्षण आपको प्राप्त होने वाली प्रारंभिक आवश्यकताओं पर आधारित है। आप आवश्यकताओं के साथ अपेक्षा के अनुरूप व्यवहार का परीक्षण करेंगे।

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


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

4

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

कार्यात्मक परीक्षण - कार्यात्मक परीक्षण में आपको केवल इनपुट और आउटपुट के बारे में सोचना होगा। इस मामले में आपको एक वास्तविक उपयोगकर्ता की तरह सोचना होगा। आपने क्या इनपुट दिया और आपको क्या आउटपुट मिला, इसकी टेस्टिंग फंक्शनल टेस्टिंग है। आपको केवल आउटपुट का निरीक्षण करना है। कार्यात्मक परीक्षण में आपको एप्लिकेशन या सॉफ़्टवेयर की कोडिंग का परीक्षण करने की आवश्यकता नहीं होती है।


2

एक कार्यात्मक परीक्षण परीक्षक में केवल कार्यक्षमता और अनुप्रयोग की उप कार्यक्षमता केंद्रित है। ऐप की कार्यक्षमता ठीक से काम कर रही है या नहीं।

एकीकरण परीक्षण में परीक्षक को मॉड्यूल या उप-मॉड्यूल के बीच निर्भरता की जांच करनी होती है। मॉड्यूल रिकॉर्ड के लिए नमूना लाने और दूसरे मॉड्यूल में सही ढंग से प्रदर्शित किया जाना चाहिए।


2

एकीकरण परीक्षण: - जब यूनिट परीक्षण किया जाता है और संबंधित घटकों से मुद्दों को हल किया जाता है तो सभी आवश्यक घटकों को एक प्रणाली के तहत एकीकृत करने की आवश्यकता होती है ताकि यह एक ऑपरेशन कर सके। सिस्टम के घटकों के संयोजन के बाद, यह जांचने के लिए कि सिस्टम ठीक से काम कर रहा है या नहीं, इस तरह के परीक्षण को एकीकरण परीक्षण कहा जाता है।

फ़ंक्शनल टेस्टिंग: - टेस्टिंग को मुख्य रूप से दो श्रेणियों में विभाजित किया जाता है 1. फ़ंक्शनल टेस्टिंग 2. नॉन-फ़ंक्शनल टेस्टिंग ** फ़ंक्शनल टेस्टिंग: - यह जाँचने के लिए कि सॉफ़्टवेयर उपयोगकर्ता की आवश्यकताओं के अनुसार काम कर रहा है या नहीं। ** नॉन-फंक्शनल टेस्टिंग: - यह जांचने के लिए कि सॉफ्टवेयर स्ट्रेस टेस्ट, सुरक्षा परीक्षण आदि जैसे गुणवत्ता मानदंडों को पूरा करता है या नहीं।

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


2

एकीकरण जांच

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

    क्रियात्मक परीक्षण

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


  • 1

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


    0

    लेखक इस पर बहुत कुछ कहते हैं। मेरा मानना ​​है कि इसके लिए "सही व्याख्या" है। यह वास्तव में निर्भर करता है।

    उदाहरण के लिए: अधिकांश रेल डेवलपर इकाई परीक्षणों को मॉडल परीक्षण, नियंत्रक परीक्षणों के रूप में कार्यात्मक परीक्षण और एकीकरण परीक्षणों के रूप में उन पर विचार करते हैं, जो किसी अंतिम उपयोगकर्ता के दृष्टिकोण से एप्लिकेशन का पता लगाने के लिए कैपिबारा जैसी किसी चीज का उपयोग करते हैं - अर्थात, पृष्ठ के उत्पन्न HTML के माध्यम से नेविगेट करना, DOM का उपयोग करना उम्मीदों के लिए जाँच करें।

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

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

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