अध्याय परीक्षा? जोड़ने का परीक्षण? परावर्तन जांच? स्वीकृति परीक्षण?


98

क्या कोई ऐसा है जो स्पष्ट रूप से परीक्षण के इन स्तरों को परिभाषित कर सकता है क्योंकि मुझे TDD या इकाई परीक्षण करते समय अंतर करना मुश्किल लगता है। कृपया अगर कोई इनका कार्यान्वयन कब, कैसे, कैसे कर सकता है?



जवाबों:


129

संक्षेप में:

यूनिट टेस्टिंग - आप यूनिट प्रत्येक व्यक्तिगत कोड का परीक्षण करते हैं। प्रत्येक फ़ाइल या कक्षा के बारे में सोचें।

इंटीग्रेशन टेस्टिंग - जब आपस में कई इकाइयाँ लगाते हैं तो आपको यह सुनिश्चित करने के लिए एकीकरण परीक्षण करने की आवश्यकता होती है कि इन इकाइयों को एक साथ एकीकृत करने से कोई त्रुटि नहीं आई है।

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

स्वीकृति परीक्षण - जब एक उपयोगकर्ता / ग्राहक / व्यवसाय को कार्यक्षमता प्राप्त होती है तो वे (या आपका परीक्षण विभाग) यह सुनिश्चित करने के लिए स्वीकृति परीक्षण करेंगे कि कार्यक्षमता उनकी आवश्यकताओं को पूरा करती है।

आप सफेद बॉक्स और ब्लैक बॉक्स परीक्षण की जांच करना भी पसंद कर सकते हैं। प्रदर्शन और लोड परीक्षण, और विचार करने के लिए "'उपयोगिताओं" का परीक्षण भी है।


FYI, इकाई परीक्षण में , परीक्षण की जा रही इकाइयाँ विभिन्न आकारों की हो सकती हैं। उदाहरण के लिए आप कक्षाओं के एक समूह, एक विधि या एकल विधि के रूप में भी परीक्षण कर सकते हैं। स्रोत: ब्लूजे अध्याय 9.3 "ब्लूज के भीतर इकाई परीक्षण"।
सेबेस्टियन नील्सन

113

इकाई परीक्षण: जब यह विफल हो जाता है, तो यह आपको बताता है कि आपके कोड के किस टुकड़े को ठीक करने की आवश्यकता है।

एकीकरण परीक्षण: जब यह विफल हो जाता है, तो यह बताता है कि आपके एप्लिकेशन के टुकड़े अपेक्षित रूप से एक साथ काम नहीं कर रहे हैं।

स्वीकृति परीक्षण: जब यह विफल हो जाता है, तो यह आपको बताता है कि आवेदन वह नहीं कर रहा है जो ग्राहक इसे करने की अपेक्षा करता है।

प्रतिगमन परीक्षण: जब यह विफल हो जाता है, तो यह आपको बताता है कि अनुप्रयोग अब उस तरीके का व्यवहार नहीं करता है जैसा वह करता था।


19

यहाँ उल्लिखित परीक्षणों में से प्रत्येक के लिए एक सरल विवरण दिया गया है और जब वे लागू होते हैं:

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

इसका मतलब यह है कि जब भी आपने एक वर्ग / विधि लिखी है, एक बग, निश्चित कार्यक्षमता को बदल दिया है ...

इंटीग्रेशन टेस्ट इंटीग्रेशन टेस्ट का लक्ष्य है कि कितनी इकाइयाँ एक-दूसरे के साथ परस्पर क्रिया करती हैं। इस प्रकार का परीक्षण किया जाना चाहिए जब भी इकाइयों के बीच संचार का एक नया रूप स्थापित किया गया है या उनकी बातचीत की प्रकृति बदल गई है।

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

प्रतिगमन परीक्षण प्रतिगमन परीक्षण तब किए जाते हैं जब भी सिस्टम में कुछ भी बदला गया हो, यह जांचने के लिए कि कोई नया बग पेश नहीं किया गया है।

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

