डिफ़ेक्ट ट्रायेज कैसे करें
डिफ़ेक्ट ट्रायेज वह नियमित फ़ैसले का बिंदु है जहाँ नए defect जाँचे, वर्गीकृत और आगे भेजे जाते हैं: क्या यह असली, रिप्रोड्यूस होने वाला defect है, क्या यह पहले से ज्ञात है, यह कितना बुरा है, कितना ज़रूरी है, इसका मालिक कौन है और यह किस रिलीज़ में ठीक होगा। अच्छी तरह चले तो untriaged queue लगभग ख़ाली रहती है और हर खुला defect एक सोचा-समझा फ़ैसला बनता है। बुरी तरह चले तो यह हर हफ़्ते वही बीस टिकट दोबारा बहस करने वाली मीटिंग बन जाता है।
यह गाइड प्रतिभागी, cadence और मीटिंग फ़ॉर्मेट, हर defect की चेकलिस्ट, severity × priority डिसीज़न मैट्रिक्स, असाइनमेंट और जाँच, एक उदाहरण के साथ root cause analysis, anti-patterns और ट्रायेज के आउटपुट कवर करती है। रिपोर्ट ख़ुद कैसे लिखें, और severity व priority की परिभाषाएँ, बग रिपोर्ट गाइड में हैं; यह पेज वही स्केल इस्तेमाल करता है।
उद्देश्य और प्रतिभागी
डिफ़ेक्ट लाइफ़साइकल में ट्रायेज New और Open के बीच बैठता है। इसका उद्देश्य कुछ ठीक करना नहीं, बल्कि चार फ़ैसले जल्दी लेकर दर्ज करना है: क्या रिपोर्ट valid है, यह कितनी severe है, कितनी urgent है, और आगे कौन क्या करेगा। हर फ़ैसले का एक मालिक है, और मालिकों का घालमेल धीमे या राजनीतिक ट्रायेज का सबसे आम कारण है।
- Test lead या QA प्रतिनिधि — defect और उसके सबूत पेश करता है, reproducibility की पुष्टि करता है, तय स्केल से severity प्रस्तावित करता है।
- Product owner — priority और बिज़नेस फ़ैसलों का मालिक: defer, won't fix, इस रिलीज़ के लिए जोखिम स्वीकारना।
- Development lead या on-call इंजीनियर — असाइनमेंट का मालिक, कारण और मेहनत पर पहली तकनीकी राय देता है।
- ज़रूरत पड़ने पर — production defect के लिए support या operations, सिक्योरिटी से जुड़े defect के लिए security owner, "क्या यह by design है?" के सवालों के लिए designer।
- व्यावहारिक नियम — QA severity प्रस्तावित करता है, product owner priority तय करता है, development lead असाइन करता है; असहमति एक बार escalate होती है, और फ़ैसला व कारण रिकॉर्ड में जाते हैं।
Cadence और मीटिंग फ़ॉर्मेट
Cadence defect आने की दर और रिलीज़ के चरण पर निर्भर करता है। System testing और release hardening के दौरान रोज़ का छोटा सेशन सामान्य है; स्थिर स्प्रिंट में हफ़्ते में दो-तीन सेशन आमतौर पर काफ़ी हैं। Blocker और Critical defect, और production को प्रभावित करने वाली कोई भी चीज़, मीटिंग का इंतज़ार नहीं करती: ड्यूटी पर मौजूद व्यक्ति उन्हें तुरंत और asynchronously ट्रायेज करता है, और मीटिंग सिर्फ़ फ़ैसले की पुष्टि करती है।
काफ़ी काम मीटिंग से पहले हो सकता है। QA lead नई रिपोर्टों को पूर्णता और duplicate के लिए पहले से जाँचता है और अधूरी रिपोर्टें Needs info में लौटा देता है, ताकि सेशन का समय पढ़ने के बजाय फ़ैसलों में लगे।
नीचे के उदाहरण में सेशन का क्रम (release hardening के दौरान रोज़ 20 मिनट): पहले 2 मिनट queue की जाँच — New में कितने defect हैं, सबसे पुराना untriaged defect कौन-सा है, और पिछले सेशन के बाद कोई Blocker या Critical आया या नहीं; मिनट 2 से 15 तक नए defect, सबसे ऊँची प्रस्तावित severity पहले, हर एक पर 1-2 मिनट, जिन्हें रिपोर्टर या QA lead स्लाइड से नहीं बल्कि defect रिकॉर्ड से दिखाता है; मिनट 15 से 18 तक पुराने या विवादित आइटम — 3 दिन से ज़्यादा Needs info में पड़े defect, review के लिए देय Deferred, और reopen पर असहमति; मिनट 18 से 20 तक फ़ैसले पढ़कर सुनाए जाते हैं और हर owner पुष्टि करता है। नियम: जिस पर 2 मिनट से ज़्यादा लगें, वह एक owner और लिखित सवाल के साथ सेशन से बाहर जाता है।
- फ़ैसले सेशन के दौरान ही ट्रैकर में दर्ज करें, मीटिंग नोट्स या चैट में नहीं।
- ग्रुप छोटा रखें: जो फ़ैसला ले सकते हैं, हर दिलचस्पी रखने वाला नहीं।
- प्रक्रिया मापें: untriaged count, सबसे पुराने untriaged defect की age, New से फ़ैसले तक का समय।
Defect triage - 20 minutes, daily during release hardening
00-02 Queue check: number of New, oldest untriaged, any Blocker/Critical since last session
02-15 New defects, highest proposed severity first, 1-2 minutes each
Presenter: reporter or QA lead. On screen: the defect record, not a slide.
15-18 Aged or disputed items: Needs info > 3 days, Deferred due for review, reopen disputes
18-20 Read back decisions; each owner confirms
Rule: anything that needs more than 2 minutes leaves with an owner and a written question.ट्रायेज चेकलिस्ट
हर नए defect को उन्हीं सवालों से उसी क्रम में गुज़ारें। पहले दो सवाल गेट हैं: अगर defect रिप्रोड्यूस नहीं होता या उसका सबूत नहीं है, या रिपोर्ट अधूरी है, तो वह एक ख़ास सवाल के साथ Needs info में जाता है और New में पड़ा नहीं रहता।
नीचे की सूची के आइटम क्रम से: Reproducible? (रिपोर्टर के अलावा किसी और ने स्टेप चलाए, या intermittent failure के लिए काफ़ी सबूत है: logs, request id, timestamps, रिकॉर्डिंग); Complete? (build, environment, अकाउंट/रोल, डेटा, expected बनाम actual); Duplicate? (error टेक्स्ट, endpoint या स्क्रीन, और component से खोजा गया; मिला तो लिंक किया); Valid? (expected result किसी requirement, design या साफ़ convention से जुड़ा है); Severity (तय स्केल पर यूज़र या सिस्टम पर असर); Priority (बिज़नेस तात्कालिकता: रिलीज़ की तारीख़, प्रभावित यूज़र, visibility); Owner (नामित व्यक्ति, या नामित lead वाली टीम queue — "dev team" नहीं); Target release (version या sprint; या कारण के साथ Deferred; या कारण के साथ Won't fix); Workaround (है या नहीं? support और release notes के लिए लिखा गया); Info needed (ठीक कौन-सी चीज़ चाहिए और कौन देगा); Links (story या requirement, test case, जुड़े defect, और production का मामला हो तो incident)।
[ ] Reproducible? Steps run by someone other than the reporter, or evidence strong enough for an
intermittent failure (logs, request id, timestamps, recording)
[ ] Complete? Build, environment, account/role, data, expected vs actual
[ ] Duplicate? Searched by error text, endpoint or screen, component; linked if found
[ ] Valid? Expected result traced to a requirement, design or clear convention
[ ] Severity Impact on user/system on the agreed scale (Blocker ... Trivial)
[ ] Priority Business urgency (Highest ... Low): release date, users affected, visibility
[ ] Owner A named person, or a team queue with a named lead - not "dev team"
[ ] Target release Version or sprint; or Deferred with reason; or Won't fix with reason
[ ] Workaround Exists? Written down for support and the release notes
[ ] Info needed The exact missing item and who must provide it
[ ] Links Story/requirement, test case, related defects, incident (if production)आज़माएँ: AI बग गंभीरता सुझाव आज़माएँ: AI बग प्राथमिकता सुझाव
Severity × priority: डिसीज़न मैट्रिक्स
बग रिपोर्ट गाइड दोनों स्केल परिभाषित करती है: severity — Blocker, Critical, Major, Minor, Trivial; priority — Highest, High, Medium, Low। Severity असर है और priority तात्कालिकता, इसलिए कोई भी संयोजन संभव है। नीचे का मैट्रिक्स उदाहरणों के साथ आम फ़ैसले देता है; यह चर्चा की शुरुआत है, फ़ॉर्मूला नहीं — product owner priority बदल सकता है, लेकिन कारण दर्ज होता है।
मैट्रिक्स के उदाहरण और आम फ़ैसले: Blocker × Highest: production में हर यूज़र के लिए लॉगिन 500 लौटाता है — अभी hotfix, और incident खोला जाए। Critical × Highest: checkout ग़लत VAT राशि लेता है और रिलीज़ 7 दिन में है — रिलीज़ से पहले fix; तब तक sign-off रुका रहता है। Critical × Low: तिमाही एडमिन export कुछ rows छोड़ देता है और अगला रन 10 हफ़्ते बाद है — शेड्यूल करें और review की तारीख़ तय करें। Major × High: orders सूची date filter को अनदेखा करती है, workaround sort करना है — इसी रिलीज़ में fix। Major × Medium: 5 MB से बड़ा bulk import बिना मैसेज के फ़ेल होता है, पर ऐसा कम होता है — अगला sprint। Minor × High: sign-up फ़ॉर्म के national ID फ़ील्ड पर अरबी error टेक्स्ट में अंग्रेज़ी placeholder दिखता है — launch campaign से पहले fix। Minor × Low: अरबी लेआउट में 320 px चौड़ाई पर tooltip कटता है — backlog। Trivial × High: लॉगिन पेज पर कंपनी का नाम ग़लत लिखा है — जल्दी fix, क्योंकि यह सबको दिखता है। Trivial × Low: footer की copyright लाइन में एक अतिरिक्त स्पेस — backlog, बाक़ी टेक्स्ट सुधारों के साथ।
| Severity: असर | Priority: तात्कालिकता | |||
|---|---|---|---|---|
| Highest | High | Medium | Low | |
| Blocker | 1अभी hotfix | कोई उदाहरण नहीं | कोई उदाहरण नहीं | कोई उदाहरण नहीं |
| Critical | 2रिलीज़ से पहले fix | कोई उदाहरण नहीं | कोई उदाहरण नहीं | 3शेड्यूल करें |
| Major | कोई उदाहरण नहीं | 4इसी रिलीज़ में | 5अगला sprint | कोई उदाहरण नहीं |
| Minor | कोई उदाहरण नहीं | 6Launch campaign से पहले | कोई उदाहरण नहीं | 7Backlog |
| Trivial | कोई उदाहरण नहीं | 8जल्दी fix | कोई उदाहरण नहीं | 9Backlog |
- 1Production में हर यूज़र के लिए लॉगिन 500 लौटाता है → अभी hotfix, और incident खोला जाए
- 2Checkout ग़लत VAT राशि लेता है, रिलीज़ 7 दिन में → रिलीज़ से पहले fix; तब तक sign-off रुका रहता है
- 3तिमाही एडमिन export कुछ rows छोड़ देता है, अगला रन 10 हफ़्ते बाद → शेड्यूल करें, review की तारीख़ तय करें
- 4Orders सूची date filter को अनदेखा करती है, workaround: sort → इसी रिलीज़ में fix
- 55 MB से बड़ा bulk import बिना मैसेज के फ़ेल होता है, पर कम होता है → अगला sprint
- 6Sign-up फ़ॉर्म के national ID फ़ील्ड पर अरबी error टेक्स्ट में अंग्रेज़ी placeholder दिखता है → launch campaign से पहले fix
- 7अरबी लेआउट में 320 px चौड़ाई पर tooltip कटता है → backlog
- 8लॉगिन पेज पर कंपनी का नाम ग़लत लिखा है → जल्दी fix, क्योंकि यह सबको दिखता है
- 9Footer की copyright लाइन में एक अतिरिक्त स्पेस → backlog, बाक़ी टेक्स्ट सुधारों के साथ
- Low priority वाले Blocker या Critical को लिखित कारण चाहिए: फ़ीचर बंद है, तारीख़ दूर है, या कोई यूज़र वहाँ तक नहीं पहुँच सकता
- High या Highest priority वाला Minor या Trivial आमतौर पर visibility का मामला है: कानूनी टेक्स्ट, ब्रांड, डेमो, या ऐसी स्क्रीन जिसे कोई regulator या बड़ा ग्राहक देखेगा
पेज के उदाहरणों के आम फ़ैसले: चर्चा की शुरुआत, फ़ॉर्मूला नहीं। ख़ाली ख़ाने का मतलब सिर्फ़ इतना है कि पेज वहाँ कोई उदाहरण नहीं देता।
- Low priority वाले Blocker या Critical defect को लिखित कारण चाहिए: फ़ीचर बंद है, तारीख़ दूर है, या कोई यूज़र वहाँ तक नहीं पहुँच सकता।
- High या Highest priority वाला Trivial या Minor defect आमतौर पर visibility का मामला है: कानूनी टेक्स्ट, ब्रांड, डेमो, या ऐसी स्क्रीन जिसे कोई regulator या बड़ा ग्राहक देखेगा।
- Exit criterion पास करने के लिए priority नहीं घटाई जाती; नए सबूत के बिना severity नहीं बदली जाती।
- AI Bug Priority Suggestion टूल अपना सुझाव P0–P3 स्केल पर देता है, P0 (तुरंत fix) से P3 (backlog) तक। अपने ट्रैकर से एक लिखित mapping रखें — जैसे P0 → Highest, P1 → High, P2 → Medium, P3 → Low।
पाठ संस्करण
Severity x Priority Example defect Typical decision
-------------------- ------------------------------------------------------ ------------------------------
Blocker x Highest Login returns 500 for every user in production Hotfix now, incident open
Critical x Highest Checkout charges the wrong VAT amount, release in 7 d Fix before release; blocks sign-off
Critical x Low Quarterly admin export drops rows; next run: 10 weeks Schedule; set a review date
Major x High Orders list ignores date filter; workaround: sort Fix in this release
Major x Medium Bulk import over 5 MB fails with no message; rare Next sprint
Minor x High Arabic error text shows an English placeholder on the Fix before a launch campaign
national ID field of the sign-up form
Minor x Low Tooltip clipped at 320 px width in the Arabic layout Backlog
Trivial x High Company name misspelled on the login page Quick fix; high visibility
Trivial x Low Extra space in the footer copyright line Backlog; batch with copy fixesआज़माएँ: AI बग गंभीरता सुझाव आज़माएँ: AI बग प्राथमिकता सुझाव
असाइनमेंट और जाँच
Ownership के आधार पर असाइन करें, इस आधार पर नहीं कि कमरे में कौन है: component या service का मालिक, या ऐसी team queue जिसका नामित lead एक दिन के अंदर काम बाँटे। "टीम" को असाइन किए defect का कोई मालिक नहीं होता। जब कारण कई layers में हो सकता है — ऐप, API, डेटा — तो उसे उस layer को असाइन करें जहाँ failure दिखा, और उसके मालिक को सबूत के साथ आगे सौंपने दें, बजाय इसके कि वह ट्रायेज में तब तक पड़ा रहे जब तक कोई सही अंदाज़ा न लगा ले।
जाँच ट्रायेज के बाद मालिक का काम है, और उसकी समय-सीमा होनी चाहिए। अगर तय समय में defect रिप्रोड्यूस नहीं होता, तो वह आज़माई गई चीज़ों की सूची के साथ Needs info में लौटता है, या सबूत रखते हुए cannot reproduce के रूप में resolve होता है।
- पहले रिपोर्टर के डेटा से रिपोर्टर के environment में रिप्रोड्यूस करें, फिर लोकल।
- आख़िरी सही build खोजें और बदलावों का दायरा घटाएँ; git के साथ बीच के commits पर bisect करें।
- चलने वाले और फ़ेल होने वाले केस की तुलना request level पर करें — web बनाम Android, एक अकाउंट बनाम दूसरा: दोनों requests कैप्चर करें और responses का diff देखें।
- Stack trace अपने कोड के पहले frame से पढ़ें; कोड बदलने से पहले configuration, feature flags और डेटा जाँचें।
- Findings defect रिकॉर्ड में लिखें, सिर्फ़ चैट में नहीं, ताकि अगला व्यक्ति फिर से शुरू न करे।
आज़माएँ: AI एरर मैसेज एनालाइज़र आज़माएँ: HTTP रिक्वेस्ट इंस्पेक्टर आज़माएँ: cURL जनरेटर आज़माएँ: API रिस्पॉन्स एनालाइज़र
Root cause analysis: 5 whys, fishbone और origin
फ़िक्स एक defect हटाता है; root cause analysis पूछता है कि error क्यों हुआ और पहले क्यों नहीं पकड़ा गया, ताकि उसी तरह के defect रोके जा सकें। ISTQB Foundation syllabus root cause को defect से और उससे होने वाले failure से अलग रखता है। Root cause analysis Blocker और Critical defect, production escapes और बार-बार आने वाले पैटर्न के लिए करें — हर टाइपो के लिए नहीं।
5 whys तकनीक failure से शुरू करके बार-बार "क्यों?" पूछती है, जब तक जवाब कोई ऐसा process कारण न हो जिसे टीम बदल सके। पाँच एक heuristic है, नियम नहीं; जवाब actionable होते ही रुकें, और जब एक जवाब के कई कारण हों तो शाखाएँ बनाएँ। Fishbone (Ishikawa) diagram संभावित कारणों को श्रेणियों में रखता है ताकि चर्चा पहले विश्वसनीय लगने वाले कारण पर अटक न जाए। सॉफ़्टवेयर के लिए उपयोगी श्रेणियाँ नीचे की origin classes ही हैं, साथ में people और process।
हर defect को उसके origin के हिसाब से वर्गीकृत करें। IEEE 1044 anomalies को वर्गीकृत करने के लिए कहीं ज़्यादा समृद्ध एट्रिब्यूट परिभाषित करता है; नीचे के छह origins एक सरल शुरुआत हैं जिन्हें ज़्यादातर टीमें ट्रायेज में लगातार लागू कर सकती हैं।
- Requirements — requirement ग़ायब, अस्पष्ट, ग़लत, या बदली गई लेकिन बदलाव हर consumer तक नहीं पहुँचा।
- Design — architecture या interface का ग़लत या असंगत फ़ैसला।
- Code — implementation की गलती: logic, boundaries, null handling, concurrency, duplicated logic।
- Environment — configuration, infrastructure, versions, third-party service, deployment।
- Data — अप्रत्याशित, malformed या ग़लत तरीके से migrate हुआ डेटा; ग़लत reference data।
- Test — defect ख़ुद test में था (false positive), या test gap की वजह से बच निकला; test gaps को contributing cause के रूप में दर्ज करें।
उदाहरण: VAT defect का root cause
एक काल्पनिक उदाहरण, जो डिफ़ेक्ट लाइफ़साइकल गाइड में फ़ॉलो किए गए defect को आगे बढ़ाता है: fixed-amount coupon लगाने पर Android checkout ने 184.00 की जगह 190.00 SAR लिए, क्योंकि VAT डिस्काउंट से पहले कैलकुलेट हुआ।
नीचे के उदाहरण में "क्यों" की कड़ी: राशि ग़लत क्यों थी? क्योंकि API v2 की pricing ने 15% VAT निकालने के बाद coupon लगाया। ऐसा क्यों? क्योंकि v2 के पास pricing function की अपनी कॉपी है, जो v1 से fork हुई थी। कॉपी अपडेट क्यों नहीं हुई? क्योंकि "VAT डिस्काउंट के बाद की कीमत पर" वाला नियम (release 5.1) सिर्फ़ web checkout की story के रूप में लिखा गया था, और pricing इस्तेमाल करने वाले बाक़ी हिस्सों की सूची किसी ने नहीं बनाई। टेस्ट ने इसे क्यों नहीं पकड़ा? क्योंकि v2 के API tests में coupon वाले केस नहीं थे, और टेस्ट डेटा में भी coupon नहीं थे। Coupon वाला केस क्यों नहीं था? क्योंकि v2 के tests v1 के happy-path केस से कॉपी हुए थे और pricing decision table से कभी मिलाए नहीं गए। वर्गीकरण: मुख्य origin requirements, और code व test सहायक कारण; कार्रवाइयाँ, हर एक का owner और तारीख़ के साथ: v1, v2 और web के लिए एक ही pricing service, decision table पर आधारित API tests (coupon का प्रकार × VAT × rounding), और story टेम्पलेट में नया सवाल: "यह नियम कौन-से clients या APIs इस्तेमाल करते हैं?"।
- विश्लेषण मालिकों और तारीख़ों वाले process बदलावों पर ख़त्म होता है, किसी दोषी व्यक्ति पर नहीं।
- Primary origin वह जगह है जहाँ defect आया; contributing causes बताते हैं कि वह बचा क्यों रहा।
- Test वाला action failure को स्थायी check में बदलता है, जो रोकथाम का सबसे सस्ता हिस्सा है।
DEF-2417 Android checkout charges 190.00 SAR instead of 184.00 with a fixed-amount coupon
5 whys
1 Why was the amount wrong? API v2 pricing applied the coupon after calculating 15% VAT.
2 Why did v2 do that? v2 has its own copy of the pricing function, forked from v1.
3 Why was the copy not updated? The rule "VAT on the discounted price" (release 5.1) was written
as a story for web checkout only; no one listed the other
consumers of pricing.
4 Why did tests not catch it? v2 API tests had no coupon cases; the test data had no coupons.
5 Why was there no coupon case? v2 tests were copied from v1 happy-path cases and never reviewed
against the pricing decision table.
Fishbone (contributing causes)
Requirements rule change scoped to one client
Design pricing logic duplicated per API version
Code order of operations in v2 price() and summary()
Test no coupon x VAT combinations at API level; test data without coupons
Environment none (reproduced on staging and locally)
Data none
Classification origin: requirements (primary); code, test (contributing)
Actions (owner, due)
- One pricing service used by v1, v2 and web (omar.k, release 5.4)
- Decision-table API tests: coupon type x VAT x rounding (layla.h, 2026-09-25)
- Story template asks "Which clients or APIs use this rule?" (product owner, next refinement)ट्रायेज के anti-patterns
- ट्रायेज को status meeting बनाना — नए defect पर फ़ैसला लेने के बजाय हर खुला defect पढ़ना।
- Priority inflation — जब सब कुछ High है, तो High का कोई मतलब नहीं। वितरण पर नज़र रखें।
- Severity पर मोलभाव — exit criterion पास करने के लिए severity घटाना। Severity बदलने के लिए नया सबूत चाहिए।
- "टीम" को असाइन करना — defect का कोई मालिक नहीं, इसलिए कोई उसे ठीक नहीं करता।
- बिना reference के reject करना — कोई requirement या डिज़ाइन उद्धृत किए बिना "works as designed"।
- Cannot reproduce को कूड़ेदान बनाना — क्या आज़माया यह दर्ज किए बिना या सबूत रखे बिना intermittent defect बंद करना।
- स्थायी deferral — बिना review तारीख़ के deferred defect छिपा हुआ backlog बन जाता है।
- मीटिंग में debugging — जाँच ट्रायेज के बाद मालिक का काम है।
- दोषारोपण — जो root cause analysis "डेवलपर X लापरवाह था" पर ख़त्म होता है, उसने root cause नहीं खोजा।
- चैट में फ़ैसले — जो ट्रैकर में नहीं, वह हुआ ही नहीं।
ट्रायेज क्या देता है
ट्रायेज सेशन तब पूरा होता है जब उसने छुआ हर defect दर्ज फ़ैसले के साथ New से निकल जाए। AI लिखने वाले हिस्से को तेज़ कर सकता है — साफ़ टाइटल, structured description, justification के साथ सुझाई severity और priority — लेकिन फ़ैसले उन्हीं लोगों के पास रहते हैं जो उनके मालिक हैं।
- हर defect के लिए: नया स्टेट, severity, priority, मालिक, target release, links, और किसी भी बिना-फ़िक्स resolution का कारण।
- नामित व्यक्ति को ठीक-ठीक सवाल के साथ भेजे गए Needs info अनुरोध।
- रिलीज़ के फ़ैसले के लिए अपडेट की गई known-issues और risk सूची।
- Escalations: Blocker और Critical defect उसी दिन release manager को बताए जाएँ।
- योग्य defect के लिए root cause analysis tasks, मालिकों और तारीख़ों के साथ।
- ट्रायेज मेट्रिक्स: untriaged count और age, फ़ैसले तक का समय, rejected और duplicate rates।
अक्सर पूछे जाने वाले सवाल
डिफ़ेक्ट ट्रायेज में किसे शामिल होना चाहिए?
फ़ैसलों के मालिक: test lead या QA प्रतिनिधि, product owner और development lead। जब किसी defect को ज़रूरत हो तो support, security या design भी जुड़ते हैं। ग्रुप इतना छोटा रखें कि फ़ैसला हो सके।
ट्रायेज कितनी बार होना चाहिए?
Release hardening के दौरान रोज़, स्थिर स्प्रिंट में हफ़्ते में दो-तीन बार, और Blocker, Critical व production defect के लिए तुरंत। लक्ष्य है लगभग ख़ाली untriaged queue।
Severity कौन तय करता है और priority कौन?
QA तय स्केल से severity प्रस्तावित करता है क्योंकि वह असर बताती है; product owner priority तय करता है क्योंकि वह बिज़नेस की तात्कालिकता बताती है। असहमति एक बार escalate होती है और फ़ैसला कारण के साथ दर्ज होता है।
ट्रायेज और root cause analysis में क्या फ़र्क़ है?
ट्रायेज तय करता है कि नए defect के साथ क्या होगा: validity, severity, priority, मालिक और रिलीज़। Root cause analysis बाद में, गंभीर या बार-बार होने वाले defect के लिए होता है, और पूछता है कि defect क्यों आया और पहले की जाँचों से क्यों बचा।
ट्रायेज में defect कब reject होता है?
जब व्यवहार requirement या डिज़ाइन से मेल खाता हो, या रिपोर्ट test की गलती से बनी हो, जैसे ग़लत डेटा या environment। Rejection में reference उद्धृत होता है; अगर requirement ही ग़लत है तो वह change request बन जाता है।
क्या AI defect ट्रायेज कर सकता है?
AI justification के साथ severity और priority सुझा सकता है, टाइटल सुधार सकता है और description को structure कर सकता है, जिससे ट्रायेज तेज़ होता है। अंतिम फ़ैसले QA, product owner और development lead के पास रहते हैं।
क्या 5 whys में हमेशा पाँच सवाल चाहिए?
नहीं। पाँच एक heuristic है। जब जवाब ऐसा कारण हो जिसे टीम बदल सके तो रुकें, और जब एक जवाब के कई कारण हों तो अलग-अलग शाखाओं का पीछा करें।
संदर्भ
- ISTQB Certified Tester Foundation Level (CTFL) v4.0सॉफ़्टवेयर टेस्टिंग का फ़ाउंडेशन पाठ्यक्रम: टेस्ट स्तर और प्रकार, टेस्ट डिज़ाइन तकनीकें, टेस्ट प्रबंधन और टूल।
- ISTQB Glossaryटेस्टिंग शब्दों की मानक परिभाषाएँ — टेस्ट केस, रिग्रेशन टेस्टिंग, सेवेरिटी, प्रायोरिटी, बाउंड्री वैल्यू एनालिसिस आदि।
- Certified Tester Advanced Level Test Management (CTAL-TM) v3.0टेस्टिंग प्रबंधन पर ISTQB का advanced पाठ्यक्रम: टेस्ट योजना और अनुमान, risk-based testing, निगरानी, मेट्रिक्स और रिपोर्टिंग।
- IEEE 1044-2009 — IEEE Standard Classification for Software Anomaliesसॉफ़्टवेयर anomalies — defects, failures और उनके प्रभाव — को वर्गीकृत करने के मानक शब्द और एट्रिब्यूट (IEEE इसे inactive-reserved सूचीबद्ध करता है)।
- Editing a Bug (section "Life Cycle of a Bug") — Bugzilla Documentationएक व्यापक रूप से इस्तेमाल होने वाले ट्रैकर का डिफ़ॉल्ट बग workflow — statuses, resolutions (fixed, invalid, won't fix, duplicate, works for me) और transitions — lifecycle का ठोस उदाहरण।
- Lessons Learned in Software Testing: A Context-Driven Approach (Cem Kaner, James Bach, Bret Pettichord)बग रिपोर्टिंग, टेस्ट डिज़ाइन, ऑटोमेशन और टेस्टिंग प्रबंधन पर व्यावहारिक सबक — कॉन्टेक्स्ट-ड्रिवन स्कूल।
अभ्यास
Go-live से पहले छह नए defects का ट्रायेज करें
आप एक नगर पालिका के e-services portal (काल्पनिक) के QA lead हैं, जिसमें web portal और Android app हैं। Release 4.6 में दुकान के licence का online renewal जुड़ रहा है और go-live छह दिन में है, इसलिए release hardening के दौरान टीम रोज़ ट्रायेज करती है। कल छह defects रिपोर्ट हुए और वे अभी New में हैं। नीचे के material में release का संदर्भ, owners, दो requirements, उन पर पहले से लिखे comments के साथ छह रिपोर्टें, और आज सुबह आपकी duplicate search के नतीजे हैं।
आज का सेशन काग़ज़ पर तैयार करें और चलाएँ — गाइड की ट्रायेज चेकलिस्ट और severity × priority मैट्रिक्स के साथ, तय स्केल इस्तेमाल करते हुए: severity Blocker, Critical, Major, Minor, Trivial; priority Highest, High, Medium, Low। हर फ़ैसला कारण के साथ ऐसे लिखें कि वह सीधे ट्रैकर में जा सके। एक रिपोर्ट के लिए date difference calculator काम आएगा। इसके लिए 30–40 मिनट रखें।
एक नगर पालिका का e-services portal (काल्पनिक) - web portal और Android app
Release 4.6 में "Shop licence renewal" जुड़ता है: आवेदन, fee का online भुगतान,
inspection की booking। Go-live: सोमवार 12 अक्टूबर 2026; उसी दिन नगर पालिका
नई सेवा की घोषणा करती है।
4.6 का exit criterion: renewal सेवा में कोई खुला Blocker या Critical defect नहीं।
Release hardening में रोज़ ट्रायेज। आज: मंगलवार 6 अक्टूबर 2026, 09:30।
Owners Payments: फ़ैसल | Licensing service (renewal API, fees): मोना
Android app: हुदा | Web front end: रवि | Reporting: ख़ालिद
Product owner: सारा | Release manager: यूसुफ़ | QA lead: आप
Requirements
FR-12 Renewal fee 300.00 SAR है। अगर licence renewal request से 30 दिन से
ज़्यादा पहले expire हुआ हो, तो 200.00 SAR की late fee जुड़ती है।
FR-15 जब payment gateway भुगतान की पुष्टि करे, application "Under review" में
चला जाता है और "Pay now" बटन फिर नहीं दिखता।
नए defects (state: New)
DEF-611 Payments - सोमवार 5 अक्टूबर 09:10, रिपोर्टर: लीना (tester)
रिपोर्टर की severity: Critical
Staging, build 4.6.0-rc2। Gateway card से पैसा ले लेता है, लेकिन application
"Awaiting payment" में ही रहता है और "Pay now" फिर दिखता है, इसलिए आवेदक दो बार
भुगतान कर सकता है। 20 में से 3 test payments में; माँगने पर दोबारा नहीं हुआ।
तीनों मामलों के लिए संलग्न: test account, gateway reference, request id,
timestamp; server log का अंश।
Project manager का comment: "20 में से सिर्फ़ 3। इसे Major कर दो ताकि 4.6 न रुके।"
DEF-612 कोई component नहीं - सोमवार 5 अक्टूबर 14:40, रिपोर्टर: नूरा
(UAT, licensing विभाग) · रिपोर्टर की severity: कोई नहीं
"Booking काम नहीं करती। कृपया जल्दी ठीक करें।"
न steps, न environment, न account, न screenshot, न समय।
DEF-613 Android app - सोमवार 5 अक्टूबर 15:05, रिपोर्टर: अर्जुन (tester)
रिपोर्टर की severity: Minor
App 4.6.0 (build 112), Arabic UI, renewal फ़ॉर्म: 9 अंकों की national ID डालने पर
error message में field के नाम की जगह कच्चा placeholder {field} दिखता है।
POST /api/renewals के response में errors[0].message में यही टेक्स्ट है।
DEF-614 Licensing service - सोमवार 5 अक्टूबर 16:20, रिपोर्टर: लीना (tester)
रिपोर्टर की severity: Major
Staging, build 4.6.0-rc2। Test case TC-207 को 300.00 SAR fee की उम्मीद है;
portal test दुकान T-118 के लिए 500.00 SAR दिखाता है। Test data: T-118 का licence
21 अगस्त 2026 को expire हुआ; renewal request 5 अक्टूबर 2026 को की गई।
Developer का comment: "Works as designed. Close."
DEF-615 Android app - सोमवार 5 अक्टूबर 17:30, रिपोर्टर: अर्जुन (tester)
रिपोर्टर की severity: Blocker
App 4.6.0 (build 112): booking confirmation स्क्रीन 09:30 के लिए बुक हुए
inspection को 12:30 दिखाती है। उसी booking (BK-20931) के लिए web portal और
confirmation SMS 09:30 दिखाते हैं। दो devices पर 3 में से 3 बार reproduce हुआ।
DEF-616 Reporting - सोमवार 5 अक्टूबर 18:00, रिपोर्टर: लीना (tester)
रिपोर्टर की severity: Minor ("admin only")
Staging, manual run। National statistics office के लिए सालाना licence
statistics export (CSV) हर उस दुकान को छोड़ देता है जिसके trade name में comma
है: 250 में से 4 test दुकानें ग़ायब। Export साल में एक बार चलता है;
अगला run: 10 जनवरी 2027।
Development lead का comment: "Assign to: backend team."
आज सुबह ट्रैकर में search (सिर्फ़ खुले defects)
"Awaiting payment", payment callback ........ कोई match नहीं
{field}, national ID, POST /api/renewals .... DEF-598
booking, inspection, appointment ............ DEF-590
fee, late fee / confirmation time / export .. कोई match नहीं
DEF-598 Open · Minor · Low · owner रवि (Web front end)
Web, Arabic UI: national ID का error message कच्चा placeholder {field} दिखाता है।
रवि का note: टेक्स्ट API के error response से आता है।
DEF-590 Open · Major · High · owner हुदा (Android app)
Android: अगले हफ़्ते के inspection slots load नहीं होते (कभी न रुकने वाला spinner)।
Workaround: web portal से बुक करें।- Queue को पहले से जाँचें: हर defect को दोनों गेट (reproducible या सबूत वाला, complete) और search नतीजों के सामने duplicate जाँच से गुज़ारें। तय करें कि कौन-सी रिपोर्टें सेशन से पहले New से निकलेंगी, और कैसे।
- 2 मिनट की queue जाँच करें: New में कितने defects हैं, सबसे पुराना untriaged कौन-सा है, और क्या कोई Blocker या Critical है जिसे इंतज़ार नहीं करना चाहिए था? फिर बाक़ी को चर्चा के क्रम में रखें।
- बाक़ी हर defect के लिए फ़ैसला लें और कारण दें: valid है या नहीं (reference के साथ), प्रस्तावित severity, वह priority जो आपके हिसाब से product owner तय करेगा, एक नामित owner जिसकी पुष्टि development lead करे, target release या कारण के साथ deferral, workaround और links।
- Material में, रिकॉर्ड पर पहले से लिखे comments समेत, ट्रायेज के anti-patterns खोजें, और लिखें कि उनकी जगह आप क्या करेंगे।
- लिखें कि सेशन क्या देता है: हर defect का नया state, Needs info अनुरोध, release manager को escalations, known issues, और वे defects जिन्हें root cause analysis चाहिए।
मॉडल उत्तर दिखाएँ
सेशन से पहले। दो रिपोर्टें मीटिंग का समय लिए बिना New से निकल सकती हैं: DEF-612 completeness के गेट पर रुकता है और Needs info में जाता है (नीचे देखें), और DEF-613, DEF-598 का duplicate है — वही message, वही field, वही API response। बाक़ी चार दोनों गेट और duplicate जाँच पार करते हैं: DEF-611 के पास वे सबूत हैं जो intermittent failure के लिए चाहिए, DEF-614, DEF-615 और DEF-616 complete हैं, और search का अकेला दूसरा match, DEF-590 (inspection slots load नहीं होते), DEF-615 (confirmation पर ग़लत समय) से अलग failure है। पहले 2 मिनट की queue जाँच: पिछले सेशन के बाद 6 defects आए, और pre-screen के बाद 4 अभी New में हैं। सबसे पुराना untriaged DEF-611 है, जो लगभग 24 घंटे पहले रिपोर्ट हुआ, और इसे इंतज़ार नहीं करना चाहिए था: जिस payment defect को रिपोर्टर Critical बताए, उसे ड्यूटी पर मौजूद व्यक्ति सोमवार को ही तुरंत ट्रायेज करता है, और आज की मीटिंग सिर्फ़ फ़ैसले की पुष्टि करती है। यही बात DEF-615 पर लागू होती है, जो 17:30 पर Blocker के रूप में रिपोर्ट हुआ: उसी शाम की जाँच दिखा देती कि यह Blocker नहीं है (नीचे देखें)। इन चार को अपनी प्रस्तावित severity के क्रम में लें, सबसे ऊँची पहले, रिपोर्टर की severity के क्रम में नहीं: DEF-611, DEF-616, DEF-615, DEF-614।
DEF-611: valid, और सबूत काफ़ी हैं। यह माँगने पर दोबारा नहीं हुआ, लेकिन तीनों मामलों के सबूत (gateway reference, request id, timestamp, server log) वही हैं जो चेकलिस्ट intermittent failure के लिए स्वीकार करती है, और FR-15 expected result देता है। Severity: Critical — पैसा कट जाता है, सेवा नहीं मिलती, और आवेदक दो बार भुगतान कर सकता है; scale का Critical स्तर payment failure को साफ़ तौर पर गिनाता है। Major का "कम यूज़र प्रभावित" यहाँ फ़िट नहीं होता: 20 में से 3 test payments यानी 15%, और जिस आवेदक पर यह पड़ता है, उसका पैसा कटता है पर सेवा नहीं मिलती। Priority: Highest — पैसा, नई सेवा, और go-live छह दिन में। Owner: फ़ैसल (Payments)। Target: 4.6, go-live से पहले; exit criterion के तहत यह sign-off रोकता है। Workaround: आवेदक के लिए कोई नहीं; support के लिए लक्षण लिख दें। Links: FR-15, तीनों gateway references और वह test case जिसने इसे पकड़ा। आज ही यूसुफ़ को बताएँ। Fix की confirmation testing इतने payments के साथ हो कि दिखे कि 20 में से 3 बार होने वाला failure ख़त्म हुआ; एक pass हुआ run बहुत कम साबित करता है। Fix के बाद: root cause analysis (payments में Critical defect)।
DEF-612: Needs info, ठीक-ठीक सवालों के साथ नूरा को वापस: web या Android app, और app का कौन-सा version? कौन-सा दुकान account? आप क्या बुक कर रही थीं — renewal का inspection? कोशिश की तारीख़ और समय? ठीक क्या हुआ — कोई error टेक्स्ट, कभी न रुकने वाला spinner, या कुछ नहीं — screenshot के साथ? साथ में लिखें: "अगर आप Android app में अगले हफ़्ते का slot बुक कर रही थीं, तो यह DEF-590 हो सकता है; fix होने तक आप web portal से बुक कर सकती हैं।" अंदाज़े से severity या priority तय न करें: "जल्दी ठीक करें" रिपोर्टर की चिंता है और दर्ज होती है, और तथ्य आने पर product owner priority तय करता है। 3 दिन में जवाब न आए तो यह सेशन के aged items वाले हिस्से में लौटता है।
DEF-613: DEF-598 का Duplicate — वही placeholder, वही field, और टेक्स्ट उसी API response से आता है, इसलिए एक fix web और Android दोनों को ठीक करेगा। DEF-613 को link के साथ Duplicate के रूप में resolve करें, और Android के सबूत (build 112, steps और API response) DEF-598 में जोड़ें। DEF-598 में भी दो सुधार चाहिए। रवि का note दिखाता है कि टेक्स्ट API से आता है, इसलिए वह इसे उसी सबूत के साथ मोना (Licensing service) को सौंपे। और अब इसका दायरा दोनों interfaces हैं, ऐसी सेवा पर जिसकी घोषणा नगर पालिका go-live के दिन करेगी, इसलिए सारा से इसकी priority की review करने को कहें: launch से पहले दिखने वाले Arabic टेक्स्ट defect के लिए Minor × High, यानी go-live से पहले fix, आम फ़ैसला है। Severity Minor ही रहती है: field अब भी input को सही तरह validate करता है।
DEF-614: Rejected, works as designed, reference के साथ। 21 अगस्त से 5 अक्टूबर 2026 तक 45 दिन हैं, यानी 30 से ज़्यादा, इसलिए FR-12 late fee जोड़ता है: 300.00 + 200.00 = 500.00 SAR, और portal ठीक यही दिखाता है। गलती test में है: TC-207 ऐसी दुकान के लिए late fee के बिना fee की उम्मीद करता है जिसे late fee देनी है। Origin class: Test (false positive)। लीना के लिए action: TC-207 का data या expected result ठीक करें, और FR-12 के boundary cases जोड़ें — expiry के 30 दिन बाद (300.00 SAR) और 31 दिन बाद (500.00 SAR)। अगर FR-12 में नहीं लिखा कि 30 दिन कैसे गिने जाते हैं (expiry की तारीख़ से calendar days?), तो सारा से पूछें।
DEF-615: valid, Major, High। Scale को ऊपर से जाँचें। Blocker नहीं: booking काम करती है और workaround है। Critical नहीं: booking सही save है (web portal 09:30 दिखाता है), इसलिए कोई data loss नहीं, और payment या security पर कोई असर नहीं। Major फ़िट होता है: एक अहम function, यानी confirmation, हर Android booking में ग़लत है, जबकि SMS और web portal सही समय दिखाते हैं। कुछ टीमें इसे Critical मानती हैं, क्योंकि ऐप पर भरोसा करने वाला आवेदक तीन घंटे देर से पहुँचेगा और उसका inspection छूट जाएगा; कारण दर्ज हो तो यह स्वीकार्य है, लेकिन रिपोर्टर के Blocker को बिना जाँचे छोड़ देना स्वीकार्य नहीं। Priority: High, 4.6 में go-live से पहले fix। Owner: हुदा (Android app), क्योंकि failure वहीं दिखा। कारण app में या उसे मिलने वाले response में हो सकता है, इसलिए उसका पहला कदम है BK-20931 के लिए Android app को मिले response की तुलना web portal को मिले response से करना, और अगर API स्रोत है तो सबूत के साथ इसे मोना को सौंपना। Support और release notes के लिए workaround: SMS और web portal सही समय दिखाते हैं।
DEF-616: valid, Critical, Low, लिखित कारण के साथ। आधिकारिक export से ग़ायब records, सौंपे गए आउटपुट में data loss हैं; "admin only" बताता है कि defect कौन देखता है, यह नहीं कि वह कितना बुरा है, इसलिए Minor फ़िट नहीं होता। Priority Low है, क्योंकि export साल में एक बार चलता है और अगला run 10 जनवरी 2027 को है: उससे पहले कुछ नहीं खोता। Low priority वाले Critical defect को रिकॉर्ड में यही कारण और एक review तारीख़ चाहिए, जैसे 1 दिसंबर 2026, ताकि यह स्थायी deferral न बने। State: 4.6 से 4.7 तक Deferred, या 10 जनवरी 2027 से पहले जाने वाली किसी भी release तक। Owner: ख़ालिद (Reporting), "backend team" नहीं। यह renewal सेवा से बाहर है, इसलिए exit criterion इस पर लागू नहीं होता, लेकिन यह known-issues सूची में जाता है और हर Critical defect की तरह आज ही यूसुफ़ को बताया जाता है। Fix के बाद: root cause analysis।
Material में चार anti-patterns। DEF-611 और DEF-615 मीटिंग के लिए पूरी रात रुके रहे, जबकि Blocker या Critical बताई गई रिपोर्टें तुरंत और asynchronously ट्रायेज होती हैं। Project manager का "इसे Major कर दो" exit criterion पास करने के लिए severity पर मोलभाव है: severity बदलने के लिए नया सबूत चाहिए, और कम frequency उस आवेदक पर असर कम नहीं करती जिसने भुगतान किया; अगर project manager फिर भी असहमत है, तो एक बार escalate करें और फ़ैसला व उसका कारण दर्ज करें। DEF-614 पर developer का "Works as designed. Close." सही नतीजे पर पहुँचता है, लेकिन बिना reference के reject करता है: रिकॉर्ड में FR-12 उद्धृत हो और हिसाब दिखे। DEF-616 पर "Assign to: backend team" defect को किसी को नहीं सौंपता।
सेशन क्या देता है। छहों defects New से निकलते हैं: DEF-611 Open · Critical · Highest · फ़ैसल · 4.6, sign-off रोकता है; DEF-612 Needs info · नूरा; DEF-613, DEF-598 का Duplicate (DEF-598 मोना को सौंपा जाता है, priority की review सारा करेगी); DEF-614 Rejected, FR-12 उद्धृत, TC-207 ठीक करना है; DEF-615 Open · Major · High · हुदा · 4.6; DEF-616 4.7 तक Deferred · Critical · Low · ख़ालिद · review 1 दिसंबर 2026 को। आज यूसुफ़ को escalations: DEF-611 (4.6 रोकता है) और DEF-616 (Critical, scheduled)। Known-issues और risk सूची: DEF-611, workaround के साथ DEF-615, DEF-598 और DEF-616। Fix के बाद root cause analysis: DEF-611 और DEF-616। ट्रायेज मेट्रिक्स: 6 में से 1 rejected और 1 duplicate; सेशन से पहले सबसे पुराना untriaged defect लगभग 24 घंटे पुराना था, और अब New में कुछ नहीं बचा।
अगर आपके जवाब अलग हैं, तो उन्हें नियमों से मिलाएँ: severity तय स्केल पर असर के हिसाब से चलती है, priority बिज़नेस की तात्कालिकता के हिसाब से, और हर फ़ैसले का अपना मालिक है — QA severity प्रस्तावित करता है, product owner (सारा) priority तय करती है, development lead असाइन करता है। दर्ज कारण के साथ अलग चुनाव ठीक है, जैसे DEF-615 के लिए Critical या DEF-616 के लिए Medium priority; बिना दर्ज कारण, मालिक या reference वाला फ़ैसला ठीक नहीं।
इस topic में आपकी प्रगति
प्रगति ट्रैक करने के लिए साइन इन करें
Topics पूर्ण चिह्नित करें, जहाँ छोड़ा था वहीं से जारी रखें और specialisation परीक्षाएँ खोलें।
QA रोडमैप का हिस्सा
इस गाइड में बताए गए टूल्स
Mutqan AI से कारण सहित सुझाई गई गंभीरता (Blocker / Critical / Major / Minor / Trivial) पाएँ।
Mutqan AI से व्यावसायिक प्रभाव, प्रभावित यूज़र, समयसीमा और गंभीरता को देखते हुए सुझाई गई प्राथमिकता (P0–P3) पाएँ।
Mutqan AI से stack trace और एरर मैसेज समझें, संभावित मूल कारण पहचानें और डिबगिंग के अगले क़दम जानें।
देखें कि आपका क्लाइंट असल में क्या भेजता है: method, हेडर, query, बॉडी, IP और TLS जानकारी।
मेथड, URL, हेडर, बॉडी और auth विकल्पों से cURL कमांड बनाएँ।
किसी API रिस्पॉन्स का विश्लेषण करें: संरचना, फ़ील्ड टाइप, null, डुप्लिकेट, साइज़ और संभावित डेटा-क्वालिटी समस्याएँ।
Mutqan AI से बिखरे हुए विवरण से स्पष्ट और खोजने में आसान बग टाइटल बनाएँ।
मोटे-मोटे नोट्स को पूरी बग रिपोर्ट में बदलें: reproduce करने के स्टेप, अपेक्षित बनाम वास्तविक, environment, गंभीरता और attachments चेकलिस्ट।