تست نرم افزار TDD و BDD و DDD

تست نرم افزار TDD و BDD و DDD

 
TDD
Test Driven Development (TDD) یک رویکرد توسعه نرم‌افزار است که در آن موارد آزمایشی برای مشخص کردن و اعتبار بخشیدن به کد انجام می‌شود. به عبارت ساده، موارد تست برای هر عملکرد ابتدا ایجاد و تست می شود و اگر تست ناموفق باشد، کد جدید برای گذراندن آزمون و ساده و بدون اشکال کردن کد نوشته می شود.
توسعه تست محور با طراحی و توسعه تست ها برای هر عملکرد کوچک یک برنامه شروع می شود. چارچوب TDD به توسعه دهندگان دستور می دهد که فقط در صورتی کد جدید بنویسند که یک تست خودکار شکست خورده باشد. این از تکرار کد جلوگیری می کند. فرم کامل TDD توسعه تست محور است. به زبان ساده، Test Driven Development (TDD) یک روش توسعه نرم افزار است که بر ایجاد موارد تست واحد قبل از توسعه کد واقعی تمرکز دارد. این یک رویکرد تکراری است که برنامه‌نویسی، ایجاد آزمون‌های واحد، و refactoring را ترکیب می‌کند.
توسعه تست محور فرآیند توسعه و اجرای تست خودکار قبل از توسعه واقعی برنامه است. از این رو، TDD گاهی اوقات به عنوان Test First Development نیز نامیده می شود.
 
از مزایای TDD می‌توان به موارد زیر اشاره کرد:
دریافت سریعترین بازخورد
ایجاد یک Living Specification دقیق
Refactor کردن ایمن‌تر
باگ‌های کمتر(ما آنها را قبل از استقرار پیدا می‌کنیم)
اجبار در نوشتن کد به صورت SOLID
 
BDD
 
در مهندسی نرم‌افزار، توسعه مبتنی بر رفتار (BDD) یک فرآیند توسعه نرم‌افزار چابک است که همکاری بین توسعه‌دهندگان، آزمایش‌کنندگان تضمین کیفیت و نمایندگان مشتری را در یک پروژه نرم‌افزاری تشویق می‌کند. این تیم ها را تشویق می کند تا از مکالمه و مثال های عینی برای رسمی کردن درک مشترک از نحوه رفتار برنامه استفاده کنند. این توسعه از توسعه مبتنی بر آزمایش (TDD) پدید آمد. توسعه مبتنی بر رفتار تکنیک‌ها و اصول کلی TDD را با ایده‌هایی از طراحی دامنه محور و شی ترکیب می‌کند. تجزیه و تحلیل و طراحی گرا برای ارائه تیم های توسعه و مدیریت نرم افزار با ابزارهای مشترک و یک فرآیند مشترک برای همکاری در توسعه نرم افزار.

BDD یک رویکرد کاربر محور است. این فرآیند با فکر کردن به سناریوها از دیدگاه کاربر شروع می شود. این کمک می کند تا اطمینان حاصل شود که تیم بیشترین ارزش را برای کاربر نهایی به ارمغان می آورد.
 
BDD راهی برای کار تیم های نرم افزاری است که شکاف بین افراد تجاری و افراد فنی را از طریق:
1. تشویق همکاری بین نقش ها برای ایجاد درک مشترک از مشکلی که باید حل شود
2. کار در تکرارهای سریع و کوچک برای افزایش بازخورد و جریان ارزش
3. تولید اسناد سیستمی که به طور خودکار در برابر رفتار سیستم بررسی می شود
ما این کار را با تمرکز بر کار مشترک حول مثال‌های واقعی و واقعی انجام می‌دهیم که نشان می‌دهد ما می‌خواهیم سیستم چگونه رفتار کند.
  
DDD
 
به طور کلی هدف کلی این رویکرد این است که بگوید ساختار و زبان کد یک نرم افزار، باید با حوزه کسب و کار آن مطابقت داشته باشد. طراحی دامنه محور (DDD) رویکردی برای توسعه نرم افزار برای نیازهای پیچیده با اتصال عمیق پیاده سازی به یک مدل در حال تکامل است. به کمک این امر باعث می شود تا پیچیدگی ای که در قلب نرم افزار وجود دارد ساده تر شوند. DDD مناسب تیم ها و نرم افزار های بزرگ است.
 

مزایای DDD:

  1. تسهیل ارتباطات: به کمک DDD، ارتباط میان توسعه دهندگان پروژه های نرم افزاری و ذی النعان پروژه (کسانی که منطق کسب و کار را تعریف می کنند) آسان تر و قابل فهم تر می شود. در واقع آنان زبان یکدیگر را راحت تر درک میکنند، همچنین خود توسعه دهندگان نیز حرف یکدیگر را بهتر درک خواهند کرد و به طور کلی پیچیدگی در نرم افزار کاهش می یابد.
  2. انعطاف پذیری: از آنجایی که این سیستم برای مدل‌سازی حوزه کسب‌وکار ساخته شده است، به طور کلی برای تغییر انعطاف‌پذیرتر خواهد بود چرا که تغییرات در نیاز های عملکردی (Functional Requirement) راحت تر خواهد بود.
  3. قابلیت نگهداری: به دلیل نحوه ساخت مدل‌های دامنه با کپسوله کردن شفافیت و تجزیه خوب مدل، سیستم‌های مبتنی بر دامنه معمولاً طبیعتاً قابل نگهداری‌تر هستند.

معایب DDD:

  1. تخصص در دامنه: استفاده از DDD نیاز به تخصص قوی در حوزه دامنه و ارتباط منظم بین متخصص دامنه و توسعه دهندگان دارد.
  2. هزینه: استفاده از DDD اغلب منجر به توسعه و مدت زمان طولانی تر می شود که در نهایت به هزینه های بالاتر برای کسب و کار منجر می شود.
نویسنده :
مجید پورداود
  • مجید پورداود
  • مهندس نرم افزار و تحلیلگر ارشد سیستم های کامپیوتری تحت وب می باشم. از سال 1395 برنامه نویسی را شروع کردم و به زبان های php (فریم ورک laravel -codeigniter)  و زبان جاوا اسکریپت (فریم ورک express.js-nest.js)  تسلط دارم.  

ثبت دیدگاه جدید

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *