मैं सब कुछ मैं SQL सर्वर कह कर शुरू करना चाहता हूँ, इसलिए वे उदाहरण हैं जो मैं देता हूं। सामान्य तौर पर यह प्रणाली की परवाह किए बिना किसी भी रूप में लागू होता है।
इसे थोड़ा नीचे तोड़कर शुरू करते हैं।
उन्नयन
आपके पास एक सिस्टम है और कुछ या सभी को अपग्रेड करने वाला है। उदाहरण के लिए SQL Server 2012 से 2014 तक एक इंस्टेंस को अपग्रेड करना। इस बिंदु पर परीक्षण आवश्यक है। दुर्भाग्य से एक छोटे से अनुप्रयोग के हर हिस्से का परीक्षण करना संभव नहीं है। उस समय मैं वह करूंगा जो मैं "वर्किंग" टेस्ट कहूंगा। बुनियादी व्यवस्था काम कर रही है। अपने सामान्य कार्यों के माध्यम से समाप्त करना शुरू करें। हर विकल्प का परीक्षण न करें, बस मुख्य पथ।
SQL सर्वर अपग्रेड करते समय कुछ आवश्यक रीडिंग भी होती है । मूल रूप से आप Backward Compatibility
नए संस्करण के लिए प्रविष्टि ( यहां 2014 एक है ) पढ़ना चाहते हैं और सुनिश्चित करें कि आपके पास किसी भी सूची में कुछ भी नहीं है (परिवर्तन, व्यवहार परिवर्तन आदि को तोड़ना)।
आवेदन कोड
यहां हम नए / बदलते एप्लिकेशन कोड को देख रहे हैं (क्योंकि मौजूदा कुछ भी पहले से ही सही परीक्षण किया गया है?)। इस मामले में सब कुछ परीक्षण किया जाना चाहिए। आपके पास समय से पहले स्थापित होने वाले परीक्षण मामले होने चाहिए और कम से कम आपकी अधिकांश प्रभावित सुविधाओं के माध्यम से चलना चाहिए। अधिमानतः इस बिंदु पर आपके पास भी कोई ऐसा ही चेक होना चाहिए। यह कोड जगह में होने वाला है, संभवतः काफी लंबे समय के लिए, और बड़ी संख्या में लोगों द्वारा उपयोग किया जाता है। आप यह सुनिश्चित करना चाहते हैं कि यह काम करता है और अच्छी तरह से काम करता है।
चीजों में से एक है कि वास्तव में इस के साथ मदद कर सकता है का एक सेट उत्पन्न करने के unit tests
लिए आसानी से दोहराने योग्य हैं। स्टीव जोन्स अपने TSQL कोड (SQL सर्वर केवल मुझे डर है) के परीक्षण के लिए tSQLt का उपयोग करने की सिफारिश करता है । लेकिन ऐसा करने से आप परीक्षणों के निश्चित सेट के माध्यम से जल्दी से चल सकते हैं और यह वास्तव में प्रतिगमन परीक्षण (सब कुछ परीक्षण करना, अपग्रेड करने से पहले कहना) में सहायता करेगा।
सुविधाएँ / विन्यास
एप्लिकेशन कोड परिवर्तनों से भी अधिक आप नई सुविधाओं और कॉन्फ़िगरेशन परिवर्तनों का अच्छी तरह से परीक्षण करना चाहते हैं। यदि उदाहरण के लिए आप कॉलमस्टोर इंडेक्स के साथ काम करना शुरू करने का निर्णय लेते हैंपहली बार आपको कोड के प्रत्येक टुकड़े का परीक्षण करना होगा जो प्रभावित तालिकाओं को छूता है। इकाई परीक्षण का उपयोग करें जो आपने अपने आवेदन का परीक्षण करने के लिए उत्पन्न किया था। ये सुविधाएँ संभवतः आपके लिए नई हैं (और संभवतः प्लेटफ़ॉर्म में नई हैं) और संभवत: आपके पास कुछ ऐसे गोचर्स होंगे जिनकी आपको उम्मीद नहीं थी। कॉन्फ़िगरेशन परिवर्तन के लिए, आप कुछ ऐसी चीज़ों के बारे में बात कर रहे हैं जो आपके पूरे सिस्टम को प्रभावित कर सकती हैं, संभवतः काफी। अंगूठे का नियम परीक्षण करना है, और ध्यान से परीक्षण करना है। कुछ परिवर्तन हैं जो आप वास्तव में तब तक नहीं देखेंगे जब तक कि आप एक सक्रिय सिस्टम (संभवतः केवल आपकी उत्पादन प्रणाली) में नहीं आते हैं, लेकिन यह एक बहाना नहीं है कि पहले उन्हें एक परीक्षण वातावरण में कोशिश न करें।
तदर्थ प्रश्न जो उपयोगकर्ता डेटा को संदर्भित / प्रभावित करते हैं
जब आपके पास ऐसा कोड होता है जो आपके उपयोगकर्ता डेटा को प्रभावित करता है, तो आपको आमतौर पर इसका परीक्षण करने की आवश्यकता होती है, यहां तक कि, और शायद विशेष रूप से, क्योंकि यह है Ad Hoc
। अब कहा जा रहा है कि यदि आप एक ही कोड को बार-बार, अलग-अलग मापदंडों के साथ चला रहे हैं, तो आपको हर बार परीक्षण की चिंता करने की आवश्यकता नहीं है।
उदाहरण के लिए आपको हर तिमाही AdList तालिका से एक या अधिक विज्ञापन हटाने की आवश्यकता है।
DELETE FROM AdList WHERE AdName IN ('January 2015 Ads','February 2015 Ads','March 2015 Ads')
उस बिंदु पर आपने पहले ही कोड का परीक्षण कर लिया है (आप बस निश्चित स्ट्रिंग्स बदल रहे हैं) और कोड चलाने के लिए संभवतः काफी सुरक्षित हैं (यह मानते हुए कि आपके पास बस मामले में अच्छा बैकअप है)।
एक परीक्षण करने का एक आसान तरीका है DELETE
, UPDATE
या INSERT
उन्हें एक SELECT में बदलना और उन्हें चलाना है, फिर पुष्टि करें कि आपके द्वारा अपेक्षित पंक्तियों की संख्या और प्रकार वापस आ गए हैं।
आप सोच सकते हैं कि आपको परीक्षण करने की आवश्यकता नहीं है SELECT
क्योंकि वे वास्तव में कोई डेटा नहीं बदलते हैं। हालाँकि आप एक कारण सही के लिए कोड चला रहे हैं? मान लीजिए कि आप अपने प्रबंधक के लिए शोध कर रहे हैं, जो इस डेटा को उनके प्रबंधक वगैरह को सौंप देगा। आप यह सुनिश्चित करने के लिए परीक्षण करते हैं कि आपको गलत डेटा नहीं मिल रहा है (या दूसरों को उनके डेटा एकत्र करने से रोक रहा है)।
तदर्थ क्वेरीज़ जो सिस्टम डेटा को संदर्भित / प्रभावित करती हैं
यह संभवतः "सब कुछ परीक्षण" नियम का एक अपवाद है। आप सिस्टम डेटा पर सूचना प्रश्न चला रहे हैं। यहां महत्वपूर्ण बात यह है कि आपको अपेक्षित डेटा वापस मिल जाएगा। यदि क्वेरी कुछ सरल है (सिस्टम दृश्य को क्वेरी कर रहा है) तो आप शायद तब तक ठीक हैं जब तक आपने चेक किया है कि दृश्य / कॉलम वास्तव में क्या मतलब है। यदि क्वेरी जटिल है (कहे गए कॉलम पर गणना के साथ 3 या 4 सिस्टम व्यू मारना), तो आप यह सुनिश्चित करने के लिए कुछ परीक्षण चलाना चाह सकते हैं कि आपको वह डेटा वापस मिलने वाला है जिसकी आप अपेक्षा करते हैं।
सारांश
सारांश में, हाँ, आप सब कुछ परीक्षण करना चाहते हैं। यदि आपके लिए इसे लिखना और उसे चलाना महत्वपूर्ण है, तो आपके लिए यह महत्वपूर्ण है कि आप इसका परीक्षण करें। इसका मतलब यह नहीं है कि आपको कोड की हर पंक्ति की हर शाखा का परीक्षण करने में भारी समय खर्च करना होगा। लेकिन परीक्षण के कुछ स्तर की जरूरत है।
स्वचालित इकाई परीक्षण यहां आपका मित्र है। के आगमन के साथ DevOps
और Continuous Integration
आप और अधिक अनुप्रयोगों और जल्दी और आसानी से अपने कोड का परीक्षण करने के तरीके देखेंगे। बेशक इसके साथ जाने के लिए एक अच्छा परीक्षण वातावरण और डेटा की आवश्यकता होती है, लेकिन यह पूरी तरह से अलग चर्चा है।