Shift-left وقتی به شعار تبدیل می‌شود که تستر در جلسه‌های بیشتری حاضر باشد، چند Check زودتر اجرا شود و تیم نتیجه بگیرد «کیفیت از ابتدا ساخته شد». حضور زودهنگام، تعداد تست، Code Coverage یا سبزی CI نشان نمی‌دهد سؤال درست در زمان مناسب پرسیده شده، Source جاری بوده، Evidence محدودیت‌هایش را حفظ کرده یا Risk در مرحلهٔ دیرتر و واقعی‌تر دوباره بررسی شده است.

این راهنما نقش تستر را به مربی، معمار یا قهرمان کیفیت ارتقا نمی‌دهد. قابلیت تست کمک می‌کند برای هر Risk یک Quality Interface بسازیم: Source و سؤال قابل‌بررسی، earliest economical feedback point، Artifact و Owner، Evidence و Unknown، موعد بازخورد و Countercheck دیرتر. Shift-left در این مدل «چپ‌بردن همهٔ تست‌ها» نیست؛ طراحی جریان Evidence از Discovery تا Production است.

مسیر کوتاه: Shift-left قابل‌ردیابی در هفت گام

گامپرسشخروجی
Contextکدام Goal/Basis/Architecture/DoD/Risk جاری است؟Baseline نسخه‌دار
Questionچه ادعایی باید شکسته یا پشتیبانی شود؟Quality Question
Earliestارزان‌ترین نقطهٔ معنادار بازخورد کجاست؟Feedback point + rationale
Artifactچه Example/Model/Contract/Fixture لازم است؟Versioned artifact
Evidenceچه چیزی و با چه محدودیتی مشاهده شد؟Evidence/Unknown
Countercheckکدام Risk فقط دیرتر دیده می‌شود؟Later/right-side check
Decisionچه کسی تا چه زمانی چه اقدامی می‌کند؟Disposition/Owner/Due

Shift-left چیست و چه چیزی نیست؟

در ISTQB CTFL 4.0.1، Shift-left نمونه‌ای از اصل Early testing است: تست زودتر در SDLC انجام می‌شود، بی‌آنکه تست دیرتر نادیده گرفته شود. Review مشخصات، Test-first، CI/CD با Component tests، Static analysis پیش از Dynamic testing و شروع زودتر برخی تست‌های Non-functional مثال‌اند. همان منبع می‌گوید effort، آموزش یا هزینهٔ اولیه ممکن است بیشتر شود؛ پس «زودتر» مساوی «رایگان‌تر» یا «همیشه بهتر» نیست.

Shift-left هستShift-left نیست
بازخورد معنادار پیش از قفل‌شدن تصمیماجرای همهٔ Suiteها روی هر Commit
بازبینی Basis/Example/Model/Contractجلسه‌نشینی اجباری تستر
طراحی Testability و Observabilityانتقال همهٔ تست به Developer
کاهش فاصلهٔ Signal تا Ownerحذف System/UAT/Exploration/Production feedback
توزیع Risk evidence در چرخهTool list یا Automation-first
انتخاب earliest economical pointچپ‌ترین نقطه به هر قیمت

برای تعریف عمومی، مثال‌ها و نقشهٔ Discovery تا CI، راهنمای جامع تست Shift-left را بخوانید. این مقاله به‌طور متمایز Interface نقش قابلیت تست و اتصال Early evidence به Countercheckهای بعدی را مالک است.

اصل طراحی: earliest economical feedback، نه earliest possible

ممکن‌بودن یک Check به معنی ارزشمندبودن آن نیست. سؤال باید در نقطه‌ای پرسیده شود که Artifact کافی برای پاسخ محدود وجود دارد، هزینهٔ تغییر هنوز قابل‌قبول است و false confidence یا نگهداری کنترل از ارزش Feedback بیشتر نیست. Security configuration واقعی، رفتار multi-service، تجربهٔ کاربر و Capacity گاهی فقط در مراحل دیرتر معنا دارند.