स्वीकृति परीक्षण स्वीकृति परीक्षण तब भी किए जाते हैं जब यह जांचने के लिए प्रासंगिक होता है कि एक उप-प्रणाली (संभवतः संपूर्ण प्रणाली) अपने संपूर्ण विनिर्देशों को पूरा करती है।

इसका मतलब यह है कि यह मुख्य रूप से एक नया कार्य पूरा करने या किसी बड़े कार्य को पूरा करने की घोषणा से पहले चलाया जाता है। इसे अपनी अंतिम जांच के रूप में देखें कि आपने ग्राहक / बॉस को चलाने और जीत की घोषणा करने से पहले वास्तव में अपने लक्ष्य को पूरा कर लिया है।

यह कम से कम मैंने सीखा है, हालांकि मुझे यकीन है कि अन्य विरोधी विचार हैं। किसी भी तरह से, मुझे आशा है कि मदद करता है।


मैं वास्तव में प्रतिगमन परीक्षण और इकाई परीक्षण के बीच अंतर नहीं कर सकता। मेरा मतलब है कि प्रत्येक परिवर्तन / कमिटमेंट के बाद भी आपके पास आपके यूनिट-टेस्ट चल रहे हैं ... और वे नए कोड द्वारा प्रस्तुत त्रुटियों को पकड़ सकते हैं। सही?
हनी

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

AFAIK आप वास्तव में इकाई परीक्षण तरीकों नहीं होना चाहिए। यदि आप कक्षा का परीक्षण करते हैं, तो आपको इसे पूरी तरह से व्यवहार करना चाहिए, इसलिए आप कक्षा के सार्वजनिक इंटरफ़ेस का परीक्षण करते हैं, न कि कार्यान्वयन विवरणों का। यद्यपि आप स्टैंडअलोन फ़ंक्शन को यूनिट-टेस्ट कर सकते हैं, यह ठीक है।
Qback

14

मै कोशिश करुॅगा:

  1. इकाई परीक्षण: एक डेवलपर एक व्यक्ति घटक या वर्ग का परीक्षण करने के लिए लिखेगा।
  2. एकीकरण परीक्षण: एक अधिक व्यापक परीक्षण जिसमें कई घटक या पैकेज शामिल होंगे जिन्हें सहयोग करने की आवश्यकता है
  3. प्रतिगमन परीक्षण: एक आवेदन में एक बदलाव करना आपको सभी परीक्षणों को फिर से चलाने और सभी कार्यक्षमता की जांच करने के लिए मजबूर करता है।
  4. स्वीकृति परीक्षण: किसी अनुप्रयोग के वितरण को स्वीकार करने के लिए अंतिम उपयोगकर्ता या QA इन पर हस्ताक्षर करने से पहले करते हैं। यह कहता है "ऐप ने मेरी आवश्यकताओं को पूरा किया।"

14

यूनिट टेस्ट: क्या मेरा एकल तरीका सही तरीके से काम कर रहा है? (कोई निर्भरता, या निर्भरता का मज़ाक)

एकीकरण टेस्ट: क्या मेरे दो अलग-अलग विकसित मॉड्यूल हैं, जो एक साथ रखे जाने पर शालीनता से काम करते हैं?

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

स्वीकृति परीक्षण : ग्राहक द्वारा किया गया परीक्षण, कि वह दिए गए SW को "स्वीकार" करता है


0

टिप्पणी नहीं कर सकते (कम प्रतिष्ठा: - |) तो ...

@Andrejs प्रत्येक प्रकार के परीक्षण से जुड़े वातावरण के बीच अंतर के बारे में एक अच्छा बिंदु बनाता है।

यूनिट परीक्षण आमतौर पर डेवलपर्स मशीन पर चलाए जाते हैं (और संभवतः CI बिल्ड के दौरान) अन्य संसाधनों / प्रणालियों के लिए निर्भरता को खत्म कर देते हैं।

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

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

अन्य "यूटिलिटीज" को उत्पादन अनुभव जैसे प्रदर्शन परीक्षण, सुरक्षा, ...

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