توسعه مبتنی بر آزمون پذیرش (ATDD)
توسعه مبتنی بر آزمون پذیرش (ATDD) یک فرآیند مشارکتی است که در آن توسعهدهندگان، آزمایشکنندگان و نمایندگان کسبوکار گرد هم میآیند تا الزامات را بررسی کنند، مشکلات احتمالی را درک کنند و احتمال خطاها را قبل از شروع کدنویسی کاهش دهند. ATDD از دیدگاه کاربر نوشته شده است و به این سوال پاسخ می دهد که “آیا کد کاری را که قرار است انجام دهد انجام می دهد؟” با ایران گواه همراه باشید.
اولین گام در ATDD جمع آوری همه طرف های درگیر و برگزاری کارگاه مشخصات است. هنگامی که الزامات در کارگاه تعریف و روشن شد، آزمایش کنندگان می توانند تست های خودکار را از معیارهای مشخص شده ایجاد کنند. تسترهای تضمین کیفیت (QA) با توسعه دهندگان کار می کنند تا اولین آزمایش را پیاده سازی کنند و آن را خودکار کنند. ATDD همچنین اجرای آزمایش واحد را آسانتر میکند.
فرمت آزمون توسعه مبتنی بر آزمون پذیرش (ATDD)
آزمونهای ATDD معمولاً از فرمت زیر پیروی میکنند:
- داده شده: یک راه اندازی، وضعیت مشخص.
- و (اختیاری): راه اندازی ادامه یافت.
- وقتی: ماشه، یک عمل یا رویداد اتفاق می افتد.
- سپس: تأیید. وضعیت تغییر کرده یا خروجی تولید می شود.
یک مثال با استفاده از فرمت توسعه مبتنی بر آزمون پذیرش:
- داده شده: فیلم فهرست شده در کاتالوگ برنامه پخش ویدیو.
- و: کاربر مشترک پولی است.
- زمان: کاربر فیلم را برای تماشا از کاتالوگ برنامه انتخاب می کند.
- سپس: فیلم برای کاربر پخش می شود.
مزایای توسعه مبتنی بر آزمون پذیرش ATDD
ATDD همه افراد درگیر در توسعه را گرد هم می آورد تا در مورد معیارهایی که یک برنامه بر اساس آن ساخته شده است بحث کنند. وضوح الزامات به کاهش تلاشهای بیهوده کمک میکند و درک اینکه چگونه یک کسبوکار انتظار دارد کارها انجام شود، میتواند کدگذاری مجدد و خطاها را کاهش دهد. ATDD اغلب می تواند برای توسعه دهندگانی که از Agile استفاده می کنند مفید باشد.
حتی در مواردی که تست خودکار نیست یا تسترها دانش کمی از کدنویسی دارند، روشن کردن شرایط تجاری و منطق هنوز ارزش دارد. همه تیم ها می توانند از همکاری با کارشناسان کسب و کار و بحث اولیه در مورد چگونگی آزمایش به طوری که الزامات لازم تکمیل شود، بهره مند شوند. نتیجه نهایی ATDD یک برنامه بهتر و قابل اعتمادتر است.
ATDD در مقابل TDD
در حالی که توسعه مبتنی بر آزمون پذیرش ATDD بر روی همکاری و آزمایش برای عملکرد کاربر متمرکز است، توسعه آزمایش محور (TDD) بیشتر از یک رویکرد متمرکز بر توسعه دهنده پیروی می کند. TDD بر اجرای و خودکارسازی تست های واحد تمرکز دارد و پیاده سازی آن آسان تر است. هدف هر دو ATDD و TDD کاهش کدهای غیرضروری و منابع توسعهدهنده است، در حالی که نیازمندیهای جامع را ایجاد میکنند و به طور مداوم آزمایش میکنند تا مطمئن شوند یک محصول انتظارات کاربر را برآورده میکند.