سؤالEarly signalچرا کافی نیست؟Countercheck
Rule مبلغ درست است؟Example/decision tableImplementation/state ناشناختهproperty/integration
Authorization طراحی شده؟Role matrix/threat reviewPolicy/config/runtime driftnegative system/runtime detection
API compatible است؟schema/contract fixturedeployment/data/version skewconsumer/integration
Latency محلی Regression ندارد؟component benchmarknetwork/dependency/workload fidelitysystem load/SLI observation
Journey قابل‌فهم است؟prototype/example reviewواقعیت استفاده نماینده نیستusability/UAT/feedback

مالکیت این مقاله: Early Quality Interface Contract

Goal / Test Basis / Architecture / DoD / Risk
  -> Bounded Quality Question
  -> Earliest Economical Feedback Point
  -> Versioned Artifact / Model / Fixture
  -> Capability Owner + Feedback Due
  -> Evidence + Limitation + Unknown
  -> Disposition / Decision / Change
  -> Later Countercheck / Production Feedback
  -> Correction / Learning / Updated Risk

Quality Interface یک Handoff تازه به QA نیست. Record مشترکی است که می‌گوید کدام سؤال چرا در کدام نقطه بررسی می‌شود و کدام ادعا هنوز باز است. Owner مسئول ساخت یا پیگیری Evidence است؛ مالک انحصاری کیفیت یا مقصر Failure نیست.

Baseline نقش و کار را پیش از Shift قفل کنید

هویتنمونهخطر Drift
Initiative/Product GoalINIT-17/PG-9سؤال برای هدف قدیمی
Sprint GoalSG-17کار زودهنگام بی‌ربط
Test BasisBASIS-v4Review Requirement منسوخ
ArchitectureARCH-v3Contract روی interface قدیمی
Definition of DoneDOD-v4Evidence ناقص
Risk RegistryRISK-v5coverage نمایشی
Pipeline/PolicyPIPE-v4Checkهای stale
Facts cutoffISO instantادعای تازگی مبهم
qualityInterfaceBaseline:
  initiative: INIT-17
  productGoal: PG-9
  sprintGoal: SG-17
  testBasis: BASIS-v4
  architecture: ARCH-v3
  definitionOfDone: DOD-v4
  riskRegistry: RISK-v5
  pipeline: PIPE-v4
  factsCutoff: 2026-08-12T13:30:00Z
  participants/perspectives: declared

از Risk به سؤال قابل‌شکستن برسید

سؤال مبهمسؤال محدود
آیا کار می‌کند؟Callback تکراری با Event ID یکسان فقط یک Ledger effect می‌سازد؟
آیا امن است؟Support role خارج Tenant برای Order خواندن/نوشتن را deny می‌شود؟
آیا سریع است؟B17 نسبت به B16 در Workload/Environment یکسان، p95 policy را نقض می‌کند؟
آیا کاربر راضی است؟کاربر نماینده می‌تواند Reference بازگشت وجه را بدون کمک پیدا کند؟
آیا تست‌پذیر است؟Attempt/Event/Build/Run identity در Evidence قابل correlation است؟

هر سؤال باید Subject، Condition، Behavior/quality characteristic، Oracle direction و forbidden inference داشته باشد. سؤال خوب الزاماً Test case نیست؛ می‌تواند Review question، Example، Model query، Experiment یا Observability obligation باشد.

قالب Quality Interface

qualityInterface:
  id: QI-2
  riskRef: RISK-v5#R2
  sourceRef: BASIS-v4#AUTHZ-7
  question: support role outside tenant is denied read/write?
  earliestPoint: contract/component
  economics: role matrix + fake are cheap; runtime config remains
  artifact: AUTHZ-MATRIX-v2
  owner: whole-team/ST17
  evidence: EV-AUTHZ-COMP-17
  limitation: component policy; no deployed overlay
  unknowns: production identity/config drift
  feedbackDue: before merge C17
  disposition: PARTIAL_EVIDENCE
  laterCountercheck: system negative suite + production detection

Discovery: Example برای یادگیری، نه Acceptance صوری

در Discovery یا Refinement، تستر می‌تواند Rule، Example، Counterexample، boundary، actor، state transition و Unknown را آشکار کند. نتیجه باید Test Basis یا Decision record را تغییر دهد؛ صرف نوشتن سناریو در تخته Evidence نیست. اگر stakeholder یا Source لازم غایب است، سؤال `OPEN` می‌ماند.

ArtifactکارکردخروجیCountercheck
Example mapRule/example/questionBasis decisionexecutable/example test
Journey mapactor/context/handoffrisk/questionsusability/production feedback
State modeltransition/invariantmodel obligationsproperty/system test
Threat/abuse modelasset/boundary/actorsecurity controlsdynamic/runtime checks
Prototypeinteraction hypothesisobservations/unknownrepresentative-user evidence

روش تحلیل Basis، Source hierarchy و پرسش‌های تستر در تحلیل Test Basis از نیازمندی تا Risk آمده است.

Architecture: Testability یک ویژگی قابل‌طراحی است

  • Controllability: state، time، dependency و failure چگونه کنترل می‌شوند؟
  • Observability: outcome، identity، trace و invariant چگونه دیده می‌شوند؟
  • Isolability: component/tenant/test چگونه از دیگران جدا می‌شود؟
  • Determinism/Reproducibility: seed، clock، ordering و replay چگونه ثبت می‌شوند؟
  • Diagnosability: Failure به Build/Run/Input/Dependency وصل می‌شود؟
  • Safety: test hook/fake/debug path در Production چه سطح حمله‌ای می‌سازد؟

Testability به معنی اضافه‌کردن endpoint مخفی یا bypass امنیتی نیست. Hook باید scope، authentication، environment policy، build flag، audit و removal داشته باشد. طراحی برای تست اگر سطح حمله یا رفتار Production را تغییر دهد، Risk تازه می‌سازد.

Contract-first: Schema فقط Syntax را می‌بیند

کنترل زودهنگاممی‌بیندنمی‌بیند
Schema validationtype/required/formatbusiness meaning/state
Consumer contractexample interaction compatibilityall consumers/deployment skew
Fake/stubdeclared behaviorreal dependency quirks
Model/propertyinvariant over generated casesoracle/model omissions
Static analysisknown source patternruntime/config/business path

Test-first و Example-first ابزارند، نه مذهب

نوشتن Test پیش از Code می‌تواند Interface، behavior و design feedback بسازد. اما Test بد یا Example ناقص، Implementation را به برداشت غلط قفل می‌کند. TDD، BDD، ATDD، Example Mapping و Three Amigos اختیاری‌اند؛ هیچ‌کدام تعریف Scrum یا تضمین کیفیت نیستند. خروجی و Context را بسنجید، نه نام Technique را.

Static feedback و Dynamic evidence مکمل‌اند

Review، lint، type check و Static analysis می‌توانند پیش از اجرا Signal دهند، اما Execution، configuration، data، concurrency و dependency behavior را کامل نمی‌بینند. Dynamic test نیز Sourceهای اجرا‌نشده یا pathهای دست‌نیافتنی را نمی‌بیند. Risk باید ترکیب کنترل و residual Unknown داشته باشد؛ سبزی یک لایه جای دیگری نیست.

CI: سریع‌ترین Suite همیشه مفیدترین Suite نیست

TriggerFeedback هدفControlLater check
localsyntax/unit/examplefocusedintegration
PRchanged risk/contractsselective stable suitemerge/nightly
mergeintegrated behaviorbroader component/APIsystem
nightlymatrix/longer interactionsrisk suiterelease/runtime
release candidatebounded system evidencefuller environmentcanary/monitor

`run everything on every commit` هزینه، queue، flakiness و feedback latency می‌سازد. Selection باید change graph، Risk، historical evidence و mandatory obligation داشته باشد و آنچه اجرا نشده شفاف بماند. برای طراحی عمومی Pipeline، Continuous Testing در CI/CD را ببینید.

Non-functional را زود سؤال کنید، نه زود کامل اثبات

ویژگیEarly interfaceLater evidence
Performancebudget/model/component benchmarksystem workload/SLI
Securitythreat/design/static/componentdeployed config/dynamic/runtime
Accessibilitydesign semantics/component checksintegrated UI/manual/AT
Reliabilityfailure model/fake/propertyrecovery/soak/production incident
Compatibilitycontract/matrix selectionreal browser/device/integration
Usabilityprototype/task hypothesisrepresentative participant/context

