گزارش خلاصه تست نباید با یک درصد Pass و چراغ سبز، نبود شواهد را پنهان کند. اگر Retry و Duplicate دو بار شمرده شوند، نتیجهٔ Build قبلی وارد گزارش شود یا Not Run از مخرج حذف گردد، عدد ممکن است درست محاسبه شده باشد اما دربارهٔ محصول اشتباه بگوید. Test Summary Report خوب یک Snapshot بسته‌شده و قابل بازسازی از Scope، Evidence، Gap و Exposure باقی‌مانده در یک نقطهٔ تصمیم است.

این راهنما مالک «گزارش خلاصه تست به‌عنوان Closure Contract» است: Report Identity → Population/Outcome normalization → Risk/Evidence coverage → Findings/Deviations → Residual exposure → Decision/Actions → Archive/Correction. برای طراحی اسلاید، نمودار و ارائهٔ چندلایه به راهنمای ارائه نتایج تست، برای تعریف Strategy/Plan/Summary به راهنمای سه سند تست و برای ساخت Plan زنده به راهنمای نوشتن Test Plan مراجعه کنید.

پاسخ کوتاه: گزارش خلاصه تست چیست؟

Artifact نسخه‌داری است که در یک Cutoff مشخص، فعالیت و نتایج تست را برای Release/Build و Scope معلوم جمع‌بندی می‌کند، انحراف از Plan را نشان می‌دهد، Evidence موجود و ناموجود را به Riskها وصل می‌کند، Findings باز و Exposure باقیمانده را ثبت می‌کند و تصمیم‌ها و اقدام‌های Closure را قابل پیگیری نگه می‌دارد.

پرسشپاسخ گزارششاهد
چه چیزی جمع‌بندی شد؟Release/Build/Scope/Plan versionReport Identity
چه چیزی اجرا شد؟Population و Outcomeهای نرمال‌شدهExecution Snapshot
چه چیزی فهمیدیم؟Risk evidence، findings و uncertaintyRisk Closure Map
چه چیزی نفهمیدیم؟Not run/blocked/invalid/stale/out-of-scopeGap Register
چه تصمیمی شد؟Go/Conditional/Hold/Defer با مالکDecision Record
بعد چه می‌شود؟Fix/retest/monitor/rollback/archiveClosure Actions

Test Summary با Status Report و Dashboard فرق دارد

Artifactزمانپرسشقابلیت تغییر
Dashboardزندهاکنون چه سیگنالی داریم؟پیوسته
Status reportدوره‌ایپیشرفت، مانع و Forecast چیست؟هر چرخه
Incident reportپس از رخدادچه اتفاقی افتاد و پاسخ چیست؟با تحقیق
Test SummaryCutoff/Closureبرای Scope هدف چه Evidence و Gapی باقی است؟Frozen + correction
Release Memoنقطه تصمیمچه گزینه‌ای با چه ریسکی پذیرفته شد؟Decision record

گزارش Summary می‌تواند در پایان یک Level، Cycle، Sprint، Release candidate یا پروژه ساخته شود؛ فرکانس ثابت «هر دو هفته» ندارد. Trigger باید در Plan و Governance تعریف شود. اطلاع‌رسانی زندهٔ مانع و پیشرفت در راهنمای ارتباط وضعیت تست مالک جدا دارد.

Snapshot یعنی Facts as of یک Cutoff

Dashboard امروز ممکن است فردا تغییر کند. Summary باید بگوید داده تا چه لحظه‌ای پذیرفته شده، Query/Rule چه بوده و چه Resultهایی بعد از Cutoff وارد نشده‌اند. بدون Snapshot، مخاطبان ممکن است از یک URL مشترک دو حقیقت متفاوت ببینند.

Test Summary Identity
report_id / version / status: draft | reviewed | frozen | corrected | superseded
product / release / target_build / plan_id_version
scope_baseline / test_basis_versions
execution_window / evidence_cutoff / facts_as_of
data_sources / query_or_export_hash
author / reviewers / report_owner / decision_owner
created_at / frozen_at / supersedes / archive_uri

مرجع استاندارد را نسخه‌دار و محدود استفاده کنید

ISO/IEC/IEEE 29119-1:2022 مفاهیم عمومی مجموعه را معرفی می‌کند؛ 29119-2:2021 فرایندهای عمومی تست را و 29119-3:2021 قالب‌های مستندات خروجی آن فرایندها را توصیف می‌کند. صفحات عمومی ISO متن کامل استاندارد نیستند و این مقاله ادعای انطباق یا بازتولید قالب استاندارد ندارد؛ ساختار گزارش باید با Context، Policy و تعهد قراردادی Tailor شود.

