2009-01-02 13 views
9

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

उत्तर

7

मैं उन्हें निम्नलिखित कारणों से अलग मानता हूं।

  • यूनिट परीक्षण डेवलपर के पर्यावरण में एक वर्ग/मॉड्यूल पर किया जा सकता है।
  • वास्तविक उत्पादन सेटअप के समान वातावरण में एकीकरण परीक्षण किया जाना चाहिए।

यूनिट परीक्षण जानबूझकर "हल्के वजन" रखा जाता है ताकि डेवलपर उन्हें कम से कम लागत के साथ जितनी बार आवश्यक हो सके।

3

हाँ। आम तौर पर यूनिट परीक्षण कक्षा स्तर पर स्कॉप्ड होते हैं, इसलिए वे मॉक ऑब्जेक्ट्स के साथ पर्यावरण में मौजूद होते हैं। दूसरी ओर, एकीकरण परीक्षण, वास्तविक असेंबली प्रकारों के संदर्भों को रखते हुए सभी चालें करें।

मैं सिर्फ यह नहीं देखता कि एक इकाई दोनों में एक इकाई और एकीकरण को व्यवस्थित कैसे करेगा।

7

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

मैं ऐसे माहौल में काम करता हूं जहां हमारे पास इकाई के साथ लगभग 15k जूनिट परीक्षण होते हैं और एकीकरण परीक्षण पूरी तरह से मिश्रित होते हैं। पूर्ण सुइट को चलाने के लिए लगभग आधे घंटे लगते हैं। डेवलपर्स इसे चलाने से बचते हैं और उन्हें बाद में गलतियों को ढूंढना चाहिए। कभी-कभी वे परीक्षणों का केवल एक सबसेट चलाने के बाद चेक-इन करते हैं और एक बग शामिल करते हैं जो निरंतर निर्माण को तोड़ देता है।

अपने परीक्षणों को जल्दी से शुरू करना प्रारंभ करें। एक बार आपके पास एक बड़ा सूट हो जाना बहुत मुश्किल है।

+0

सहमत के आधार पर पैकेज परीक्षण सूट। मिश्रण इकाई और एकीकरण परीक्षण एक वास्तविक दर्द है। –

+0

इसलिए, यदि एकल इकाई परीक्षण अन्य बाहरी निर्भरताओं पर निर्भर नहीं है, तो इसका मतलब है कि आप हमेशा अन्य इकाई/एकीकरण परीक्षणों से यूनिट परीक्षण चला सकते हैं (हमारे पास अन्य बाहरी कक्षाओं/परीक्षणों पर निर्भरता नहीं है)। परीक्षणों के पूर्ण सूट को चलाने की भावना क्या है यदि आपको केवल 1 कक्षा का परीक्षण करने की आवश्यकता है? और दूसरी तरफ, यदि आपने सिस्टम में अपनी इकाई को एकीकृत किया है, तो आपको यह सुनिश्चित करने के लिए परीक्षणों का पूर्ण सूट चलाने की आवश्यकता होगी कि कोई एकीकरण दोष नहीं है। OFC में आसानी से 30 मिनट या उससे अधिक समय लगेगा, बीसीजेड आपको पूरी प्रणाली का परीक्षण करने की आवश्यकता है। – metamaker

+0

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

3

यदि आप श्रेणी स्तर पर गुंजाइश के लिए 'इकाई परीक्षण' की धारणा की सीमा है, तो हाँ, उन्हें

अलग लेकिन यदि आप यह तो कुछ एक सुविधा के रूप में छोटी से छोटी प्रासंगिक परीक्षण योग्य इकाई को परिभाषित रखने आपके 'यूनिट' परीक्षणों का तकनीकी रूप से 'एकीकरण' परीक्षण

शर्तों की विभिन्न परिभाषाओं/व्याख्याओं का पुनरावृत्ति काफी हद तक अप्रासंगिक है, हालांकि, आपके परीक्षण सूट का विभाजन परीक्षण किए जा रहे घटकों के दायरे का एक कार्य होना चाहिए और परीक्षण करने के लिए आवश्यक समय।

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

सारांश से परीक्षणों के पहले सेट को अलग करना समझ में आता है: 'इकाई' और 'एकीकरण' परीक्षण का अंतर है अप्रासंगिक; परिचालन स्कोप

संबंधित मुद्दे