لوگو اجیلیتی
Acceptance Criteria چیست

معیارهای پذیرش یا Acceptance Criteria | نحوه نوشتن + فرمت‌ها + مثال‌های کاربردی

7 ساعت پیش
زمان مطالعه:
11 دقیقه

در دنیای اجایل، جایی که سرعت و دقت دو اصل کلیدی هستند، معیارهای پذیرش یا Acceptance Criteria نقش پل ارتباطی بین «نیاز مشتری» و «نتیجه قابل‌تحویل» را ایفا می‌کنند. 

ACها نه فقط معیارهایی برای سنجش تکمیل بودن کار، بلکه راهنمایی روشن برای توسعه‌دهندگان، تسترها و مالکان محصول هستند تا مطمئن شوند خروجی کار واقعاً همان چیزی‌ست که کاربران انتظار دارند.

در این مقاله، با زبانی ساده و همراه با مثال‌های ملموس یاد می‌گیریم که اکسپتنس کرایتریا چه هستند، چطور نوشته می‌شوند، چه تفاوتی با Definition of Done دارند، و چگونه می‌توان آن‌ها را به کمک فرمت‌هایی مثل Gherkin به‌صورت حرفه‌ای پیاده‌سازی کرد.

Acceptance Criteria چیست؟

معیارهای پذیرش یا Acceptance Criteria مجموعه‌ای از شرایط از پیش تعیین‌شده‌ای هستند که برای یک محصول یا فیچر محصول تعیین می‌شود و آن محصول باید این معیارها را برآورده کند تا توسط مالک محصول یا ذی‌نفعان به‌عنوان یک فیچر یا محصول کامل پذیرفته شود.

چرا معیارهای پذیرش اهمیت دارند؟

معیارهای پذیرش چیست

اکسپتنس کرایتریا نقش کلیدی در توسعه به شیوه اجایل دارند. AC‌ها فقط یک سند متنی نیستند؛ بلکه ابزاری قدرتمند برای ارتباط شفاف اعضای تیم با یکدیگر، وضوح کافی هدف و جلوگیری از ابهامات و تضمین کیفیت محصول نهایی هستند.

اجایل چیست؟ همه چیز درباره رویکرد نوین مدیریت پروژه چابک

معیارهای پذیرش مزایای زیر را دارند:

  • هم‌راستا کردن انتظارات ذی‌نفعان

این معیارها کمک می‌کنند تا همه، از مالک محصول گرفته تا توسعه‌دهندگان، نیروهای تست نرم‌افزار و سایر ذی‌نفعان، برداشت مشترکی از یک ویژگی و عملکرد آن داشته باشند. این هم‌راستایی باعث می‌شود چیزی تحویل داده نشود که با نیاز واقعی کاربران فاصله داشته باشد.

  • کاهش ابهام در داستان‌های کاربر

یک User Story معمولاً به زبان ساده نوشته می‌شود و ممکن است چند برداشت متفاوت از آن بشود. Acceptance Criteria سعی دارد این ابهامات را برطرف کند و اهداف کلی را به نتایجی مشخص و قابل تست تبدیل نماید.

  • پشتیبانی از تست کیس‌ها و اعتبارسنجی

معیارهای پذیرش پایه‌ای برای طراحی تست‌های محصول هستند. آن‌ها به تیم تضمین کیفیت / QA کمک می‌کنند تا تست کیس‌های دقیق بنویسند و بررسی کنند که آیا داستان کاربر واقعاً کامل است و از دید مشتری قابل‌قبول هست یا نه.

تفاوت Acceptance Criteria با Definition of Done چیست؟

تفاوت Ac و Do D

AC ها به‌طور اختصاصی برای هر یوزر استوری نوشته می‌شوند و رفتار یا نتایج مورد انتظار برای آن ویژگی خاص را مشخص می‌کنند.

تعریف انجام‌شده یا Definition of Done یک چک‌لیست سراسری و کلی برای تمام آیتم‌هایی‌ست که باید قبل از تحویل نهایی آن آیتم رعایت شود تا به‌عنوان انجام‌شده تلقی شود. مثلاً: بازبینی کد انجام شود، تست‌ها پاس شوند و نرم‌افزار روی محیط Staging مستقر شود؛ تا بگوییم این یک فیچر انجام شده است.