Report Identity پیش از Executive Summary می‌آید

اگر خواننده نداند گزارش دربارهٔ کدام Build، Config، Schema، Flag و Rule set است، Executive Summary قابل استفاده نیست. عنوان «Release ۱۲» ممکن است چند Candidate یا Hotfix داشته باشد. Identity باید به Manifest دقیق و Plan فعال وصل شود.

Identityنمونهٔ لازم
Codecommit/image/package
Databaseschema/migration/data baseline
Configenvironment/config hash
Flagsflag set و audience
Rules/contentpricing/policy/template/locale versions
Dependenciesprovider/stub/API contract
Test assetssuite/case/charter/model versions
Evidencerun/export/query/cutoff identity

Population را پیش از درصد تعریف کنید

«۱۲۰۰ تست» می‌تواند Planned cases، Eligible tests، Result events، Attempts یا آخرین Outcome هر Test باشد. هر کدام مخرج دیگری می‌سازند. Summary باید Population unit، Inclusion/exclusion rule، Deduplication، Retry treatment و Snapshot را روشن کند.

Execution Population Contract
population_id / unit: test | scenario | check | assertion | journey
planned_set_version / eligible_rule / scope_filter
target_build / environment / configuration
execution_window / cutoff
attempt_identity / retry_policy / final_outcome_rule
duplicate_rule / invalidation_rule / foreign_build_rule
outcome_vocabulary / denominator_definitions
source_query / export_hash / owner

Attempt، Result Event و Final Outcome را جدا کنید

واحدمعناخطای گزارش
Test definitionآزمون برنامه‌ریزی‌شدهچند اجرا را چند تست می‌شماریم
Attemptیک اجرای TestRetry را Success مستقل می‌شماریم
Result eventپیام/رکورد ابزارDuplicate delivery وارد مخرج می‌شود
Final outcomeحالت معتبر طبق Ruleآخرین Arrival را بدون Build/attempt می‌پذیریم
Evidence itemArtifact پشتیبانوجود Log را مساوی Pass می‌گیریم

Outcome Vocabulary را قراردادی کنید

Outcomeتعریف نمونهدر مخرج اجراشده؟
PassedOracle در Build هدف برآورده شدبله
FailedOracle نقض شدبله
Blockedپیش‌شرط/Dependency مانع نتیجه شدمعمولاً جدا
Not runهیچ Attempt معتبر نداردخیر؛ در planned می‌ماند
InconclusiveEvidence نتیجه قطعی نمی‌دهدجدا
InvalidSetup/Build/Data نتیجه را نامعتبر کردخیر؛ Gap ثبت می‌شود
Waived/Removedبا Authority از Population تغییر کردهفقط با Trace

Blocked و Not Run شکست محصول نیستند، اما Evidence موفق هم نیستند. حذف آن‌ها از planned population می‌تواند Coverage gap را پنهان کند. Summary باید هم توزیع Outcome و هم دلیل Block/عدم اجرا را گزارش کند.

Pass Rate را با مخرج روی عنوان بنویسید

pass_rate_of_executed = passed / (passed + failed)
pass_rate_of_valid_attempted = passed / (passed + failed + inconclusive)
pass_rate_of_planned = passed / planned_population

Always report counts, formula, cutoff, target build and exclusions.
Never label different denominators with the same title “Pass Rate”.

هیچ‌کدام از این نسبت‌ها به‌تنهایی آمادگی Release یا کیفیت محصول را ثابت نمی‌کنند. اهمیت Risk، نمایندگی Population، Oracle، Gap و Exposure لازم‌اند. راهنمای ۱۶۷۸ مالک طراحی درست نمودار و Denominator در ارائه است.

Scope Planned، Executed و Reported را reconcile کنید

Scope classپرسش
PlannedPlan active چه چیزی را متعهد شده بود؟
Addedچه چیزی پس از Plan اضافه و چرا؟
Removedچه چیزی با چه Authority حذف شد؟
Executedچه چیزی Attempt معتبر دارد؟
Invalidatedکدام Evidence با Build/Setup دیگر نامعتبر شد؟
Not run/blockedچه چیزی شاهد ندارد و اثر چیست؟
Reportedکدام Population در Summary آمده؟
Residualکدام Risk/Variant هنوز نامعلوم است؟

Deviation از Plan را بخش اصلی گزارش کنید

