कुछ उत्तरों के पहलुओं को एक साथ जोड़ने के लिए और मेरे 2p को जोड़ने के लिए ...
नोट: मेरी टिप्पणियाँ विशेष रूप से डेटाबेस परीक्षण से संबंधित हैं , न कि UI परीक्षण (हालांकि स्पष्ट रूप से समान लागू होता है)।
डेटाबेस को फ्रंट एंड एप्लिकेशन के रूप में परीक्षण करने की उतनी ही आवश्यकता है, लेकिन 'क्या यह फ्रंट एंड के साथ काम करता है?' या 'रिपोर्ट सही परिणाम उत्पन्न करती हैं?', जो कि मेरी राय में डेटाबेस के विकास की प्रक्रिया में बहुत देर से परीक्षण कर रहा है और बहुत मजबूत नहीं है।
हमारे पास कई ग्राहक हैं जो सामान्य यूएटी / प्रदर्शन / एट अल के अलावा अपने डेटा वेयरहाउस डेटाबेस के लिए यूनिट / एकीकरण / सिस्टम परीक्षण का उपयोग करते हैं। परीक्षण। वे पाते हैं कि एक निरंतर एकीकरण और स्वचालित परीक्षण के साथ वे पारंपरिक यूएटी प्राप्त करने से पहले कई समस्याएं उठाते हैं, इस प्रकार यूएटी में समय की बचत होती है और यूएटी की सफलता की संभावना बढ़ जाती है।
मुझे यकीन है कि अधिकांश सहमत होंगे कि एक समान कठोरता को डेटाबेस परीक्षण पर लागू किया जाना चाहिए जैसे कि फ्रंट एंड या रिपोर्ट परीक्षण।
परीक्षण के साथ मुख्य बात यह है कि छोटी सरल संस्थाओं का परीक्षण करना, उनकी शुद्धता सुनिश्चित करना, संस्थाओं के जटिल संयोजनों पर आगे बढ़ने से पहले, व्यापक प्रणाली तक विस्तार करने से पहले उनकी शुद्धता सुनिश्चित करना।
इसलिए मेरे उत्तर के लिए कुछ संदर्भ दे रहा हूं ...
इकाई का परीक्षण
- यह साबित करने के लिए एक परीक्षण फोकस है कि इकाई काम करती है, उदाहरण के लिए एक तालिका, दृश्य, फ़ंक्शन, संग्रहीत कार्यविधि
- बाहरी निर्भरता को दूर करने के लिए इंटरफेस को 'स्टब' करना चाहिए
- अपना डेटा प्रदान करेगा। आपको डेटा की ज्ञात प्रारंभिक स्थिति की आवश्यकता होती है, इसलिए यदि डेटा पहले से मौजूद परीक्षण का मौका है, तो जनसंख्या से पहले ट्रंकेशन / विलोपन हो सकते हैं
- आदर्श रूप से अपने निष्पादन संदर्भ में चलेगा
- अपने आप ही स्पष्ट हो जाएगा और उपयोग किए गए डेटा को हटा देगा; यह केवल महत्वपूर्ण है जब स्टब्स का उपयोग नहीं किया जाता है।
ऐसा करने के फायदे यह हैं कि आप परीक्षण पर सभी बाहरी निर्भरता को हटा रहे हैं और शुद्धता साबित करने के लिए परीक्षण की सबसे छोटी मात्रा का प्रदर्शन कर रहे हैं। जाहिर है, ये परीक्षण उत्पादन डेटाबेस पर नहीं चलाए जा सकते हैं। यह हो सकता है कि कई प्रकार के परीक्षण हैं जो आप करेंगे, यूनिट के प्रकार पर निर्भर करता है, जिसमें शामिल हैं:
- स्कीमा जांच, कुछ इसे 'डेटा अनुबंध' परीक्षण कह सकते हैं
- स्तंभ मूल्यों से गुजर रहा है
- कार्यों, प्रक्रियाओं, विचारों, गणना किए गए स्तंभों के लिए डेटा के विभिन्न मूल्यों के साथ तर्क पथों का प्रयोग
- एज केस टेस्टिंग - NULL, बैड डेटा, निगेटिव नंबर, मान जो बहुत बड़े हैं
(यूनिट) एकीकरण परीक्षण
मैंने इस एसई पोस्ट को विभिन्न प्रकार के परीक्षण के बारे में बात करने में मददगार पाया ।
- यह साबित करने के लिए परीक्षण फ़ोकस है कि इकाइयाँ एक साथ एकीकृत हैं
- एक साथ कई इकाइयों पर प्रदर्शन किया
- बाहरी निर्भरता को दूर करने के लिए इंटरफेस को 'स्टब' करना चाहिए
- बाहरी डेटा प्रभावों के प्रभावों को दूर करने के लिए अपना डेटा प्रदान करेगा
- आदर्श रूप से अपने निष्पादन संदर्भ में चलेगा
- खुद के बाद स्पष्ट हो जाएगा और बनाए गए डेटा को हटा देगा; यह केवल महत्वपूर्ण है जब स्टब्स का उपयोग नहीं किया जाता है।
इकाई परीक्षणों से इन एकीकरण परीक्षणों की ओर बढ़ने में, परीक्षण के व्यापक मामलों का परीक्षण करने के लिए अक्सर थोड़ा अधिक डेटा होगा। जाहिर है, ये परीक्षण उत्पादन डेटाबेस पर नहीं चलाए जा सकते हैं।
इसके बाद सिस्टम टेस्टिंग , सिस्टम इंटीग्रेशन टेस्टिंग (उर्फ एंड-टू-एंड टेस्टिंग) पर बढ़ता है, जिसमें डेटा वॉल्यूम बढ़ता है और स्कोप बढ़ता है। इन सभी परीक्षणों को एक प्रतिगमन परीक्षण ढांचे का हिस्सा बनना चाहिए। इन परीक्षणों में से कुछ को यूएटी के भाग के रूप में प्रदर्शन करने के लिए उपयोगकर्ताओं द्वारा चुना जा सकता है, लेकिन यूएटी उपयोगकर्ताओं द्वारा परिभाषित परीक्षण है , आईटी द्वारा परिभाषित नहीं है - एक सामान्य समस्या!
तो अब जब मैंने आपके वास्तविक प्रश्नों का उत्तर देने के लिए कुछ संदर्भ दिया है
- यूनिट और इंटीग्रेशन टेस्टिंग के लिए प्रीपोप्युलेटिंग डेटा के कारण स्प्यूरियस टेस्ट एरर हो सकते हैं और इससे बचना चाहिए।
- निरंतर परीक्षणों को सुनिश्चित करने का एकमात्र तरीका स्रोत डेटा के बारे में कोई धारणा नहीं बनाना है और इसे सख्ती से नियंत्रित करना है।
- एक अलग परीक्षण निष्पादन संदर्भ महत्वपूर्ण है, यह सुनिश्चित करने के लिए कि स्रोत नियंत्रित डेटाबेस कोड की एक अलग शाखा पर एक ही परीक्षण करने वाले दूसरे परीक्षक के साथ कोई परीक्षक विरोध नहीं कर रहा है।