DoD چیست؟ تعریف انجام شده | مفهومی حیاتی در اجایل

اجازه دهید تفاوت  AC و DoD را با یک مثال بررسی کنیم:

یوزر استوری:

«به‌عنوان یک کاربر، می‌خواهم رمز عبورم را ریست کنم تا بتوانم دوباره وارد حسابم شوم.»

معیارهای پذیرش / AC (مختص این داستان کاربر):

موارد زیر مشخص می‌کنند چه چیزهایی باید در این فیچر پیاده‌سازی شود تا مورد پذیرش قرار گیرد:

  1. کاربر باید ظرف ۵ دقیقه ایمیل بازیابی رمز عبور خود را دریافت کند.

  2. لینک ریست رمز پس از ۲۴ ساعت منقضی شود.

  3. رمز عبور جدید باید حداقل ۸ کاراکتر باشد و حداقل یک عدد داشته باشد.

  4. اگر ایمیل واردشده در سیستم ثبت نشده باشد، پیام خطای مناسب نمایش داده شود.

تعریف انجام‌شده / DoD (برای تمامی داستان‌های کاربر):

این موارد چک‌لیست استانداردی هستند که باید در همه یوزر استوری‌ها رعایت شوند تا به‌عنوان انجام‌شده تلقی شوند:

  • کد نوشته، بررسی و به شاخه اصلی / Main اضافه شده باشد.

  • تمام تست های واحد / Unit Tests با موفقیت پاس شده باشند.

  • معیارهای پذیرش رعایت شده باشند.

  • فیچر روی محیط Staging تست شده باشد.

  • هیچ باگ بحرانی باقی نمانده باشد.

  • مستندات (در صورت نیاز) به‌روزرسانی شده باشند.

  • فیچر در جلسه اسپرینت ریویو دمو شده باشد.

به‌طور خلاصه...

مقایسه

معیارهای پذیرش / AC

تعریف انجام‌شده / DoD

تعریف

شرایط پذیرش خاص برای یک یوزر استوری

چک‌لیست کلی برای تکمیل هر آیتم از بک‌لاگ

کاربرد

مشخص‌کردن رفتار مورد انتظار در یک فیچر مشخص

تعیین الزامات پایه‌ای برای تحویل هر فیچر

سطح

اختصاصی برای هر یوزر استوری

سراسری و مشترک برای همه یوزر استوری‌ها

مثال‌ها

- ایمیل بازیابی ظرف ۵ دقیقه ارسال شود

- لینک ریست ظرف ۲۴ ساعت منقضی شود

- رمز جدید حداقل ۸ کاراکتر و دارای عدد باشد

- کد در شاخه اصلی اضافه شده

- تست‌ها پاس شده‌اند

- دمو در جلسه اسپرینت ریویو انجام شده

هدف نهایی

تضمین اینکه فیچر، نیاز کاربر را برآورده می‌کند

اطمینان از کیفیت، کامل‌بودن و آماده‌بودن برای انتشار

انواع حالت‌های رایج معیارهای پذیرش

انواع حالت های Acceptance Criteria

اکسپتنس کرایتریا می‌توانند در قالب‌های مختلفی نوشته شوند. انتخاب قالب مناسب به سلیقه تیم شما، نوع فیچر مورد نظر و میزان جزئیاتی که نیاز دارید بستگی دارد. در ادامه، سه نوع رایج AC ها را با مثال بررسی می‌کنیم:

این مدل Acceptance Criteria بر پایه BDD یا توسعه رفتار محور شکل گرفته و برای تیم‌هایی مناسب است که می‌خواهند رفتار کاربر را در شرایط مختلف به‌صورت کاملاً شفاف توصیف کنند. در این روش، تأکید بر سه بخش است:

  • فرض / Given: شرایط اولیه؛

  • وقتی / When: عملی که انجام می‌شود؛

  • آنگاه / Then: نتیجه مورد انتظار.

این ساختار باعث می‌شود اعضای تیم (شامل توسعه‌دهندگان، کارشناس تست و مالک محصول) درک مشترکی از انتظارات داشته باشند. این سبک به‌طور خاص برای تعاملات پیچیده کاربر یا تصمیم‌گیری‌های دشوار بسیار مفید است.

