توسعهٔ آزمون محور

توسعهٔ آزمونمحور (به انگلیسی: Test-driven development) یک فرایند توسعهٔ نرمافزاری است که بر پایه تکرار یک سری دورههای خیلی کوتاه توسعه قرار دارد: ابتدا برنامهنویس یک مورد آزمایشی (در ابتدا دارای شکست) برای بهبود مطلوب یا ایجاد قابلیت جدید مینویسد، سپس کمترین مقدار تغییرات کدی را که باعث قبول شدن آزمایش میشود مینویسد، سپس کد جدید را با استانداردهای قابل قبول سازماندهی مجدد میکند.
برنامه نویسان همینطور میتوانند این مفهوم را برای بهبود و اشکال زدایی کدهای نوشته شده با روشهای قدیمی تر به کار گیرند.
چرخه توسعه آزمون محور (به انگلیسی: Test-driven development؛ به اختصار TDD) یک فرایند توسعه نرمافزار است که متکی بر تکرار یک چرخه توسعه بسیار کوتاه است که طی آن نیازمندیها تبدیل به موارد آزمون بسیار خاص میشوند و سپس نرمافزار به قدری بهبود بخشیده میشود که فقط بتواند تستهای مطرح شده را پاس کند. این روند مخالف نحوه توسعه سنتی نرمافزار است که اجازه میدهد تا بخشهایی به نرمافزار اضافه شود که هنوز تستهای لازم را نگذراندهاست و سپس آن بخشهای جدید را تست میکند.
توسعه آزمون محور، بر مبنای نوشتن آزمون (Test) برای نرمافزار بر اساس نیازمندیها (requirements) قبل از نوشتن برنامه شکل گرفتهاست. در این فرایند هدف توسعه دهنده معطوف به گذراندن این تستها میشود. ابتدا چون برنامه خالی است، تمامی آزمونها باید با عدم موفقیت رو به رو شوند، اما برنامهنویس گام به گام برای هر ویژگی (feature) این آزمونها را پشت سر میگذارد که اگر در هر مرحله موفقیتآمیز نبود، بازمیگردد و کد را دیباگ میکند.
البته باید توجه داشت که در متدولوژی TDD علاوه بر آزمونهای گام به گام نیازمند آزمونهای موازی مستقل نیز هستیم.
چرخه کلی روش توسعه آزمون محور شامل گامهایی به ترتیب زیر است که بر اساس کتاب Test-Driven Development by Example نوشته شدهاست:
۱. یک تست جدید بنویس
در روش توسعه آزمون محور هر ویژگی جدید با افزودن یک تست شروع میشود. طبیعی است این تست باید طوری طراحی شود که تنها با افزوده شدن صحیح و کامل ویژگی جدید مطلوب پاس شود.
۲. تمام تستها را اجرا کن و ببین آیا تست جدید پاس میشود یا خیر
در این مرحله قصد داریم مطمئن شویم تست جدیدی که افزودیم خطا بدهد، وگرنه با افزودن کد جدید امکان اینکه چک شود ویژگی جدید واقعاً به درستی افزوده شدهاست یا خیر وجود نخواهد داشت.
۳. کد را بنویس
در این گام تنها کد اضافه ای که نیاز هست تا تست جدید پاس شود را مینویسیم و به زیاده روی در توسعه نمیپردازیم.
۴. مجدداً تستها را اجرا کن
این بار اگر تمام تستها پاس شوند مطمئن میشویم که تمام ویژگیهای قبلی به درستی کار میکنند و علاوه بر آن ویژگی جدید نیز بهطور صحیح اضافه شدهاست.
۵. کد را Refactor کن
روشن است که کد کل برنامه باید هر چند وقت یک بار تمیز و مرتب شود تا از ایجاد کد کثیف اجتناب شود و امکان بهبود مناسب و سریع در آینده فراهم باشد. در این گام قصد داریم دقیقاً همین کار را انجام دهیم. در این گام بهطور ویژه لازم است به ملاحظات توسعه همانند رعایت وراثت و خوانایی و امکان نگهداری مناسب کد و الگوهای طراحی برنامه توجه داشته باشیم.
۶. گامهای ۱ الی ۵ را (برای هر ویژگی جدید که اضافه میکنی) تکرار کن
برای هر ویژگی جدید گامهای فوق را تکرار میکنیم.
دیدگاهتان را بنویسید