टेस्टर्स के लिए DevOps
DevOps काम करने का एक तरीका है जिसमें development (testing समेत) और operations एक ही लक्ष्य साझा करते हैं: बदलावों को users तक तेज़ी और सुरक्षा से पहुँचाना, और live होने के बाद product को सही हालत में रखना। ISTQB Foundation syllabus v4.0 इसे एक organisational approach बताता है जिसके लिए cultural shift चाहिए, और जिसे team autonomy, fast feedback, integrated toolchains और continuous integration व continuous delivery जैसी practices सहारा देती हैं।
उदाहरण के लिए, testers के एक हफ़्ते बाद पूरा feature जाँचने और operations team के release की रात उसे install करने की बजाय, DevOps team feature को छोटे बदलावों में ship करती है। हर बदलाव commit के कुछ ही मिनटों में अपने-आप build और test होता है, health check के साथ deploy होता है और production में उस पर नज़र रखी जाती है।
यह क्यों ज़रूरी है
जब product बनाने, टेस्ट करने और चलाने वाले लोग अलग-अलग खानों में काम करते हैं, तो बदलाव जमा होकर बड़े और जोखिम भरे releases बन जाते हैं, defect पर feedback code लिखे जाने के कई दिन बाद आता है, और production की समस्याएँ team तक नाराज़ users के ज़रिए पहुँचती हैं।
Tester के लिए DevOps काम को ख़त्म नहीं करता, बदल देता है। Releases इतनी बार होते हैं कि हर बार पूरा manual regression pass संभव नहीं, इसलिए दोहराए जाने वाले checks automated और भरोसेमंद होने चाहिए, जबकि exploratory testing और risk analysis और ज़रूरी हो जाते हैं, क्योंकि automated checks वही पकड़ते हैं जिसके बारे में किसी ने पहले सोचा हो। जो tester pipeline, production signals और delivery metrics समझता है, वह दिखा सकता है कि quality कहाँ खो रही है और data के साथ fix की वकालत कर सकता है।
पहले culture, फिर practices
यह शब्द development और operations को जोड़ता है। मकसद कोई job title या tool नहीं, बल्कि system बदलने वालों और उसे चलाए रखने वालों के बीच की दीवार हटाना है। पूरी team production में product की ज़िम्मेदारी साझा करती है, failures को दोष देने की बजाय सीखने का मौका मानती है, और अपने काम करने के तरीके को छोटे कदमों में सुधारती है, जैसा आपने Kanban lesson में देखा। कुछ teams इस विचार को CALMS में समेटती हैं: culture, automation, lean thinking, measurement और sharing।
- हर चीज़ के लिए version control: code, tests, pipeline definitions, configuration और infrastructure।
- छोटे batches: कुछ बड़े releases की बजाय बहुत से छोटे बदलाव, जिनमें से हर एक को test और roll back करना आसान हो।
- Continuous integration और delivery: एक automated pipeline हर बदलाव को build, test और release के लिए तैयार करती है (यह अगले lesson का विषय है)।
- Infrastructure as code: environments scripts से बनते हैं, इसलिए test environment production जैसा हो सकता है।
- Monitoring और blameless post-incident reviews: हर incident एक सुधार बन जाता है।
DevOps loop: हर stage में testing
Teams अक्सर DevOps को एक अंतहीन loop की तरह बनाती हैं: plan, code, build, test, release, deploy, operate, monitor। यह एक आम तस्वीर है, कोई standard नहीं, लेकिन यह दिखाती है कि "test" सिर्फ़ एक stage है, जबकि testing की activities हर stage में होती हैं।
Plan में आप acceptance criteria पर सवाल उठाते हैं और तय करते हैं कि हर बदलाव कैसे test और monitor होगा। Code और build में developers के लिखे unit tests और static analysis कुछ ही मिनटों में feedback देते हैं। Test में automated regression और API tests चलते हैं, जबकि आप नए हिस्से को explore करते हैं। Release में test results और ज्ञात risks quality gate को जानकारी देते हैं (एक checkpoint जहाँ change को आगे बढ़ने से पहले तय criteria पूरे करने होते हैं)। Deploy में smoke tests (deployment के बाद main functions काम कर रहे हैं या नहीं, इसकी तेज़ जाँच) और health checks तय किए गए rollback criteria के सामने नए version की पुष्टि करते हैं। Operate और monitor में incidents और production signals दिखाते हैं कि testing से क्या छूटा, और हर finding अगले plan में एक नए test के रूप में लौटती है।
- 1PlanAcceptance criteria पर सवाल; तय करें कि हर बदलाव कैसे test और monitor होगा
- 2CodeDevelopers code के साथ unit tests लिखते हैं
- 3BuildUnit tests और static analysis मिनटों में feedback देते हैं
- 4TestAutomated regression और API tests चलते हैं, tester नया हिस्सा explore करता है
- 5ReleaseTest results और ज्ञात risks quality gate को जानकारी देते हैं
- 6Deployतय rollback criteria के सामने smoke tests और health checks
- 7OperateIncidents दिखाते हैं कि testing से क्या छूटा
- 8MonitorLatency और error rates जैसे production signals
चरण 1–8 के दौरान Testing activities हर stage में होती हैं, सिर्फ़ Test में नहीं।
चरण 1 पर वापस हर finding अगले plan में नए test के रूप में लौटती है
DevOps दिखाने का एक आम तरीका, कोई standard नहीं: teams stages के नाम और बँटवारा अलग-अलग रखती हैं।
QA की जगह: automation, तेज़ feedback और monitoring
ISTQB syllabus बताता है कि DevOps testing को क्या देता है, जैसे code quality और regressions पर fast feedback, stable test environments, performance और reliability पर ज़्यादा ध्यान, और कम repetitive manual testing। यह risks और challenges भी गिनाता है: delivery pipeline को define और set up करना पड़ता है, CI/CD tools लाने और maintain करने पड़ते हैं, और test automation के लिए अतिरिक्त resources चाहिए और उसे बनाना व maintain करना मुश्किल हो सकता है। Manual testing, ख़ासकर user के नज़रिए से, अब भी ज़रूरी है। Tester का योगदान तीन क्षेत्रों में बँटता है।
- Automation: team के साथ तय करें कि कौन-से checks हर बदलाव पर और किस level पर चलें (ज़्यादातर unit और API tests, कुछ ही end-to-end journeys), और उन्हें भरोसेमंद रखें। Flaky test, यानी जो एक ही code पर बेतरतीब ढंग से कभी pass और कभी fail होता है, team को red builds नज़रअंदाज़ करना सिखा देता है।
- तेज़ feedback: commit के पाँच मिनट बाद fail होने वाला check वही developer ठीक कर देता है जिसने अभी code लिखा है; वही defect दो हफ़्ते बाद मिले तो context switch, bug report और retest की कीमत लगती है। Martin Fowler का continuous integration का विवरण build को तेज़ रखने पर ज़ोर देता है।
- Monitoring: असली users, data और load सिर्फ़ production में होते हैं। जानें कि team क्या monitor करती है (Google की SRE book चार golden signals सुझाती है: latency, traffic, errors और saturation), और ऐसे checks माँगें जो हाल के incidents पकड़ लेते, जैसे हर कुछ मिनट पर synthetic login।
आज़माएँ: रिग्रेशन सिनेरियो जनरेटर आज़माएँ: API हेल्थ चेकर आज़माएँ: रिस्पॉन्स टाइम एनालाइज़र
DORA metrics: delivery quality के signals
DORA (DevOps Research and Assessment), एक research programme जिसे Google Cloud चलाता है, delivery performance को पाँच metrics से बताता है: तीन throughput के लिए, यानी बदलाव users तक कितनी जल्दी पहुँचते हैं, और दो instability के लिए, यानी वे users को कितनी बार नुकसान पहुँचाते हैं। धीमा या flaky test suite lead time बढ़ाता है; testing की कमियाँ failed deployments के रूप में दिखती हैं। इन metrics को पूरे delivery system के signals की तरह पढ़ें, testers के scores की तरह कभी नहीं, और एक समय में एक ही application या service को मापकर उसकी तुलना उसके अपने trend से करें।
- Change lead time (throughput): commit से production में चलने तक का समय। यह commit से शुरू होता है, इसलिए यह उस request-से-delivery वाले lead time से छोटा होता है जिसे कई Kanban teams track करती हैं।
- Deployment frequency (throughput): बदलाव कितनी बार production तक पहुँचते हैं।
- Failed deployment recovery time (throughput): fail होकर तुरंत intervention माँगने वाले deployment के बाद recover होने में कितना समय लगता है।
- Change fail rate (instability): उन deployments का हिस्सा जिनके बाद तुरंत intervention चाहिए, जैसे rollback या hotfix; delivery level पर escaped defects का सबसे नज़दीकी signal।
- Deployment rework rate (instability): उन deployments का हिस्सा जो unplanned हैं और production के किसी incident की वजह से होते हैं।
Worked example: एक महीने का delivery data
एक online shop चलाने वाली team मासिक retrospective में अपना delivery data लाती है और weeks 5–8 की तुलना उससे पहले के चार हफ़्तों से करती है।
| DORA metric | Weeks 1–4 | Weeks 5–8 | बदलाव |
|---|---|---|---|
| Deployment frequencythroughput | 12 | 16 | ज़्यादा बार |
| Change lead time (median)throughput | 2 दिन | 3 दिन | धीमा |
| Failed deployment recovery time (median)throughput | 45 मिनट | 3 घंटे | धीमा |
| Change fail rateinstability | 12 में से 1 (8%) | 16 में से 4 (25%) | बदतर |
| Deployment rework rateinstability | 12 में से 1 (8%) | 16 में से 3 (19%) | बदतर |
- बिगड़ा
Team अब ज़्यादा बार deploy करती है, लेकिन instability बढ़ी है और recovery धीमी हुई है, इसलिए यह अतिरिक्त speed सुधार नहीं है। Metric बताता है कि कहाँ देखना है, यह नहीं कि क्यों, इसलिए tester चारों failed deployments और बढ़े हुए lead time की जाँच करता है।
- दो payment failures: pipeline सिर्फ़ payment provider के mock के सामने test करती थी, और provider ने अपनी API में एक field बदल दिया था। Action: provider के sandbox के सामने nightly API test।
- एक database migration production जितने data पर timeout हो गया। Action: staging में उतनी ही बड़ी anonymised copy पर migrations का अभ्यास।
- एक गलत discount, जिसे customers ने घंटों बाद report किया; इसी तरह पता चले failures ने recovery time बढ़ाया। Action: post-deployment smoke test जो एक test order देकर उसका total जाँचे।
- Lead time इसलिए बढ़ा क्योंकि बदलाव हफ़्ते में दो बार होने वाले manual regression pass की queue में रुके रहे। Action: stable checks automate करना और exploratory sessions बदले हुए हिस्सों के लिए रखना, वही wait-time वाली सोच जो Kanban में थी।
पाठ संस्करण
Online shop, production deployments Weeks 1-4 Weeks 5-8
Deployment frequency 12 16
Change lead time (median) 2 days 3 days
Failed deployment recovery (median) 45 min 3 h
Change fail rate 1 of 12 (8%) 4 of 16 (25%)
Deployment rework rate 1 of 12 (8%) 3 of 16 (19%)आम गलतियाँ
- DevOps को tool या job title मानना, जबकि testers, developers और operations अब भी दीवार के ऊपर से काम एक-दूसरे को थमा रहे हों।
- यह मानना कि automation testers की जगह ले लेता है, जबकि automated checks सिर्फ़ वही पुष्ट करते हैं जिसके बारे में किसी ने पहले सोचा हो।
- Red builds को pass होने तक बार-बार re-run करना। हर बिना-समझाया failure या तो defect है या flaky test, और दोनों का owner होना चाहिए।
- Deployment पर रुक जाना, यह पूछे बिना कि क्या monitor होता है और release fail होने पर आपको कैसे पता चलेगा।
- DORA metrics से teams या लोगों की ranking करना, या सिर्फ़ एक metric के पीछे भागना: बढ़ते change fail rate के साथ ज़्यादा deployments प्रगति नहीं है।
QA का नज़रिया
DevOps team में आपका काम पूरे loop में फैला होता है। Refinement में आप पूछते हैं कि story कैसे test होगी और team को कैसे पता चलेगा कि वह production में काम कर रही है। Development के दौरान आप तय करते हैं कि कौन-से checks pipeline में होंगे, और test phase का इंतज़ार करने की बजाय हर बदलाव के results review करते हैं। Release से पहले, gate green हो लेकिन कोई risk untested हो, तो आप आवाज़ उठाते हैं; release के बाद smoke results और dashboards जाँचते हैं।
हर failed deployment या incident के लिए लिखें कि क्या fail हुआ, कैसे पता चला, recovery में कितना समय लगा और कौन-सा test या monitor उसे पहले पकड़ लेता, और यह सूची DORA trend के साथ retrospectives में लाएँ। Logs और dashboards का access माँगें: जो आप देख नहीं सकते, उसे test नहीं कर सकते।
अभ्यास
एक हफ़्ते के deployments पढ़ें
एक team food-ordering API deploy करती है। नीचे दिए एक हफ़्ते के log से पाँचों DORA metrics निकालें, हर failed deployment के लिए एक test या monitor सुझाएँ जो उसे रोक देता या recovery छोटी कर देता, और बताएँ कि एक हफ़्ते का data आपको क्या नहीं बता सकता।
Food-ordering API: production deployments, one week
Lead time = from commit to production
# Deployed Lead time Result
1 Sun 10:00 20 h OK
2 Mon 11:00 18 h OK
3 Mon 16:00 75 h Login returns 500 when two-factor sign-in is on;
rolled back at 16:50
4 Tue 12:00 26 h OK
5 Wed 09:30 16 h Receipts show prices without the currency;
a customer reports it at 12:00
6 Wed 13:30 1 h Hotfix for #5 (unplanned); receipts correct
7 Thu 14:00 28 h OK
8 Thu 18:00 55 h OK- Deployments गिनें और change lead time का median निकालें।
- तुरंत intervention माँगने वाले deployments और उनके recovery times पहचानें।
- Unplanned deployments पहचानें।
- हर failure के लिए एक check या monitor सुझाएँ और loop में उसका stage बताएँ।
मॉडल उत्तर दिखाएँ
Deployment frequency: हफ़्ते में 8 (7 planned, 1 hotfix)। Change lead time: क्रम से 1, 16, 18, 20, 26, 28, 55, 75 घंटे; median (20 + 26) / 2 = 23 घंटे। पूछें कि #3 और #8 में इतना समय क्यों लगा।
Change fail rate: #3 (rollback) और #5 (hotfix), 8 में से 2 = 25%। Recovery: #3 के लिए 50 मिनट और #5 के लिए 4 घंटे (09:30 से 13:30 के hotfix तक); सिर्फ़ दो failures हैं, इसलिए दोनों values बताएँ। Deployment rework rate: #6, 8 में से 1 = 12.5%।
#3: two-factor sign-in on और off दोनों के साथ login का automated API test (test stage), और login errors पर alert के साथ synthetic login (monitor stage)। 50 मिनट की recovery दिखाती है कि rollback ने काम किया।
#5: regression suite में receipt format का check, currency समेत (test stage), और deployment के बाद एक smoke order जो receipt जाँचे (deploy stage)। Customer को यह 2.5 घंटे बाद मिला, यानी monitoring इसे नहीं पकड़ पाई।
एक हफ़्ता और 8 deployments trend के लिए बहुत कम हैं, numbers यह नहीं बताते कि दोष किसका है, और वे ऐसे defects नहीं दिखा सकते जिन्हें अब तक किसी user ने नोटिस नहीं किया।
अक्सर पूछे जाने वाले सवाल
क्या DevOps team में काम करने के लिए programming सीखनी होगी?
इतनी कि आप automated tests पढ़ और maintain कर सकें, pipeline के results और logs पढ़ सकें और simple scripts चला सकें; full-time developer होना ज़रूरी नहीं। Teams ऐसे tester को महत्व देती हैं जो test code पर developers के साथ काम कर सके और समझे कि pipeline का हर stage क्या जाँचता है। Roadmap के आगे के automation modules ये skills बनाते हैं।
क्या DevOps और CI/CD एक ही चीज़ हैं?
नहीं। CI/CD practices और tools का एक set है जिस पर DevOps teams निर्भर करती हैं; DevOps काम करने का व्यापक तरीका है जिसमें culture, साझा ज़िम्मेदारी, monitoring और incidents से सीखना भी शामिल है। अगला lesson continuous integration, continuous delivery और continuous deployment समझाता है।
क्या DORA metrics test metrics हैं?
सीधे तौर पर नहीं। ये test team को नहीं, पूरे delivery system को मापते हैं। फिर भी testing इन पर गहरा असर डालती है: test suite की अवधि change lead time का हिस्सा है, और testing से निकल भागे defects change fail rate बढ़ाते हैं। इन्हें defect escape rate जैसे test metrics के साथ इस्तेमाल करें, उनकी जगह नहीं।
क्या DevOps का मतलब release से पहले की बजाय production में testing है?
नहीं। Release से पहले testing ज़रूरी बनी रहती है; DevOps production में monitoring और checks जोड़ता है क्योंकि कुछ समस्याएँ असली users, data और load के साथ ही दिखती हैं। Canary releases जैसी shift-right practices shift-left और shift-right testing वाले lesson में आती हैं।
संदर्भ
- ISTQB Certified Tester Foundation Level (CTFL) v4.0सॉफ़्टवेयर टेस्टिंग का फ़ाउंडेशन पाठ्यक्रम: टेस्ट स्तर और प्रकार, टेस्ट डिज़ाइन तकनीकें, टेस्ट प्रबंधन और टूल।
- DORA's software delivery performance metricsDORA के डिलीवरी मेट्रिक्स — change lead time, deployment frequency, failed deployment recovery time, change fail rate आदि — throughput और instability में समूहित।
- Monitoring Distributed Systems — Site Reliability Engineering (Rob Ewaschuk)monitoring पर Google की SRE गाइडेंस: black-box बनाम white-box monitoring और चार golden signals — latency, traffic, errors और saturation।
- Continuous Integration (Martin Fowler)continuous integration का व्यापक रूप से संदर्भित विवरण: बार-बार integrate करें, build को self-testing और तेज़ रखें, टूटा build तुरंत ठीक करें।
Mutqan tools से अभ्यास करें
एक साथ कई API health endpoint जाँचें और स्टेटस, latency तथा pass/fail सारांश पाएँ।
method, हेडर और JSON बॉडी पर पूरे नियंत्रण के साथ REST endpoint टेस्ट करें, फिर स्टेटस, हेडर और JSON path पर assertion लगाएँ।
तुरंत जाँचें कि कोई API endpoint पहुँच में है या नहीं: स्टेटस, रिस्पॉन्स टाइम, साइज़, content type और TLS।
किसी endpoint का रिस्पॉन्स टाइम कई सैंपल पर मापें: न्यूनतम, अधिकतम, औसत, माध्यिका और p95।
बदलाव के विवरण और प्रभावित तथा संबंधित मॉड्यूल की सूची से रिग्रेशन सिनेरियो जनरेट करें।
और गहराई से
- टेस्ट मेट्रिक्स जो फ़ैसले तय करेंFlow और delivery metrics: DORA metrics
- CI/CD पाइपलाइन में टेस्टिंगCI/CD में टेस्टर क्या करता है
- डिप्लॉयमेंट वेरिफ़िकेशन टेस्टिंगदेखने लायक monitoring सिग्नल
- Flaky टेस्टऑटोमेटेड UI टेस्ट flaky क्यों होते हैं — timing, shared state, डेटा, environment, third parties — उनकी जाँच कैसे करें, और सही retry व quarantine नीति।
इस topic में आपकी प्रगति
प्रगति ट्रैक करने के लिए साइन इन करें
Topics पूर्ण चिह्नित करें, जहाँ छोड़ा था वहीं से जारी रखें और specialisation परीक्षाएँ खोलें।