पहले उन्हें quarantine कीजिए ताकि suite पर भरोसा लौटे, फिर retries से ढकने की जगह असली वजहें ठीक कीजिए। आम वजहें होती हैं timing और synchronization (तय sleep, race), साझा या बचा हुआ test data, टेस्ट का क्रम पर निर्भर होना, और अस्थिर environment। हल यह है कि अवधि की जगह किसी condition का इंतजार कीजिए, हर टेस्ट का data अलग रखिए, और हर टेस्ट को चलने के क्रम से आजाद बनाइए।
इंटरव्यूअर यह क्यों पूछते हैं
flakiness किसी suite की साख खत्म करने का सबसे तेज तरीका है, इसलिए इंटरव्यूअर देखना चाहते हैं कि आप इसे पृष्ठभूमि का शोर नहीं, एक defect मानते हैं। वे जो जवाब चाहते हैं वह quarantine को, जो एक अस्थायी उपाय है, असली वजह के काम से अलग करता है और ठोस वजहें गिनाता है। जो कैंडिडेट कहते हैं बस एक retry लगा दो, वे इंटरव्यूअर को बता रहे हैं कि वे असली bugs को खुशी खुशी निकल जाने देंगे।
अपना जवाब कैसे स्ट्रक्चर करें
- कहें कि flaky टेस्ट शोर नहीं, एक defect है।
- भरोसा लौटाने के लिए quarantine करें, पर उसे अस्थायी मानें।
- आम असली वजहें श्रेणियों में गिनाएं।
- हल बताएं, खासकर अवधि नहीं condition का इंतजार।
- flake rate को एक metric की तरह ट्रैक करने का जिक्र करें।
उदाहरण जवाब
सबसे पहले मैं खून बहना रोकता हूं, क्योंकि जो suite बिना वजह फेल होता है उसे लोग नजरअंदाज करने लगते हैं, और एक बार लोग नजरअंदाज करने लगें तो आपके पास कोई safety net बचता ही नहीं। तो flaky टेस्ट एक अलग run में quarantine होते हैं जो pipeline को नहीं रोकता, एक ticket और एक मालिक के साथ, न कि मिटा दिए जाते हैं और न चुपचाप हमेशा के लिए retry होते रहते हैं। फिर मैं सच में उनकी जांच करता हूं। सबसे बड़ी टोकरी है synchronization: किसी ने तय sleep लगा दिया, या click के तुरंत बाद assert कर दिया जबकि request अब भी हवा में है। हल है किसी condition का इंतजार करना, यानी element का interactable होना या network call का पूरा होना, कभी कोई अवधि नहीं। दूसरी टोकरी है data: दो टेस्ट एक ही account इस्तेमाल कर रहे हैं, या कोई टेस्ट खाली स्थिति मान रहा है जिसे पिछली run ने गंदा कर दिया। मैं इसे हर टेस्ट के लिए एक अलग पहचान वाला data बनाकर ठीक करता हूं। तीसरा है क्रम पर निर्भरता, जिसे मैं जानबूझकर suite को random क्रम में चलाकर बाहर निकालता हूं। और मैं flake rate को एक dashboard पर ट्रैक करता हूं, क्योंकि जो नापा नहीं जाता वह वापस रेंगकर आ जाता है। करीब एक प्रतिशत से ऊपर कुछ भी मैं असली समस्या मानता हूं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- retry कब सच में मंजूर है?
- ऐसा टेस्ट कैसे ढूंढेंगे जो सिर्फ किसी दूसरे टेस्ट के बाद चलने पर फेल होता है?
- अगर flakiness सच में किसी अस्थिर environment से आ रही हो तो आप क्या करेंगे?
QA इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें