इकाई परीक्षण बनाम कार्यात्मक परीक्षण


407

इकाई परीक्षणों और कार्यात्मक परीक्षणों के बीच अंतर क्या है? क्या एक इकाई परीक्षण एक फ़ंक्शन का भी परीक्षण कर सकता है?


2
इन्हें भी देखें: stackoverflow.com/questions/927857/… और stackoverflow.com/questions/2230286/…

जवाबों:


254

यूनिट टेस्ट - एक वर्ग में एक विधि (फ़ंक्शन) के रूप में एक व्यक्तिगत इकाई का परीक्षण, सभी निर्भरता के साथ मजाक किया गया।

कार्यात्मक परीक्षण - एकेए इंटीग्रेशन टेस्ट, एक सिस्टम में कार्यक्षमता का एक टुकड़ा परीक्षण। यह कई तरीकों का परीक्षण करेगा और डेटाबेस या वेब सेवाओं जैसी निर्भरता के साथ बातचीत कर सकता है।


170
मुझे "AKA इंटीग्रेशन टेस्ट" से असहमत होना चाहिए। एक एकीकरण परीक्षण, आपके कोड में 2 या अधिक सिस्टम / सबसिस्टम के बीच एकीकरण की जांच करता है। उदाहरण, ORM के माध्यम से SQL क्वेरी की जाँच करना, जाँचता है कि ORM और डेटाबेस एक साथ अच्छी तरह से काम करते हैं। कार्यात्मक परीक्षण उर्फ ​​अंत से अंत IMHO।
26:14 की

7
मैं @ एग्रेसिव फंक्शनल टेस्ट से सहमत हूं! = इंटीग्रेशन टेस्ट आपको एक-दूसरे के भीतर सिस्टम के सब-कम्पोनेंट्स जैसे "कंसिस्टेंट स्टेट" आदि को कन्फ्यूज कर रहा होगा, लेकिन सामान्य अर्थ में इंटीग्रेशन टेस्टिंग का बहुत व्यापक स्कोप है।
नबस्टर

4
नहीं, कुछ भी उलझन में नहीं था।
bpapa

3
एकीकरण परीक्षण IS-A कार्यात्मक परीक्षण है। लेकिन इसके विपरीत नहीं। Google "कार्यात्मक और गैर कार्यात्मक परीक्षण" और "छवियां" जांचें।
रसियन

4
यह जवाब बस गलत है! कार्यात्मक परीक्षण भी एकीकरण परीक्षण के करीब नहीं है ..
sotn

517

यूनिट परीक्षण एक डेवलपर को बताता है कि कोड सही चीजें कर रहा है; कार्यात्मक परीक्षण एक डेवलपर को बताते हैं कि कोड सही चीजें कर रहा है

आप यूनिट टेस्टिंग बनाम फंक्शनल टेस्टिंग में अधिक पढ़ सकते हैं


यूनिट परीक्षण और कार्यात्मक परीक्षण की एक अच्छी तरह से व्याख्या की गई वास्तविक जीवन शैली को निम्नानुसार वर्णित किया जा सकता है,

कई बार एक घर के निर्माण के लिए एक प्रणाली के विकास की तुलना की जाती है। हालांकि यह सादृश्य काफी सही नहीं है, हम इसे इकाई और कार्यात्मक परीक्षणों के बीच अंतर को समझने के उद्देश्य से बढ़ा सकते हैं।

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

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

गृहस्वामी घर पर कार्यात्मक परीक्षण कर रहा है। उसके पास उपयोगकर्ता का दृष्टिकोण है।

भवन निरीक्षक घर पर यूनिट परीक्षण कर रहा है। उसके पास बिल्डर का नजरिया है।


सारांश के रूप में,

यूनिट टेस्ट को प्रोग्रामर्स के नजरिए से लिखा जाता है। वे यह सुनिश्चित करने के लिए बने हैं कि किसी वर्ग का एक विशेष तरीका (या एक इकाई ) विशिष्ट कार्यों का एक सेट करता है।

कार्यात्मक परीक्षण उपयोगकर्ता के दृष्टिकोण से लिखे गए हैं । वे यह सुनिश्चित करते हैं कि सिस्टम कार्य कर रहा है क्योंकि उपयोगकर्ता इसकी अपेक्षा कर रहे हैं।


