डेटाबेस परीक्षण. डेटाबेस लोड परीक्षण। डेटासेट और डेटाटेबल्स को समझना

: डेटाबेस का परीक्षण और डिबग कैसे करें

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

समस्या को हल करने की कुंजी लेनदेन है। इस तंत्र की एक विशेषता यह है कि जब तक लेन-देन पूरा नहीं हो जाता, आप हमेशा सभी परिवर्तनों को पूर्ववत कर सकते हैं और लेन-देन शुरू होने के समय डेटाबेस को स्थिति में वापस कर सकते हैं।

एल्गोरिथ्म इस प्रकार है:

  1. लेन-देन खोलें;
  2. यदि आवश्यक हो, तो हम परीक्षण के लिए प्रारंभिक कदम उठाते हैं;
  3. एक इकाई परीक्षण करें (या बस वह स्क्रिप्ट चलाएँ जिसका संचालन हम जाँचना चाहते हैं);
  4. स्क्रिप्ट का परिणाम जांचें;
  5. हम लेनदेन को रद्द कर देते हैं, डेटाबेस को उसकी मूल स्थिति में लौटा देते हैं।

भले ही परीक्षण के तहत कोड में अज्ञात लेनदेन हों, बाहरी रोलबैक अभी भी सभी परिवर्तनों को सही ढंग से वापस लाएगा।

यदि हमें SQL स्क्रिप्ट या संग्रहीत प्रक्रिया का परीक्षण करने की आवश्यकता है तो यह अच्छा है। क्या होगा यदि हम एक ऐसे एप्लिकेशन का परीक्षण कर रहे हैं जो स्वयं डेटाबेस से जुड़ता है, एक नया कनेक्शन खोलता है? इसके अलावा, यदि हम डिबगिंग कर रहे हैं, तो हम संभवतः डिबग किए जा रहे एप्लिकेशन की नजर से डेटाबेस को देखना चाहेंगे। ऐसे में क्या करें?

वितरित लेनदेन बनाने में जल्दबाजी न करें, एक आसान समाधान है! मानक SQL सर्वर टूल का उपयोग करके, आप एक कनेक्शन पर लेनदेन खोल सकते हैं और दूसरे पर इसे जारी रख सकते हैं।

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

क्रियाओं का क्रम इस प्रकार है:

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

अब एप्लिकेशन का कार्य हमारे नियंत्रण लेनदेन से जुड़ना है, इससे पहले कि वह वह करना शुरू कर दे जो उसे करना चाहिए।

फिर एप्लिकेशन काम करना शुरू कर देता है, जिसमें इसकी संग्रहीत प्रक्रियाओं को चलाना, इसके लेनदेन को खोलना, आइसोलेशन मोड को बदलना शामिल है... लेकिन हमारा डिबगिंग सत्र इस समय एप्लिकेशन के समान लेनदेन के अंदर होगा।

मान लीजिए कि कोई एप्लिकेशन किसी तालिका को लॉक कर देता है और उसकी सामग्री बदलना शुरू कर देता है। इस समय, कोई अन्य कनेक्शन लॉक की गई तालिका में नहीं देख सकता। लेकिन हमारा डिबगिंग सत्र नहीं! वहां से हम डेटाबेस को उसी तरह देख सकते हैं जैसे एप्लिकेशन देखता है, क्योंकि SQL सर्वर मानता है कि हम एक ही लेनदेन में हैं।

जबकि अन्य सभी सत्रों के लिए एप्लिकेशन की गतिविधियां ताले से छिपी रहती हैं...

हमारा डिबगिंग सत्र तालों से होकर गुजरता है (सर्वर सोचता है कि वे हमारे अपने ताले हैं)!

या कल्पना करें कि एप्लिकेशन स्नैपशॉट मोड में स्ट्रिंग्स के अपने संस्करणों के साथ काम करना शुरू कर देता है। मैं इन संस्करणों को कैसे देख सकता हूँ? यह तब भी संभव है जब आप एक सामान्य लेन-देन से जुड़े हों!

इस रोमांचक प्रक्रिया के अंत में नियंत्रण लेनदेन को वापस लेना न भूलें। यह डिबगिंग सत्र (यदि परीक्षण प्रक्रिया सामान्य रूप से पूरी होती है) और एप्लिकेशन से ही (यदि इसमें कुछ अप्रत्याशित होता है) दोनों से किया जा सकता है।

आप पाठ्यक्रमों में इसके बारे में अधिक जान सकते हैं

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

NoSQL में गति कैसे प्राप्त की जाती है? सबसे पहले, यह एक पूरी तरह से अलग डेटा भंडारण प्रतिमान का परिणाम है। SQL प्रश्नों का पार्सिंग और अनुवाद, ऑप्टिमाइज़र का कार्य, तालिकाओं को जोड़ना आदि प्रतिक्रिया समय को बहुत बढ़ा देते हैं। यदि आप इन सभी परतों को हटा देते हैं, प्रश्नों को सरल बनाते हैं, डिस्क से सीधे नेटवर्क पर पढ़ते हैं, या सभी डेटा को रैम में संग्रहीत करते हैं, तो आप गति प्राप्त कर सकते हैं। प्रत्येक अनुरोध का प्रसंस्करण समय और प्रति सेकंड अनुरोधों की संख्या दोनों कम हो जाती हैं। इस प्रकार कुंजी-मूल्य डेटाबेस प्रकट हुए, जिनमें से सबसे विशिष्ट और व्यापक रूप से ज्ञात प्रतिनिधि मेम्केच्ड है। हाँ, डेटा एक्सेस को तेज़ करने के लिए वेब अनुप्रयोगों में व्यापक रूप से उपयोग किया जाने वाला यह कैश भी NoSQL है।

नोएसक्यूएल प्रकार

NoSQL सिस्टम की चार मुख्य श्रेणियां हैं:

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

परीक्षण के लिए, हमने पहली तीन श्रेणियों के प्रतिनिधियों को लिया:

परीक्षण कैसे किया गया

हमारे पास चार सर्वर मशीनें थीं। प्रत्येक में आठ-कोर ज़ीऑन, 32 जीबी रैम, 120 जीबी के चार इंटेल एसएसडी हैं।

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

जानकारी

YCSB के अलावा, आप उदाहरण के लिए, JMeter का उपयोग करके NoSQL डेटाबेस के प्रदर्शन का परीक्षण कर सकते हैं।

हमारे छोटे क्लस्टर पर लोड बनाने में आठ क्लाइंट मशीनें लगीं। प्रत्येक में क्वाड-कोर i5 और 4 जीबी रैम है। क्लस्टर को लोड करने के लिए एक (या दो, या तीन, या चार...) क्लाइंट पर्याप्त नहीं थे। यह अजीब लग सकता है, लेकिन यह सच है।

यह सब एक गीगाबिट में चला गया स्थानीय नेटवर्क. शायद दस-गीगाबिट नेटवर्क पर यह अधिक दिलचस्प होता, लेकिन हमारे पास ऐसा हार्डवेयर नहीं था। यह अधिक दिलचस्प है, क्योंकि जब प्रति सेकंड संचालन की संख्या सैकड़ों हजारों में मापी जाने लगती है, तो हम नेटवर्क में भाग लेते हैं। गीगाबिट प्रति सेकंड (10^9 बिट्स/सेकंड) के थ्रूपुट के साथ, नेटवर्क केवल लगभग 100,000 (10^5) किलोबाइट पैकेट (~10^4 बिट्स) पास कर सकता है। यानी हमें प्रति सेकंड केवल 100k ऑपरेशन ही मिलते हैं। लेकिन हम वास्तव में दस लाख पाना चाहते थे :)।

नेटवर्क कार्ड भी मायने रखते हैं. सही सर्वर नेटवर्क कार्ड में क्रमशः कई I/O चैनल होते हैं, प्रत्येक का अपना व्यवधान होता है। लेकिन लिनक्स में डिफ़ॉल्ट रूप से, ये सभी व्यवधान एक प्रोसेसर कोर को सौंपे जाते हैं। केवल एयरोस्पाइक के लोगों ने ही इस सूक्ष्मता का ध्यान रखा, और उनकी डेटाबेस कॉन्फ़िगरेशन स्क्रिप्ट प्रोसेसर कोर में नेटवर्क कार्ड व्यवधान को बिखेरती है। आप नेटवर्क कार्ड व्यवधान देख सकते हैं और उन्हें प्रोसेसर कोर में कैसे वितरित किया जाता है, उदाहरण के लिए, निम्न आदेश के साथ: “cat /proc/interpts | ग्रेप एथ"।

हमें SSDs के बारे में भी बात करनी चाहिए। हम यह समझने के लिए विशेष रूप से सॉलिड-स्टेट ड्राइव पर NoSQL डेटाबेस के संचालन का परीक्षण करना चाहते थे कि क्या ये ड्राइव वास्तव में इसके लायक हैं, यानी वे अच्छा प्रदर्शन प्रदान करते हैं। इसलिए, हमने SSD को सही ढंग से कॉन्फ़िगर करने का प्रयास किया। आप इसके बारे में साइडबार में अधिक पढ़ सकते हैं।

