Developer Testing: Building Quality Into Software (Addison-Wesley Signature)
暫譯: 開發者測試:將品質融入軟體中 (Addison-Wesley Signature)

Alexander Tarlinder

買這商品的人也買了...

相關主題

商品描述

How do successful agile teams deliver bug-free, maintainable software—iteration after iteration? The answer is: By seamlessly combining development and testing. On such teams, the developers write testable code that enables them to verify it using various types of automated tests. This approach keeps regressions at bay and prevents “testing crunches”—which otherwise may occur near the end of an iteration—from ever happening. Writing testable code, however, is often difficult, because it requires knowledge and skills that cut across multiple disciplines.

 

In Developer Testing, leading test expert and mentor Alexander Tarlinder presents concise, focused guidance for making new and legacy code far more testable. Tarlinder helps you answer questions like: When have I tested this enough? How many tests do I need to write? What should my tests verify? You’ll learn how to design for testability and utilize techniques like refactoring, dependency breaking, unit testing, data-driven testing, and test-driven development to achieve the highest possible confidence in your software. Through practical examples in Java, C#, Groovy, and Ruby, you’ll discover what works—and what doesn’t.

 

You can quickly begin using Tarlinder’s technology-agnostic insights with most languages and toolsets while not getting buried in specialist details. The author helps you adapt your current programming style for testability, make a testing mindset “second nature,” improve your code, and enrich your day-to-day experience as a software professional. With this guide, you will

  • Understand the discipline and vocabulary of testing from the developer’s standpoint
  • Base developer tests on well-established testing techniques and best practices
  • Recognize code constructs that impact testability
  • Effectively name, organize, and execute unit tests
  • Master the essentials of classic and “mockist-style” TDD
  • Leverage test doubles with or without mocking frameworks
  • Capture the benefits of programming by contract, even without runtime support for contracts
  • Take control of dependencies between classes, components, layers, and tiers
  • Handle combinatorial explosions of test cases, or scenarios requiring many similar tests
  • Manage code duplication when it can’t be eliminated
  • Actively maintain and improve your test suites
  • Perform more advanced tests at the integration, system, and end-to-end levels
  • Develop an understanding for how the organizational context influences quality assurance
  • Establish well-balanced and effective testing strategies suitable for agile teams

商品描述(中文翻譯)

成功的敏捷團隊如何在每次迭代中交付無錯誤且可維護的軟體?答案是:通過無縫結合開發與測試。在這樣的團隊中,開發人員撰寫可測試的程式碼,使他們能夠使用各種自動化測試來驗證程式碼。這種方法可以防止回歸問題,並避免在迭代結束時可能出現的「測試壓力」。然而,撰寫可測試的程式碼通常是困難的,因為這需要跨越多個學科的知識和技能。

在《Developer Testing》中,領先的測試專家和導師亞歷山大·塔林德(Alexander Tarlinder)提供了簡明且專注的指導,幫助您使新舊程式碼變得更具可測試性。塔林德幫助您回答以下問題:我何時測試得夠多?我需要撰寫多少測試?我的測試應該驗證什麼?您將學會如何設計以便於測試,並利用重構、依賴破壞、單元測試、數據驅動測試和測試驅動開發等技術,以達到對軟體的最高信心。通過 Java、C#、Groovy 和 Ruby 的實際範例,您將發現什麼有效,什麼無效。

您可以快速開始使用塔林德的技術無關見解,適用於大多數語言和工具集,而不會被專業細節所淹沒。作者幫助您調整當前的程式設計風格以便於測試,使測試思維成為「第二天性」,改善您的程式碼,並豐富您作為軟體專業人士的日常體驗。通過這本指南,您將能夠:

- 從開發者的角度理解測試的學科和詞彙
- 基於成熟的測試技術和最佳實踐來進行開發者測試
- 辨識影響可測試性的程式碼結構
- 有效命名、組織和執行單元測試
- 精通經典和「模擬風格」的測試驅動開發(TDD)要素
- 利用測試雙重(test doubles),無論是否使用模擬框架
- 即使在沒有運行時合約支持的情況下,也能捕捉合約編程的好處
- 控制類別、組件、層和層級之間的依賴關係
- 處理測試案例的組合爆炸,或需要許多相似測試的情境
- 當無法消除程式碼重複時,管理程式碼重複
- 積極維護和改善您的測試套件
- 在整合、系統和端到端層面執行更高級的測試
- 發展對組織背景如何影響質量保證的理解
- 建立適合敏捷團隊的平衡且有效的測試策略