18
अवधारणा के लिए किसी नए व्यक्ति के लिए उद्धरण थोड़ा अस्पष्ट है।

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

147
शायद यह कहने का एक और तरीका है, "यूनिट टेस्ट यह सुनिश्चित करता है कि कोड वही करता है जो प्रोग्रामर चाहता है, कार्यात्मक परीक्षण सुनिश्चित करें कि प्रोग्रामर वही कर रहा है जो ग्राहक चाहता है"?
जेएस।

3
मुझे वह पसंद है लेकिन मैं इसे समायोजित करूंगा। एक कार्यात्मक परीक्षण सुनिश्चित करता है कि आवेदन उपयोगकर्ता को एक कार्रवाई करने की अनुमति देता है। एक यूनिट टेस्ट यह सुनिश्चित करता है कि कोड व्यवहार करता है कि प्रोग्रामर कैसे उम्मीद करता है।
एडम

2
क्या प्रोग्रामर नहीं चाहता है कि अंतिम उपयोगकर्ता क्या चाहता है? ऐसा परीक्षण क्यों लिखा जाता है जो ग्राहक की अपेक्षा परोसता नहीं है?
O.Badr

140
  • एक इकाई परीक्षण व्यवहार की एक स्वतंत्र इकाई का परीक्षण करता है । व्यवहार की एक इकाई क्या है? यह सिस्टम का सबसे छोटा टुकड़ा है जिसे स्वतंत्र रूप से परीक्षण किया जा सकता है। (यह परिभाषा वास्तव में परिपत्र, यह वास्तव में एक परिभाषा नहीं है IOW सब पर है, लेकिन यह, व्यवहार में काफी अच्छी तरह से काम करने लगता है क्योंकि आप तरह-की यह सहज समझ सकते हैं।)

  • एक कार्यात्मक परीक्षण कार्यक्षमता का एक स्वतंत्र टुकड़ा परीक्षण करता है।


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

  • कार्यक्षमता का एक टुकड़ा आमतौर पर कई तरीकों और कई वस्तुओं और अक्सर कई वास्तुशिल्प परतों के माध्यम से कटौती शामिल करता है।


  • एक यूनिट टेस्ट कुछ इस तरह होगा: जब मैं validate_country_code()फ़ंक्शन को कॉल करता हूं और इसे देश कोड पास करता हूं तो 'ZZ'इसे वापस आ जाना चाहिए false

  • एक कार्यात्मक परीक्षण होगा: जब मैं शिपिंग फॉर्म को किसी देश कोड के साथ भरता हूं ZZ, तो मुझे एक सहायता पृष्ठ पर पुनर्निर्देशित किया जाना चाहिए, जो मुझे अपने देश के कोड को एक मेनू से चुनने की अनुमति देता है।


  • डेवलपर के विकासकर्ता के दृष्टिकोण से, यूनिट परीक्षण डेवलपर्स द्वारा लिखे गए हैं।

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


  • पूर्व मामले में, कार्यात्मक परीक्षण भी स्वीकृति परीक्षणों के रूप में कार्य कर सकते हैं और कार्यात्मक आवश्यकताओं या एक कार्यात्मक विनिर्देश के निष्पादन योग्य एन्कोडिंग के रूप में, बाद के मामले में, वे एकीकरण परीक्षण के रूप में भी काम कर सकते हैं।

  • यूनिट परीक्षण बार-बार बदलते हैं, कार्यात्मक परीक्षणों को कभी भी प्रमुख रिलीज के भीतर नहीं बदलना चाहिए।



शानदार जवाब! एक बात - "कार्यात्मक परीक्षणों को एक बड़ी रिलीज के भीतर कभी नहीं बदलना चाहिए" ऐसा क्यों है?
लेज़र

