یک سناریوی Gherkin سبز است، صفحهٔ ویکی دیروز ویرایش شده و Test Case در ابزار وضعیت Active دارد؛ آیا این‌ها یعنی مستندات تست زنده هستند؟ نه لزوماً. ممکن است سناریو هنوز به API نسخهٔ ۵ وصل باشد، درحالی‌که Build روی نسخهٔ ۶ است؛ ویکی منبع غیرمرجع یک Rule را کپی کرده باشد؛ و Case روی Build قبلی PASS شده باشد. «آخرین ویرایش» و «آخرین اجرای سبز» با «برای این تصمیم، اکنون معتبر است» برابر نیستند.

این راهنما مستندسازی زنده تست را به‌صورت یک سیستم مهندسی تازگی تعریف می‌کند: Consumer/Decision → Claim → Canonical Authority → Dependency/Version → Change Trigger → Impact → Review/Acknowledgement → Published View → Evidence → Correction. هدف تولید سند بیشتر نیست؛ هدف این است که هر ادعای مصرف‌شده، منبع، مالک، دامنهٔ اعتبار، تاریخ اثر، وابستگی و مسیر اصلاح قابل ردگیری داشته باشد.

پاسخ کوتاه: مستندات تست زنده چیست؟

مستندات تست زنده مجموعه‌ای از Claimها، رابطه‌ها و Viewهای نسخه‌دار است که برای مصرف‌کننده و تصمیم مشخص، Authority و دامنهٔ اعتبار روشن دارد؛ با تغییر منابع وابسته Trigger می‌شود؛ مالک مناسب آن را بازبینی می‌کند؛ و نسخه، Evidence، Acknowledgement و Correction آن حفظ می‌شود. «زنده» یعنی تازگی قابل سنجش و اصلاح‌پذیری، نه اینکه سند حتماً در Wiki، Git، Jira یا Gherkin باشد.

نشانهچه چیزی نشان می‌دهد؟چه چیزی را نشان نمی‌دهد؟
ویرایش اخیرفایل یا صفحه تغییر کرده استClaimها با Authority فعلی هم‌معنا هستند
تست سبزAssertionهای اجراشده روی یک Run عبور کرده‌اندسناریو کامل، منبع درست یا Build جاری است
Active در ابزارLifecycle status ثبت شده استDependency و Review تازه‌اند
CODEOWNERSReview تغییر فایل مسیردهی می‌شودReviewer صاحب معنای همه Claimهاست
Single Source of Truthاحتمالاً یک مکان مرجع معرفی شده استهمه انواع Claim یک Authority مشترک دارند
لینک به Requirementیک رابطه وجود داردنسخه، معنا و اثر تغییر بررسی شده‌اند

مالکیت این مقاله و مرز با راهنماهای دیگر

این صفحه مالک عملیات تازگی مستندات تست است. آموزش نوع Artifact، BDD، برنامه تست یا اجرای Session در صفحات تخصصی خود می‌ماند تا یک واقعیت در چند مقاله با معناهای متفاوت تکرار نشود.

پرسشمالک محتواییمرز این راهنما
Scenario، Case، Charter یا Script را چگونه انتخاب کنیم؟سناریوی تست و تست‌کیساینجا تازگی Artifact انتخاب‌شده را اداره می‌کنیم.
BDD را با Cucumber چگونه اجرا کنیم؟آموزش BDD با Cucumberاینجا Executable View را از Authority و Freshness جدا می‌کنیم.
سناریوی Gherkin خوب چگونه نوشته می‌شود؟نوشتن سناریو Gherkinاینجا خود Formulation آموزش داده نمی‌شود.
Living Test Plan چگونه تصمیم‌محور باشد؟برنامه تست زندهاینجا همه Test Documentationها، نه فقط Plan، بررسی می‌شوند.
Test Basis و Requirement را چگونه تحلیل کنیم؟تحلیل نیازمندی‌ها در STLCاینجا Authority و تغییر Basis را ردیابی می‌کنیم.
Charter/Session چگونه طراحی و گزارش شود؟تست اکتشافی ساختاریافتهاینجا Freshness خلاصه و Claimهای آموخته‌شده مطرح است.
Run و Result چگونه مدیریت شوند؟چرخه اجرای تستاینجا Evidence age و Build alignment مطرح است.
Scrum چه نقشی برای QA دارد؟نقش QA در Scrumاینجا فقط ادعاهای مستندسازی درباره Scrum تصحیح می‌شوند.

Agile Manifesto مستندات را حذف نکرده است

Manifesto for Agile Software Development نرم‌افزار کارا را بر مستندات جامع ارزشمندتر می‌داند و همان‌جا تصریح می‌کند عناصر سمت دیگر نیز ارزش دارند. از این متن نمی‌توان نتیجه گرفت «Agile مستند نمی‌خواهد»، «همه اسناد سنگین‌اند» یا «Waterfall همیشه پیشاپیش سند کامل می‌نویسد». مسئله، نسبت ارزش و بازخورد در زمینهٔ واقعی است.

مستند کوتاه ولی غلط هزینه‌زا است؛ مستند مفصل ولی دقیق هم ممکن است برای تصمیم فوری بیش‌ازحد باشد. Tailoring باید Consumer، تصمیم، Risk، طول عمر Claim، هزینهٔ Drift و تعهد Evidence را بسنجد.

Scrum «Test Documentation» رسمی تجویز نمی‌کند

Scrum Guide رسمی نوامبر ۲۰۲۰ Product Backlog، Sprint Backlog و Increment و Commitmentهای Product Goal، Sprint Goal و Definition of Done را تعریف می‌کند. Test Case، Gherkin، Wiki، Test Plan یا نقش مستقل QA را الزام نمی‌کند. تیم می‌تواند Test Documentation متناسب را در شیوهٔ کار و Definition of Done خود بگنجاند، اما نباید انتخاب محلی را به Scrum نسبت دهد.

«زنده» یک وضعیت دودویی نیست

بُعد تازگیپرسشنمونه Drift
Syntacticفرمت قابل خواندن/پردازش است؟YAML یا Gherkin نامعتبر
Structuralفیلد و رابطهٔ اجباری وجود دارد؟Owner یا Basis edge مفقود
Semanticمعنا با Authority جاری سازگار است؟Status قدیمی با نام جدید
Temporalدر Window و تاریخ اثر معتبر است؟Review-by گذشته یا Rule آینده‌دار
EvidentialEvidence برای Build/Scope جاری است؟Run سبز Build B16 برای B17
Operationalمصرف‌کننده واقعاً آن را می‌یابد و به‌کار می‌برد؟لینک بدون دسترسی یا View دفن‌شده
Accessible/localizedنمایش برای مخاطب هدف هم‌معناست؟RTL، رقم یا واحد مبهم