एसएसडी की स्थापना

विशेष रूप से, SSDs को ओवरप्रोविजनिंग नामक क्रियाओं की आवश्यकता होती है। तथ्य यह है कि SSD में एड्रेस ट्रांसलेशन लेयर होती है। ऑपरेटिंग सिस्टम को दिखाई देने वाले ब्लॉक पते फ्लैश मेमोरी में भौतिक ब्लॉक से बिल्कुल भी मेल नहीं खाते हैं। जैसा कि आप जानते हैं, फ्लैश मेमोरी में सीमित संख्या में पुनर्लेखन चक्र होते हैं। इसके अलावा, लिखने के ऑपरेशन में दो चरण होते हैं: मिटाना (अक्सर एक साथ कई ब्लॉक) और स्वयं लिखना। इसलिए, ड्राइव की लंबी उम्र (यहां तक ​​कि घिसाव) और अच्छी लिखने की गति सुनिश्चित करने के लिए, डिस्क नियंत्रक लिखते समय भौतिक मेमोरी ब्लॉक को वैकल्पिक करता है। जब ऑपरेटिंग सिस्टम एक निश्चित पते पर एक ब्लॉक लिखता है, तो लेखन भौतिक रूप से मेमोरी के कुछ साफ मुक्त ब्लॉक पर होता है, और पुराने ब्लॉक को बाद के (पृष्ठभूमि) मिटाने के लिए उपलब्ध के रूप में चिह्नित किया जाता है। इन सभी जोड़तोड़ों के लिए, डिस्क नियंत्रक को मुफ्त ब्लॉक की आवश्यकता होती है, जितना अधिक, उतना बेहतर। एक SSD जो 100% पूर्ण है वह काफी धीमी हो सकती है।

निःशुल्क ब्लॉक कई तरीकों से प्राप्त किए जा सकते हैं। आप दृश्यमान डिस्क सेक्टरों की संख्या निर्दिष्ट करने के लिए hdparm कमांड ("-N" स्विच के साथ) का उपयोग कर सकते हैं ऑपरेटिंग सिस्टम. बाकी का पूरा अधिकार नियंत्रक के पास होगा। हालाँकि, यह हर हार्डवेयर पर काम नहीं करता है (उदाहरण के लिए, यह AWS EC2 में काम नहीं करता है)। दूसरा तरीका यह है कि डिस्क स्थान को विभाजनों द्वारा कब्जा न किया जाए (अर्थात् बनाए गए विभाजन, उदाहरण के लिए, fdisk द्वारा)। नियंत्रक इस स्थान का लाभ उठाने के लिए पर्याप्त स्मार्ट है। तीसरा तरीका फ़ाइल सिस्टम और कर्नेल संस्करणों का उपयोग करना है जो नियंत्रक को मुफ्त ब्लॉक की रिपोर्ट कर सकते हैं। यह वही TRIM कमांड है. हमारे हार्डवेयर में पर्याप्त hdparm था, हमने नियंत्रक को टुकड़ों में फाड़ने के लिए कुल डिस्क वॉल्यूम का 20% दिया।

SSDs के लिए I/O शेड्यूलर भी महत्वपूर्ण है। यह एक कर्नेल सबसिस्टम है जो दक्षता में सुधार के लिए I/O संचालन (ज्यादातर डिस्क लिखता है) को समूहित और पुन: व्यवस्थित करता है। डिफ़ॉल्ट रूप से, लिनक्स सीएफक्यू (कम्प्लीटली फेयर क्यूइंग) का उपयोग करता है, जो क्रमिक रूप से यथासंभव अधिक से अधिक ब्लॉक लिखने के लिए लिखने को पुनर्व्यवस्थित करने का प्रयास करता है। यह साधारण कताई के लिए अच्छा है (वे यही कहते हैं - कताई:)) डिस्क, क्योंकि उनके लिए रैखिक पहुंच की गति यादृच्छिक ब्लॉकों तक पहुंच की तुलना में काफी अधिक है (सिर को स्थानांतरित करने की आवश्यकता है)। लेकिन एसएसडी के लिए, रैखिक और यादृच्छिक लेखन समान रूप से प्रभावी (सैद्धांतिक रूप से) हैं, और सीएफक्यू ऑपरेशन केवल अनावश्यक देरी का परिचय देता है। इसलिए, एसएसडी ड्राइव के लिए, आपको अन्य शेड्यूलर्स को सक्षम करने की आवश्यकता है, जैसे कि एनओओपी, जो आई/ओ कमांड को उसी क्रम में निष्पादित करता है जिस क्रम में वे आए थे। आप शेड्यूलर को स्विच कर सकते हैं, उदाहरण के लिए, निम्न कमांड के साथ: "इको नूप > /sys/ब्लॉक/एसडीए/क्यू/शेड्यूलर", जहां एसडीए आपकी डिस्क है। निष्पक्ष होने के लिए, यह उल्लेखनीय है कि नवीनतम कर्नेल स्वयं एसएसडी ड्राइव का पता लगा सकते हैं और उनके लिए सही शेड्यूलर को सक्षम कर सकते हैं।

कोई भी DBMS डिस्क पर गहनता से लिखना पसंद करता है, साथ ही गहनता से पढ़ना भी पसंद करता है। और लिनक्स वास्तव में डेटा को अग्रसक्रिय रूप से पढ़ना पसंद करता है, इस उम्मीद में कि एक बार जब आप इस ब्लॉक को पढ़ लेंगे, तो आप अगले कुछ को भी पढ़ना चाहेंगे। हालाँकि, DBMS के साथ, और विशेष रूप से यादृच्छिक रीडिंग (और यह हमारा विकल्प है) के साथ, इन आशाओं का सच होना तय नहीं है। परिणामस्वरूप, हमें पढ़ने और स्मृति का अनावश्यक उपयोग करना पड़ता है। यदि संभव हो तो MongoDB डेवलपर्स रीड-फ़ॉरवर्ड मान को कम करने की सलाह देते हैं। आप इसे "blockdev --setra 8 /dev/sda" कमांड से कर सकते हैं, जहां sda आपकी डिस्क है।

कोई भी DBMS अनेक, अनेक फ़ाइलें खोलना पसंद करता है। इसलिए, /etc/security/limits.conf फ़ाइल में नोफ़ाइल सीमा (उपयोगकर्ता के लिए उपलब्ध फ़ाइल डिस्क्रिप्टर की संख्या) को 4k से अधिक मूल्य तक बढ़ाना आवश्यक है।

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

स्वाभाविक रूप से, क्लस्टर में सभी मशीनों (सर्वर और क्लाइंट दोनों) पर घड़ियों को एनटीपीडी का उपयोग करके सिंक्रनाइज़ किया जाना चाहिए। Ntpdate यहां उपयुक्त नहीं है क्योंकि अधिक सिंक्रनाइज़ेशन सटीकता की आवश्यकता है। सभी वितरित प्रणालियों के लिए, यह महत्वपूर्ण है कि नोड्स के बीच का समय सिंक्रनाइज़ हो। उदाहरण के लिए, कैसेंड्रा और एयरोस्पाइक किसी रिकॉर्ड के संशोधन समय को संग्रहीत करते हैं। और यदि क्लस्टर के विभिन्न नोड्स पर अलग-अलग टाइमस्टैम्प वाले रिकॉर्ड हैं, तो नवीनतम रिकॉर्ड जीत जाएगा।

NoSQL डेटाबेस स्वयं निम्नानुसार कॉन्फ़िगर किए गए थे। कॉन्फ़िगरेशन को बॉक्स से बाहर निकाला गया, और सर्वोत्तम प्रदर्शन प्राप्त करने के संबंध में दस्तावेज़ीकरण में वर्णित सभी अनुशंसाएँ लागू की गईं। कठिन मामलों में, हमने डेटाबेस डेवलपर्स से संपर्क किया। अक्सर, सिफारिशें कोर की संख्या और रैम की मात्रा के समायोजन से संबंधित होती हैं।

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

एयरोस्पाइक और कैसेंड्रा को लगभग एक ही तरह से कॉन्फ़िगर किया गया है। आपको प्रत्येक क्लस्टर नोड पर एक कॉन्फ़िगरेशन फ़ाइल बनाने की आवश्यकता है। ये फ़ाइलें प्रत्येक नोड के लिए लगभग समान हैं। फिर राक्षसों को लॉन्च करें. यदि सब कुछ ठीक रहा, तो नोड्स स्वयं एक क्लस्टर में जुड़ जाएंगे। आपको कॉन्फ़िगरेशन फ़ाइल विकल्पों की बहुत अच्छी समझ होनी चाहिए। यहां अच्छा दस्तावेज़ीकरण बहुत महत्वपूर्ण है.

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

प्रत्येक NoSQL डेटाबेस में डेटा और उस पर वैध संचालन का प्रतिनिधित्व करने का अपना अनूठा तरीका होता है। इसलिए, YCSB ने किसी भी डेटाबेस (SQL सहित) के अधिकतम सामान्यीकरण का मार्ग अपनाया।

YCSB जिस डेटा सेट पर काम करता है वह एक कुंजी और एक मान है। कुंजी एक स्ट्रिंग है जिसमें 64-बिट हैश शामिल है। इस प्रकार, YCSB स्वयं, डेटाबेस में रिकॉर्ड की कुल संख्या को जानकर, एक पूर्णांक सूचकांक का उपयोग करके उन तक पहुंचता है, और डेटाबेस के लिए कुंजियों का सेट पूरी तरह से यादृच्छिक दिखता है। मान यादृच्छिक बाइनरी डेटा के एक दर्जन फ़ील्ड हैं। डिफ़ॉल्ट रूप से, YCSB किलोबाइट-आकार के रिकॉर्ड उत्पन्न करता है, लेकिन, जैसा कि आपको याद है, गीगाबिट नेटवर्क पर यह हमें प्रति सेकंड केवल 100k संचालन तक सीमित करता है। इसलिए, परीक्षणों में हमने एक रिकॉर्ड का आकार घटाकर 100 बाइट्स कर दिया।

YCSB इस डेटा पर बहुत सरल ऑपरेशन करता है: सम्मिलन नविन प्रवेशएक कुंजी और यादृच्छिक डेटा के साथ, एक कुंजी द्वारा रिकॉर्ड पढ़ना, एक कुंजी द्वारा रिकॉर्ड को अपडेट करना। कोई तालिका जुड़ती नहीं है (और वास्तव में केवल एक "तालिका" का मतलब है)। द्वितीयक कुंजियों पर कोई चयन नहीं. शर्त के अनुसार कोई एकाधिक चयन नहीं (एकमात्र जांच यह है कि प्राथमिक कुंजी मेल खाती है या नहीं)। यह बहुत ही आदिम है, लेकिन किसी भी डेटाबेस में किया जा सकता है।

परीक्षण से तुरंत पहले, डेटाबेस को डेटा से भरना होगा। यह कार्य YCSB द्वारा ही किया जाता है। मूलतः, यह एक लोड है जिसमें केवल इन्सर्ट ऑपरेशन शामिल हैं। हमने दो डेटासेट के साथ प्रयोग किया। पहले वाले को क्लस्टर नोड्स की रैम, 50 मिलियन रिकॉर्ड, लगभग 5 जीबी स्वच्छ डेटा में फिट होने की गारंटी है। दूसरे की गारंटी है कि वह रैम में फिट नहीं होगा, 500 मिलियन रिकॉर्ड, लगभग 50 जीबी स्वच्छ डेटा।

परीक्षण स्वयं - संचालन का एक निश्चित सेट निष्पादित करना - लोड के तहत किया जाता है अलग - अलग प्रकार. एक महत्वपूर्ण पैरामीटर संचालन का अनुपात है - कितनी रीडिंग होनी चाहिए और कितने अपडेट होने चाहिए। हमने दो प्रकारों का उपयोग किया: भारी लिखना (भारी लिखना, 50% पढ़ा जाता है और 50% अपडेट) और अधिकतर पढ़ा जाता है (ज्यादातर पढ़ा जाता है, 95% पढ़ा जाता है और 5% अपडेट किया जाता है)। कौन सा ऑपरेशन करना है यह हर बार यादृच्छिक रूप से चुना जाता है, प्रतिशत ऑपरेशन चुनने की संभावना निर्धारित करते हैं।

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

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

परिणाम

तो, प्रारंभिक परिणाम प्रत्येक क्लाइंट से YCSB लॉग हैं। ये लॉग कुछ इस तरह दिखते हैं (फ़ाइल का अंतिम भाग दिखाया गया है):

संचालन, 1187363 , पुनः प्रयास, 0 , औसत विलंबता(हमें), 3876.5493619053314 , न्यूनतम विलंबता(हमें), 162 , अधिकतम विलंबता(हमें), 278190 , 95वीं प्रतिशत विलंबता(एमएस), 12 , 99वीं प्रतिशत विलंबता(एमएस), 22 , वापसी=0, 1 187363, पुन: कनेक्शन, 0.0, रनटाइम (एमएस), 303574.0, संचालन, 1249984.0, थ्रूपुट (ऑप्स/सेकंड), 4117.5594747903315

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

एक अन्य पायथन स्क्रिप्ट का उपयोग करके, लॉग के एक समूह से डेटा को एक तालिका में एकत्र किया गया था, और तालिका से सुंदर ग्राफ़ बनाए गए थे।





निष्कर्ष

NoSQL डेटाबेस को दो समूहों में विभाजित किया गया है: तेज़ और धीमा। कुंजी-मूल्य डेटाबेस अपेक्षा के अनुरूप तेज़ निकला। एयरोस्पाइक और काउचबेस प्रतिस्पर्धा में बहुत आगे हैं।

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

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

कैसेंड्रा एकमात्र डेटाबेस है जो पढ़ने की तुलना में तेजी से लिखता है :)। ऐसा इसलिए है क्योंकि लॉग (डिस्क पर) पर लिखने के तुरंत बाद इसे लिखना सफलतापूर्वक (सबसे तेज़ संस्करण में) पूरा हो जाता है। लेकिन पढ़ने के लिए जांच की आवश्यकता होती है, डिस्क से कई रीडिंग, सबसे हालिया रिकॉर्ड का चयन करना। कैसेंड्रा एक विश्वसनीय और काफी तेज़ स्केलेबल डेटा संग्रह है।

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

पी.एस.

आइए प्रदर्शन के मुद्दों से थोड़ा विराम लें और देखें कि SQL और NoSQL समाधान आगे कैसे विकसित होंगे। दरअसल, अब जो हम देख रहे हैं वह एक मशहूर कहानी की पुनरावृत्ति है। यह सब बीसवीं सदी के साठ और सत्तर के दशक में पहले ही हो चुका था: संबंधपरक डेटाबेस से पहले, पदानुक्रमित, वस्तु और अन्य, और अन्य थे। तब मैं मानकीकरण चाहता था, और SQL सामने आया। और सभी गंभीर DBMS, जिनमें से प्रत्येक अपनी स्वयं की क्वेरी भाषा और API का समर्थन करता है, SQL में बदल गए। क्वेरी भाषा और संबंधपरक मॉडल मानक बन गए। यह दिलचस्प है कि अब वे SQL को NoSQL पर ग्राफ्ट करने का भी प्रयास कर रहे हैं, जिससे मौजूदा NoSQL के शीर्ष पर दोनों रैपर और NewSQL नामक पूरी तरह से नए डेटाबेस का निर्माण होता है।

यदि NoSQL ने SQL की "भारी विरासत" को त्यागने का निर्णय लिया, डेटा भंडारण के दृष्टिकोण पर पुनर्विचार किया और पूरी तरह से नए समाधान बनाए, तो NewSQL शब्द का उपयोग SQL को "पुनर्जीवित" करने के आंदोलन का वर्णन करने के लिए किया जाता है। NoSQL से विचार लेते हुए, लोगों ने SQL डेटाबेस को एक नए स्तर पर फिर से बनाया। उदाहरण के लिए, NewSQL दुनिया में, आपको अक्सर ऐसे डेटाबेस मिलते हैं जो डेटा को मेमोरी में संग्रहीत करते हैं, लेकिन पूर्ण SQL क्वेरी, टेबल जॉइन और अन्य परिचित चीज़ों के साथ। अभी भी बहुत सारा डेटा संग्रहीत करने के लिए, इन डेटाबेस में शार्डिंग तंत्र बनाए गए हैं।

NewSQL में VoltDB, TokuDB, MemDB और अन्य शामिल हैं। इन नामों को याद रखें, शायद जल्द ही हर आईटी सम्मेलन में इनके बारे में भी बात की जाएगी।

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

प्रबंधन और व्यावसायिक अनुप्रयोगों की प्रभावशीलता में डेटाबेस प्रदर्शन एक महत्वपूर्ण कारक है। यदि डेटा खोजना या लिखना धीमा है, तो एप्लिकेशन की सामान्य रूप से कार्य करने की क्षमता कम हो जाती है। खराब प्रदर्शन का कारण जानने का एकमात्र तरीका मात्रात्मक माप लेना और यह निर्धारित करना है कि प्रदर्शन की समस्या का कारण क्या है।
डेटाबेस प्रदर्शन बाधाओं की पहचान करने की समस्याएं सीधे मेट्रिक्स, प्रदर्शन माप विधियों और उनके कार्यान्वयन के लिए प्रौद्योगिकी से संबंधित हैं। बड़े निगमों और बड़े डेटाबेस के लिए, डेटाबेस प्रदर्शन को निर्धारित करने की समस्या का एक और बहुत महत्वपूर्ण पहलू है: अनुप्रयोगों के दीर्घकालिक औद्योगिक संचालन के लिए आईटी बुनियादी ढांचे का निर्धारण। इससे अंततः हार्डवेयर और बुनियादी सॉफ़्टवेयर में प्रारंभिक निवेश का अधिक सटीक निर्धारण होता है। चूंकि उच्च डेटाबेस प्रदर्शन दृढ़ता से प्लेटफ़ॉर्म और उपकरण पर निर्भर करता है, और उन्हें लंबी अवधि के लिए खरीदा और संचालित किया जाता है।
डेटाबेस प्रदर्शन को मापने के लिए सबसे महत्वपूर्ण मीट्रिक हैं:

  • प्रति समय अवधि में लेनदेन की संख्या ( विभिन्न प्रकार केलेनदेन);
  • प्रति लेनदेन I/O परिचालनों की संख्या (लाइनें पढ़ें) और उसका निष्पादन समय;
  • प्रति लेनदेन प्रति तालिका पढ़ी जाने वाली पंक्तियों की संख्या;
  • सीमा के अनुसार प्रति लेनदेन I/O संचालन की औसत संख्या;
  • SQL कथनों में CPU समय (उपयोगकर्ता, सिस्टम) की उच्च परिचालन लागत होती है
  • कथन निष्पादन का प्रारंभ और समाप्ति समय
  • सॉर्ट संचालन को पूरा करने का समय (सॉर्ट की संख्या, सॉर्ट ओवरफ्लो की संख्या, सॉर्ट को पूरा करने का समय), उच्चतम बीता हुआ समय उपयोग, और सबसे कम सूचकांक उपयोग दक्षता।

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