برای نمونهٔ دقیق Performance، Performance Evidence Ladder در CI/CD و برای Security، Security Control Contract در DevSecOps نشان می‌دهند Early signal چگونه باید به Subject و Countercheck متصل شود.

Whole-team approach تخصص را حذف نمی‌کند

Whole-team یعنی کیفیت و فعالیت‌های تست در همکاری تیم توزیع می‌شوند؛ نه اینکه همه مهارت یکسان دارند یا استقلال تخصصی همیشه حذف می‌شود. متخصص تست می‌تواند questioning، modeling، oracle، risk، exploration و evidence را عمیق‌تر کند؛ Developer طراحی/کد/verification را می‌سازد؛ Product/Business value و rule context می‌آورد؛ Operations runtime constraints را آشکار می‌کند.

در Scrum Guide 2020 فقط یک Scrum Team با Product Owner، Scrum Master و Developers وجود دارد؛ زیرتیم یا نقش خاص Tester/QA تعریف نشده است. متخصص تستی که Increment می‌سازد در معنای گستردهٔ Developers قرار می‌گیرد. Scrum همچنین Coach/Architect/Champion کیفیت یا QA Release gate تعیین نمی‌کند.

نقش تستر: Capability contribution، نه ترفیع عنوان

قابلیتمشارکتمرز
Questioningفرض/ابهام/Counterexampleصاحب حقیقت نیست
Test modelingstate/risk/condition/oracleمدل کامل نیست
Evidence literacySubject/source/limitationResult را quality verdict نکند
Explorationیادگیری تطبیقیبا Automation حذف نشود
Testabilitycontrol/observe/isolate/diagnoseامنیت/معماری را یک‌نفره تصمیم نگیرد
Facilitationدیدگاه‌ها را متصل کندCoach اجباری یا مدیر کیفیت نیست

مرز مالکیت همگانی و Decision right در راهنمای رهبری تضمین کیفیت بدون ابهام آمده است.

تستر نباید برای ارزش‌آفرینی به هر جلسه دعوت شود

دعوت اجباری به Discovery، Design، Refinement، Planning و همهٔ Pairها هزینهٔ opportunity دارد و می‌تواند QA bottleneck تازه بسازد. Participant را بر اساس سؤال و capability انتخاب کنید. ورودی Async، office hour، review-on-demand، نمونهٔ ثبت‌شده یا pairing زمان‌دار گاهی بهتر از حضور دائم است.

شرط دعوتنمونهخروجی لازم
Risk/Rule تازهcallback idempotencyQuestion/Example/Decision
Testability decisionclock/correlation hookarchitecture obligation
Evidence conflictcontract pass/system failhypothesis/next check
Capability gapaccessibility/security/performancebounded contribution
Routine low-riskcopy changeasync/applicability may suffice

Planning: Early work باید در Plan دیده شود

Example workshop، fake، contract harness، data fixture، observability و countercheck کار واقعی‌اند. آنها را «رایگان» یا QA overhead پنهان نکنید. Whole Done work و dependency/unknown را در Sprint Planning مبتنی بر Goal/Risk/Evidence مرئی کنید؛ بدون ساخت QA point یا تبدیل Story point به ساعت.

Shift-left نباید استقلال لازم را حذف کند

نزدیکی همکاری Feedback را سریع می‌کند، اما Confirmation bias و shared blind spot ممکن است بالا رود. Contextهای safety/security/regulatory یا Risk بالا می‌توانند review، penetration، audit یا acceptance مستقل بخواهند. استقلال یک طیف و control design است؛ نه دشمن Agile و نه جایگزین همکاری.

Shift-right دشمن Shift-left نیست

Production traffic، real configuration، scale، geography، device، dependency و user behavior در Early fixture کامل نیستند. Observability، canary، feature exposure، incident learning و authorized production test مدل Early را اصلاح می‌کنند. Shift-right امن Countercheck لازم است؛ نه جبران بی‌قید تست زودهنگام ضعیف.

Evidence Ladder برای یک Risk