Test Plan Deviation
deviation_id / plan_item / detected_at
planned / actual / reason
affected_scope / risks / evidence / schedule
decision_owner / approved_by / effective_at
compensation / residual_exposure
retest_or_monitoring / expiry / status

Summary نباید Plan را طوری بازنویسی کند که انحراف ناپدید شود. تغییر Scope، روش، Environment، Data، Tool، Threshold یا Cutoff باید با دلیل و اثر نشان داده شود. این اطلاعات برای بهبود Planning و ارزیابی Confidence ضروری است.

Risk Closure به‌جای Test Count

فیلدپرسش Closure
risk_id/claimFailure مورد نگرانی چه بود؟
planned evidencePlan چه چیزی می‌خواست؟
valid evidenceبرای Build هدف چه چیزی داریم؟
contrary findingsچه شاهد مخالفی وجود دارد؟
coverage boundaryکدام state/variant خارج ماند؟
confidence/uncertaintyچرا و تا چه حد باور داریم؟
residual exposureچه پیامدی هنوز ممکن است؟
owner/controlچه کسی و با چه اقدام/monitoring؟
Risk Closure Map
risk_id / claim / priority_rationale
plan_version / evidence_required
evidence_refs / build / environment / cutoff
outcomes / findings / limitations
coverage: sufficient | partial | absent | invalid
residual_exposure / uncertainty
owner / mitigation / monitoring / expiry
decision_ref

Defect Count معیار کیفیت محصول نیست

تعداد Defect به Scope، شدت تست، گزارش‌دهی، Duplicate policy، عمر محصول و طبقه‌بندی وابسته است. تعداد بالاتر نه خودکار نشانهٔ «عملکرد خوب تیم تست» است و نه کیفیت پایین‌تر محصول. Defect Density نیز بدون مخرج معنادار، اندازه/پیچیدگی و رفتار کشف قابل تفسیر نیست؛ راهنمای چگالی نقص دام‌های آن را جدا بررسی می‌کند.

Defect viewاطلاعات لازمادعای ممنوع
Open by impactuser outcome/workaround/ownerهر Critical برابر یکسان
Agecreated/triage/last evidenceقدیمی یعنی کم‌اهمیت
Clusterscope/test intensity/root causeماژول با تعداد بیشتر بدتر است
Trendpopulation/cadence/policy changesشیب نزولی یعنی آماده انتشار
Reopen/escapedefinition/build/verificationنسبت واحد علت را ثابت می‌کند

Severity، Priority و Business Impact را جدا کنید

بعدپرسشمالک نمونه
Severityشدت اثر فنی/کاربری چیست؟triage team
Priorityچه زمانی باید اقدام شود؟product/release owner
Probability/Exposureدر چه شرایطی و چه جمعیتی؟risk owner
Recoverabilityکاربر/عملیات چگونه بازیابی می‌کند؟product/operations
Detectabilityپیش از آسیب دیده می‌شود؟engineering/operations
Acceptanceچه کسی حق پذیرش دارد؟named authority

Known Issue را با Risk Acceptance یکی نگیرید

شناخته‌شدن فقط Discovery را نشان می‌دهد. پذیرش ریسک به Scope، Impact، Workaround، کنترل، مالک دارای اختیار، شرایط، Monitoring و Expiry نیاز دارد. Summary باید Known issues را به تصمیم واقعی وصل کند؛ فهرست لینک‌ها جای تحلیل Exposure نیست.

Residual Risk Record
risk_or_finding_id / affected_outcome / audience
trigger / scope / exposure / uncertainty
workaround / limitations / support_path
preventive_or_detective_controls
risk_owner / acceptor / accepted_at
conditions / monitoring / rollback_trigger
fix_plan / retest / expiry / disclosure

Blocked، Invalid و Not Run را علت‌یابی کنید

Gap causeاثراقدام
Environment unavailableEvidence absentowner/recovery/replan
Test data missingstate/variant uncoveredfixture action
Requirement unresolvedOracle absentdecision/escalation
Build churnEvidence stalefreeze/retest
Dependency failureend-to-end blockedcontract/stub + limitation
Capacity trade-offScope reducedrisk acceptance
Invalid setupresult unusableinvalidate and rerun

Non-functional Evidence را به یک وضعیت سبز تبدیل نکنید

حوزهContext لازمGap نمونه
Performanceworkload/profile/environment/percentileProduction topology متفاوت
Securityscope/threat/build/tool/manual reviewout-of-scope boundary
Accessibilitystandard/version/level/AT/browser/processmanual/user evidence absent
Reliabilityfailure model/duration/recovery invariantrare state untested
Compatibilityplatform/version/device/datamatrix sampling
Privacydata flow/purpose/retention/rolethird-party uncertainty