डेटाबेस का परीक्षण करते समय आपको और क्या जाँचना चाहिए?

डेटा मैपिंग

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

ACID लेनदेन गुण

लेनदेन के ACID गुणों में परमाणुता, स्थिरता, अलगाव और ताकत शामिल हैं। डेटाबेस परीक्षण के दौरान, आपको इन चार गुणों की जाँच करनी चाहिए। यदि डेटाबेस वितरित है तो इस क्षेत्र में अधिक व्यापक परीक्षण की आवश्यकता है।

आंकड़ा शुचिता

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

व्यावसायिक तर्क कार्यान्वयन की सटीकता

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

डेटाबेस का परीक्षण कैसे करें?

SQL क्वेरीज़ लिखना

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

तालिकाओं में डेटा देखना

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

डेवलपर सहायता

परीक्षक GUI पर कोई भी CRUD ऑपरेशन करता है और डेवलपर द्वारा लिखी गई संबंधित SQL क्वेरी को निष्पादित करके उनके परिणामों को सत्यापित करता है। इस विधि के लिए SQL के अच्छे ज्ञान या एप्लिकेशन डेटाबेस संरचना के अच्छे ज्ञान की आवश्यकता नहीं है। यह विधि सरल लगती है और डेटाबेस परीक्षण के लिए एक अच्छा विकल्प है। लेकिन इसका नकारात्मक पक्ष अराजकता है. यदि डेवलपर द्वारा लिखी गई क्वेरी शब्दार्थ की दृष्टि से गलत है या उपयोगकर्ता की आवश्यकताओं को सही ढंग से पूरा नहीं करती है तो क्या होगा? इस मामले में, परीक्षण उत्पाद की गुणवत्ता के बारे में कोई गारंटी नहीं देता है।

डेटाबेस डेटा अखंडता के परीक्षण के लिए एक पद्धति का एक उदाहरण

डेटाबेस और डेटाबेस प्रक्रियाओं का एक स्वतंत्र उपप्रणाली के रूप में परीक्षण किया जाना चाहिए। इस मामले में, डेटा के इंटरफ़ेस के रूप में लक्ष्य उपयोगकर्ता इंटरफ़ेस के बिना सभी उपप्रणालियों का परीक्षण किया जाना चाहिए। निम्नलिखित तालिका में परिभाषित परीक्षण का समर्थन करने के लिए उपकरण और तकनीकों को निर्धारित करने के लिए डेटाबेस प्रबंधन प्रणाली (डीबीएमएस) में अतिरिक्त शोध किया जाना चाहिए।

कार्यप्रणाली के लक्ष्य यूआई से स्वतंत्र डेटाबेस एक्सेस विधियों और प्रक्रियाओं का परीक्षण, ताकि खराब लक्ष्य एल्गोरिदम या डेटा भ्रष्टाचार को देखा और रिकॉर्ड किया जा सके।
क्रियाविधि प्रत्येक डेटाबेस एक्सेस विधि या प्रक्रिया को कॉल करें, प्रत्येक को वैध और अमान्य डेटा या डेटा अनुरोधों से भर दें।

यह सुनिश्चित करने के लिए डेटाबेस को मान्य करना कि डेटा सही ढंग से भर गया है और सभी डेटाबेस घटनाएं अपेक्षा के अनुरूप होती हैं, या यह सुनिश्चित करने के लिए लौटाए गए डेटा को सत्यापित करना कि आवश्यक होने पर सही डेटा पुनर्प्राप्त किया गया है।

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

प्रक्रियाओं को मैन्युअल रूप से कॉल किया जाना चाहिए.

छोटे डेटाबेस या डेटाबेस न्यूनतम आकार(सीमित संख्या में प्रविष्टियों के साथ) का उपयोग सभी दूषित घटनाओं के दायरे को बढ़ाने के लिए किया जाना चाहिए।

लेख का अनुवाद रिज़वान जाफ़री द्वारा

इन दिनों, डेटाबेस किसी एप्लिकेशन के अपरिहार्य भागों में से एक है। जब एप्लिकेशन निष्पादित होता है, तो अंतिम उपयोगकर्ता मुख्य रूप से उपयोग करता है सीआरयूडी संचालनडेटाबेस टूल द्वारा प्रदान किया गया।

सी: बनाएं(क्रिएट) - 'क्रिएट' ऑपरेशन तब किया जाता है जब उपयोगकर्ता कोई नया लेनदेन सहेजता है।
आर: पुनः प्राप्त करना(पुनर्प्राप्ति) - 'पुनर्प्राप्ति' ऑपरेशन तब किया जाता है जब उपयोगकर्ता किसी सहेजे गए लेनदेन को खोजता है या देखता है।
यू: अद्यतन(अपडेट) - 'अपडेट' ऑपरेशन तब किया जाता है जब उपयोगकर्ता किसी मौजूदा रिकॉर्ड को संपादित या परिवर्तित करता है।
डी: मिटाना(डिलीट) - 'डिलीट' ऑपरेशन तब किया जाता है जब उपयोगकर्ता सिस्टम से कोई प्रविष्टि हटाता है।

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

डेटाबेस का परीक्षण करते समय क्या जांचें?

1) डेटा मैपिंग:
सुनिश्चित करें कि डेटाबेस में कनेक्शन डिज़ाइन दस्तावेज़ के अनुरूप हैं। सभी सीआरयूडी परिचालनों के लिए, सत्यापित करें कि जब उपयोगकर्ता एप्लिकेशन जीयूआई से सेव, रीफ्रेश, सर्च या डिलीट पर क्लिक करता है तो संबंधित तालिकाएं और रिकॉर्ड अपडेट हो जाते हैं।

2) ACID लेनदेन गुण:
लेनदेन के ACID गुणों में शामिल हैं परमाणुता, परिणाम को, इन्सुलेशनऔर ताकत. डेटाबेस परीक्षण के दौरान, आपको इन चार गुणों की जाँच करनी चाहिए। यदि डेटाबेस वितरित है तो इस क्षेत्र में अधिक व्यापक परीक्षण की आवश्यकता है।

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

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

ऊपर वर्णित बिंदु डेटाबेस परीक्षण के सबसे महत्वपूर्ण पहलू हैं। डेटाबेस परीक्षण एक महत्वपूर्ण व्यावसायिक कार्य है और इसे उचित प्रशिक्षण के बिना कभी भी अनुभवहीन कर्मचारियों पर नहीं छोड़ा जाना चाहिए।

डेटाबेस का परीक्षण कैसे करें?

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

2. तालिकाओं में डेटा देखना
यदि परीक्षक एसक्यूएल नहीं जानता है, तो वह डेटाबेस की तालिकाओं (संबंधों) को देखकर एप्लिकेशन के ग्राफिकल इंटरफ़ेस का उपयोग करके सीआरयूडी ऑपरेशन के परिणाम की जांच कर सकता है। डेटाबेस की जाँच करने की इस पद्धति के लिए तालिका संरचना के अच्छे ज्ञान की आवश्यकता होती है और यह थोड़ा कठिन और बोझिल हो सकता है, खासकर जब डेटाबेस और तालिकाओं में बड़ी मात्रा में डेटा हो।
इसके अतिरिक्त, यदि जाँच किया जाने वाला डेटा एकाधिक तालिकाओं में है तो डेटाबेस की जाँच करने का यह तरीका परीक्षकों के लिए बहुत कठिन हो सकता है।

3. डेवलपर सहायता
ये सबसे आसान तरीका है. परीक्षक GUI पर कोई भी CRUD ऑपरेशन करता है और डेवलपर द्वारा लिखी गई संबंधित SQL क्वेरी को निष्पादित करके उनके परिणामों को सत्यापित करता है। इस विधि के लिए SQL के अच्छे ज्ञान या एप्लिकेशन डेटाबेस संरचना के अच्छे ज्ञान की आवश्यकता नहीं है।
इसलिए यह विधि सरल लगती है और डीबी परीक्षण के लिए एक अच्छा विकल्प है। लेकिन इसका नकारात्मक पक्ष अराजकता है. यदि डेवलपर द्वारा लिखी गई क्वेरी शब्दार्थ की दृष्टि से गलत है या उपयोगकर्ता की आवश्यकताओं को सही ढंग से पूरा नहीं करती है तो क्या होगा? इस मामले में, परीक्षण उत्पाद की गुणवत्ता के बारे में कोई गारंटी नहीं देता है।