پلهArtifact/EvidenceClaimUnknown
BasisRule/example decisionintended behavior clarifiedimplementation
Designstate/threat/contract modeldesign obligation representedmodel omission
Componentproperty/example/staticlocal behavior evidenceintegration/config
Integrationreal protocol/data/failureinterface behaviorsystem/scale
Systemjourney/environmentbounded end-to-end evidenceproduction context
ProductionSLI/incident/feedbackobserved operational behaviorcounterfactual/future

Early PASS یک Claim محدود است

evidenceClaim:
  question: QI-2
  subject: AUTHZ component C17
  source: BASIS-v4#AUTHZ-7
  environment/data: COMP-ENV-4 / DATA-AUTHZ-SYN
  method: role-matrix generated negative cases
  result: PARTIAL_EVIDENCE
  supports: declared component policy denied modeled cross-tenant cases
  doesNotSupport: deployed overlay, identity provider, production authorization
  unknowns: U1 runtime config drift
  laterCountercheck: SYS-AUTHZ-17 + DET-AUTHZ-v2
  factsAsOf: ISO instant

آزمایش تکرارپذیر: چهار جلسه و چهار Check کافی است؟

Fixture کاملاً ساختگی SYN-SHIFT-LEFT-QUALITY-INTERFACE-01 حضور تستر در Discovery/Refinement/Design/Planning و چهار Early check دارد؛ کنترل سطحی `PASS` می‌دهد. Validator سپس Baseline، سؤال، Source، economics، Artifact، Evidence، Countercheck، نقش، Automation، improvement claim و governance را بررسی می‌کند.

Fixture معیوب در برابر Contract

بعدContractDraft
BaselineINIT17/PG9/SG17/BASIS4/ARCH3/DoD4/RISK5/PIPE4همه stale
QI-1Source/سؤال محدود/rationale/artifact/evidence«کار می‌کند؟»/notes/approved
QI-2Risk current/Countercheck/Due«امن است؟»/۸۵% coverage
Duplicate/UnknownUnique Risk refsQI-۲ تکراری و R99
Rolesshared + explicit authorityQA quality/release owner
Automationrisk-triggered ladderهمه‌چیز روی هر Commit
Right sideExploration/runtime feedbackحذف‌شده
ImprovementHypothesis/baseline/measure/guardrail100×/better/faster guarantee

خروجی Validator: ۴۴ Finding

fixture: SYN-SHIFT-LEFT-QUALITY-INTERFACE-01
runtime: Node.js v26.7.0
superficial: PASS | meetings=4 | earlyChecks=4

auditedDraft: HOLD
findings (44):
1 stale-initiative:INIT-16->INIT-17
2 stale-productGoal:PG-8->PG-9
3 stale-sprintGoal:SG-16->SG-17
4 stale-basis:BASIS-v2->BASIS-v4
5 stale-architecture:ARCH-v1->ARCH-v3
6 stale-dod:DOD-v3->DOD-v4
7 stale-riskRegistry:RISK-v2->RISK-v5
8 stale-pipeline:PIPE-v2->PIPE-v4
9 QI-1-missing-source
10 QI-1-question-not-bounded
11 QI-1-earliest-point-not-justified
12 QI-1-artifact-not-versioned
13 QI-1-approval-not-evidence
14 QI-1-later-countercheck-missing
15 QI-1-feedback-due-missing
16 QI-1-disposition-missing
17 QI-2-stale-source
18 QI-2-security-question-unbounded
19 QI-2-earliest-point-not-justified
20 QI-2-coverage-overclaimed
21 QI-2-later-countercheck-missing
22 QI-2-feedback-due-missing
23 duplicate-interface:QI-2
24 duplicate-QI-2-missing-source
25 duplicate-QI-2-average-overclaimed
26 duplicate-QI-2-later-countercheck-missing
27 unknown-risk:R99
28 QI-99-opinion-overclaimed
29 QI-99-later-countercheck-missing
30 qa-exclusive-quality-ownership
31 qa-self-assigned-release-authority
32 developer-capability-silo
33 product-capability-silo
34 all-tests-every-commit
35 later-exploration-removed
36 right-side-feedback-missing
37 cost-quality-speed-guarantee
38 improvement-baseline-missing
39 improvement-measure-missing
40 improvement-guardrail-missing
41 evidence-registry-missing
42 unknowns-omitted
43 exceptions-interface-missing
44 correction-path-missing