مثال:

یوزر استوری: به‌عنوان یک کاربر، می‌خواهم رمز عبورم را ریست کنم تا بتوانم دوباره وارد حسابم شوم.

  • Given: من در صفحه ورود هستم؛

  • When: روی «فراموشی رمز عبور» کلیک می‌کنم و ایمیلم را وارد می‌کنم؛

  • Then: باید ظرف ۵ دقیقه یک ایمیل بازیابی رمز عبور دریافت کنم.

در این روش، معیارها به‌صورت مجموعه‌ای از قوانین، محدودیت‌ها یا شرایطی بیان می‌شوند که همیشه باید برقرار باشند. تمرکز این قالب روی رفتار مرحله‌به‌مرحله نیست، بلکه روی الزامات همیشگی مانند قوانین اعتبارسنجی، منطق کسب‌وکار، الزامات یا محدودیت‌های سیستمی است.

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

مثال:

  • لینک بازیابی باید ظرف ۲۴ ساعت منقضی شود.

  • رمز جدید باید حداقل ۸ کاراکتر و حداقل یک عدد داشته باشد.

  • پیام خطا نباید مشخص کند آیا ایمیل ثبت شده است یا نه.

در بسیاری از تیم‌های واقعی، از قالب‌های ترکیبی یا منعطف برای AC‌ها استفاده می‌شود. ممکن است سناریوهای BDD با قوانین خاص ترکیب شوند یا توضیحات به‌صورت زبان طبیعی و ساده بیان شود.

این مدل، زمانی کاربرد دارد که یوزر استوری، خیلی کلی یا مبهم باشد و تیم نخواهد خودش را به یک ساختار خاص محدود کند. همچنین در مراحل ابتدایی کشف محصول یا زمانی که همکاری و بازبینی مداوم اهمیت بیشتری از ساختار رسمی دارد، این روش بسیار مناسب است.

مثال:

  • اگر ایمیل معتبر وارد شود پیام موفقیت نشان داده شود و لینک ارسال شود.

  • اگر ایمیل نامعتبر یا خالی باشد پیام خطای عمومی نشان داده شود؛ بدون اینکه بگوید این ایمیل که به اشتباه وارد شده در سیستم وجود دارد یا نه.

به طور خلاصه:

نوع معیار

مثال AC

سناریو محور

فرض می‌کنیم ایمیل را وارد می‌کنم،
وقتی روی ریست کلیک می‌کنم،
آنگاه ایمیل را دریافت می‌کنم

قاعده‌محور

رمز عبور باید حداقل ۸ کاراکتر با یک عدد باشد؛
لینک در ۲۴ ساعت منقضی شود

ترکیبی / سفارشی

اگر ایمیل معتبر باشد موفقیت؛
اگر نباشد خطای عمومی بدون اشاره به وجود ایمیل در دیتابیس

چه کسی Acceptance Criteria را می‌نویسد؟

معیارهای پذیرش معمولاً توسط مالک محصول نوشته می‌شوند که نتایج مطلوب یک داستان کاربری یا فیچر را تعریف می‌کند. بااین‌حال، بسیار توصیه می‌کنیم که تیم توسعه و ذی‌نفعان نیز به‌طور فعال در این فرایند همکاری کنند.

چرا که معیارها باید کاملاً شفاف، قابل‌دستیابی و همسو با اهداف کسب‌وکار و محدودیت‌های فنی باشند. پس به کمک همه اعضای تیم نیاز است.

چه زمانی معیارهای پذیرش را بنویسیم؟

زمان‌های زیر برای نوشتن Acceptance Criteria پیشنهاد می‌شود:

در حین بک لاگ ریفاینمنت

معیارهای پذیرش باید زمانی نوشته شوند که یوزر استوری‌ها در حال بررسی و پالایش هستند و قبل از اینکه به بک لاگ اسپرینت اضافه شوند. در این زمان معمولاً داستان شفاف شده است و انتظارات به‌خوبی تعریف شده‌اند و هنوز هم به تیم امکان می‌دهد در برنامه‌ریزی خود انعطاف‌پذیر باشند.

