2012-08-11 11 views
13

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

हमारे जैसे परीक्षण प्रणालियों के लिए हमारे पास एकीकरण परीक्षण ढांचे क्या हैं? मैं रूबी से परिचित हूं इसलिए कुछ रूबी आधारित निश्चित रूप से मदद करेगा।

+0

आप किस प्रकार के परीक्षण चलाने के लिए इच्छुक हैं? यानी आप क्या कहने की कोशिश कर रहे हैं? ऑब्जेक्ट्स सही ढंग से क्रमबद्ध हैं? वितरित सिस्टम के माध्यम से संदेश सही ढंग से प्राप्त और संसाधित होते हैं? संदेशों को एक निश्चित क्रम में सिस्टम के माध्यम से चलाया जाएगा? क्या आप लोड परीक्षण के बारे में चिंतित हैं? –

+0

@EricLaForce: सिस्टम को ठीक करने की आवश्यकता है ठीक है, इसलिए उपर्युक्त सभी लागू होते हैं। – Fanatic23

उत्तर

5

मुझे लगता है कि ऐसा करने के विभिन्न तरीके हैं। मैं एकीकरण परीक्षण से बचने की कोशिश करता हूं जितना मैं कर सकता हूं लेकिन किसी बिंदु पर इसकी आवश्यकता होती है। यह सिर्फ एक सुझाव है कि मैं क्या करूँगा:

  1. behavior driven approach का उपयोग करके उन परिदृश्यों को स्पष्ट रूप से परिभाषित करें जिन्हें आप परीक्षण करना चाहते हैं।
  2. unit testing (integration), उन मॉड्यूल के आउटपुट का प्रतिनिधित्व करने वाली प्रक्रियाओं के लिए करें।
  3. यूनिट अन्य मॉड्यूल से इनपुट का उपयोग करने वाली प्रक्रियाओं का परीक्षण करता है, लेकिन mocks का उपयोग करके। वर्तमान में एक और मॉड्यूल के तर्क का परीक्षण।
  4. smoke tests प्रदर्शन करें, इस प्रकार का परीक्षण यह सुनिश्चित करेगा कि आपके मॉड्यूल एक दूसरे के बीच संवाद कर सकें (यह एकीकरण परीक्षण का एक प्रकार है)। मुझे लगता है कि धूम्रपान परीक्षण केवल पर्याप्त एकीकरण परीक्षण है। आप इसके बारे में सोचते हैं? क्यों करेंगे जो दूसरे मॉड्यूल करता है के बारे में मॉड्यूल देखभाल पर

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

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

enter image description here

मैं जावा दुनिया से आते हैं, यह निम्नलिखित बस कुछ अतिरिक्त जानकारी मुझे लगता है कि यह भी विषय से संबंधित है और अपने रुचिकर हो सकती है:

  • Data Transfer Object पैटर्न, दिलचस्प है
  • RMI vs EJB vs HTTP
  • (दूरदराज के मंगलाचरण प्रौद्योगिकियों के बीच मतभेद पर कुछ रोचक टिप्पणी) 10 जावा डेवलपर्स के लिए एक बीडीडी ढांचा। (यदि आप व्यवसाय नियमों को पूरी तरह से समझते हैं तो परीक्षण एक आसान तरीका है)

आशा है कि आपको यह उपयोगी लगेगा।

0

आप एसटीएफ़/एसटीएक्स का उपयोग कर सकते हैं, इसमें क्लाइंट-सर्वर, SAN इत्यादि जैसे वितरित परीक्षण परिदृश्यों के लिए अच्छी क्षमता/सेवाएं हैं। इसके अलावा ट्विस्टर द्वारा लक्सफ्ट नामक एक और फ्रेमवर्क भी है। यह भी शानदार है।

0

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

यदि आपके पास जावा आधारित ऐप नहीं है तो यह उपयोगी नहीं हो सकता है। ढांचे के चयन बड़े पैमाने पर आपके प्रौद्योगिकी विकल्पों और वास्तुकला पर निर्भर हैं।

1

आप Zopkio: https://github.com/linkedin/Zopkio चेकआउट कर सकते हैं। वितरित सिस्टम के कार्यात्मक और प्रदर्शन परीक्षण के लिए यह एक खुला स्रोत ढांचा है।

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