corrected: READY_FOR_INTERFACE_REVIEW | findings=0

نسخهٔ اصلاحی چه کرد؟

نسخهٔ اصلاحی تمام Baselineها را جاری کرد؛ سه Interface یکتا برای idempotency، authorization و performance ساخت؛ هرکدام را به Risk/Source/سؤال محدود/early economics/Artifact/Owner/Evidence/Due/Disposition/Countercheck بست؛ QA ownership و Release authority خودخوانده را حذف کرد؛ Exploration و Production feedback را حفظ کرد؛ و improvement را Hypothesis با baseline، measure و guardrail نگه داشت.

دو false positive در خود Validator—فرض وجود record چهارم در Fixture سالم و تفسیر واژهٔ `HYPOTHESIS` به‌عنوان guarantee—پیش از اجرای نهایی اصلاح شدند. `READY_FOR_INTERFACE_REVIEW` فقط کامل‌بودن ساختار را می‌گوید؛ صحت Source/Evidence، کفایت Risk، جلوگیری از Defect، کاهش هزینه/زمان، افزایش کیفیت، موفقیت تیم یا Release را ثابت نمی‌کند.

آزمایشگاه فارسی و آفلاین Shift-left

Lab یک Checkout خیالی و بدون شبکه است: Order، PaymentAttempt، PSP Stub، Callback، Ledger و Reconciliation. Riskهای timeout پیش/پس از commit ساختگی، retry، callback تکراری/دیر/جابجا و اختلاف state فقط برای تمرین Interfaceها هستند. هیچ شرکت، کاربر، پرداخت، بانک، PSP یا Production واقعی در کار نیست.

مرحلهArtifactسؤالCountercheck
DiscoveryRule/Exampleتومان view به IRR canonical چگونه تبدیل می‌شود؟property/integration
DesignState modelduplicate event invariant چیست؟replay/system
ContractPSP fake schemalate/reordered callback چگونه نمایش می‌یابد؟stub-vs-adapter comparison
Componentclock/seed fixturetimeout boundary deterministic است؟integration time behavior
Systemoffline journeyLedger/Order reconcile می‌شوند؟runtime detection model
  • IRR کاملاً خیالی Canonical است؛ تومان فقط View صریح.
  • رقم فارسی/عربی/لاتین، Unicode و RTL/LTR در Fixture کنترل می‌شوند.
  • زمان به UTC instant و Asia/Tehran view؛ جلالی فقط Presentation است.
  • Tenant/Order/Attempt/Event/Ledger/Run/Build/Evidence identity جداست.
  • هیچ نام/موبایل/ایمیل/IP/PAN/CVV2/OTP/cookie/token/credential/log واقعی وجود ندارد.
  • هیچ ادعای بانکی، مالی، حقوقی، مالیاتی، امنیتی یا حریم خصوصی ایران ساخته نمی‌شود.

مهارت‌های لازم Contextual‌اند، نه فهرست اجباری

CapabilityتمرینEvidence انتقال
Questioningبازنویسی ۱۰ سؤال مبهمreviewed QI records
Modelingstate/decision/risk modelcounterexamples found
Technical literacyread contract/log/code diffcorrect subject trace
Automationsmall reliable fixturemaintained feedback
Explorationcharter/debrief/adaptationnew learning
Facilitationbring competing perspectivesdecisions/unknowns

یادگیری Python/JavaScript، Selenium یا CI ممکن است برای یک Context مفید باشد، اما اولین قدم جهانی نیست. ابتدا Work واقعی، capability gap و feedback delay را مشاهده کنید؛ سپس تمرین کوچک با معیار انتقال به کار بسازید. عنوان «تستر مدرن» یا تعداد ابزار، شایستگی را ثابت نمی‌کند.

اندازه‌گیری Shift-left بدون Goodhart

