+1 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

در روش های توسعه نرم افزار، Test Driven Development چیست و چه خصوصیاتی دارد؟

1 پاسخ

+3 امتیاز
قبل توسط (1.6هزار امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

TDD یک روش تکامل یافته توسعه نرم افزار می باشد که در سال 2003 توسط Kent Beck ارائه شده و به این صورت هستش  که قبل از شروع به طراحی و پیاده سازی روال ها ابتدا یک تست برای نیازها و یا خواسته جدید پیاده سازی می کنید و بعد با توجه به ورودی و خروجی های تست نیازهای تست رو با کمترین کد پیاده سازی می کنید. این عمل تا زمانی که به نتیجه نهایی و مطلوب برسید ادامه خواهد یافت.
هدف اصلی در این روش حذف کدهای اضافی و بیهوده و پیاده سازی بهینه نرم فزار در کمترین زمان هستش. همچنین یکی از روش های سریع پیاده سازی نرم افزار ها می باشد. در تحقیقی که در سال 2005  انجام شد نشان داد که برنامه نویس هایی که از روش TDD استفاده می کنند محصولات بهینه تر و محبوب تری تولید می کنند!
مراحل پیاده سازی TDD درFlowChart های زیر نمایش داده شده است:




 

 

 

چرخه TDD به شرح ذیل می باشد.
Add a test: در این بخش برنامه نویس با توجه به خواسته ها و یا نیازهای جدید یک تست را پیاده سازی می نماید. البته این تست درحالت عادی باید fail شود چون اگر fail نشود به معنی وجود نیاز یا خواسته در حال حاضر می باشد و نیاز به توسعه نمی باشد. برای پیاده سازی این تست از Use case ها و ... برای فهم کامل نیازها می توان استفاده نمود.
Run all tests and see if the new one fails : این مرحله آزمون تست پیاده سازی شده می باشد. یعنی بررسی اینکه تست پیاده سازی شد به اشتباه pass نشود. به عبارت دیگر آزمون دقیق تست بر اساس نیازها.
Write some code : خوب حالا باید کدهایی رو برای گذر از تست یا pass شدن تست بنویسید! دقیقاً نیازها رو بصورت خیلی کلی و سطحی پیاده سازی می کنید. البته بعد از گذر از چند مرحله پیاده سازی کدها پیچیده ترو پیشرفته تر خواهد شد. در این مرحله فقط برای گذر از تست کد نوشته خواهد شد.
Run tests : حالا باید همه تست کیس های نوشته شده رو با موفقیت پشت سر بگذارید. گذر از این مرحله یعنی پیاده سازی دقیق هر آنچه که نیاز بوده است.
Refactor code : کدهای نوشته شده باید مجدداً بازبینی شده و در صورت نیاز تصحیح، پیاده سازی و یا حذف شوند.
Repeat: پیاده سازی تست جدید و انجام مراحل فوق...
بهترین ابزار برای این روش xUnit FrameWork هستش.
 

setup(); /* First, we should prepare our 'world' to make an isolated environment for testing */
...
/* Body of test - Here we make all the tests */
...
teardown(); /* In the end, whether succeed or fail we should clean up our 'world' to 
not disturb other tests or code */

 

سوالات مشابه

0 امتیاز
1 پاسخ 622 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
0 پاسخ 438 بازدید
0 امتیاز
0 پاسخ 542 بازدید
0 امتیاز
0 پاسخ 254 بازدید
...