قبل از برنامه‌ریزی اسپرینت

قبل از شروع جلسه اسپرینت ریویو، معیارهای پذیرش باید آماده باشند. چرا که در این مرحله تیم باید دامنه کار و نتیجه مورد انتظار را کاملاً درک کرده باشد تا تخمین‌های صحیح‌تری داشته باشند.

درست به‌موقع

نوشتن خیلی زود AC‌ها احتمالاً منجر به نوشتن جزئیات غیرضروری می‌شود. خیلی دیر هم می‌تواند منجر به سردرگمی یا انتظارات نادرست شود. هدف این است که معیارهای پذیرش به‌موقع نوشته شوند؛ نه خیلی زود و نه خیلی دیر، تا از شفافیت و مرتبط بودن آن‌ها کم نشود.

انواع جلسات اسکرام، نکات عملی و زمان‌بندی برگزاری

نکات مهم نوشتن Acceptance Criteria قدرتمند

نوشتن معیارهای پذیرش دقیق، برای موفقیت در توسعه نرم‌افزار ضروری است. در ادامه چند گام کلیدی و نکات کاربردی را با هم مرور می‌کنیم:

  • یوزر استوری: همیشه معیارهای پذیرش را به یوزر استوری‌ها ارتباط دهید. این کار کمک می‌کند AC ها با عملکرد و خروجی مورد انتظار خود ارتباط دقیق‌تری بگیرند.

  • نتایج مورد انتظار: سعی کنید همیشه تجربه کاربری حاصل از انجام AC و خروجی‌های مطلوب را به‌وضوح بیان کنید. دقیقاً بگویید که فیچر باید چه ارزشی برای کاربر ایجاد کند؛ همچنین از تمرکز روی جزئیات فنی پیاده‌سازی پرهیز کنید و فضا را پیچیده نکنید.

  • شفافیت و اختصار: از زبانی واضح و مختصر استفاده کنید که برای همه قابل‌فهم باشد. اصطلاحات فنی یا جملات مبهم می‌توانند منجر به سردرگمی شوند.

  • قابلیت تست: هر معیار پذیرش باید قابل ترجمه به تستی شفاف و قابل‌سنجش باشد تا امکان ارزیابی خروجی کار را فراهم کند.

  • قابلیت اندازه‌گیری: در صورت امکان، معیارها را با واژگان قابل‌اندازه‌گیری بنویسید. این موضوع به تعیین دقیق «قبول» یا «رد» شدن در زمان تست کمک می‌کند.

  • استقلال: تلاش کنید معیارها مستقل از هم باشند و بتوان هرکدام را به‌تنهایی تست کرد. این کار روند تست را ساده‌تر می‌کند و از وابستگی‌ها جلوگیری می‌کند.

  • تست پذیرش کاربر / UAT: در کنار معیارهای تیم توسعه، معیارهای مربوط به تست پذیرش کاربر را نیز در نظر بگیرید. این معیارها از دیدگاه کاربردپذیری بررسی می‌شوند و مشخص می‌کنند که آیا ویژگی با انتظارات کاربر مطابقت دارد یا خیر.

  • همکاری: نوشتن معیارها باید به‌صورت مشارکتی انجام شود. مالک محصول، تیم توسعه و سایر ذی‌نفعان مرتبط باید در فرایند تدوین معیارها مشارکت کنند تا مجموعه‌ای جامع و چندوجهی شکل بگیرد.

  • بازبینی و اصلاح: از بازبینی و اصلاح معیارها در طول فرایند توسعه نترسید. با رشد درک تیم از نیازمندی‌ها، ممکن است لازم باشد AC ها به‌روزرسانی و دقیق‌تر شوند.

مثال‌هایی از نوشتن معیارهای پذیرش

مثال هایی از معیارهای پذیرش

در این بخش چند نمونه خوب و کاربردی از معیارهای پذیرش را برای شما آورده‌ایم:

مثال ۱

User Story:

به‌عنوان یک مشتری، می‌خواهم بتوانم با واردکردن نام محصول، آن را جستجو کنم تا راحت‌تر آیتم موردنظرم را پیدا کنم.