اگر حوزهٔ تخصصی Report جدا دارد، Summary نتیجه، Scope و limitation آن را نسخه‌دار لینک می‌کند؛ عدد یا رنگ را بدون Context کپی نمی‌کند.

Environment و Data Limitations بخشی از نتیجه‌اند

Evidence در محیطی با Stub، حجم کم، Clock متفاوت یا Feature flag محدود، فقط همان Context را پشتیبانی می‌کند. Summary باید تفاوت‌های مهم با Production و اثرشان بر Confidence را ثبت کند. «همه تست‌ها Pass شدند» بدون Environment manifest ادعای ناقص است.

Evidence Limitation
limitation_id / evidence_refs
environment_or_data_difference
affected_risks / claims_not_supported
direction_of_bias_if_known
compensating_evidence / monitoring
owner / disclosure / revisit_trigger

Trend را با Comparable Snapshot بسازید

مقایسه دو Cycle فقط وقتی معتبر است که Population، Rule، Outcome vocabulary، Build scope و Cutoff قابل مقایسه باشند. افزایش کشف و کاهش رفع می‌تواند ناشی از Scope، triage lag یا تغییر policy باشد. راهنمای شاخص‌های پیشرو و پسرو مالک تفسیر زمانی معیارهاست.

Comparison contractکنترل
Populationsame unit/scope or normalized disclosure
Definitionsame outcome/severity/status rules
Windowsame cadence/cutoff logic
Build/changerelease delta explained
Tool/queryversion/hash stable
Missing dataexplicit, not zero-filled silently
Inferencealternative explanations retained

Executive Summary باید Claim و Limitation را کنار هم بیاورد

بخشمحتوا
IdentityRelease/Build/Scope/Cutoff
Decision contextسؤال و Decision owner
Supported claimsOutcomeهای دارای Evidence
Critical gapsblocked/not-run/invalid/stale/out-of-scope
Residual exposureاثر، owner، control
Recommendationگزینه‌ها و conditions، نه حکم QA
Actionsowner/due/monitor/retest
TraceReport version و Evidence links

Summary نباید «کیفیت محصول در سطح مطلوب است» بنویسد مگر مطلوب‌بودن به معیار و Scope قابل ردیابی وصل باشد. همچنین نباید برای جلوگیری از نگرانی، خبر مثبت را برجسته و Gap را دفن کند. گزارش وظیفهٔ آرام‌کردن مخاطب ندارد؛ وظیفهٔ آن پشتیبانی از تصمیم آگاهانه است.

Recommendation با Decision فرق دارد

Artifactصاحبمحتوا
Evidence statementQA/evaluatorچه شواهد و محدودیتی داریم
Recommendationdomain ownersگزینه و دلیل بر پایه Evidence
Risk acceptanceauthorized ownerExposure و conditions
Release decisionrelease authorityGo/Conditional/Hold/Defer
Operational continuationoperations/productcanary/expand/rollback

QA می‌تواند توصیه دهد، اما تصمیم تجاری/عملیاتی و پذیرش ریسک باید به فرد دارای اختیار برسد. گزارش باید Dissent و شرط‌های حل‌نشده را نیز ثبت کند.

Decision Record قابل کپی

Test Closure Decision Record
decision_id / report_id_version / decided_at
question / options_considered
decision: go | conditional | hold | defer
decision_owner / participants / dissent
evidence_cutoff / supported_claims
critical_gaps / residual_risks / uncertainties
accepted_risks / conditions / controls
actions / owners / due_dates
monitoring / rollback_triggers
review_or_expiry / correction_policy

Conditional Release باید شرط آزمون‌پذیر داشته باشد

  • Audience یا درصد rollout دقیق؛
  • Feature flag/configuration هدف؛
  • Monitoring signal و threshold با Context؛
  • مالک مشاهده و بازهٔ پاسخ؛
  • Rollback/disable trigger؛
  • Known limitation و Support path؛
  • Fix/retest milestone؛
  • شرط گسترش rollout؛
  • Expiry تصمیم.

Action Log گزارش را به Closure وصل می‌کند

Action typeنمونهClosure evidence
Fixresolve findingtarget build + review
Retestrisk/state rerunnew outcome
Monitorruntime signalalert/dashboard snapshot
Supportknown issue pathrunbook/dry run
Rollbackoperational controlrehearsal
Plan/processrepair source/coverageupdated template/strategy
Data retentionarchive/delete evidenceretention record

