اصلی ترین هدف در رویکرد Test Driven Development (TDD) دریافت بازخورد سریع (fast feedback) از سیستم تحت تست (system under test) و تست ها می باشد. این بازخورد سریع میسر نمی شود مگر با اجرای مداوم تست ها و مشاهده نتیجه آنها در بازه های زمانی کوتاه مدت. بنابراین ما به روشی جهت تسهیل فرایند اجرای تست ها و نشان دادن نتایج آن ها (که آیا Pass یا Fail شده اند) به برنامه نویس نیاز داریم. این روش نباید هیچگونه اختلالی در روند توسعه نرم افزار ایجاد کند. همچنین نباید سرعت برنامه نویسی را کاهش دهد. در عین حال باید نتیجه اجرای تمام تست هایی را که قبلا نوشته شده است را به صورت کاملا واضح و سریع به اطلاع برنامه نویس برساند.
این روش را continues testing یا Live testing می نامند.
برای اجرای این روش بهتر است از ابزارهایی مانند Visual Studio Live Testing یا NCrunch استفاده کنیم که پیشنهاد ما NCrunch است. این ابزار به صورت یک افزونه روی visual studio نصب شده و قابل تنظیم است. از امکانات آن می توان به اجرای همزمان تست ها, اجرای تست های به صورت هوشمند به ازای تغییرات و آمار پوشش کد (Code Coverage) اشاره کرد.
نکته: این ابزار درحال حاضر به صورت تجاری به فروش می رسد اما شما می توانید با دانلود و کرک آن از سایت های ایرانی از آن لذت ببرید 🙂
نصب و تنظیم NCrunch روی Visual Studio بسیار آسان است. به محض نصب آن گزینه NCrunch به منوی Visual Studio شما اضافه خواهد شد. برای راه اندازی کافی است روی Enable NCrunch کلیک کرده و مراحل تنظیمات را به طور دلخواه طی کنید. پس از انجام عملیات ۲ تغییر مهم در محیط Visual Studio رخ خواهد داد.
۱) در سمت چپ تک تک خط های کدهای پروژه ۱ دایره نمایان خواهد شد. رنگ های متفاوت این دایره معانی متفاوتی دارند:
رنگ سفید: یعنی هیچ تستی برای این خط کد وجود ندارد.
رنگ قرمز: یعنی تست شما برای این بلاک از کد Fail شده است.
رنگ سبز: تست شما برای این بلاک از کد Pass شده است.
حال اگر این دایره به صورت علامت ضرب قرمز باشد یعنی این خط کد باعث Fail شدن تست شما شده است. به تصاویر زیر دقت کنید:
علامت ضرب قرمز به نشانه این که این خط کد باعث Fail شدن تست شده است.
دایره های سبز به نشانه این که تست این خط کد Pass شده است می باشند
۲) در گوشه پایین سمت راست روی نوار آبی رنگ پایین Visual Studio یک دایره به آیتم های موجود اضافه می شود که نمایانگر وضعیت کنونی تست های شما است. به ازای هر تغییر این دایره شروع به چرخیدن و اجرای تست های شما می کند تا اگر تغییرات کنونی شما باعث Fail شدن تست های دیگر شد به سرعت به شما اطلاع دهد. به تصویر زیر توجه کنید:
وضعیت کنونی یعنی تمام تست ها با موفقیت Pass شده اند. اما اگر تغییرات ما باعث Fail شدن تست های دیگر گردد NCrunch با اجرای تست های قبلی این تغییر را احساس کرده و به این صورت نمایش می دهد:
وضعیت بالا بیانگر آن است که ۱ تست Fail شده است. باکلیک بر روی همین آیکون نرم افزار به شما تست Fail شده را نمایش خواهد داد.
با استفاده از این تکنیک و ابزار NCrunch شما به راحتی می توانید قوانین Test Driven Development (TDD) که شامل سه فاز Red, Green, Refactor است را رعایت کنید و مشاهده خواهید کرد که چقدر در افزایش سرعت و دقت در توسعه نرم افزار کمک خواهد کرد.