Acceptance Criteria:

  • عملکرد جستجو باید نتایجی را نمایش دهد که دقیقاً با نام واردشده مطابقت دارند.

  • علاوه بر تطابق کامل، نتایج باید شامل آیتم‌هایی با حداقل سه حرف مشترک با نام واردشده نیز باشند (تطابق جزئی).

  • نتایج جستجو باید به شکل واضح و منظم نمایش داده شوند و شامل نام محصول، تصویر و قیمت باشند.

  • صفحه نتایج باید قابلیت صفحه‌بندی داشته باشد و در هر صفحه حداکثر ۲۰ آیتم نمایش داده شود.

مثال ۲

User Story:

به‌عنوان یک کاربر ثبت‌نام‌شده، می‌خواهم بتوانم اطلاعات حساب کاربری‌ام را ویرایش کنم تا پروفایلم همیشه به‌روز باشد.

Acceptance Criteria:

  • کاربر بتواند به بخش «ویرایش پروفایل» در تنظیمات حساب کاربری دسترسی داشته باشد.

  • امکان ویرایش نام، نام خانوادگی، ایمیل و شماره تلفن برای کاربر فراهم باشد.

  • پس از کلیک روی دکمه «ذخیره»، تغییرات باید با موفقیت در سیستم ثبت شوند.

  • در صورت موفقیت‌آمیز بودن به‌روزرسانی اطلاعات، پیام تأییدی برای کاربر نمایش داده شود.

مثال ۳

User Story:

به‌عنوان یک مدیر سامانه، می‌خواهم بتوانم گزارش‌هایی از فعالیت کاربران تولید کنم تا میزان تعامل و مشارکت آن‌ها را پیگیری کنم.

Acceptance Criteria:

  • در پنل مدیریتی، بخشی اختصاصی برای گزارش‌دهی در نظر گرفته شده باشد.

  • مدیر بتواند گزارش‌هایی از انواع فعالیت‌های کاربران مانند ورود به حساب، مشاهده محصولات و خریدها تهیه کند.

  • امکان فیلترکردن گزارش‌ها بر اساس بازه زمانی و نوع کاربر وجود داشته باشد.

  • کاربر بتواند گزارش‌ها را در فرمت‌های مختلف (مثل CSV و PDF) دانلود کند.

این مثال‌ها نشان می‌دهند که چگونه می‌توانیم یوزر استوری‌ها را به معیارهایی دقیق، قابل‌اندازه‌گیری و قابل تست تبدیل کنیم.

با دنبال‌کردن چنین ساختاری، تیم‌ها می‌توانند معیارهایی شفاف و مختصر تدوین کنند تا فیچرهایی منطبق با نیاز کاربران تحویل دهند و موفقیت محصول را تضمین کنند.

مثال 1 از فرمت Gherkin

کاربر می‌خواهد به طور صحیح وارد سیستم شود.

Scenario: موفقیت در ورود به حساب کاربری

  • Given کاربر در صفحه ورود قرار دارد

  • And کاربر یک حساب کاربری فعال دارد

  • When کاربر نام کاربری و رمز عبور معتبر را وارد می‌کند

  • And روی دکمه «ورود» کلیک می‌کند

  • Then سیستم باید کاربر را وارد داشبورد کند

  • And پیام خوش‌آمدگویی نمایش داده شود

توضیح:
در این مثال، شرایط اولیه مشخص است (کاربر در صفحه ورود است و حساب فعال دارد)، اقدامی که کاربر انجام می‌دهد تعریف شده (واردکردن اطلاعات و کلیک)؛ و نتایج مورد انتظار نیز واضح و قابل تست هستند.

مثال 2 از فرمت Gherkin

افزودن محصول به سبد خرید

Scenario: افزودن یک محصول به سبد خرید

  • Given کاربر وارد حساب کاربری خود شده است 

  • And در صفحه محصول حضور دارد 

  • When کاربر روی دکمه «افزودن به سبد خرید» کلیک می‌کند 

  • Then محصول باید به سبد خرید او افزوده شود 

  • And شمارشگر سبد خرید، باید یک عدد افزایش یابد

