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