5
@Lazer, @cdeszaq: कई प्रोजेक्ट्स में, प्रमुख संस्करण संख्या में परिवर्तन का उपयोग बैकवर्ड-असंगतता और ओटीओएच को इंगित करने के लिए किया जाता है यदि प्रमुख संस्करण नहीं बदलता है, तो बैकवर्ड-संगतता की गारंटी है । "पश्चगामी-अनुकूलता" का क्या अर्थ है? इसका मतलब है "उपयोगकर्ता-दृश्यमान व्यवहार को नहीं बदलता है"। और कार्यात्मक परीक्षण उपयोगकर्ता-दृश्य व्यवहार के विनिर्देश के एक निष्पादन योग्य एन्कोडिंग हैं। तो, अगर प्रमुख संख्या में परिवर्तन नहीं होता है, तो कार्यात्मक परीक्षण परिवर्तन या तो और इसके विपरीत, यदि कार्यात्मक tets की अनुमति नहीं है ऐसा परिवर्तन है, तो प्रमुख संख्या चाहिए और साथ ही बदल जाते हैं।
जॉर्ग डब्ल्यू मित्तग

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

3
@ JörgWMittag उस विचार से प्यार करता है: 'कार्यात्मक परीक्षण उपयोगकर्ता-दृश्य व्यवहार के विनिर्देश का एक निष्पादन योग्य एन्कोडिंग है' ... अन्य सुपर-विशेषज्ञ वास्तव में सहमत हैं या नहीं, यह मुझे मूल प्रश्न के साथ, "अंतर के बीच" अंतर करने में मदद करता है 'उन्हें'
माइक कृंतक

1
"एक कार्यात्मक परीक्षण होगा: जब मैं ZZ के देश कोड के साथ शिपिंग फॉर्म भरता हूं, तो मुझे एक सहायता पृष्ठ पर पुनर्निर्देशित किया जाना चाहिए जो मुझे अपने देश कोड को एक मेनू से चुनने की अनुमति देता है।" यह एक प्रकार का नाइट-पिकी है, लेकिन मैं इसे "स्वीकृति परीक्षण" कहूंगा। कार्यात्मक परीक्षण यह परीक्षण करेगा कि शिपिंग फॉर्म पर ZZ में प्रवेश करने से उपयोगकर्ता सही URL पर चला गया या विशेष अपवाद या त्रुटि को फेंक दिया।
बॉब रे

98

TLDR:

प्रश्न का उत्तर देने के लिए: यूनिट परीक्षण कार्यात्मक परीक्षण का एक उपप्रकार है।


दो बड़े समूह हैं: कार्यात्मक और गैर-कार्यात्मक परीक्षण। मेरे द्वारा पाया गया सबसे अच्छा (गैर-पूर्ण) चित्रण (स्रोत: www.inflectra.com ):

यहां छवि विवरण दर्ज करें

(1) यूनिट टेस्टिंग: कोड के छोटे स्निपेट (कार्यों / विधियों) का परीक्षण। इसे (श्वेत-बॉक्स) कार्यात्मक परीक्षण माना जा सकता है।

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

(2) एकीकरण परीक्षण: जब आप (उप) मॉड्यूल या (उप) सिस्टम के दो या अधिक टुकड़े एक साथ रखते हैं और देखते हैं कि क्या वे एक साथ निकल खेलते हैं।

फिर आप 3 मॉड्यूल को एकीकृत करते हैं, फिर 4 या 5 वें क्रम में जो भी आप या आपकी टीम फिट देखते हैं, और एक बार सभी आरा टुकड़े एक साथ आते हैं, वह आता है

(3) सिस्टम टेस्टिंग: एक पूरे के रूप में SW का परीक्षण करना। यह बहुत अधिक " सभी टुकड़ों का एक साथ एकीकरण परीक्षण " है।

अगर यह ठीक है, तो आता है

(४) स्वीकृति परीक्षण: क्या हमने वह निर्माण किया जो ग्राहक ने वास्तव में मांगा था? बेशक, स्वीकृति परीक्षण पूरे जीवनकाल में किया जाना चाहिए , न कि केवल अंतिम चरण में, जहां आपको एहसास होता है कि ग्राहक एक स्पोर्ट्सकार चाहता था और आपने एक वैन का निर्माण किया था।

यहां छवि विवरण दर्ज करें


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

उत्तर (यहां तक ​​कि अत्यधिक उत्थान वाले भी) गलत हो सकते हैं;)
रूसियों

1
मुझे चित्र पसंद है, लेकिन सिस्टम इंटीग्रेशन टेस्टिंग के लिए, पहेली को "पूर्ण" होना चाहिए, बिना किसी और जगह के अन्य टुकड़ों को जोड़ने के लिए।
जोनाथन रेनहार्ट