یک سند می‌تواند از نظر Syntax تازه و از نظر معنا منسوخ باشد. به همین دلیل Badge واحد «Living» بهتر است با وضعیت‌های قابل توضیح جایگزین شود: FRESH_AS_OF، IMPACT_PENDING، STALE، UNKNOWN یا SUPERSEDED.

واحد مدیریت را از Document به Claim تغییر دهید

صفحهٔ «پرداخت» ممکن است ده‌ها Claim با Authority و طول عمر متفاوت داشته باشد: حد مبلغ از Rules Catalog، Schema از API Contract، راه‌اندازی از Environment Manifest و Outcome یک Run از Test Management. تازه‌بودن کل صفحه با یک تاریخ، این تفاوت را پنهان می‌کند. واحد ممیزی باید Claim باشد و Document/View فقط ظرف نمایش آن.

CLAIM: SYN-CLM-RETRY-01
Statement: redelivery of the same authorized event_id creates one canonical effect
Type: expected-behaviour
Authority: CALLBACK-API@v5 + LEDGER-INVARIANT@v2
Scope: fake checkout callback; retry after synthetic commit
Effective: 2026-08-01
Consumer/decision: regression design / B17 release review
Owner: domain-rule-owner
Views: Gherkin SYN-F12; Test Case SYN-TC31; Wiki payment-flow
Status: FRESH_AS_OF 2026-08-13

Claim Registry چه چیزی نگه می‌دارد؟

فیلدمعناچرا مهم است؟
claim_id/typeهویت پایدار و گونهٔ ادعاردیابی مستقل از محل نمایش
statement/scopeآنچه ادعا می‌شود و مرزشجلوگیری از تعمیم
authority@versionمنبع مجاز معناتشخیص کپی قدیمی
consumer/decisionچه کسی برای چه کاری مصرف می‌کندتعریف تناسب و SLA
owner/reviewerپاسخ‌گویی معنا و بازبینیرفع «مالکیت کل تیم» بدون مسئول
effective/facts-as-ofزمان اثر و Snapshot دانشتفکیک از زمان ویرایش
dependenciesمنابع و Claimهای upstreamChange Impact
views/evidenceنمایش‌ها و شواهد مرتبطیافتن مشتق‌ها و محدودیت
status/review-byوضعیت تازگی و موعدصف Drift
correction historyاصلاح‌های منتشرشدهاعتماد و تاریخچه

Single Source of Truth را با Authority Map جایگزین کنید

«یک منبع واحد حقیقت» اگر به معنی یک ابزار برای همه چیز باشد، شکست می‌خورد: Code، Rule، Contract، Test Design، Run Result و Decision صاحبان و چرخه‌های متفاوت دارند. مدل دقیق‌تر این است: برای هر Claim و Scope یک Canonical Authority، و برای مصرف‌کننده‌ها Viewهای مشتق با لینک و نسخه.

Claim typeAuthority نمونهViewهای مشتقمالک معنا
Business ruleRules Catalog/approved decisionAC، Gherkin، Case، WikiDomain/Product authority
Interface/schemaVersioned contract/schemaIntegration guide، Stub، Contract testInterface owner
Test designVersioned Test artifactChecklist، Suite view، Report linkTest design owner
EnvironmentManifest/Infrastructure configSetup guide، Run contextEnvironment owner
Execution resultImmutable Run/AttemptDashboard، Summary، Release memoRun/evidence owner
Release decisionDecision recordStatus page، announcementNamed decision authority

Canonical، Derived و Evidence را برچسب بزنید

کاربر باید بداند چیزی که می‌خواند منبع معناست، View مشتق است یا Evidence یک رویداد گذشته. کپی بدون برچسب به‌آرامی به Authority رقیب تبدیل می‌شود. Derived View باید source reference، transform/selection، facts-as-of و مسیر گزارش Drift داشته باشد.

VIEW: SYN-WIKI-PAYMENT-v8
Role: DERIVED_VIEW (not canonical authority)
Claims: SYN-CLM-RETRY-01, SYN-CLM-AMOUNT-02
Sources: CALLBACK-API@v5, RULES@v3
Transform: Persian narrative + decision table excerpt
Facts-as-of: 2026-08-13T00:00:00+03:30
Refresh trigger: source release/change event
Owner: docs-curator
Report drift: DOC-OPS queue / template DRIFT-REPORT-v2

Freshness Contract: قرارداد قابل کپی

FRESHNESS-CONTRACT: SYN-FC-01
Claim/View: SYN-WIKI-PAYMENT-v8
Consumers: QA, developer, release reviewer
Decision use: test design and B17 evidence interpretation
Authorities: CALLBACK-API@v5; RULES@v3
Dependencies: schema, status model, currency rule, locale contract
Triggers: semantic/API/config/flag/owner/access change
Impact SLA: triage 1 business day; no universal update SLA
Validation: link/version/semantic/evidence/access review
Reviewers: domain owner + test consumer
Acknowledgement: affected suite owners
Status vocabulary: FRESH / IMPACT_PENDING / STALE / UNKNOWN / SUPERSEDED
Review-by: 2026-09-13
Correction/retention: explicit correction; retain superseded decision snapshot

دو ساعت و یک تاریخ را جدا نگه دارید

زمانمعنامثال
last_edited_atآخرین تغییر فایل/صفحهاصلاح املا در ۱۳ مرداد
facts_as_ofتا چه Snapshotی Claimها بررسی شده‌اندAPI v6 و Rule v3 تا ۱۲ مرداد
effective_from/toبازه اثر منبع یا ClaimRule جدید از Build B18
review_byموعد بازبینی حتی بدون Trigger۱۴ شهریور
detected_atزمان کشف DriftWebhook یا گزارش مصرف‌کننده
corrected_atزمان انتشار اصلاحپس از بازبینی Authority

تاریخ جلالی می‌تواند برای نمایش کاربر ایرانی باشد، اما هویت ماشین‌خوان زمان باید Instant و Zone صریح داشته باشد. Last edited تازه، Facts-as-of قدیمی را جبران نمی‌کند.

Dependency Graph قلب Change Impact است

اگر Wiki، Gherkin، Case و Script از یک API Contract مشتق شده‌اند، تغییر نسخه باید همه مصرف‌کننده‌های واقعی را پیدا کند. لینک ساده فقط وجود ارتباط را نشان می‌دهد؛ Edge باید نوع، نسخه، دامنه، وضعیت و rationale داشته باشد.