متریکتعریفCountermetric
Feedback agedecision/change→reviewable evidenceweak evidence
Question closuredispositioned / due eligiblepremature PASS
Source freshnesscurrent refs / requireddocumentation burden
Countercheck linkagelater checks / partial claimsduplicate waste
Evidence reusevalid consumers / evidencestale propagation
Escape learninglate signals updating early modelblame/underreporting
Early-work WIPopen QIs/experimentsdiscovery bottleneck

Defect count by phase، درصد Automation، Code Coverage، تعداد جلسه و تعداد تست زودهنگام KPI موفقیت نیستند. تغییر detection opportunity، Risk mix، reporting و denominator آنها را جابه‌جا می‌کند. افراد یا تیم‌ها را با این اعداد رتبه‌بندی نکنید.

AI در Early feedback: تولید candidate، نه حقیقت

AI می‌تواند Example، Counterexample، question، test skeleton، contract diff یا missing-field پیشنهاد دهد. Source/version، prompt/template، model/version، input classification، output digest و reviewer را ثبت کنید. مدل نباید Requirement را اختراع، PII/Secret را دریافت، Acceptance/Quality/Release را تأیید یا Evidence ساختگی تولید کند. اصلاح انسانی باید قابل‌ردیابی باشد.

Remote/Async و دسترسی‌پذیری

  • Question/Source/decision deadline را پیش از Workshop بدهید.
  • ورودی text، keyboard، caption و زمان فکر مستقل فراهم کنید.
  • تختهٔ رنگی را با Outline/Table و label متنی همراه کنید.
  • غیبت perspective را Unknown نگه دارید، نه consent.
  • Decision و Correction را از chat خصوصی به Registry منتقل کنید.
  • Source/Prototype/Log حساس را به ابزار بیرونی مجازنشده نفرستید.

۲۸ ضدالگوی Shift-left برای تستر

  1. تست سنتی همیشه منسوخ/بد
  2. Shift-left انقلاب یا ضرورت جهانی
  3. ۱۰۰× هزینهٔ Defect بدون Context
  4. حضور تستر در همهٔ جلسه‌ها
  5. تستر به‌عنوان Coach/Architect/Champion
  6. QA مالک کیفیت
  7. QA صاحب Release
  8. Developer فقط Code/Unit
  9. Product فقط Requirement
  10. سؤال «کار می‌کند؟»
  11. Source stale
  12. Approval برابر Evidence
  13. Coverage برابر Security/Quality
  14. Average برابر Performance
  15. Prototype opinion برابر رضایت
  16. چپ‌ترین نقطه به هر هزینه
  17. همهٔ Testها روی هر Commit
  18. Automation برابر Shift-left
  19. UI automation محور اصلی
  20. حذف Exploration
  21. حذف UAT/System/Independent checks
  22. نبود Production feedback
  23. Fake برابر dependency واقعی
  24. Static pass برابر runtime pass
  25. Early PASS بدون limitation
  26. کار Early پنهان از Plan
  27. مهارت با Tool count
  28. وعدهٔ cost/quality/speed guarantee

Pilot سی‌روزهٔ Quality Interface

بازهکارExit محدود
روز ۱–۳Goal/Basis/Risk/feedback delayBaseline
روز ۴–۷سه Quality Questionbounded/traceable
روز ۸–۱۰earliest economics/Artifact/OwnerQI contracts
روز ۱۱–۱۸Evidence/Unknown/Dispositionreviewable records
روز ۱۹–۲۴later counterchecksladder links
روز ۲۵–۲۷feedback age/guardrailhypothesis review
روز ۲۸–۳۰adopt/adapt/stoplearning/correction

Pilot موفق یعنی سه سؤال زودتر به Evidence محدود و Countercheck وصل شده‌اند؛ نه اینکه Defect، هزینه یا زمان حتماً کم شده باشد. اگر Workshop یا Automation صف تازه می‌سازد، scope را کم یا روش را Adapt کنید.