4
@JonathonReinhart - जरूरी नहीं। खुले किनारे नई विशेषताओं के साथ प्रणाली की आसान विस्तार क्षमता का प्रतिनिधित्व कर सकते हैं, जो कि एजाइल जैसे विकास के दृष्टिकोण का उपयोग करते हुए विशेष रूप से उपयोगी है।
माइल

ऊपर दिए गए कई परस्पर विरोधी जवाबों से, स्पष्ट रूप Functional Testसे एक मानकीकृत शब्द नहीं है और इसका अलग-अलग लोगों के लिए अलग अर्थ है।
पेंघ गेंग

12

"कार्यात्मक परीक्षण" का मतलब यह नहीं है कि आप अपने कोड में एक फ़ंक्शन (विधि) का परीक्षण कर रहे हैं। इसका मतलब है, आम तौर पर, कि आप सिस्टम कार्यक्षमता का परीक्षण कर रहे हैं - जब मैं foo file.txtकमांड लाइन पर चलता हूं , तो लाइनें file.txtउलट हो जाती हैं, शायद। इसके विपरीत, एक एकल इकाई परीक्षण आम तौर पर एक एकल विधि के एक मामले को कवर करता है - length("hello")5 वापस आना चाहिए, और length("hi")2 वापस आना चाहिए।

यूनिट टेस्टिंग और फ़ंक्शनल टेस्टिंग के बीच आईबीएम की लाइन को भी देखें ।


ठीक है, दिलचस्प है, लेकिन आपके द्वारा दिखाए गए लिंक का मतलब कुछ अलग है: कार्यात्मक कार्यान्वयन के माध्यम से कार्य करने के बारे में है, अर्थात उपयोगकर्ता के दृष्टिकोण से परीक्षण, जो उपयोगकर्ता के लिए एक फ़ंक्शन है।
स्टेफानो स्कार्पेंटी

8

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

हैरी पर्सीवल की पुस्तक "पायथन टीडीडी" से लिया गया


8

ISTQB के अनुसार वे दोनों तुलनात्मक नहीं हैं। कार्यात्मक परीक्षण एकीकरण परीक्षण नहीं है।

इकाई परीक्षण परीक्षण स्तर में से एक है और कार्यात्मक परीक्षण परीक्षण का प्रकार है।

मूल रूप से:

एक प्रणाली (या घटक) का कार्य 'यह क्या करता है' है। यह आमतौर पर एक आवश्यकताओं के विनिर्देश, एक कार्यात्मक विनिर्देश, या उपयोग के मामलों में वर्णित है।

जबकि

घटक परीक्षण, जिसे इकाई, मॉड्यूल और प्रोग्राम परीक्षण के रूप में भी जाना जाता है, सॉफ्टवेयर के कामकाज में दोषों की खोज करता है और सत्यापित करता है (जैसे मॉड्यूल, प्रोग्राम, ऑब्जेक्ट, क्लासेस, आदि) जो अलग-अलग परीक्षण योग्य हैं।

ISTQB घटक के अनुसार / इकाई परीक्षण कार्यात्मक या नहीं-कार्यात्मक हो सकता है:

घटक परीक्षण में कार्यक्षमता और विशिष्ट गैर-कार्यात्मक विशेषताओं का परीक्षण शामिल हो सकता है जैसे संसाधन-व्यवहार (जैसे मेमोरी लीक), प्रदर्शन या मजबूती परीक्षण, साथ ही संरचनात्मक परीक्षण (जैसे निर्णय कवरेज)।

सॉफ्टवेयर परीक्षण की नींव से उद्धरण - ISTQB प्रमाणीकरण


मैं बहुत अधिक फ़्लफ़ के बारे में सहमत हूं, लेकिन वैसे भी वे वहां सबसे बड़े खिलाड़ी हैं और यह सवाल सिद्धांत के बारे में था, इसलिए मुझे लगता है कि ISTQB को काफी अच्छा होना चाहिए।
डोमिनिक

6