CALLBACK-API@v5 ─authority-for→ CLAIM-RETRY@v2
CLAIM-RETRY@v2 ─expressed-as→ GHERKIN-F12@v4
CLAIM-RETRY@v2 ─covered-by→ TEST-CASE-31@v7
TEST-CASE-31@v7 ─implemented-by→ SCRIPT-CB-09@sha256:...
SCRIPT-CB-09 ─executed-as→ RUN-R5 / BUILD-B17
CALLBACK-API@v6 ─supersedes→ CALLBACK-API@v5
CHANGE-17 ─impact-pending→ CLAIM-RETRY@v2 and downstream views

Change Triggerها را طبقه‌بندی کنید

نوع تغییرنمونهمشتق‌های محتملکنترل
Semanticمعنای PAID یا Retry عوض شدAC، Gherkin، Oracle، Reportبازبینی Claim و Evidence قبلی
Interface/schemafield/enum/version جدیدStub، Contract test، SetupCompatibility matrix
Config/flagFeature flag یا timeoutScope، Procedure، Run contextConfig identity
Data/ruleحد مبلغ یا واحدExamples، Dataset، ExpectedRule version و boundary review
Environment/dependencyPSP stub، database، certificateManifest، Script، EvidenceEnvironment diff
OperationalAlert/rollback/support flowRunbook و nonfunctional ScenarioIncident learning link
Policy/complianceRetention یا access ruleEvidence، archive، redactionAuthorized interpretation
Locale/presentationIRR/toman، RTL، timezoneUI Cases، fixtures، screenshotsLocale contract

Change Record باید اثر را قابل تصمیم کند

CHANGE: SYN-CHG-17
Source: CALLBACK-API v5 → v6
Effective for: Build B18 candidate
Semantic delta: retry response may be ACCEPTED_PENDING
Detected: 2026-08-13T09:10:00+03:30
Potentially impacted: 2 Claims, 1 Gherkin, 3 Cases, 2 Scripts, 1 Wiki View
Evidence invalidation: B16/B17 runs cannot support B18 status semantics
Owner: callback-domain-owner
Decisions: revise / still-valid / supersede / archive / unknown
Acknowledgement due: suite owners before B18 run scheduling

Impact Assessment را از Update جدا کنید

هر تغییر Source الزاماً متن همه اسناد را عوض نمی‌کند. ابتدا اثر را ارزیابی کنید: NOT_IMPACTED با rationale، STILL_VALID، REVISION_REQUIRED، EVIDENCE_INVALIDATED، SUPERSEDE یا UNKNOWN. سپس Update لازم را منتشر کنید. بستن خودکار Ticket فقط چون متن تغییر نکرده، Review معنایی نیست.

تصمیم اثرشرطرکورد لازم
NOT_IMPACTEDClaim خارج Scope تغییر استScope comparison + reviewer
STILL_VALIDمعنا ثابت و نسخه جدید سازگار استCompatibility rationale
REVISION_REQUIREDStatement/View باید عوض شودنسخه جدید + affected consumers
EVIDENCE_INVALIDATEDRun قبلی برای تصمیم جاری کافی نیستinvalidated evidence + rerun plan
SUPERSEDE/ARCHIVEClaim یا View دیگر مصرف جاری نداردreplacement/retention links
UNKNOWNاطلاعات یا Authority کافی نیستowner، deadline، safe fallback

Review، Approval، Acknowledgement و Risk Acceptance یکسان نیستند

عملمعنانمونه صاحب اختیار
Viewedصفحه باز شده؛ فهم یا توافق ثابت نیستهر مصرف‌کننده
Acknowledgedتغییر و اثر بر کار دریافت شده استSuite/Script owner
Reviewedمحتوا با معیار مشخص بررسی شده استDomain/Test reviewer
Approvedانتشار/وضعیت طبق Policy مجاز استArtifact authority
Risk acceptedResidual risk برای محدوده/زمان پذیرفته شدNamed risk/release authority
Decision recordedگزینه، دلیل، Evidence و expiry ثبت شدDecision owner

چرخه عمر Claim و View

Statusمعنامصرف مجاز
ProposedDraft بدون Authority reviewکشف/بحث؛ نه تصمیم رسمی
ReviewedReview انجام شده اما هنوز مؤثر نیستآماده انتشار
Active/Freshبرای Scope و Facts-as-of مشخص معتبرتصمیم‌های نام‌برده
Impact PendingTrigger رسیده و نتیجه نامعلوم استبا هشدار و fallback
Staleناسازگاری یا expiry تأیید شدهتاریخی؛ نه تصمیم جاری
Supersededنسخه جایگزین وجود داردEvidence/history
Archivedمصرف عملیاتی پایان یافتهRetention مجاز
Correctedخطای منتشرشده با Correction روشن شدهنسخه اصلاح‌شده + تاریخچه

Correction را به‌جای بازنویسی تاریخچه منتشر کنید

اگر سندی در تصمیم قبلی مصرف شده، ویرایش خاموش اعتماد و قابلیت بازسازی را از بین می‌برد. Correction باید Claim قبلی، مقدار غلط، مقدار درست، اثر بر تصمیم/Evidence، زمان کشف، مخاطبان مطلع‌شده و نسخه جایگزین را ثبت کند. اصلاح نگارشی کم‌اثر نیز Policy روشن می‌خواهد.

CORRECTION: SYN-COR-08
Affected view/version: SYN-WIKI-PAYMENT-v7
Incorrect claim: callback status TERMINAL after timeout
Correct claim: status may be UNKNOWN pending reconciliation under API-v6
Published/facts-as-of: 2026-08-10 / API-v5
Detected: 2026-08-13
Impact: B18 procedure and release memo require review; B17 history retained
Notified/acknowledged: qa-a yes; release-reviewer pending
Replacement: SYN-WIKI-PAYMENT-v8
Owner: callback-domain-owner

Executable Specification چرا خودکار زنده نمی‌ماند؟

اجرای سبز فقط می‌گوید Step Definitionها و Assertionهای موجود در Run مشخص شکست نخورده‌اند. اگر Example قدیمی، Authority غلط، Assertion ناقص، Tag خارج از CI، Stub منسوخ یا Build نادرست باشد، Gherkin می‌تواند سبز و از نظر معنا مرده باشد. مستند اجرایی باید به Rule/Claim، Automation implementation، Build، Dataset و Result وصل شود.

راهنمای رسمی Cucumber درباره Better Gherkin می‌گوید سناریوی Declarative خوانایی Living Documentation را بهتر می‌کند؛ این راهنمای نگارش، تضمین خودکار تازگی معنایی یا کفایت پوشش نیست. برای Discovery، Formulation و Automation عمیق به راهنماهای مالک BDD مراجعه کنید.

Acceptance Criteria، Test و Documentation چه فرقی دارند؟

