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