Effective Software Testing: 50 Specific Ways to Improve Your Testing
暫譯: 有效的軟體測試:50種具體方法提升測試品質

Elfriede Dustin

  • 出版商: Addison Wesley
  • 出版日期: 2002-12-28
  • 定價: $1,980
  • 售價: 6.0$1,188
  • 語言: 英文
  • 頁數: 304
  • 裝訂: Paperback
  • ISBN: 0201794292
  • ISBN-13: 9780201794298
  • 相關分類: 軟體測試
  • 立即出貨(限量) (庫存=4)

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

商品描述

Effective Software Testing explores fifty critically important best practices, pitfalls, and solutions. Gleaned from the author's extensive practical experience, these concrete items will enable quality assurance professionals and test managers to immediately enhance their understanding and skills, avoid costly mistakes, and implement a state-of-the-art testing program.

This book places special emphasis on the integration of testing into all phases of the software development life cycle--from requirements definition to design and final coding. The fifty lessons provided here focus on the key aspects of software testing: test planning, design, documentation, execution, managing the testing team, unit testing, automated testing, nonfunctional testing, and more.

Table of Contents

Preface.
Acknowledgments.

I. REQUIREMENTS PHASE.

1. Involve Testers from the Beginning.
2. Verify the Requirements.
3. Design Test Procedures as Soon as Requirements Are Available.
4. Ensure That Requirement Changes Are Communicated.
5. Beware of Developing and Testing Based on an Existing System.

II. TEST PLANNING.

6. Understand the Task at Hand and the Related Testing Goal.
7. Consider the Risks.
8. Base Testing Efforts on a Prioritized Feature Schedule.
9. Keep Software Issues in Mind.
10. Acquire Effective Test Data.
11. Plan for the Test Environment.
12. Estimate Test Preparation and Execution.

III. THE TESTING TEAM.

13. Define the Roles and Responsibilities.
14. Require a Mixture of Testing Skills, Subject Matter Expertise, and Experience.
15. Evaluate the Testers' Effectiveness.

IV. THE SYSTEM ARCHITECTURE.

16. Understand the Architecture and Underlying Components.
17. Verify That the System Supports Testability.
18. Use Logging to Increase System Testability.
19. Verify That the System Supports Debug vs. Release Execution Modes.

V. TEST DESIGN AND DOCUMENTATION.

20. Divide and Conquer.
21. Mandate the Use of a Test Procedure Template, and Other Test Design Standards.
22. Derive Effective Test Cases from Requirements.
23. Treat Test Procedures as "Living" Documents.
24. Use System Design and Prototypes.
25. Use Proven Testing Techniques When Designing Test Case Scenarios.
26. Avoid Constraints and Detailed Data Elements in Test Procedures.
27. Apply Exploratory Testing.

VI. UNIT TESTING.

28. Structure the Development Approach to Support Effective Unit Testing.
29. Develop Unit Tests in Parallel or before the Implementation.
30. Make Unit Test Execution Part of the Build Process.

VII. AUTOMATED TESTING TOOLS.

31. Be Aware of the Different Types of Testing Support Tools.
32. Consider Building a Tool Instead of Buying One.
33. Be Aware of the Impact of Automated Tools on the Testing Effort.
34. Focus on the Needs of Your Organization.
35. Test the Tools on an Application Prototype.

VIII. AUTOMATED TESTING—SELECTED BEST PRACTICES.

36. Do Not Rely Solely on Capture/Playback.
37. Develop a Test Harness When Necessary.
38. Use Proven Test Script Development Techniques.
39. Automate Regression Tests Whenever Possible.
40. Implement Automated Builds and Smoke-Tests.

IX. NONFUNCTIONAL TESTING.

41. Do Not Make Nonfunctional Testing an Afterthought.
42. Conduct Performance Testing with Production Sized Databases.
43. Tailor Usability Tests to the Intended Audience.
44. Consider All Aspects of Security, for Specific Requirements and System-Wide.
45. Investigate the System's Implementation to Plan for Concurrency Tests.
46. Setup an Efficient Environment for Compatibility Testing.

X. MANAGING THE TEST EXECUTION.

47. Clearly Define the Beginning and the End of the Test Execution Cycle.
48. Isolate the Test Environment from the Development Environment.
49. Implement a Defect Tracking Life-Cycle.
50. Track the Execution of the Test Program.

商品描述(中文翻譯)

《有效的軟體測試》探討了五十個關鍵的重要最佳實踐、陷阱和解決方案。這些具體項目來自作者的豐富實務經驗,將使品質保證專業人員和測試經理能夠立即提升他們的理解和技能,避免昂貴的錯誤,並實施最先進的測試計畫。

本書特別強調將測試整合到軟體開發生命週期的所有階段——從需求定義到設計和最終編碼。這裡提供的五十個課程專注於軟體測試的關鍵方面:測試規劃、設計、文件、執行、管理測試團隊、單元測試、自動化測試、非功能性測試等。

**目錄**

前言。
致謝。

I. 需求階段。
1. 從一開始就讓測試人員參與。
2. 驗證需求。
3. 在需求可用時立即設計測試程序。
4. 確保需求變更得到傳達。
5. 小心基於現有系統進行開發和測試。

II. 測試規劃。
6. 了解當前任務及相關測試目標。
7. 考慮風險。
8. 根據優先級特徵計畫測試工作。
9. 隨時考慮軟體問題。
10. 獲取有效的測試數據。
11. 計畫測試環境。
12. 估算測試準備和執行時間。

III. 測試團隊。
13. 定義角色和責任。
14. 要求具備多種測試技能、主題專業知識和經驗的混合。
15. 評估測試人員的有效性。

IV. 系統架構。
16. 了解架構和底層組件。
17. 驗證系統是否支持可測試性。
18. 使用日誌來提高系統的可測試性。
19. 驗證系統是否支持調試與發佈執行模式。

V. 測試設計和文件。
20. 分而治之。
21. 強制使用測試程序模板及其他測試設計標準。
22. 從需求中推導有效的測試案例。
23. 將測試程序視為“活”的文件。
24. 使用系統設計和原型。
25. 在設計測試案例場景時使用經驗證的測試技術。
26. 避免在測試程序中使用約束和詳細數據元素。
27. 應用探索性測試。

VI. 單元測試。
28. 結構化開發方法以支持有效的單元測試。
29. 在實施之前或與之並行開發單元測試。
30. 將單元測試執行納入構建過程。

VII. 自動化測試工具。
31. 了解不同類型的測試支持工具。
32. 考慮自行開發工具而非購買。
33. 了解自動化工具對測試工作的影響。
34. 專注於組織的需求。
35. 在應用原型上測試工具。

VIII. 自動化測試——選定的最佳實踐。
36. 不要僅依賴捕獲/回放。
37. 在必要時開發測試工具。
38. 使用經驗證的測試腳本開發技術。
39. 盡可能自動化回歸測試。
40. 實施自動化構建和煙霧測試。

IX. 非功能性測試。
41. 不要將非功能性測試視為事後考量。
42. 使用生產規模的數據庫進行性能測試。
43. 根據目標受眾量身定制可用性測試。
44. 考慮所有安全方面,包括特定需求和系統範圍內的安全性。
45. 調查系統的實施以計畫並發測試。
46. 為兼容性測試設置高效的環境。

X. 管理測試執行。
47. 清楚定義測試執行週期的開始和結束。
48. 將測試環境與開發環境隔離。
49. 實施缺陷追蹤生命週期。
50. 追蹤測試計畫的執行。