Acceptance Criteria مرزهای پذیرش یک Item را روشن می‌کند؛ Test Design روشی برای تولید Evidence درباره Claimهاست؛ Run نتیجهٔ اجرای مشخص است؛ و View مستند به مصرف‌کننده کمک می‌کند معنا را بازیابی کند. AC می‌تواند Basis یک Test باشد، اما فهرست چهار Happy Path الزاماً Coverage یا Evidence نیست. همچنین PASS شدن Test به‌تنهایی AC را Canonical Authority نمی‌کند.

Artifactسؤالتازگی وابسته بهنباید جایگزین شود با
Acceptance Criterionچه شرطی برای پذیرش Item لازم است؟Product/Rule decisionTest inventory
Test Condition/Caseچه ادعایی چگونه آزموده شود؟Basis/Oracle/Data/DesignOutcome اجرا
Executable Scenarioچه Example با چه implementation اجرا شود؟Claim/Steps/Driver/BuildSpecification کامل محصول
Run Resultدر Attempt چه مشاهده شد؟Build/Env/Data/Artifact versionTruth دائمی
Wiki/Guideمصرف‌کننده چگونه معنا/عمل را می‌یابد؟Authority/transform/accessCanonical همه Claimها

Definition of Done را به تیک‌لیست مبهم «اسناد به‌روز شد» تبدیل نکنید

عبارت «Documentation updated» قابل ممیزی نیست. بهتر است Policy بگوید کدام Change type باید Impact Record داشته باشد، چه Claim/Viewهایی بازبینی شوند، چه Statusهایی مانع Done هستند و چه Exception با Owner/Expiry مجاز است. DoD می‌تواند حداقل سازمانی را نگه دارد؛ جزئیات Artifact در Workflow یا Checkهای خودکار نسخه‌دار باشد.

DOC-FRESHNESS CHECK FOR DONE
[ ] changed authorities and semantic/config/schema deltas declared
[ ] impact query completed for dependent Claims/Views/Tests
[ ] critical IMPACT_PENDING/STALE items resolved or exception approved
[ ] new versions reviewed by meaning owner and test consumer
[ ] affected suite owners acknowledged before scheduling
[ ] correction/retention/access actions recorded
Evidence: change_id + impact_record + revision_ids

Docs-as-Code چه مسئله‌ای را حل می‌کند و چه مسئله‌ای را نه؟

قابلیتکمکمحدودیت
Version controlDiff، history، branch/tagمعنای Diff را تعیین نمی‌کند
Pull requestReview و بحث ثبت‌شدهReviewer مناسب را تضمین نمی‌کند
CISyntax/link/schema/drift checksکفایت و صحت معنایی را نمی‌سنجد
Build/publishViewهای یکسان و تکرارپذیرمنبع ورودی غلط را درست نمی‌کند
CODEOWNERSمسیردهی Review فایلClaim ownership و Risk authority کامل نیست
Immutable tagSnapshot قابل بازسازیTruth یا انطباق را ثابت نمی‌کند

طبق مستند رسمی GitHub درباره CODEOWNERS، می‌توان Owner فایل را تعریف و در تنظیمات مربوط Review او را الزامی کرد. این قابلیت به GitHub و تنظیمات Repository محدود است؛ به‌تنهایی نشان نمی‌دهد فرد صاحب معنای Business Rule است، همه الگوها درست match شده‌اند یا Approval معادل Risk acceptance است.

Wiki، Issue Tracker، TMS و Repository را بر اساس Claim تقسیم کنید

سطحمناسب برایخطر Driftکنترل
Issue trackerChange/decision/AC نزدیک کاربسته‌شدن و دفن Contextcanonical link + snapshot
Wiki/portalNavigation و Narrative پایدارکپی چند منبع و orphan pageAuthority badge + facts-as-of
Git repositoryVersioned schema/spec/code-adjacent docsReview صرفاً فنیclaim owner + CI + release tag
Test managementDesign، Suite، Run و Evidence linksActive status کاذب و export محدودBasis version + API audit
Generated portalچند View از structured registrygenerator/source defectbuild manifest + correction
Chat/messageکشف و هماهنگی سریعAuthority سایه و retention نامعلومتصمیم را به registry منتقل کنید

Link Contract برای پیوندهای واقعاً قابل اعتماد

LINK-CONTRACT: SYN-LINK-09
From: SYN-WIKI-PAYMENT-v8 / claim block 2
To: CALLBACK-API@v6 / retry semantics anchor
Relation: derived-from
Resolution: immutable tag or content hash
Access class: internal-engineering
Availability check: daily; semantic review on release
Fallback: approved snapshot SYN-SNAP-API-v6
Retention: through decision/evidence retention window
Owner: docs-platform; meaning reviewer: callback-domain-owner

Drift Detection را لایه‌لایه طراحی کنید

Drift فقط لینک ۴۰۴ نیست. ممکن است لینک باز شود اما Anchor به متن دیگری اشاره کند؛ نسخه resolve شود اما Claim تغییر معنا داده باشد؛ Test سبز باشد اما روی Build دیگری اجرا شده باشد؛ یا سند دقیق باشد اما مخاطب دسترسی نداشته باشد. هر لایه Detector و Reviewer متفاوت می‌خواهد.

لایهکنترل ماشینیبازبینی انسانیخروجی
Syntax/schemaParser و required fieldsآیا Schema مناسب است؟INVALID/VALID
ResolutionLink، ID، version، hashآیا مقصد درست انتخاب شده؟BROKEN/RESOLVED
Graphorphan، cycle، stale edgeآیا رابطه واقعی و کافی است؟FINDING/REVIEWED
SemanticDiff و keyword/enum alertsمعنا و Oracle تغییر کرده؟IMPACT DECISION
EvidenceBuild/env/data alignmentEvidence برای Claim کافی است؟VALID/INVALID/UNKNOWN
Consumptionaccess/search/link telemetryکاربر پاسخ درست پیدا کرد؟USABLE/FRICTION

اتوماسیون چه چیزهایی را با اطمینان بررسی کند؟

  • شناسه و نسخهٔ تکراری یا مفقود؛
  • Authority/Dependency غیرقابل resolve یا نسخهٔ منسوخ اعلام‌شده؛
  • Owner خالی، غیرفعال یا بدون دسترسی لازم؛
  • Review-by منقضی و Impact SLA شکسته؛
  • Change بدون Impact record یا Acknowledgement لازم؛
  • Run با Build/Environment/Data ناسازگار با Decision scope؛
  • View مشتق بدون source، facts-as-of، transform یا Correction path؛
  • لینک شکسته، Anchor گمشده، دسترسی نامعتبر و Artifact یتیم؛
  • Claimهای Canonical متعدد برای Scope یکسان؛
  • دادهٔ ممنوع، Secret pattern یا طبقه‌بندی/retention ناقص.
FRESHNESS CI POLICY
ERROR: invalid schema, duplicate identity, broken immutable reference
HOLD: stale critical authority, missing owner, unreviewed semantic change
WARN: review-by expired, derived view not acknowledged, access degraded
INFO: historical snapshot retained, non-impact rationale recorded
HUMAN: semantic truth, evidence adequacy, risk acceptance, usefulness

Semantic Review چگونه انجام شود؟

پرسش ReviewEvidenceReviewer مناسب
Statement هنوز با Authority هم‌معناست؟semantic diff + source sectionsDomain/contract owner
Scope و Exclusion همان است؟old/new applicability mapProduct/Test analyst
Example هنوز Rule را درست نمایش می‌دهد؟rule-to-example reviewThree Amigos/Domain reviewer
Oracle مستقل و قابل تصمیم است؟expected source/modelTest/domain specialist
Evidence قبلی برای تصمیم جدید معتبر است؟Build/env/data/claim alignmentRun owner + decision consumer
View برای مخاطب قابل بازیابی و فهم است؟retrieval task + access checkRepresentative consumer

Review صرفاً «Looks good» نیست. نتیجه باید Claimهای بررسی‌شده، اختلاف‌ها، تصمیم اثر، محدودیت، Reviewer، زمان و نسخه را ثبت کند. برای تغییرات پرریسک، Reviewer مستقل یا تفکیک Authority از Implementer می‌تواند لازم باشد؛ این تصمیم زمینه‌ای است.

Orphan، Duplicate و Contradiction را جدا کنید

Findingتعریفنمونهاقدام
OrphanNode بدون رابطه لازمScript بدون Claim/Test Designlink، archive یا rationale
Duplicate Viewدو نمایش از Claim یکسانWiki و Ticket کپی‌شدهcanonicalize یا generate
Competing Authorityدو منبع خود را Canonical می‌دانندRule در Spreadsheet و API docsdecision owner resolves
Contradictionدو Claim هم‌دامنه ناسازگارندRetry مجاز/ممنوعquarantine decision use
Shadow AuthorityChat/Code رفتار را بی‌تصمیم رسمی عوض کردهپیام تیمی درباره Statusformalize or reject
ZombieActive به نظر می‌رسد ولی مصرف/مالک نداردSuite قدیمی در TMSarchive with history

ریسک Drift را برای Triage عملیاتی کنید

هر Drift فوریت یکسان ندارد. Triage باید Consumer/Decision، Claim criticality، گستره مشتق‌ها، نزدیک‌بودن زمان مصرف، detectability، reversibility و fallback را ببیند. عدد واحد می‌تواند اولویت را کمک کند، اما جای قضاوت و Hard Obligation را نمی‌گیرد.

کلاسنمونهرفتار موقتAuthority
Stop-useOracle مالی/ایمنی متناقضView قرنطینه و تصمیم متوقفDomain/risk authority
Urgent impactSchema جدید پیش از CandidateIMPACT_PENDING با deadlineChange + test owners
Planned correctionراهنمای Setup کم‌اثرهشدار و fallback معتبرArtifact owner
Editorialاملا بدون تغییر معناNormal reviewDocs owner
UnknownAuthority یا Scope نامعلومعدم ادعای Fresh؛ escalationNamed resolver

آزمایش بازتولیدپذیر: پنج Run سبز، شش Drift

برای نشان‌دادن تفاوت Availability/Green status با Freshness، Fixture آفلاین و کاملاً ساختگی SYN-LIVE-TEST-DOCS-01 را ساختیم. پنج سند مورد انتظار حاضرند و هر پنج Automated Run وضعیت Passed دارد؛ بنابراین کنترل سطحی PASS می‌دهد.

DocumentClaimظاهر سالمDrift پنهان
SYN-D1Checkout retryRun B17 passedCHECKOUT-API@v5 به‌جای v6
SYN-D2Amount boundaryAuthority درستReview-by در ۲۰۲۶-۰۷-۳۱ منقضی
SYN-D3Persian RTL receiptRun passedOwner تخصصی مفقود
SYN-D4Callback idempotencyDependency موجودChange ۱۷ acknowledged نشده
SYN-D5Refund statusGherkin/Run سبزGherkin copy Authority نیست و Run روی B16 است
{
  "runtime": "v24.18.0",
  "fixture": "SYN-LIVE-TEST-DOCS-01",
  "auditDate": "2026-08-13",
  "superficialDraft": {
    "requiredDocuments": 5,
    "documentsPresent": 5,
    "automatedChecksPassed": 5,
    "decision": "PASS"
  },
  "draftFreshness": {
    "documentsAudited": 5,
    "findings": [
      "stale-source:SYN-D1:CHECKOUT-API@v5->v6",
      "expired-review:SYN-D2:2026-07-31",
      "missing-owner:SYN-D3",
      "unacknowledged-change:SYN-D4->SYN-CHG-17",
      "noncanonical-authority:SYN-D5:gherkin-copy->status-model",
      "stale-run:SYN-R5:B16->B17"
    ],
    "decision": "HOLD"
  },
  "correctedFreshness": {
    "documentsAudited": 5,
    "findings": [],
    "decision": "READY_FOR_SEMANTIC_REVIEW"
  }
}

چرا Green Build اثبات تازگی نیست؟

  • Assertion فقط چیزی را می‌سنجد که نوشته شده، نه Claimهای حذف‌شده را.
  • Step/Driver ممکن است به Stub یا Contract قدیمی وصل باشد.
  • Scenario ممکن است از Authority غیرمرجع کپی شده باشد.
  • Tag یا Profile ممکن است Scenario را از Lane تصمیم خارج کرده باشد.
  • Run سبز ممکن است Build، Config، Dataset یا Environment دیگری داشته باشد.
  • یک Example سبز Coverage همه Boundaryها، Stateها یا Riskها را ثابت نمی‌کند.
  • Report generator می‌تواند Result تازه را کنار Narrative قدیمی نمایش دهد.

بنابراین Freshness Gate باید identity alignment و Authority review را کنار Test Result ببیند. تست سبز Evidence مهمی است، اما نقش آن محدود و صریح است.

نسخه اصلاح‌شدهٔ Fixture چه کرد؟

  • SYN-D1 را به CHECKOUT-API@v6 متصل کرد.
  • Review-by سند مرزی را پس از Review واقعی تمدید کرد.
  • برای رسید RTL مالک تخصصی a11y-owner-e تعیین کرد.
  • Change ۱۷ را برای Owner سند Callback acknowledged کرد.
  • Authority وضعیت Refund را از Gherkin copy به Status Model منتقل کرد.
  • Run جدید SYN-R5-v2 را روی Build B17 ثبت کرد.

خروجی READY_FOR_SEMANTIC_REVIEW عمداً محدود است: فقط قواعد ساختاری Fixture یافته‌ای ندارند. این نتیجه صحت معنایی، کفایت Test، تازگی واقعی سازمان، ارزش مستند، کیفیت محصول، Release readiness، انطباق یا موفقیت Agile را ثابت نمی‌کند.

روش بازتولید آزمایش

اسکریپت به شبکه و کتابخانه وابسته نیست. آرایهٔ سندها و Expectationها را تعریف می‌کند؛ سپس source version، review date، owner، acknowledged change، authority و Run build را مقایسه می‌کند. Runtime، Audit date و Fixture ثابت ثبت شده‌اند. تغییر Audit date می‌تواند نتیجهٔ Expiry را عوض کند و باید بخشی از Evidence باشد.

for each document:
  compare dependency source@version with expected authority version
  compare review_by with declared audit_date
  require effective owner
  require acknowledgement for relevant change_id
  compare claim authority with canonical authority
  align run.build with decision build
decision = findings.empty ? READY_FOR_SEMANTIC_REVIEW : HOLD

همه سندها، Claimها، Buildها، Ownerها، تاریخ‌ها، قواعد و تصمیم‌ها عمداً ساختگی‌اند. آزمایش هیچ Jira، Confluence، GitHub، Cucumber، TestRail، شرکت، تیم یا محصول واقعی را ارزیابی و Benchmark نمی‌کند.

لابراتوار فارسی برای عملیات تازگی مستندات

لابراتوار SYN-DOC-FRESH-FA-01 محلی و بدون شبکه است. دامنهٔ داستانی Checkout با PSP، Ledger و Notification بدل دارد؛ هیچ حساب، مشتری، تراکنش، پول، بانک یا سرویس واقعی استفاده نمی‌شود. هدف فقط آزمون Claim/Authority/Dependency/Change mechanics است.

Fault تزریقیDetectorReviewSafe response
Rule v3 در Wiki، Rule v4 در Catalogversion mismatchsemantic boundary diffIMPACT_PENDING
لینک سالم به Anchor اشتباهanchor/claim ID mismatchmeaning reviewCorrection
Gherkin سبز روی Build خارجیBuild identity checkevidence applicabilityinvalidate/rerun
تومان بدون IRR canonicalunit linterdomain rule reviewquarantine amount claim
Review-by قدیمی با edit تازهfacts/review clockactual reviewdo not auto-extend
Owner حذف‌شده از تیمdirectory/access auditownership transferUNKNOWN until assigned
Correction بدون اطلاع مصرف‌کنندهacknowledgement querydecision impactnotify/escalate

Locale، رقم، پول و زمان بخشی از Authority هستند

ترجمهٔ فارسی صرفاً ظاهر نیست. Claim باید بداند مقدار canonical چیست و View چگونه نمایش می‌دهد. مبلغ canonical در Fixture ریال است؛ اگر تومان نمایش داده شود، تبدیل و برچسب صریح لازم است. رقم‌های فارسی «۱۲۳»، عربی «۱۲۳» و لاتین «۱۲۳» می‌توانند Viewهای یک مقدار باشند، نه سه Authority.

موضوعCanonicalViewDrift test
Currency280000 IRR۲۸۰٬۰۰۰ ریال یا ۲۸٬۰۰۰ تومان صریحunit/value parity
Digitsnumeric/string semanticsPersian/Arabic/Latin glyphsnormalize without identity loss
TimeISO instant + zoneAsia/Tehran displayinstant parity/DST policy
Calendarcanonical event instant/dateJalali presentationround-trip and boundary
Directionsemantic token orderRTL with LTR ID/codeDOM/text/export order
Vocabularyapproved domain glossaryPersian label/English termtranslation review/version

Evidence و Run Alignment را صریح کنید

EVIDENCE-APPLICABILITY: SYN-EA-14
Decision: B17 release evidence review
Claim: SYN-CLM-RETRY-01@v2
Design/implementation: SYN-TC31@v7 / SCRIPT-CB-09@sha256:...
Run/attempt: SYN-R5-v2 / A1
Build/config/schema: B17 / CFG-4 / CALLBACK-API@v6
Dataset/env: SYN-PAY-v4 / disconnected-lab-v3
Observed/facts-as-of: 2026-08-13T10:20:00+03:30
Limitations: one synthetic fixture; no real PSP/network/concurrency
Applicability decision: REVIEW_REQUIRED, not universal evidence

Run قدیمی لزوماً بی‌ارزش نیست؛ برای تاریخچه یا Regression comparison ممکن است معتبر باشد. اما نباید بی‌هشدار به تصمیم Build جدید تعمیم داده شود. برای ارائه Evidence و Decision Packet، راهنمای ارائه نتایج تست را ببینید.

دسترسی، امنیت و Privacy را با Freshness تلفیق کنید

سند درست اما غیرقابل دسترسی برای Consumer عملیاتی نیست؛ سند بیش‌ازحد عمومی نیز می‌تواند Secret، داده شخصی، معماری حساس یا ضعف امنیتی افشا کند. Availability باید role-based و هدف‌مند باشد. Broken access finding مجوز کپی محتوا به کانال عمومی نیست.

کنترلپرسشFailure امن
ClassificationPublic/Internal/Restricted چیست؟UNKNOWN→عدم انتشار
Least privilegeچه نقش‌هایی چه Viewی می‌خواهند؟درخواست دسترسی ثبت‌شده
Secret/PII scanFixture یا Evidence داده ممنوع دارد؟quarantine و redaction review
Access testConsumer واقعی لینک را باز می‌کند؟fallback مجاز، نه shadow copy
RetentionClaim/View/Evidence تا چه وقت؟archive/delete طبق Authority
Revocationبا تغییر نقش/حادثه چه می‌شود؟invalidate links/tokens and audit

لابراتوار این مقاله نام، موبایل، ایمیل، IP، حساب، سفارش، PAN، CVV2، OTP، Cookie، Token، Secret، Screenshot و Log واقعی ندارد. هیچ توصیه حقوقی، امنیتی، حریم خصوصی، مالی یا بانکی درباره ایران ارائه نمی‌کند.

Archive و Retention را بخشی از سیستم زنده بدانید

Living به معنی حذف گذشته نیست. Decision و Evidence قبلی باید بتوانند نسخهٔ Claim/View مصرف‌شده را resolve کنند. Archive باید immutable reference، replacement، reason، retention class، access و legal/contract owner را نگه دارد. در پایان Window، حذف یا ناشناس‌سازی طبق Policy مجاز انجام می‌شود؛ لینک مرده نباید جای Record حذف را بگیرد.

موردActiveSupersededArchived/Deleted
مصرف جاریمجاز در Scopeفقط تاریخچه/تصمیم قبلیخیر
ویرایشنسخه جدیدCorrection/superseding onlyطبق retention action
Resolutioncanonical URL/IDimmutable snapshot + replacementtombstone/record مجاز
Evidence linkcurrent decisionspast decisionsretained or explicitly disposed

AI چگونه کمک کند بدون اینکه Authority بسازد؟

AI می‌تواند Diffها را خلاصه، Dependencyهای احتمالی را پیشنهاد، Claimهای متناقض را خوشه‌بندی و Draft Correction تولید کند. خروجی آن Candidate است، نه Authority. مدل نباید Source یا Acknowledgement جعل کند، تاریخ Review را خودکار تمدید کند، Secret/PII را به سرویس تأییدنشده بفرستد یا یافتهٔ زبانی را تغییر معنایی قطعی اعلام کند.

کار AIورودی لازمReview انسانیProvenance
Semantic diff candidateold/new immutable sourcesDomain ownermodel/tool/template/time
Impact candidatestyped dependency graphArtifact ownersquery + graph snapshot
Contradiction clusteringscoped ClaimsAuthority resolverincluded/excluded set
Persian rewritecanonical glossary/Claimlocale + domain reviewersource/version
Correction draftdecision/evidence impactCorrection ownerbefore/after + reviewers

نقش‌ها و حق تصمیم

تصمیمResponsibleAuthority/Approverمصرف‌کنندهٔ کلیدی
Canonical Authority هر ClaimKnowledge/Test architectDomain ownerProduct/Engineering/QA
ثبت Change و dependencyChange authorSource ownerArtifact owners
Impact assessmentClaim/View ownerMeaning reviewerSuite/decision owners
Semantic approvalDomain/Test reviewerClaim authorityExecutor/release reviewer
Publish/View operationDocs platform/curatorArtifact ownerRepresentative user
Evidence applicabilityRun/Test ownerDecision consumerRelease authority
CorrectionCorrection ownerClaim/decision authorityAffected acknowledged users
Residual risk/exceptionRisk analystNamed risk authorityProduct/Operations

«کل تیم مسئول است» یعنی مشارکت مشترک، نه نبود پاسخ‌گویی. توسعه‌دهنده همیشه مالک Unit Test نیست، Product Owner همیشه نویسنده AC نیست و QA همیشه تسهیل‌گر یا مالک E2E نیست؛ تقسیم کار را Context، مهارت و Decision rights تعیین می‌کند.

Metricها و Countermetricهای سلامت مستندات

MetricکاربردCountermetricبازی احتمالی
Time-to-impactسرعت یافتن مشتق‌هاmissed impacted claimsبستن سریع بدون بررسی
Stale critical claimsExposure جاریclaim inventory qualityکم‌کردن برچسب critical
Orphan/competing authorityGraph integrityfalse link/merge rateلینک مصنوعی
Correction latencyسرعت اصلاح انتشارcorrection accuracy/recurrenceاصلاح عجولانه
Acknowledgement latencyرسیدن تغییر به مصرف‌کنندهcomprehension taskکلیک بی‌مطالعه
Retrieval success/timeکارایی Viewwrong-answer rateجواب سریع ولی غلط
Freshness automation yieldارزش Detectorfalse positive/negativeتنظیم برای سبزشدن
Maintenance effortهزینه سیستمavoided rework/decision surpriseحذف کنترل لازم

Freshness SLO را محتاطانه و زمینه‌ای تعریف کنید

به‌جای «همه اسناد همیشه به‌روز»، برای کلاس Claim هدف خدمت تعریف کنید: زمان Detection، Triage، Impact decision، Correction و Acknowledgement. SLO تضمین حقیقت نیست و درصد جهانی ندارد. Hard Obligation ممکن است اجازهٔ هیچ مصرفی در حالت Stale ندهد؛ Claim کم‌اثر می‌تواند با هشدار تا Review دوره‌ای بماند.

FRESHNESS-SLO: SYN-SLO-v1 (fictional)
Class A decision-critical: detect on source change; stop-use if unresolved
Class B run-critical: impact before next scheduled run
Class C guidance: warn immediately; triage in team-defined window
Class D editorial: batch review
Unknown authority/access/security: fail closed for decision use
Measure: population + window + exclusions + false-negative sampling
Owner: documentation operations council

Pilot سی‌روزه برای مستندات تست زنده

روزتمرکزخروجیGate
۱–۵یک Capability و Consumer taskClaim inventory و Authority MapCompeting authorityها معلوم‌اند
۶–۱۰Freshness ContractDependency/trigger/status/review policyOwner و Correction path کامل
۱۱–۱۵سه View موجودCanonical/derived/evidence labelsfacts-as-of و source resolve
۱۶–۲۰Automationschema/link/version/owner/run checksfalse positives بازبینی شده‌اند
۲۱–۲۵Change drillsemantic/config/schema fault injectionImpact و Acknowledgement کار می‌کند
۲۶–۳۰Consumption reviewretrieval task، metrics، Tailoringcontinue/adjust/stop record

۳۰ Anti-pattern در مستندسازی زنده تست

  1. Agile را «بدون مستند» تفسیرکردن.
  2. Waterfall را همیشه سند سنگین و ثابت دانستن.
  3. آخرین ویرایش را Facts-as-of گرفتن.
  4. تست سبز را تازگی معنایی دانستن.
  5. Gherkin را Specification کامل محصول نامیدن.
  6. یک ابزار را Source of Truth همه Claimها کردن.
  7. Canonical و Derived را برچسب‌نزدن.
  8. کپی Rule در Wiki و Ticket و Case.
  9. لینک بدون Version/Anchor/Relation.
  10. Owner فایل را مالک معنای Claim فرض‌کردن.
  11. «کل تیم» را به معنی هیچ فرد پاسخ‌گو گرفتن.
  12. Approval را Risk acceptance دانستن.
  13. View را جای Evidence گذاشتن.
  14. Result قدیمی را برای Build جدید تعمیم‌دادن.
  15. Status Active را Fresh فرض‌کردن.
  16. Review-by را با Edit خودکار تمدیدکردن.
  17. Change Ticket را بدون Impact decision بستن.
  18. Silence را Acknowledgement دانستن.
  19. هر Source change را به ویرایش اجباری تبدیل‌کردن.
  20. NOT_IMPACTED را بدون rationale ثبت‌کردن.
  21. ویرایش خاموش سند مصرف‌شده.
  22. حذف نسخه قدیمی و شکستن Evidence history.
  23. لینک شکسته را با Shadow copy حل‌کردن.
  24. دسترسی بیشتر را همیشه بهتر دانستن.
  25. Secret/PII را در Fixture یا Evidence گذاشتن.
  26. ترجمه فارسی را صرفاً ظاهر دانستن.
  27. IRR و تومان را بی‌Authority مخلوط‌کردن.
  28. AI summary را Canonical Claim کردن.
  29. Metric تازگی را با Review صوری سبزکردن.
  30. READY_FOR_SEMANTIC_REVIEW را صحت/Release readiness دانستن.