निष्कर्ष

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

यह सुनिश्चित करने के लिए कि परीक्षण प्रभावी है, इसे ऐसे व्यक्ति को सौंपा जाना चाहिए जिसके पास ये सभी चार गुण हों। अन्यथा, उत्पाद की डिलीवरी के बाद, एप्लिकेशन के गलत या अनपेक्षित व्यवहार की संभावना होगी, ग्राहक को त्रुटियां मिलेंगी।

डेटाबेस और डेटाबेस प्रक्रियाओं का एक स्वतंत्र उपप्रणाली के रूप में परीक्षण किया जाना चाहिए। इस मामले में, डेटा के इंटरफ़ेस के रूप में लक्ष्य उपयोगकर्ता इंटरफ़ेस के बिना सभी उपप्रणालियों का परीक्षण किया जाना चाहिए। निम्नलिखित तालिका में परिभाषित परीक्षण का समर्थन करने के लिए उपकरण और तकनीकों को निर्धारित करने के लिए डेटाबेस प्रबंधन प्रणाली (डीबीएमएस) में अतिरिक्त शोध किया जाना चाहिए।

कार्यप्रणाली के उद्देश्य:

यूआई से स्वतंत्र डेटाबेस एक्सेस विधियों और प्रक्रियाओं का परीक्षण, ताकि खराब लक्ष्य एल्गोरिदम या डेटा भ्रष्टाचार को देखा और रिकॉर्ड किया जा सके।

कार्यप्रणाली:

प्रत्येक डेटाबेस एक्सेस विधि या प्रक्रिया को कॉल करें, प्रत्येक को वैध और अमान्य डेटा या डेटा अनुरोधों से भर दें।

यह सुनिश्चित करने के लिए डेटाबेस को मान्य करना कि डेटा सही ढंग से भर गया है और सभी डेटाबेस घटनाएं अपेक्षा के अनुरूप होती हैं, या यह सुनिश्चित करने के लिए लौटाए गए डेटा को सत्यापित करना कि आवश्यक होने पर सही डेटा पुनर्प्राप्त किया गया है।

भविष्यवक्ता:
आवश्यक उपकरण:

SQL डेटाबेस उपयोगिताएँ और उपकरण

डेटा जनरेशन उपकरण

सफलता के मानदंड:

यह तकनीक सभी प्रमुख डेटाबेस एक्सेस विधियों और प्रक्रियाओं के परीक्षण का समर्थन करती है।

विशेष जानकारी:

परीक्षण के लिए डेटाबेस में सीधे डेटा दर्ज करने या बदलने के लिए DBMS विकास वातावरण या ड्राइवरों की आवश्यकता हो सकती है।

प्रक्रियाओं को मैन्युअल रूप से कॉल किया जाना चाहिए.

सभी दूषित घटनाओं का दायरा बढ़ाने के लिए छोटे या न्यूनतम आकार के डेटाबेस (सीमित संख्या में रिकॉर्ड के साथ) का उपयोग किया जाना चाहिए।

फ़ंक्शन परीक्षण

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

कार्यप्रणाली के उद्देश्य:

लक्ष्य एल्गोरिदम की निगरानी और रिकॉर्ड करने के लिए नेविगेशन, इनपुट, प्रोसेसिंग और डेटा की वापसी सहित परीक्षण लक्ष्य की कार्यक्षमता का परीक्षण करें।

कार्यप्रणाली:

थ्रेड या फ़ंक्शंस का परीक्षण करें और कार्यक्षमताप्रत्येक उपयोग परिदृश्य के लिए अलग-अलग उपयोग के मामले, इसे सत्यापित करने के लिए वैध और अमान्य डेटा का उपयोग करें:

वैध डेटा का उपयोग करते समय, अपेक्षित परिणाम प्राप्त होते हैं

यदि अमान्य डेटा का उपयोग किया जाता है, तो उचित त्रुटि या चेतावनी संदेश प्रदर्शित होते हैं

सभी व्यावसायिक प्रक्रिया नियम तदनुसार लागू होते हैं

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

टेस्ट स्क्रिप्ट ऑटोमेशन टूल

छवि निर्माण और आधार पुनर्प्राप्ति उपकरण

बैकअप और पुनर्प्राप्ति उपकरण

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

डेटा जनरेशन उपकरण

सफलता के मानदंड:

सभी प्रमुख उपयोग परिदृश्य

सभी बुनियादी कार्य

विशेष जानकारी:

उन तत्वों या मुद्दों (आंतरिक या बाहरी) को पहचानें या उनका वर्णन करें जो फीचर परीक्षण के कार्यान्वयन और प्रदर्शन को प्रभावित करते हैं।

व्यवसाय प्रक्रिया चक्र परीक्षण

व्यवसाय प्रक्रिया चक्र परीक्षण को समय के साथ किए गए कार्यों का अनुकरण करना चाहिए<Имя проекта>. आपको एक अवधि परिभाषित करनी चाहिए, जैसे कि एक वर्ष, और वर्ष के दौरान होने वाले लेनदेन और कार्य करना चाहिए। इसमें सभी दैनिक, साप्ताहिक और मासिक चक्रों के साथ-साथ तिथि-आधारित कार्यक्रम भी शामिल हैं।

कार्यप्रणाली के उद्देश्य:

लक्ष्य एल्गोरिदम की निगरानी और रिकॉर्ड करने के लिए आवश्यक व्यावसायिक प्रक्रिया मॉडल और योजनाओं के अनुसार परीक्षण लक्ष्य प्रक्रियाओं और पृष्ठभूमि प्रक्रियाओं का परीक्षण करें।

कार्यप्रणाली:

परीक्षण निम्नलिखित कार्य करके व्यावसायिक प्रक्रिया के कई चक्रों का अनुकरण करता है:

परीक्षण लक्ष्य की सुविधाओं का परीक्षण करने के लिए उपयोग किए जाने वाले परीक्षणों को एक निश्चित अवधि में कई अलग-अलग उपयोगकर्ताओं को अनुकरण करने के लिए प्रत्येक सुविधा को निष्पादित करने की संख्या बढ़ाने के लिए संशोधित या विस्तारित किया जाएगा।

सभी दिनांक या समय पर निर्भर कार्य वैध और अमान्य दिनांकों और अवधियों का उपयोग करके निष्पादित किए जाएंगे।

समय-समय पर निष्पादित होने वाले सभी कार्यों को उचित समय पर निष्पादित या प्रारंभ किया जाएगा।

परीक्षण निम्नलिखित का परीक्षण करने के लिए वैध और अमान्य डेटा का उपयोग करेगा:

जब वैध डेटा का उपयोग किया जाता है, तो अपेक्षित परिणाम प्राप्त होते हैं।

यदि अमान्य डेटा का उपयोग किया जाता है, तो उचित त्रुटि या चेतावनी संदेश प्रदर्शित होते हैं।

सभी व्यावसायिक प्रक्रिया नियम तदनुसार लागू होते हैं।

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

टेस्ट स्क्रिप्ट ऑटोमेशन टूल

छवि निर्माण और आधार पुनर्प्राप्ति उपकरण

बैकअप और पुनर्प्राप्ति उपकरण

डेटा जनरेशन उपकरण

सफलता के मानदंड:

यह तकनीक सभी महत्वपूर्ण व्यावसायिक प्रक्रिया चक्रों के परीक्षण का समर्थन करती है।

विशेष जानकारी:

सिस्टम तिथियों और घटनाओं के लिए विशेष सहायक कार्यों की आवश्यकता हो सकती है।

प्रासंगिक आवश्यकताओं और परीक्षण प्रक्रियाओं की पहचान करने के लिए एक व्यवसाय प्रक्रिया मॉडल की आवश्यकता होती है।

उपयोगकर्ता इंटरफ़ेस परीक्षण

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

कार्यप्रणाली के उद्देश्य:

मानकों और लक्ष्य एल्गोरिदम के अनुपालन की निगरानी और रिकॉर्ड करने के लिए निम्नलिखित का परीक्षण करें:

परीक्षण लक्ष्य का नेविगेशन, विंडो-विंडो, फ़ील्ड-फ़ील्ड विधियों और एक्सेस विधियों (टैब कुंजी, माउस मूवमेंट, कीबोर्ड शॉर्टकट) सहित व्यावसायिक प्रक्रिया के कार्यों और आवश्यकताओं को दर्शाता है।

आप विंडो ऑब्जेक्ट और मेनू, आकार, लेआउट, स्थिति और फ़ोकस जैसी विशेषताओं का परीक्षण कर सकते हैं।

कार्यप्रणाली:

प्रत्येक एप्लिकेशन विंडो और ऑब्जेक्ट के लिए सही नेविगेशन और ऑब्जेक्ट स्थिति को सत्यापित करने के लिए प्रति-विंडो परीक्षण बनाएं या संशोधित करें।

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए एक परीक्षण स्क्रिप्ट स्वचालन उपकरण की आवश्यकता होती है।

सफलता के मानदंड:

यह तकनीक प्रत्येक होम स्क्रीन या विंडो के परीक्षण का समर्थन करती है जिसका उपयोगकर्ताओं द्वारा व्यापक रूप से उपयोग किया जाएगा।

विशेष जानकारी:

कस्टम ऑब्जेक्ट और तृतीय-पक्ष ऑब्जेक्ट की सभी संपत्तियों तक नहीं पहुंचा जा सकता है।

प्रदर्शन प्रोफ़ाइलिंग

प्रदर्शन प्रोफ़ाइलिंग एक प्रदर्शन परीक्षण है जो प्रतिक्रिया समय, लेनदेन गति और अन्य समय-संवेदनशील आवश्यकताओं को मापता है और उनका मूल्यांकन करता है। प्रदर्शन प्रोफ़ाइलिंग का उद्देश्य यह सत्यापित करना है कि प्रदर्शन आवश्यकताओं को हासिल कर लिया गया है। प्रदर्शन प्रोफ़ाइलिंग को कार्यभार या हार्डवेयर कॉन्फ़िगरेशन जैसी स्थितियों के एक फ़ंक्शन के रूप में परीक्षण लक्ष्य के प्रदर्शन एल्गोरिदम को प्रोफ़ाइल और परिष्कृत करने के लिए कार्यान्वित और निष्पादित किया जाता है।

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

कार्यप्रणाली के उद्देश्य:

लक्ष्य एल्गोरिदम और एप्लिकेशन प्रदर्शन डेटा का निरीक्षण और रिकॉर्ड करने के लिए निम्नलिखित शर्तों के तहत निर्दिष्ट कार्यात्मक लेनदेन या व्यावसायिक प्रक्रिया कार्यों के लिए एल्गोरिदम का परीक्षण करें:

कार्यप्रणाली:

व्यवसाय प्रक्रिया कार्यों और चक्रों का परीक्षण करने के लिए डिज़ाइन की गई परीक्षण प्रक्रियाएं लागू करें।

प्रत्येक लेनदेन में निष्पादित पुनरावृत्तियों की संख्या बढ़ाने के लिए लेनदेन या स्क्रिप्ट की संख्या बढ़ाने के लिए डेटा फ़ाइलों को संशोधित करना।

स्क्रिप्ट को उसी सिस्टम पर चलाया जाना चाहिए ( सर्वोत्तम विकल्प- एक उपयोगकर्ता, एक लेनदेन से शुरू करें) और कई ग्राहकों के साथ दोहराएं (आभासी या वास्तविक, नीचे विशिष्ट जानकारी देखें)।

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

टेस्ट स्क्रिप्ट ऑटोमेशन टूल

एप्लिकेशन प्रदर्शन प्रोफ़ाइलिंग टूल जैसे कि रेशनल क्वांटिफाई

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

सफलता के मानदंड:

यह तकनीक परीक्षण का समर्थन करती है:

एकल लेनदेन या एकल उपयोगकर्ता: परीक्षण कार्यान्वयन समस्याओं के कारण विफल हुए बिना लेनदेन परिदृश्यों का सफलतापूर्वक अनुकरण करें।

एकाधिक लेनदेन या एकाधिक उपयोगकर्ता: परीक्षण कार्यान्वयन समस्याओं के कारण विफल हुए बिना कार्यभार का सफलतापूर्वक अनुकरण करें।

विशेष जानकारी:

व्यापक प्रदर्शन परीक्षण में सर्वर पर पृष्ठभूमि लोड शामिल है।

ऐसी कई विधियाँ हैं जिनका उपयोग किया जा सकता है, जिनमें निम्नलिखित शामिल हैं:

"लेन-देन की डिलीवरी" सीधे सर्वर पर, आमतौर पर स्ट्रक्चर्ड क्वेरी लैंग्वेज (एसक्यूएल) कॉल के रूप में।

कई क्लाइंट, आमतौर पर कई सौ, को अनुकरण करने के लिए एक "वर्चुअल" उपयोगकर्ता लोड बनाना। इस लोड को प्राप्त करने के लिए, रिमोट टर्मिनल इम्यूलेशन टूल का उपयोग किया जाता है। इस तकनीक का उपयोग नेटवर्क को "डेटा स्ट्रीम" से भरने के लिए भी किया जा सकता है।

सिस्टम पर लोड बनाने के लिए, कई भौतिक क्लाइंट का उपयोग करें, जिनमें से प्रत्येक परीक्षण स्क्रिप्ट चलाता है।

प्रदर्शन परीक्षण एक समर्पित प्रणाली पर या एक समर्पित समय पर किया जाना चाहिए। यह पूर्ण नियंत्रण और सटीक माप प्रदान करता है।

प्रदर्शन परीक्षण के लिए उपयोग किए जाने वाले डेटाबेस या तो वास्तविक आकार के होने चाहिए या समान रूप से स्केल किए जाने चाहिए।

लोड परीक्षण

लोड परीक्षण एक प्रदर्शन परीक्षण है जिसमें परीक्षण लक्ष्य को प्रदर्शन एल्गोरिदम को मापने और मूल्यांकन करने और परीक्षण लक्ष्य की क्षमता को विभिन्न कार्यभार के तहत उचित रूप से कार्य करने के लिए अलग-अलग कार्यभार के अधीन किया जाता है। लोड परीक्षण का उद्देश्य यह निर्धारित करना और सुनिश्चित करना है कि अपेक्षित अधिकतम ऑपरेटिंग लोड के अधीन होने पर सिस्टम सही ढंग से काम करेगा। लोड परीक्षण प्रतिक्रिया समय, लेनदेन गति और अन्य समय-संबंधित मापदंडों जैसे प्रदर्शन मापदंडों का भी मूल्यांकन करता है।

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

कार्यप्रणाली के उद्देश्य:

लक्ष्य एल्गोरिदम और सिस्टम प्रदर्शन डेटा की निगरानी और रिकॉर्ड करने के लिए अलग-अलग कार्यभार स्थितियों के तहत निर्दिष्ट लेनदेन या व्यावसायिक प्रक्रिया विविधताओं को निष्पादित करें।

कार्यप्रणाली:

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

लेन-देन की संख्या बढ़ाने के लिए डेटा फ़ाइलों को संशोधित करना या प्रत्येक लेन-देन निष्पादित होने की संख्या बढ़ाने के लिए परीक्षण करना।

कार्यभार में शामिल होना चाहिए - उदाहरण के लिए, दैनिक, साप्ताहिक और मासिक - चरम भार।

कार्यभार को औसत और चरम भार दोनों का प्रतिनिधित्व करना चाहिए।

कार्यभार को तात्कालिक और दीर्घकालिक चरम भार दोनों का प्रतिनिधित्व करना चाहिए।

कार्यभार का परीक्षण विभिन्न परीक्षण परिवेश विन्यासों में किया जाना चाहिए।

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

टेस्ट स्क्रिप्ट ऑटोमेशन टूल

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

संसाधन सीमित करने वाले उपकरण; उदाहरण के लिए, डिब्बाबंद गर्मी

डेटा जनरेशन उपकरण

सफलता के मानदंड:

यह तकनीक कार्यभार अनुकरण परीक्षण का समर्थन करती है, जो परीक्षण कार्यान्वयन समस्याओं के कारण विफलताओं के बिना कार्यभार का एक सफल अनुकरण है।

विशेष जानकारी:

लोड परीक्षण एक समर्पित सिस्टम पर या एक समर्पित समय पर किया जाना चाहिए। यह पूर्ण नियंत्रण और सटीक माप प्रदान करता है।

लोड परीक्षण के लिए उपयोग किए जाने वाले डेटाबेस या तो वास्तविक आकार के होने चाहिए या समान रूप से स्केल किए जाने चाहिए।

वोल्टेज परीक्षण

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

कार्यप्रणाली के उद्देश्य:

लक्ष्य एल्गोरिदम का निरीक्षण करने और रिकॉर्ड करने के लिए निम्नलिखित वोल्टेज स्थितियों के तहत परीक्षण लक्ष्य के कार्यों का परीक्षण करें जो उन स्थितियों की पहचान और दस्तावेजीकरण करता है जिनके तहत असफलतासिस्टम तदनुसार कार्य करना जारी रखने के लिए:

सर्वर पर कम मात्रा में मेमोरी या खाली मेमोरी की कमी (रैम और स्थायी मेमोरी)

कनेक्टेड या सिम्युलेटेड उपयोगकर्ताओं की अधिकतम भौतिक या वास्तव में संभव संख्या

एकाधिक उपयोगकर्ता एक ही डेटा या खाते के साथ एक ही लेनदेन करते हैं

"अत्यधिक" लेन-देन की मात्रा या स्थितियों का मिश्रण (ऊपर प्रदर्शन प्रोफ़ाइल अनुभाग देखें)

कार्यप्रणाली:

सीमित संसाधनों का परीक्षण करने के लिए, परीक्षणों को एक ही सिस्टम पर चलाया जाना चाहिए, और सर्वर पर रैम और लगातार मेमोरी को कम या सीमित किया जाना चाहिए।

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

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

टेस्ट स्क्रिप्ट ऑटोमेशन टूल

लेनदेन लोड योजना और प्रबंधन उपकरण

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

संसाधन सीमित करने वाले उपकरण; उदाहरण के लिए, डिब्बाबंद गर्मी

डेटा जनरेशन उपकरण

सफलता के मानदंड:

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

विशेष जानकारी:

नेटवर्क पर तनाव पैदा करने के लिए, नेटवर्क को संदेशों और पैकेटों से लोड करने के लिए नेटवर्क टूल की आवश्यकता हो सकती है।

डेटाबेस वृद्धि के लिए उपलब्ध स्थान को सीमित करने के लिए सिस्टम के लिए उपयोग की जाने वाली स्थायी मेमोरी को अस्थायी रूप से कम किया जाना चाहिए।

आपको ग्राहकों की एक ही डेटा रिकॉर्ड या खातों तक एक साथ पहुंच को सिंक्रनाइज़ करना चाहिए।

क्षमता परीक्षण

क्षमता परीक्षण यह निर्धारित करने के लिए परीक्षण लक्ष्य को बड़ी मात्रा में डेटा के सामने उजागर करता है कि क्या सीमाएँ पहुँच गई हैं जो सिस्टम के विफल होने का कारण बनती हैं। क्षमता परीक्षण निरंतर अधिकतम भार या क्षमता भी निर्धारित करता है जिसे परीक्षण लक्ष्य एक निश्चित अवधि के दौरान चला सकता है। उदाहरण के लिए, यदि कोई परीक्षण लक्ष्य रिपोर्ट तैयार करने के लिए डेटाबेस रिकॉर्ड के एक सेट को संसाधित कर रहा है, तो क्षमता परीक्षण एक बड़े परीक्षण डेटाबेस का उपयोग करेगा और इसे सत्यापित करेगा सॉफ़्टवेयरठीक काम करता है और सही रिपोर्ट तैयार करता है।

कार्यप्रणाली के उद्देश्य:

लक्ष्य एल्गोरिदम का निरीक्षण और रिकॉर्ड करने के लिए निम्नलिखित उच्च क्षमता वाले परिदृश्यों में परीक्षण लक्ष्य की कार्यक्षमता का परीक्षण करें:

लंबी अवधि में समान (प्रदर्शन के मामले में सबसे खराब) व्यवसाय प्रक्रिया कार्य करने वाले कनेक्टेड या सिम्युलेटेड क्लाइंट की अधिकतम (वास्तविक या भौतिक रूप से संभव) संख्या।

डेटाबेस का अधिकतम आकार (वास्तविक या पैमाना) तक पहुंच गया है और कई प्रश्न या रिपोर्टिंग लेनदेन एक साथ चल रहे हैं।

कार्यप्रणाली:

प्रदर्शन प्रोफ़ाइलिंग या लोड परीक्षण के लिए डिज़ाइन किए गए परीक्षणों का उपयोग करें।

एक विस्तारित अवधि में लेनदेन की सबसे खराब स्थिति या उनके मिश्रण (तनाव परीक्षण देखें) उत्पन्न करने के लिए एकाधिक ग्राहकों को समान या अतिरिक्त परीक्षण चलाने के लिए उपयोग किया जाना चाहिए।

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

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

टेस्ट स्क्रिप्ट ऑटोमेशन टूल

लेनदेन लोड योजना और प्रबंधन उपकरण

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

संसाधन सीमित करने वाले उपकरण; उदाहरण के लिए, डिब्बाबंद गर्मी

डेटा जनरेशन उपकरण

सफलता के मानदंड:

यह तकनीक क्षमता अनुकरण परीक्षण का समर्थन करती है। बड़ी संख्या में उपयोगकर्ताओं, डेटा, लेनदेन, या सिस्टम उपयोग के अन्य पहलुओं का सफलतापूर्वक अनुकरण किया जा सकता है और क्षमता परीक्षण के दौरान सिस्टम स्थिति में परिवर्तन देखे जा सकते हैं।

विशेष जानकारी:

सुरक्षा और अभिगम नियंत्रण परीक्षण

सुरक्षा और अभिगम नियंत्रण परीक्षण सुरक्षा के दो प्रमुख क्षेत्रों पर केंद्रित है:

एप्लिकेशन-स्तरीय सुरक्षा, जिसमें डेटा या व्यावसायिक प्रक्रिया कार्यों तक पहुंच शामिल है

सिस्टम-स्तरीय सुरक्षा, जिसमें लॉगिन या शामिल है दूरदराज का उपयोगसिस्टम को

सुरक्षा के आवश्यक स्तर के आधार पर, एप्लिकेशन-स्तरीय सुरक्षा यह सुनिश्चित करती है कि विषयों के पास केवल कुछ सुविधाओं या उपयोग के मामलों तक पहुंच है, या उनके लिए उपलब्ध डेटा सीमित है। उदाहरण के लिए, डेटा दर्ज करने और नए खाते बनाने की अनुमति सभी को दी जा सकती है, लेकिन हटाने की अनुमति केवल प्रबंधकों को दी जा सकती है। यदि डेटा-स्तरीय सुरक्षा है, तो परीक्षण यह सुनिश्चित करता है कि "टाइप 1 उपयोगकर्ता" के पास वित्तीय डेटा सहित सभी ग्राहक जानकारी तक पहुंच है, जबकि "टाइप 2 उपयोगकर्ता" के पास केवल उसी ग्राहक के बारे में जनसांख्यिकीय डेटा तक पहुंच है।

सिस्टम-स्तरीय सुरक्षा यह सुनिश्चित करती है कि केवल सिस्टम अनुमति वाले उपयोगकर्ताओं के पास ही अनुप्रयोगों तक पहुंच हो, और केवल उपयुक्त गेटवे के माध्यम से।

कार्यप्रणाली के उद्देश्य:

लक्ष्य एल्गोरिदम का निरीक्षण करने और रिकॉर्ड करने के लिए निम्नलिखित परिस्थितियों में परीक्षण लक्ष्य का परीक्षण करें:

एप्लिकेशन-स्तरीय सुरक्षा: विषय के पास केवल उन कार्यों और डेटा तक पहुंच है जिनके लिए इस प्रकार के उपयोगकर्ता के पास पहुंच अधिकार है।

सिस्टम-स्तरीय सुरक्षा: एप्लिकेशन तक पहुंच उन लोगों तक सीमित है जिनके पास सिस्टम और एप्लिकेशन अनुमतियां हैं।

कार्यप्रणाली:

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

प्रत्येक उपयोगकर्ता प्रकार के लिए परीक्षण बनाएं और प्रत्येक उपयोगकर्ता प्रकार के लिए परिभाषित लेनदेन बनाकर सभी पहुंच अधिकारों की जांच करें।

उपयोगकर्ता प्रकार बदलना और उन्हीं उपयोगकर्ताओं के लिए परीक्षण पुनः चलाना। प्रत्येक मामले में, यह जांचना कि अतिरिक्त कार्यों या डेटा तक पहुंच सही ढंग से अनुमति दी गई है या अस्वीकार की गई है।

सिस्टम स्तर पर पहुंच: नीचे विशेष जानकारी देखें।

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

टेस्ट स्क्रिप्ट ऑटोमेशन टूल

परीक्षण और सुरक्षा छिद्रों को खोजने के लिए "हैकर" उपकरण

ओएस सुरक्षा प्रशासन उपकरण

सफलता के मानदंड:

यह पद्धति प्रत्येक ज्ञात उपयोगकर्ता प्रकार के लिए सुरक्षा सेटिंग्स से प्रभावित प्रासंगिक सुविधाओं और डेटा के परीक्षण का समर्थन करती है।

विशेष जानकारी:

सिस्टम एक्सेस को सत्यापित किया जाना चाहिए और उपयुक्त सिस्टम या नेटवर्क प्रशासकों के साथ चर्चा की जानी चाहिए। यह परीक्षण आवश्यक नहीं हो सकता है क्योंकि यह नेटवर्क या सिस्टम प्रशासन कार्यों का हिस्सा हो सकता है।

आपदा पुनर्प्राप्ति का परीक्षण

आपदा पुनर्प्राप्ति परीक्षण यह सत्यापित करता है कि परीक्षण लक्ष्य को व्यापक डेटा हानि या डेटा अखंडता के साथ विभिन्न प्रकार के हार्डवेयर, सॉफ़्टवेयर और नेटवर्क विफलताओं से सफलतापूर्वक पुनर्प्राप्त किया जा सकता है।

उन प्रणालियों के लिए जिन्हें काम करना जारी रखना चाहिए, आपदा पुनर्प्राप्ति परीक्षण यह सुनिश्चित करता है कि, विफलता से पुनर्प्राप्ति की स्थिति में, वैकल्पिक या बैकअप सिस्टम डेटा या लेनदेन खोए बिना विफल हुए सिस्टम के लिए सही ढंग से "कब्जा" ले लेता है।

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