چک‌لیست Audit نقش تستر در Shift-left

  • Initiative/Goal/Basis/Architecture/DoD/Risk/Pipeline/Cutoff جاری‌اند.
  • هر Interface ID یکتا و Risk/Source معتبر دارد.
  • Question Subject/Condition/Behavior/Oracle/forbidden inference دارد.
  • earliest point با economics و fidelity توجیه شده است.
  • Artifact نسخه‌دار و Owner capability-based است.
  • Feedback due و destination روشن است.
  • Evidence Subject/source/method/result/limitation/unknown دارد.
  • Approval، Coverage، Average و opinion بیش‌ادعا نشده‌اند.
  • Countercheck دیرتر برای هر partial evidence وجود دارد.
  • System/Exploration/UAT/independence/runtime برحسب Risk حفظ‌اند.
  • Whole-team به ownership مبهم یا QA gate تبدیل نشده است.
  • Release/Risk/Product/technical decision rights جدا هستند.
  • کار Early در Plan/DoD/Backlog قابل‌مشاهده است.
  • Automation trigger از Risk و feedback budget می‌آید.
  • Evidence registry، Correction، Exception و expiry وجود دارد.
  • Metrics baseline/measure/guardrail و منع رتبه‌بندی دارند.
  • AI/Async/Accessibility/Privacy controls روشن‌اند.
  • نتیجه cost/time/defect/quality/success guarantee نمی‌سازد.

پرسش‌های متداول

Shift-left یعنی تستر باید از روز اول در همهٔ جلسه‌ها باشد؟

خیر. مشارکت را بر اساس Risk، سؤال و capability انتخاب کنید. گاهی Workshop یا Pair لازم است؛ گاهی review Async یا Artifact self-service کافی است. حضور بدون خروجی می‌تواند bottleneck بسازد. Quality Interface باید Source، سؤال، Artifact، Evidence و موعد را روشن کند.

آیا Shift-left تست‌های System، UAT یا Production را حذف می‌کند؟

خیر. منبع رسمی ISTQB نیز صریحاً می‌گوید تست دیرتر نباید نادیده گرفته شود. Early model/fake/component محدودیت دارد؛ integration، system، exploratory، independent، UAT و runtime evidence برحسب Risk لازم می‌مانند. هر Early claim باید Countercheck و forbidden inference داشته باشد.

آیا نقش تستر به مربی یا معمار کیفیت تبدیل می‌شود؟

ممکن است فرد در Context خاص coaching یا architecture contribution داشته باشد، اما Shift-left چنین عنوان یا authorityای ایجاد نمی‌کند. نقش را با capability و Decision right تعریف کنید. تستر می‌تواند questioning/modeling/evidence/testability را عمیق کند، بدون مالکیت انحصاری کیفیت یا Release.

آیا Code Coverage بالا نشانهٔ موفقیت Shift-left است؟

به‌تنهایی نه. Coverage می‌گوید چه چیزی طبق تعریف ابزار اجرا یا پوشش داده شده، نه قدرت Oracle، Risk adequacy، behavior درست یا نبود Defect. آن را با Population/tool/exclusions و Risk/Evidence obligations تفسیر کنید و Countercheckهای integration/system/exploration را حذف نکنید.

چگونه بفهمیم Feedback را بیش از حد به چپ برده‌ایم؟

وقتی Artifact کافی نیست، false confidence زیاد است، نگهداری/صف از ارزش Signal بیشتر است، سؤال فقط در Context دیرتر معنا دارد یا حضور متخصص گلوگاه می‌سازد. feedback age را همراه weak-evidence، queue، escaped unknown و later mismatch بسنجید؛ سپس نقطه یا Control را Adapt کنید.

جمع‌بندی: نقش تستر، ساختن Interface یادگیری است

Shift-left مؤثر با ترفیع تستر به قهرمان کیفیت یا انتقال همهٔ Testها به Commit ساخته نمی‌شود. Baseline جاری را قفل کنید؛ Risk را به سؤال محدود وصل کنید؛ earliest economical feedback point را با Artifact و Owner انتخاب کنید؛ Evidence و Unknown را نگه دارید؛ کار را در Plan مرئی کنید؛ و هر Early claim را با Countercheck دیرتر و Production learning ببندید. این Interface می‌تواند Feedback را قابل‌اقدام‌تر کند، اما جلوگیری از Defect، کاهش هزینه، افزایش سرعت یا کیفیت محصول را تضمین نمی‌کند.

دیدگاهتان را بنویسید