यदि आप बड़ी मात्रा में विरासत कोड के साथ काम कर रहे हैं जो वर्तमान में परीक्षण के अधीन नहीं है, तो भविष्य में काल्पनिक बड़े पुनर्लेखन के इंतजार के बजाय अब परीक्षण कवरेज प्राप्त करना सही कदम है। इकाई परीक्षण लिखने से शुरू नहीं होता है।
स्वचालित परीक्षण के बिना, कोड में कोई भी बदलाव करने के बाद आपको यह सुनिश्चित करने के लिए ऐप के अंत परीक्षण के लिए कुछ मैनुअल एंड करने की आवश्यकता है कि यह काम कर रहा है। इसे बदलने के लिए उच्च स्तरीय एकीकरण परीक्षण लिखकर शुरू करें। यदि आपका ऐप फाइलों को पढ़ता है, तो उन्हें मान्य करता है, डेटा को कुछ फैशन में संसाधित करता है, और उन परिणामों को प्रदर्शित करता है जिन्हें आप परीक्षण चाहते हैं जो उन सभी को कैप्चर करते हैं।
आदर्श रूप से आपके पास मैन्युअल परीक्षण योजना का डेटा होगा या उपयोग करने के लिए वास्तविक उत्पादन डेटा का एक नमूना प्राप्त करने में सक्षम होगा। यदि नहीं, तो एप्लिकेशन के उत्पादन के बाद से, ज्यादातर मामलों में यह वही कर रहा है जो होना चाहिए, इसलिए बस ऐसे डेटा बनाएं जो सभी उच्च बिंदुओं को मारेंगे और मान लेंगे कि आउटपुट अभी के लिए सही है। यह एक छोटे से कार्य लेने से भी बदतर नहीं है, यह मानते हुए कि यह वही कर रहा है जिसका नाम या कोई टिप्पणी है जो यह सुझाव देता है कि यह करना चाहिए, और यह मानते हुए परीक्षण सही ढंग से काम कर रहे हैं।
IntegrationTestCase1()
{
var input = ReadDataFile("path\to\test\data\case1in.ext");
bool validInput = ValidateData(input);
Assert.IsTrue(validInput);
var processedData = ProcessData(input);
Assert.AreEqual(0, processedData.Errors.Count);
bool writeError = WriteFile(processedData, "temp\file.ext");
Assert.IsFalse(writeError);
bool filesAreEqual = CompareFiles("temp\file.ext", "path\to\test\data\case1out.ext");
Assert.IsTrue(filesAreEqual);
}
एक बार जब आप ऐप्स के सामान्य ऑपरेशन और सबसे सामान्य त्रुटि के मामलों को कैप्चर करने के लिए लिखे गए इन उच्च स्तरीय परीक्षणों के लिए पर्याप्त हो जाते हैं, तो आपको कीबोर्ड पर पाउंडिंग में खर्च करने और कोड से त्रुटियों को पकड़ने के लिए समय बिताने की आवश्यकता होगी। आपको लगा कि यह करना चाहिए कि भविष्य के रीफैक्टरिंग (या एक बड़े पुनर्लेखन) को बहुत आसान बनाने के लिए यह बहुत कम हो जाएगा।
जैसा कि आप इकाई परीक्षण कवरेज का विस्तार करने में सक्षम हैं, आप अधिकांश एकीकरण परीक्षणों को समाप्त या यहां तक कि रिटायर कर सकते हैं। यदि आपके ऐप की रीडिंग / राइटिंग फाइल्स या डीबी एक्सेस कर रही हैं, तो उन हिस्सों को अलग-थलग करके परीक्षण करें और या तो उनका मज़ाक उड़ाएं या फाइल / डेटाबेस से पढ़ी गई डेटा स्ट्रक्चर्स बनाकर आपके टेस्ट शुरू करें। वास्तव में परीक्षण और बुनियादी ढाँचे का एक सेट लिखने की तुलना में परीक्षण के बुनियादी ढांचे में बहुत अधिक समय लगेगा; और हर बार जब आप 30 मिनट खर्च करने के बजाय एकीकरण परीक्षणों के 2 मिनट के सेट को मैन्युअल रूप से चलाते हैं, तो एक अंश का परीक्षण करते हुए कि एकीकरण परीक्षण आप पहले से ही बड़ी जीत हासिल कर रहे हैं।