रेल में, इकाई फ़ोल्डर आपके मॉडल के लिए परीक्षण आयोजित करने के लिए होता है, कार्यात्मक फ़ोल्डर आपके नियंत्रकों के लिए परीक्षण आयोजित करने के लिए होता है, और एकीकरण फ़ोल्डर में परीक्षण को नियंत्रित करने के लिए होता है जिसमें किसी भी संख्या में नियंत्रक शामिल होते हैं। फिक्स्चर परीक्षण डेटा को व्यवस्थित करने का एक तरीका है; वे जुड़नार फ़ोल्डर में रहते हैं। Test_helper.rb फ़ाइल आपके परीक्षणों के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन रखती है। यू यात्रा कर सकते हैं इस


3

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


3

AFAIK, यूनिट परीक्षण कार्यात्मक परीक्षण नहीं है। एक छोटे से उदाहरण से समझाता हूं। आप परीक्षण करना चाहते हैं कि क्या ईमेल वेब ऐप की लॉगिन कार्यक्षमता काम कर रही है या नहीं, जैसा कि एक उपयोगकर्ता करेगा। उसके लिए, आपके कार्यात्मक परीक्षण इस तरह होने चाहिए।

1- existing email, wrong password -> login page should show error "wrong password"!
2- non-existing email, any password -> login page should show error "no such email".
3- existing email, right password -> user should be taken to his inbox page.
4- no @symbol in email, right password -> login page should say "errors in form, please fix them!" 

क्या हमारे कार्यात्मक परीक्षणों की जाँच करनी चाहिए कि क्या हम अमान्य इनपुटों के साथ लॉगिन कर सकते हैं? उदाहरण के लिए। ईमेल में कोई @ प्रतीक नहीं है, उपयोगकर्ता नाम में एक से अधिक डॉट (केवल एक डॉट की अनुमति है), .com @ से पहले प्रकट होता है आदि? आम तौर पर, नहीं! उस तरह का परीक्षण आपकी इकाई परीक्षणों में जाता है।

आप जाँच सकते हैं कि क्या अवैध इनपुट यूनिट परीक्षणों के अंदर अस्वीकार कर दिए गए हैं जैसा कि नीचे दिए गए परीक्षणों में दिखाया गया है।

class LoginInputsValidator
  method validate_inputs_values(email, password)
    1-If email is not like string.string@myapp.com, then throw error.
    2-If email contains abusive words, then throw error.
    3-If password is less than 10 chars, throw error.

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


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

कार्यात्मक परीक्षणों के लिए क्या है और क्या नहीं है, इसके अच्छे उदाहरण हैं।
माइल

2

इकाई का परीक्षण

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

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

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

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


2

बहुत ही सरलता से हम कह सकते हैं:

  • ब्लैक बॉक्स: उपयोगकर्ता इंटरफ़ेस परीक्षण जैसे कार्यात्मक परीक्षण
  • सफेद बॉक्स: कोड टेस्ट जैसे यूनिट टेस्ट

अधिक पढ़ सकते हैं यहाँ


@ फाफल आई एम सॉरी माई बैड
रहमानी खलीली

1

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

कार्यात्मक परीक्षण: - जहां तक ​​परीक्षण का संबंध है, दो मुख्य प्रकार के परीक्षण हैं जैसे 1.Functional Test 2.Non-Functional Test।

गैर-कार्यात्मक परीक्षण एक ऐसा परीक्षण है जहां एक परीक्षक परीक्षण करेगा कि उत्पाद उन सभी गुणवत्ता विशेषताओं का प्रदर्शन करेगा जो ग्राहक का उल्लेख नहीं करते हैं लेकिन उन गुणवत्ता विशेषताओं को होना चाहिए। जैसे: -रूपता, प्रयोज्यता, सुरक्षा, भार, तनाव इत्यादि लेकिन कार्यात्मक परीक्षण में : - ग्राहक पहले से ही अपनी आवश्यकताओं के साथ मौजूद होता है और जिन्हें ठीक से प्रलेखित किया जाता है, परीक्षकों का कार्य यह जांचना है कि क्या अनुप्रयोग कार्यशीलता के अनुसार प्रदर्शन कर रहा है प्रस्तावित प्रणाली या नहीं। उस प्रयोजन के लिए टेस्टर को प्रस्तावित प्रणाली के साथ कार्यान्वित कार्यक्षमता के लिए परीक्षण करना चाहिए।


0

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

कार्यात्मक परीक्षण : यह एक अच्छा संदर्भ है। कार्यात्मक परीक्षण स्पष्टीकरण


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