وارد کانینگام(Ward Cunningham): “نویسندگان این کتاب با استفاده از کنترل محیطی که نرمافزار در آن رشد میکند، انقلابی در هنر برنامهنویسی پدید آوردند.”
رابرت سی.مارتین(Robert C. Martin): “در نهایت باید گفت، که این کتابی اشباع شده از کد است که همزیستی عمیق بین TDD و ODD را نمایش میدهد. این کتاب نگهبان[این اصول] است.”
مایکل فِدِرز(Michael Feathers): “اگر میخواهید در هنر TDD یک متخصص باشید، باید ایدههای این کتاب را درک کنید”
توسعه تست محور(Test-Driven Development-TDD) در حال حاضر یک تکنیک بنیان شده برای تحویل یک نرمافزار سریعتر و بهتر است. TDD بر یک ایده ساده بنا شده است: قبل از اینکه خود کد را بنویسید، تستها را برای کدتان بنویسید. با این حال، این ایده “ساده” برای انجام به شکل مناسب نیازمند مهارت و قضاوت است. در حال حاضر یک راهنمای عملی برای TDD وجود دارد که شما را به جایی فراتر از مفاهیم اولیه میبرد. بر اساس یک دهه تجربه در ساخت سیستمها در دنیای واقعی، دو پیشگام در TDD در این کتاب نشان میدهند که چگونه بگذاریم تستها، توسعه ما را هدایت کنند، و چگونه نرمافزاری که منسجم، قابل اطمینان، و قابل نگهداشت است را رشد دهیم.
در این کتاب استیو فریمن(Steve Freeman) و نات پرِیسی(Nat Pryce) فرآیندهایی را که باید به کار برند، اصول طراحی که آنها تلاش میکنند اتخاذ کنند، و برخی ابزارهایی که در انجام کار به آنها کمک میکند را تشریح مینمایند. از طریق یک مثال(که روی آن کار شده است تا بسط یابد)، شما خواهید آموخت که TDD چگونه با استفاده از تستها(به منظور مشتق کردن Featureها و ساختار شی گرای کد) و Mock Objectها(برای یافتن و تشریح ارتباطات میان Objectها) در سطح چندگانه کار میکند. در طول فصول موجود در کتاب، نویسندگان به طور سیستماتیک به چالشهایی میپردازند که تیمهای توسعه در مواجهه با TDD، با آن برخورد میکنند(از چالش یکپارچهسازی TDD در فرایندهای شما تا تست کردن سختترین Featureها). مطالب پوشش یافته عبارتند از:
- پیادهسازی TDD به طور موثر: آغاز، و حفظ حرکت در طول پروژه
- ایجاد کد پایدارتر، رساتر و پاکیزهتر
- استفاده از تستها برای تمرکز بیوقفه روی تقویت کیفیت
- درک این موضوع که TDD، Mock Objectها، و طراحی شی گرا چگونه در یک پروژه نرمافزار واقعی گرد هم میآیند
- استفاده از Mock Objectها برای هدایت طراحیهای شی گرا
- موفقیت در جاییکه TDD سخت است: مدیریت Test Dataهای پیچیده، و تست مانایی(Persistence) و همزمانی(Concurrency)