مزیت استفاده از Gherkin:

  • ساده و قابل‌درک برای همه اعضای تیم (حتی غیر فنی‌ها)

  • قابل‌تبدیل به تست خودکار در ابزارهای BDD مانند Cucumber

  • ساختار منطقی و منظم برای توصیف رفتارهای مورد انتظار سیستم

  • کمک به هم‌راستایی بهتر بین تحلیلگران کسب‌وکار، توسعه‌دهندگان و تسترها

جمع‌بندی

معیارهای پذیرش یا Acceptance Criteria یکی از مؤثرترین ابزارها برای شفاف‌سازی انتظارات، کاهش ابهام و تضمین کیفیت در فرایند توسعه چابک هستند. AC‌ ها به تیم کمک می‌کنند تا از ابتدا بدانند «چه چیزی» باید تحویل داده شود، نه صرفاً «چگونه» باید تحویل داده شود.

با نگارش دقیق و قابل‌سنجش این معیارها، در قالب‌هایی مثل Gherkin، می‌توان گامی بزرگ به‌سوی توسعه محصولی برداشت که نه‌تنها نیاز فنی را برآورده می‌کند، بلکه رضایت واقعی کاربر نهایی را هم تأمین می‌کند.

 

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

 

سوالات متداول

معیارهای پذیرش مجموعه‌ای از شرایط هستند که یک ویژگی یا User Story باید برآورده کند تا از سوی ذی‌نفعان و مالک محصول پذیرفته شود. این معیارها به‌عنوان پایه‌ای برای تأیید عملکرد و درستی پیاده‌سازی آیتم‌های محصول مورد استفاده قرار می‌گیرند و کمک می‌کنند تا انتظارات تیم توسعه و ذی‌نفعان هم‌راستا شود.
معیارهای پذیرش به طور خاص به شرایط موفقیت یک فیچر یا User Story خاص اشاره دارند، درحالی‌که Definition of Done (تعریف انجام‌شده) یک چک‌لیست کلی و سراسری است که باید برای تمام آیتم‌های بک‌لاگ رعایت شود. DoD ممکن است شامل کد، تست، مستندسازی و بررسی امنیتی باشد، اما معیارهای پذیرش فقط برای ارزیابی موفقیت آن ویژگی خاص تعریف می‌شوند.
معمولاً مالک محصول / Product Owner مسئول اصلی نوشتن معیارهای پذیرش است، اما این کار به‌صورت مشارکتی با کمک اعضای تیم توسعه، طراحان تجربه کاربری و ذی‌نفعان انجام می‌شود تا تمام جنبه‌های مورد نیاز در نظر گرفته شود.
برای نوشتن معیارهای پذیرش قابل تست و قابل‌اندازه‌گیری باید: - از زبان ساده و دقیق استفاده کرد. - از ابهام و اصطلاحات کلی پرهیز کرد. - از قالب‌های شناخته‌شده مانند Given-When-Then استفاده کرد. - نتایج قابل‌مشاهده و قابل‌اندازه‌گیری مشخص شود (مثلاً: کاربر باید بتواند ظرف 3 ثانیه وارد سیستم شود).
معیارهای پذیرش باید پیش از آغاز توسعه هر یوزر استوری نوشته شوند. بهترین زمان برای نوشتن آن‌ها: - در زمان نگارش User Story‌ ها توسط Product Owner - یا در جلسات Backlog Refinement که تیم توسعه نیز حضور دارد نوشتن زودهنگام این معیارها به همه اعضای تیم کمک می‌کند تا قبل از شروع کار، درک مشترکی از هدف، عملکرد مورد انتظار و محدودیت‌های آن ویژگی داشته باشند. این کار همچنین باعث تسهیل در تخمین‌زدن‌ها، طراحی تست‌ها و جلوگیری از برداشت‌های متفاوت می‌شود.
رایج‌ترین فرمت برای نوشتن معیارهای پذیرش، فرمت Given-When-Then است: - Given: شرایط اولیه یا پیش‌نیاز - When: عمل یا رویداد - Then: نتیجه مورد انتظار
عضو خبرنامه اجیلیتی شوید تا مقالات تخصصی، راهکارهای به‌روز و ابزارهای کاربردی را در باکس خود دریافت کنید.