Closure با آمادگی عملیاتی پایان می‌گیرد

Test completion به‌تنهایی Deployment readiness نیست. Runbook، Support، Observability، Rollback، Capacity، Data migration و ownership در راهنمای آمادگی عملیاتی مالک مستقل دارند. Summary باید Evidence مربوط را لینک و Gap آن را در Decision آشکار کند.

Archive باید گزارش را بازسازی‌پذیر نگه دارد

  • Frozen Report و Plan version؛
  • Release/Build/Environment/Data manifests؛
  • Population export و Query/hash؛
  • Outcome normalization و exclusions؛
  • Risk Closure، Findings و Deviations؛
  • Decision/Risk acceptance/Dissent؛
  • Actions، Monitoring و Correctionها؛
  • Retention، access classification و deletion؛
  • Superseding report و لینک دوطرفه.

Correction را بدون بازنویسی تاریخ منتشر کنید

اگر بعداً Duplicate، Query bug یا Build mismatch کشف شد، گزارش frozen را بی‌ردپا ویرایش نکنید. Correction باید Claim قبلی، خطا، اثر بر تصمیم، مقدار درست، Action و Review را بیان کند. اگر نتیجهٔ اصلی عوض می‌شود، Decision owner و مصرف‌کنندگان باید اعلان قابل اثبات دریافت کنند.

Test Summary Correction
correction_id / report_id_version / issued_at
incorrect_claim_or_value / cause
affected_sections / decisions / consumers
corrected_value / evidence_ref
decision_impact / action / owner
notified_at / acknowledgements
superseding_report / prevention

Automation باید Snapshot را بسازد، نه داستان دلخواه را

اتوماسیون می‌تواند Export، Deduplication، Build filter، Outcome normalization، Denominator، Link و Reconciliation را پایدار کند. ابزار نمی‌تواند خودکار تصمیم بگیرد کدام Exposure پذیرفتنی است یا یک Risk claim چقدر مهم است. Dashboard vendor نیز با چند کلیک «دقت را به‌شدت» تضمین نمی‌کند؛ Rule و Source باید ممیزی شوند.

Controlماشینیانسانی
Build filter/dedupقویRule approval
Population reconciliationقویScope meaning
Pass-rate formulaقویrelevance
Risk mapping completenessقابل بررسیevidence sufficiency
Residual exposureضعیفdomain judgment
Recommendation/decisionنامناسبauthorized review

آزمایش بازتولیدپذیر: Event GO در برابر Snapshot HOLD

Fixture کاملاً ساختگی SYN-TEST-SUMMARY-01 ده Test برنامه‌ریزی‌شده و یازده Result event دارد. شمارش خام هر Eventِ Passed را مستقل می‌گیرد. Closure Snapshot فقط Build هدف را می‌پذیرد، Attempt تکراری را حذف می‌کند و آخرین Outcome معتبر هر Test را روی Planned population می‌نشاند.

$ node .post-1827-experiment.js
runtime: Node.js v24.18.0
fixture: SYN-TEST-SUMMARY-01
target: SYN-REL-12+build.88

naive result events = 11
naive passed events = 9
naive pass rate = 81.8%
naive decision = GO

planned population = 10
final outcomes: passed=7, failed=0, blocked=1, not-run=2
pass rate of planned = 70%
excluded: one duplicate attempt + one result from build.87
critical gaps: SYN-T04 blocked + SYN-T05 not-run for SYN-R2
residual risk SYN-R2 owner = missing
findings: critical-risk-without-passing-evidence + residual-risk-without-owner
closureSnapshot.decision = HOLD

۸۱٫۸٪ و ۷۰٪ هر دو از فرمول‌های تعریف‌شدهٔ Fixture به‌دست می‌آیند؛ اختلاف از Population و Rule است. هیچ‌کدام آستانهٔ عمومی نیستند. HOLD به دو Gap بحرانی و مالک مفقود قراردادی وابسته است، نه صرفاً درصد.

حدود اعتبار آزمایش مصنوعی

  • همهٔ Testها، Riskها، Buildها، Eventها و Outcomeها ساختگی‌اند.
  • هیچ Runner، محصول، API، Database، کاربر یا محیط واقعی اجرا نشده است.
  • ده Test، یازده Event، ۸۱٫۸٪ و ۷۰٪ Benchmark یا Threshold نیستند.
  • مدل «آخرین Attempt» برای همهٔ Suiteها یا Retest policyها نسخهٔ عمومی نیست.
  • GO/HOLD گواه کیفیت، احتمال شکست یا الگوریتم Release نیست.
  • آزمایش فقط حسابداری Population و Contract نوشته‌شده را نشان می‌دهد.

