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