چک‌لیست ۴۸ نقطه‌ای Freshness Audit

  1. Consumer نام‌برده شده است.
  2. Decision use مشخص است.
  3. Claim ID پایدار است.
  4. Claim type مشخص است.
  5. Statement قابل بررسی است.
  6. Scope و Exclusion روشن‌اند.
  7. Canonical Authority تعیین شده است.
  8. Authority version/hash ثبت شده است.
  9. Competing authority حل شده است.
  10. Derived View برچسب دارد.
  11. Evidence از View جدا است.
  12. Owner معنا مشخص است.
  13. Owner عملیات View مشخص است.
  14. Reviewer متناسب Claim است.
  15. facts-as-of ثبت شده است.
  16. effective period ثبت شده است.
  17. last-edited با facts-as-of یکی نشده است.
  18. review-by زمینه‌ای است.
  19. Dependencyها شناسه و نسخه دارند.
  20. Edgeها type و direction دارند.
  21. Change triggerها تعریف شده‌اند.
  22. Semantic change قابل اعلام است.
  23. Config/flag change قابل اعلام است.
  24. Schema/interface change قابل اعلام است.
  25. Locale/rule change قابل اعلام است.
  26. Impact query مشتق‌ها را می‌یابد.
  27. Impact decision واژگان روشن دارد.
  28. NOT_IMPACTED rationale دارد.
  29. UNKNOWN صاحب و deadline دارد.
  30. Evidence invalidation ثبت می‌شود.
  31. Acknowledgement از Review جدا است.
  32. Approval از Risk acceptance جدا است.
  33. Status تازگی صریح است.
  34. IMPACT_PENDING در View دیده می‌شود.
  35. Stale برای Decision جاری مسدود/هشدار است.
  36. Superseded replacement دارد.
  37. Correction history حفظ می‌شود.
  38. Run به Artifact version وصل است.
  39. Run به Build/Env/Data وصل است.
  40. Evidence applicability بازبینی می‌شود.
  41. لینک version/anchor/fallback دارد.
  42. Access با نقش Consumer تست شده است.
  43. Classification و retention روشن است.
  44. Secret/PII scan و review انجام شده است.
  45. RTL/digit/currency/time parity آزموده شده است.
  46. Automation محدودیت خود را اعلام می‌کند.
  47. Metric Countermetric دارد.
  48. Freshness decision و محدودیت ثبت شده‌اند.

منابع رسمی و دامنهٔ استفاده

  • Agile Manifesto: برای تصحیح ادعای «Agile بدون مستند»؛ نه دستورالعمل Test Documentation یا معیار تازگی.
  • Scrum Guide 2020: برای Artifactها، Commitments و Definition of Done در Scrum؛ نه الزام Test Case، Gherkin، Wiki یا QA role.
  • Cucumber Better Gherkin: برای خوانایی Declarative Scenario به‌عنوان Living Documentation؛ نه تضمین Authority، Coverage یا Freshness.
  • GitHub CODEOWNERS: برای مالک فایل و مسیردهی/الزام Review در تنظیمات GitHub؛ نه مالکیت معنایی یا صحت Claim.

جمع‌بندی: Living Documentation یک سامانه نگهداری Claim است

مستند تست با قرارگرفتن در Wiki، Git یا Gherkin زنده نمی‌شود. ابتدا Claim و Consumer را مشخص کنید؛ برای هر Claim یک Authority نسخه‌دار بسازید؛ Viewهای مشتق را برچسب بزنید؛ Dependency و Trigger را به Impact decision، Review، Acknowledgement، Evidence و Correction وصل کنید؛ و وضعیت تازگی را با Facts-as-of و محدودیت نمایش دهید.

برای شروع، یک Capability انتخاب کنید و فقط دو Query بسازید: «کدام Claimهای مصرف‌شده به Source قدیمی وصل‌اند؟» و «کدام Change هنوز Impact/Acknowledgement ندارد؟» اگر تیم پاسخ این دو را با Evidence بدهد، از تولید فایل به عملیات دانش قابل اعتماد نزدیک شده است.

سؤالات متداول درباره مستندات تست زنده

۱. آیا مستندات تست زنده همان تست‌های خودکار و Gherkin هستند؟

خیر. Gherkin و Automated Check می‌توانند View و Evidence تولید کنند، اما Freshness به Authority، Version، Scope، Build، Dependency، Review و Consumer وابسته است. Scenario سبز با Rule قدیمی یا Assertion ناقص هنوز می‌تواند منسوخ باشد.

۲. بهترین ابزار برای مستندسازی تست زنده چیست؟

ابزار واحدی برای همه تیم‌ها بهترین نیست. نیازهای Claim registry، Version/History، typed links، Change notification، Review، access، export/API، Run/Evidence و Correction را مشخص کنید و یک Pilot واقعی بسنجید. ابزار نباید Authority Map را با مکان ذخیره اشتباه بگیرد.

۳. چگونه بفهمیم یک سند تست منسوخ است؟

Source/version، semantic delta، review-by، owner، dependency edges، acknowledged changes، Build/Environment/Data Evidence و access را ممیزی کنید. Last edit یا Passed status به‌تنهایی کافی نیست. اگر Authority یا اثر تغییر نامعلوم است، وضعیت را UNKNOWN/IMPACT_PENDING اعلام کنید.

۴. آیا همه مستندات باید با هر تغییر فوراً به‌روزرسانی شوند؟

خیر. هر تغییر باید Trigger و Impact Assessment متناسب داشته باشد، اما نتیجه می‌تواند STILL_VALID یا NOT_IMPACTED با rationale باشد. فوریت Update به Decision، Claim criticality، زمان مصرف، fallback و Hard Obligation بستگی دارد.

۵. چه کسی مسئول به‌روز نگه‌داشتن مستندات تست است؟

مشارکت می‌تواند مشترک باشد، اما هر Claim، Source، View، Change، Evidence و Decision به Owner/Authority مشخص نیاز دارد. QA الزاماً مالک همه اسناد نیست؛ Domain، Product، Development، Operations، Security و Docs platform بسته به نوع Claim مسئولیت‌های متفاوت دارند.

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