آزمایشگاه فارسی کاملاً ساختگی

در محیط محلی بدون اینترنت، Release خیالی SYN-REL-FA-01 با ۱۲ Test خیالی بسازید. Outcomeهای Passed/Failed/Blocked/Not Run، Retry، Duplicate، Build قدیمی، Scope change و Risk owner را Seed کنید. هیچ نام، شرکت، کاربر، حساب، پرداخت، Token، Secret، Ticket یا دادهٔ Production وارد نشود.

Faultکنترل SummaryEvidence
Duplicate resultattempt identityexclusion log
Build قدیمیtarget-build filterforeign result list
Not Run حذف‌شدهplanned reconciliationgap register
Scope تغییرکردهdeviation recordapproval
Risk بی‌مالکclosure validatorHOLD/action
Query خرابexport hash/correctionsuperseding report
اعداد فارسی/لاتینcanonical numeric dataformat parity
لینک Evidence شکستهlink/access checkarchive repair

این Lab تمرین Snapshot، Traceability و Correction است؛ دربارهٔ صنعت ایران، کیفیت محصول، نرخ Defect یا تصمیم واقعی ادعایی ندارد.

قالب Test Summary Report یک‌صفحه‌ای

[Report ID/version/status] [Release/Build] [Cutoff]
Decision question / decision owner / decision time
Scope: planned / added / removed / executed / not-evidenced
Outcome population: counts + denominator + rule
Critical Risk Closure: supported / partial / absent / invalid
Open findings and residual exposure: impact / owner / control
Plan deviations and evidence limitations
Recommendation options and explicit uncertainty
Decision / conditions / dissent
Actions: fix / retest / monitor / rollback / due
Links: full report / frozen exports / evidence / plan / decision log

قالب Full Test Summary Report

بخشمحتوای حداقلی
Identityreport/release/build/plan/scope/cutoff/source
Executive summaryclaims/gaps/exposure/recommendation
Test contextobjective/basis/environment/data
Scope reconciliationplanned/changed/executed/invalid/not-run
Activitymethods/levels/effort فقط در حد تصمیم
Outcome accountingpopulation/rules/counts/denominators
Risk closureevidence/findings/coverage/uncertainty
Defects/findingsimpact/status/owner/retest—not raw count alone
Deviations/limitationsPlan/environment/data/tool/gap
Residual risksexposure/control/acceptance/expiry
Decisionoption/authority/conditions/dissent
Actionsfix/retest/monitor/support/rollback
Archiveevidence/export/hash/retention/correction

چه چیزی را از Summary حذف کنیم؟

  • تمام Logها و Screenshotها؛ لینک نسخه‌دار کافی است.
  • فهرست کامل Test Caseها؛ Population manifest را ارجاع دهید.
  • تکرار Requirement؛ Scope/source version را بدهید.
  • Tool marketing و Screenshot Dashboard؛ Rule/query را ثبت کنید.
  • داستان‌سرایی بدون Evidence یا نقل‌قول تزئینی؛
  • Metricهایی که به Decision یا یادگیری وصل نیستند؛
  • اطلاعات شخصی، Secret و دادهٔ حساس؛
  • علت‌های قطعی بدون RCA یا Evidence کافی.

مخاطب‌های مختلف، Claimهای متفاوت نه

CEO، Product و Engineering می‌توانند Viewهای متفاوتی از یک Evidence Packet داشته باشند، اما Fact، denominator و Risk نباید تغییر کند. مدیر اجرایی به Exposure و گزینه، توسعه‌دهنده به Trace و Root cause، عملیات به Control و rollback نیاز دارد. ساده‌سازی یعنی حذف جزئیات نامرتبط، نه نرم‌کردن حقیقت.

نمودار را فقط وقتی استفاده کنید که رابطه را روشن کند

رابطهنمای مناسبپرهیز
Outcome distributionbar + countspie با بخش‌های نزدیک/بدون مخرج
Trend comparableline با event/definition notesدو محور گمراه‌کننده
Risk × evidencematrix/tableheatmap بدون legend
Age/statusstacked bar/tableمیانگین تنها
Scope flowfunnel/reconciliation tablePass rate تنها