कार्यप्रणाली के उद्देश्य:

वांछित ज्ञात स्थिति में डेटाबेस, एप्लिकेशन और सिस्टम की विफलता स्थितियों और परीक्षण पुनर्प्राप्ति प्रक्रियाओं (मैन्युअल और स्वचालित) का अनुकरण करें। पुनर्प्राप्ति के बाद ऑपरेशन एल्गोरिदम की निगरानी और रिकॉर्ड करने के लिए, निम्नलिखित प्रकार की स्थितियों को परीक्षण में शामिल किया गया है:

क्लाइंट सिस्टम में बिजली रुकावट

सर्वर सिस्टम में बिजली रुकावट

नेटवर्क सर्वर के माध्यम से कनेक्शन में रुकावट

DASD (डायरेक्ट मेमोरी एक्सेस डिवाइस) और DASD नियंत्रकों से बाधित कनेक्शन या बिजली की हानि

अपूर्ण चक्र (डेटा फ़िल्टरिंग प्रक्रियाओं में रुकावट, डेटा सिंक्रनाइज़ेशन प्रक्रियाओं में रुकावट)

अमान्य सूचक और डेटाबेस कुंजियाँ

डेटाबेस में अमान्य या दूषित डेटा आइटम

कार्यप्रणाली:

आप पुनर्प्राप्ति परीक्षण का समर्थन करने के लिए लेनदेन की एक श्रृंखला बनाने के आधार के रूप में व्यवसाय प्रक्रिया कार्यक्षमता और चक्रों का परीक्षण करने के लिए पहले से बनाए गए परीक्षणों का उपयोग कर सकते हैं। पहला कदम पुनर्प्राप्ति सफलता के लिए परीक्षणों की पहचान करना है।

क्लाइंट सिस्टम में पावर रुकावट: पीसी को पावर बंद करें।

सर्वर सिस्टम पावर रुकावट: सर्वर के लिए पावर-डाउन प्रक्रियाओं का अनुकरण या आरंभ करता है।

नेटवर्क सर्वर के माध्यम से व्यवधान: नेटवर्क कनेक्शन के नुकसान का अनुकरण या आरंभ करता है (कनेक्टिंग तारों को भौतिक रूप से डिस्कनेक्ट करना या नेटवर्क सर्वर या राउटर को बिजली बंद करना)।

डीएएसडी और डीएएसडी नियंत्रकों के कनेक्शन में रुकावट या बिजली की हानि: एक या अधिक डीएएसडी या डीएएसडी नियंत्रकों के कनेक्शन का अनुकरण या भौतिक हानि।

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

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

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

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

छवि निर्माण और आधार पुनर्प्राप्ति उपकरण

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

बैकअप और पुनर्प्राप्ति उपकरण

सफलता के मानदंड:

यह तकनीक परीक्षण का समर्थन करती है:

एक या अधिक सिम्युलेटेड विफलताएँ जिनमें एप्लिकेशन, डेटाबेस और सिस्टम के एक या अधिक संयोजन शामिल हैं।

एक या अधिक सिम्युलेटेड पुनर्प्राप्ति, जिसमें ज्ञात वांछित स्थिति में एप्लिकेशन, डेटाबेस और सिस्टम के एक या अधिक संयोजन शामिल होते हैं।

विशेष जानकारी:

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

सिस्टम (या कंप्यूटर संचालन), डेटाबेस और नेटवर्क समूहों से संसाधनों की आवश्यकता होती है।

ये परीक्षण सामान्य व्यावसायिक घंटों के बाहर या एक पृथक प्रणाली पर किए जाने चाहिए।

कॉन्फ़िगरेशन परीक्षण

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

कार्यप्रणाली के उद्देश्य:

विभिन्न कॉन्फ़िगरेशन में लक्ष्य एल्गोरिदम का निरीक्षण और रिकॉर्ड करने और कॉन्फ़िगरेशन स्थिति में अंतर निर्धारित करने के लिए आवश्यक हार्डवेयर और सॉफ़्टवेयर कॉन्फ़िगरेशन में परीक्षण लक्ष्य को सत्यापित करता है।

कार्यप्रणाली:

फ़ंक्शन परीक्षणों का अनुप्रयोग.

परीक्षण के भाग के रूप में या परीक्षण चलाने से पहले विभिन्न गैर-परीक्षण संबंधी सॉफ़्टवेयर, जैसे Microsoft® Excel® और Microsoft® Word® एप्लिकेशन को खोलना और बंद करना।

परीक्षण लक्ष्य और गैर-परीक्षण लक्ष्य सॉफ़्टवेयर के साथ इंटरैक्ट करने वाली संस्थाओं का अनुकरण करने के लिए चयनित लेनदेन निष्पादित करें।

क्लाइंट वर्कस्टेशन पर उपलब्ध मुख्य मेमोरी को कम करते हुए, उपरोक्त प्रक्रिया को दोहराएं।

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

छवि निर्माण और आधार पुनर्प्राप्ति उपकरण

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

सफलता के मानदंड:

यह तकनीक अपेक्षित समर्थित विकास परिवेशों में निष्पादित परीक्षण लक्ष्य तत्वों के एक या अधिक संयोजनों के परीक्षण का समर्थन करती है।

विशेष जानकारी:

डेस्कटॉप पर कौन सा गैर-लक्ष्य सॉफ़्टवेयर आवश्यक, उपलब्ध और पहुंच योग्य है?

आमतौर पर कौन से एप्लिकेशन उपयोग किए जाते हैं?

एप्लिकेशन किस डेटा पर काम करते हैं? उदाहरण के लिए, एक्सेल में खुली हुई एक बड़ी स्प्रेडशीट, या वर्ड में 100 पेज का दस्तावेज़?

इस परीक्षण के भाग के रूप में, आपको सामान्य रूप से नेटवर्क, नेटवर्क सर्वर और सिस्टम डेटाबेस का भी दस्तावेज़ीकरण करना चाहिए।

स्थापना का परीक्षण

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

कार्यप्रणाली के उद्देश्य:

इंस्टॉलेशन व्यवहार और कॉन्फ़िगरेशन स्थिति परिवर्तनों को देखने और रिकॉर्ड करने के लिए निम्नलिखित शर्तों के तहत प्रत्येक आवश्यक हार्डवेयर कॉन्फ़िगरेशन पर एक परीक्षण लक्ष्य इंस्टॉलेशन करें:

नई स्थापना: एक नई प्रणाली जो पहले कभी स्थापित नहीं की गई है<Имя проекта>

अद्यतन: वह सिस्टम जिस पर यह पहले स्थापित किया गया था<Имя проекта>, वही संस्करण

संस्करण अद्यतन: वह सिस्टम जिस पर यह पहले स्थापित किया गया था<Имя проекта>, पुराना संस्करण

कार्यप्रणाली:

लक्ष्य प्रणाली स्थितियों का परीक्षण करने के लिए स्वचालित या मैन्युअल स्क्रिप्ट विकसित करें।

नया:<имя проекта>कभी स्थापित नहीं

<имя проекта>वही या पुराना संस्करण पहले ही इंस्टॉल किया जा चुका है

स्थापना प्रारंभ करें या पूर्ण करें.

फ़ंक्शन परीक्षण परिदृश्यों का एक पूर्व निर्धारित उपसमूह लागू करना, लेनदेन निष्पादित करना।

भविष्यवक्ता:

एक या अधिक रणनीतियों की रूपरेखा तैयार करें जिनका उपयोग तकनीक में परीक्षण परिणामों का सही ढंग से निरीक्षण करने के लिए किया जा सकता है। एक दैवज्ञ उस विधि के तत्वों को जोड़ता है जिसके द्वारा अवलोकन किया जा सकता है और एक विशेष परिणाम की विशेषताएं जो संभावित सफलता या विफलता का संकेत देती हैं। आदर्श रूप से, दैवज्ञ स्व-जाँच करेंगे, जिससे स्वचालित परीक्षणों द्वारा सफलता या विफलता का प्रारंभिक मूल्यांकन किया जा सकेगा। हालाँकि, आपको स्वचालित रूप से परिणाम निर्धारित करने से जुड़े जोखिमों के बारे में पता होना चाहिए।

आवश्यक उपकरण:

इस तकनीक के लिए निम्नलिखित उपकरणों की आवश्यकता होती है:

छवि निर्माण और आधार पुनर्प्राप्ति उपकरण

स्थापना निगरानी उपकरण (रजिस्ट्री, हार्ड ड्राइव, सीपीयू, मेमोरी, आदि)

सफलता के मानदंड:

यह तकनीक एक या अधिक इंस्टॉलेशन कॉन्फ़िगरेशन में विकसित उत्पाद की स्थापना का परीक्षण करने का समर्थन करती है।

विशेष जानकारी:

क्या लेन-देन<имя проекта>एप्लिकेशन को एक विश्वसनीय परीक्षण प्रदान करने के लिए चुना जाना चाहिए<имя проекта>सफलतापूर्वक स्थापित किया गया था और कोई भी महत्वपूर्ण सॉफ़्टवेयर घटक गायब नहीं था?