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