Effective Software Testing: 50 Specific Ways to Improve Your Testing

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.

商品描述(中文翻譯)

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

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

目錄:

前言
致謝

第一部分:需求階段
1. 從一開始就讓測試人員參與
2. 驗證需求
3. 一旦有需求,立即設計測試程序
4. 確保需求變更得到溝通
5. 注意基於現有系統開發和測試的風險

第二部分:測試計劃
6. 理解任務和相關的測試目標
7. 考慮風險
8. 根據優先功能計劃測試工作
9. 考慮軟體問題
10. 獲取有效的測試數據
11. 計劃測試環境
12. 估計測試準備和執行時間

第三部分:測試團隊
13. 定義角色和責任
14. 需要多種測試技能、主題專業知識和經驗
15. 評估測試人員的效能

第四部分:系統架構
16. 理解架構和底層組件
17. 驗證系統支持可測試性
18. 使用日誌記錄來增加系統的可測試性
19. 驗證系統支持調試和發布執行模式

第五部分:測試設計和文檔
20. 分而治之
21. 強制使用測試程序模板和其他測試設計標準
22. 從需求中獲得有效的測試案例
23. 把測試程序當作「活的」文件
24. 使用系統設計和原型
25. 在設計測試案例場景時使用成熟的測試技巧
26. 避免在測試程序中使用限制和詳細數據元素
27. 應用探索性測試

第六部分:單元測試
28. 結構化開發方法以支持有效的單元測試
29. 在實施之前或同步開發單元測試
30. 將單元測試執行納入構建過程

第七部分:自動化測試工具
31. 瞭解不同類型的測試支援工具
32. 考慮自行開發工具而非購買
33. 注意自動化工具對測試工作的影響
34. 關注組織的需求
35. 在應用原型上測試工具

第八部分:自動化測試-選擇的最佳實踐
36. 不要僅依賴錄製/回放
37. 在必要時開發測試鉤子
38. 使用成熟的測試腳本開發技巧
39. 盡可能自動化回歸測試
40. 實施自動構建和煙霧測試

第九部分:非功能性測試