همیشه دادهٔ متنی/جدولی دسترس‌پذیر، Label، واحد، منبع، Cutoff و تعریف فراهم کنید. طراحی بصری عمیق‌تر در صفحهٔ ۱۶۷۸ می‌ماند.

شاخص کیفیت گزارش Summary

شاخصپرسشدام
Reproducibilityاز Export/Rule همان اعداد ساخته می‌شوند؟فایل دستی
Trace completenessClaim تا Build/Evidence می‌رسد؟لینک بدون identity
Population reconciliationplanned تا reported حساب می‌شود؟حذف silent
Critical-risk gap visibilityGap بالای صفحه دیده می‌شود؟دفن در ضمیمه
Decision/action closureowner/due/expiry دارد؟recommendation بی‌مالک
Correction latencyخطای گزارش چه زمان اصلاح می‌شود؟ویرایش بی‌ردپا
Consumer comprehensionمخاطب denominator/limitation را درست می‌فهمد؟View count

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

بازهکارخروجی
روز ۱–۳انتخاب یک Cycle و DecisionSummary scope
روز ۴–۶Identity/Source/Cutoff registryReport contract
روز ۷–۱۰Population و Outcome rulesreconciliation query
روز ۱۱–۱۳Risk Closure mappingclosure matrix
روز ۱۴–۱۶Defect/Gap/Deviation normalizationregisters
روز ۱۷–۱۹Residual risk/Action templatesdecision-ready draft
روز ۲۰–۲۲Automation/export/hash checksreproducible snapshot
روز ۲۳–۲۵Audience review/accessibilityone-page + full views
روز ۲۶–۲۷Freeze/Decision dry runfrozen report
روز ۲۸–۳۰Correction/Archive retrospectiveprocess improvements

ضدالگوهای گزارش خلاصه تست

  • گزارش زنده و متغیر بدون Cutoff؛
  • عنوان Release بدون Build/Config identity؛
  • شمارش Event به‌جای Final Outcome؛
  • شمارش Retry و Duplicate به‌عنوان Test مستقل؛
  • ترکیب نتیجهٔ Buildهای مختلف؛
  • Pass rate بدون denominator و counts؛
  • حذف Blocked/Not Run از Planned population؛
  • تبدیل Invalid به Passed پس از Rerun بدون history؛
  • Scope reported بدون reconcile با Plan؛
  • پنهان‌کردن Deviation؛
  • Test count به‌عنوان Risk coverage؛
  • Defect count به‌عنوان کیفیت یا ارزش QA؛
  • Defect Density به‌عنوان حکم کیفیت پایین؛
  • Trend با تعریف/Population متفاوت؛
  • رنگ سبز برای حوزهٔ بدون Evidence؛
  • Known issue به‌عنوان Risk acceptance؛
  • Severity به‌جای Business impact؛
  • Report تخصصی بدون Scope/limitations؛
  • «کیفیت مطلوب» بدون معیار؛
  • برجسته‌کردن نکات مثبت برای آرام‌کردن مدیر؛
  • داستان‌سرایی به‌جای Evidence؛
  • توصیه QA به‌عنوان تصمیم Release؛
  • Risk بی‌مالک یا پذیرش بدون اختیار؛
  • Conditional Go بدون threshold/rollback/expiry؛
  • Action بدون owner/due؛
  • Dashboard tool به‌عنوان Source قطعی؛
  • فایل خروجی بدون Query/hash؛
  • ویرایش گزارش frozen بدون Correction؛
  • Viewهای مخاطب با Factهای متفاوت؛
  • Archive بدون retention و supersession.

