Tuesday, 15 February 2011

sql server - Strategies for testing against a live system -


मुझे इस परिदृश्य का वर्णन करें:

हमारी VB.NET वेब अनुप्रयोग एक तीसरी पार्टी डेटा प्रदाता से बात करता है Webservices के माध्यम से यह एक विशाल SQLServer डेटाबेस में डेटा को भी बचाता है जिसमें संग्रहीत procs और ट्रिगर्स में व्यापक व्यावसायिक तर्क लागू होता है। Webservice प्रदाता भी जटिल व्यापार तर्क को रोजगार देता है जो काफी गतिशील है।

दुविधा यह है कि दोनों webservice प्रदाता और sqlserver अनिवार्य रूप से जीवित सिस्टम हैं और हमारी कंपनी का सामान्य संचालन (वेब ​​और एसक्यूएल कॉल) इसके अंत में सहायक समर्थन की पेशकश भी नहीं की जाती है।

इसके अतिरिक्त, webservice के पास कोई 'परीक्षण मोड' नहीं है और सभी कॉल्स को लाइव ट्रांजैक्शन के रूप में माना जाता है।

तो, मेरा सवाल यह है कि:

कैसे इस प्रणाली में से किसी में तर्क की नकल करना संभव नहीं है, न ही sqlserver डीबी की एक कॉपी मिलना संभव है।

कैसे क्या आप इन लाइव सिस्टम के विरुद्ध हमारे VB.NET अनुप्रयोग के किसी भी तरह के परीक्षण (मैनुअल या स्वचालित) करते हैं?

आपके सुझावों की सराहना की जाएगी।

अपनी धारणा को चुनौती देने से शुरू करते हैं "इन दोनों में से किसी भी तर्क में तर्क करना संभव नहीं है"

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

आप नकली ऑब्जेक्ट्स और यूनिट टेस्टिंग के बारे में लेख यहां पढ़ सकते हैं। यहां यहां:

ध्यान दें, जैसे उपकरण और काम आसान बनाते हैं, लेकिन यह अभी भी कठिन है - आपको अपना कोड न सिर्फ परीक्षण करना चाहिए कोड पहले और प्रार्थना करें कि आप इसे बाद में जांच सकते हैं।

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

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


No comments:

Post a Comment