چک‌لیست گزارش خلاصه تست معنادار

  1. Report ID، version و status داریم.
  2. Release/Build/Config/Flag identity کامل است.
  3. Plan و Scope baseline نسخه‌دارند.
  4. Execution window و Cutoff روشن‌اند.
  5. Data source، Query و Export hash ثبت‌اند.
  6. Population unit تعریف شده است.
  7. Planned/eligible/executed/report populations جدا هستند.
  8. Attempt identity و Retry policy داریم.
  9. Duplicate rule تعریف شده است.
  10. Foreign-build results حذف/افشا شده‌اند.
  11. Final outcome rule روشن است.
  12. Passed/Failed/Blocked/Not Run/Inconclusive/Invalid تعریف‌اند.
  13. Counts کنار درصد هستند.
  14. Denominator در عنوان Metric آمده است.
  15. Blocked و Not Run پنهان نشده‌اند.
  16. Scope با Plan reconcile شده است.
  17. Added/Removed/Invalidated ثبت‌اند.
  18. Deviation دلیل و Authority دارد.
  19. هر Risk به Evidence معتبر وصل است.
  20. Critical gap در Executive Summary دیده می‌شود.
  21. Coverage boundary و uncertainty ثبت است.
  22. Defect count حکم کیفیت نیست.
  23. Severity/Priority/Exposure جدا هستند.
  24. Known issue پذیرش ریسک فرض نشده است.
  25. Residual risk owner و acceptor دارد.
  26. Workaround limitation و Support path دارد.
  27. Non-functional result Context دارد.
  28. Environment/Data limitation افشا شده است.
  29. Trend فقط روی Snapshot comparable است.
  30. Executive claims به Evidence drill-down دارند.
  31. Recommendation از Decision جداست.
  32. Decision owner اختیار لازم دارد.
  33. Dissent و alternatives ثبت می‌شوند.
  34. Conditional release controls آزمون‌پذیرند.
  35. Rollback trigger و Monitoring مشخص‌اند.
  36. Actionها owner/due/closure evidence دارند.
  37. Operational readiness لینک/Gap دارد.
  38. Report frozen بازنویسی نمی‌شود.
  39. Correction مسیر رسمی و notification دارد.
  40. Archive شامل exports/rules/evidence است.
  41. Retention و access classification داریم.
  42. Viewهای مخاطب از Fact مشترک می‌آیند.
  43. نمودار Label/unit/source/cutoff دارد.
  44. نمای متنی دسترس‌پذیر موجود است.
  45. اطلاعات شخصی و Secret حذف شده‌اند.
  46. Report quality با trace/reconcile/action سنجیده می‌شود.
  47. پنج FAQ و Meta قبل انتشار کنترل شده‌اند.

جمع‌بندی: Summary باید Evidence را منجمد کند، نه ابهام را

گزارش خلاصه تست معنادار از اعداد خام به Snapshot قابل ممیزی می‌رود: Identity و Cutoff را قفل می‌کند، Population و Outcome را نرمال می‌کند، Scope را با Plan reconcile می‌کند، Risk را به Evidence و Gap وصل می‌کند، Exposure را بی‌مالک نمی‌گذارد و Decision/Action/Correction را حفظ می‌کند. کوتاهی خوب از Drill-down می‌آید، نه حذف Denominator و محدودیت.

سؤالات متداول گزارش خلاصه تست

تفاوت Test Summary Report با Status Report چیست؟

Status Report در طول کار، پیشرفت، مانع و Forecast را دوره‌ای می‌گوید. Test Summary در Cutoff مشخص، Scope و Evidence یک Cycle/Level/Release را جمع‌بندی و برای Closure/Decision منجمد می‌کند. Dashboard زنده می‌تواند منبع باشد، اما جای Snapshot نسخه‌دار را نمی‌گیرد.

Pass Rate را چگونه در گزارش بنویسیم؟

Counts، Population، فرمول، Build، Cutoff و رفتار Blocked/Not Run/Inconclusive را کنار نسبت بنویسید. «Pass rate of executed» با «Pass rate of planned» متفاوت است. هیچ درصدی به‌تنهایی آمادگی Release یا پوشش Risk را ثابت نمی‌کند.

آیا گزارش خلاصه تست باید Go یا No-Go اعلام کند؟

گزارش باید Evidence، Gap، Exposure، گزینه‌ها و توصیهٔ مستدل را ارائه کند. تصمیم Go/Conditional/Hold/Defer و پذیرش ریسک باید توسط Owner دارای اختیار ثبت شود. QA ممکن است Recommendation بدهد، اما به‌طور پیش‌فرض مالک همهٔ ریسک یا تصمیم Release نیست.

هر چند وقت یک‌بار Test Summary تهیه کنیم؟

فرکانس ثابت ندارد. Trigger می‌تواند پایان Test Level/Cycle، Release candidate، Gate قراردادی، Sprint یا Closure پروژه باشد. برای ارتباط روزانه/هفتگی از Status و Dashboard استفاده کنید؛ Summary را زمانی Freeze کنید که یک Snapshot برای تصمیم یا بایگانی لازم است.

آیا ابزار مدیریت تست می‌تواند گزارش را خودکار بسازد؟

می‌تواند Export، counts، Deduplication، Build filter و View را خودکار کند، اما Population rule، کفایت Risk evidence، Exposure، Recommendation و تصمیم به قرارداد و قضاوت انسانی نیاز دارند. Tool/version/query/hash و Correction policy را ثبت کنید و Dashboard را حقیقت بدون زمینه ندانید.

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