A Practical Guide to Testing Object-Oriented Software (Paperback)
暫譯: 面向物件軟體測試實用指南 (平裝本)

John D. McGregor, David A. Sykes

  • 出版商: Addison Wesley
  • 出版日期: 2001-03-15
  • 定價: $1,575
  • 售價: 8.0$1,260
  • 語言: 英文
  • 頁數: 416
  • 裝訂: Paperback
  • ISBN: 0201325640
  • ISBN-13: 9780201325645
  • 相關分類: Object-oriented
  • 立即出貨(限量) (庫存=8)

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

商品描述


Description

A start-to-finish methodology for testing object-oriented software: What, why, how, who, and when!

  • Understanding the unique challenges of testing object-oriented software.
  • Establishing test priorities, choosing approaches, developing test software, and more.
  • Includes a beginning-to-end case study.
While developers and IT organizations increasingly acknowledge the importance of software testing, few know how to proceed -- especially when it comes to testing advanced object-oriented software systems. In this book, two leading O-O test researchers and consultants outline a start-to-finish methodology for testing: what to test, why to test it, how to test it, who should do the testing, and when. The book is organized around a task orientation, encompassing testing models; testing components, systems and subsystems; and planning for testing. The authors review the unique challenges associated with object-oriented software testing, offer practical insights into testing priorities, introduce each leading testing technique, and walk step-by-step through applying them. They review the development of custom test software, and demonstrate how to strengthen the ties between testing and the rest of the development process. Features include a detailed object-oriented testing FAQ, and a running case study that ties together all stages and elements of O-O testing. For every IT manager, project manager, software developer and engineer, and for any professional concerned with the measurement of software quality.

John D. McGregor is an internationally recognized software testing consultant currently affiliated with Clemson University in South Carolina, where he leads a team of researchers investigating state-of-the-art object-oriented software test methods. David A. Sykes is an independent consultant specializing in object-oriented testing.

Back to Top


Table Of Contents

1. Introduction.
Who Should Read This Book?
What Software Testing Is and Isn't.
What Is Different about Testing Object-Oriented Software?
Overview of Our Testing Approach.
Test Early.
Test Often.
Test Enough.

The Testing Perspective.
Organization of This Book.
Conventions Used in This Book.
A Continuing Example — Brickles.
Basic Brickles Components.
Brickles Physics.
Game Environment.


2. The Testing Perspective.
Testing Perspective.
Object-Oriented Concepts.
Object.
Message.
Interface.
Class.
Inheritance.
Polymorphism.

Development Products.
Analysis Models.
Design Models.
Source Code.

Summary.

3. Planning for Testing.
A Development Process Overview.
A Testing Process Overview.
Risk Analysis — A Tool for Testing.
Risks.
Risk Analysis.

A Testing Process.
Planning Issues.
Dimensions of Software Testing.
Who Performs Testing?
Which Pieces Are Tested?
When is Testing Performed?
How Is Testing Performed?
How Much Testing Is Adequate?

Roles in the Testing Process.
A Detailed Set of Test Activities.
Roles in the Testing Process.

Class Tester.
Integration Tester.
System Tester.
Test Manager.
A Detailed Set of Test Activities.

Planning Activities.
Scheduling Testing Activities.
Estimation.
A Process for Testing Brickles.
Document Templates.
Test Metrics.

Summary.

4. Testing Analysis and Design Models.
An Overview.
Place in the Development Process.
The Basics of Guided Inspection.
Evaluation Criteria.

Organization of the Guided Inspection Activity.
Basic Roles.
Individual Inspection.

Preparing for the Inspection.
Specifying the Inspection.
Realistic Models.
Selecting Test Cases for the Inspection.
Creating Test Cases .
Completing Checklists.
The Interactive Inspection Session.

Testing Specific Types of Models.
Requirements Model.
Analysis Models.
Design Models.
Testing Again.

Testing Models for Additional Qualities.
Summary.
Model Testing Checklist.

Addendum: A Process Definition for Guided Inspection.
Steps in the Process.
Detailed Step Descriptions.
Roles in the Process.


5. Class Testing Basics.
Class Testing.
Ways to Test a Class.
Dimensions of Class Testing.

Constructing Test Cases.
Adequacy of Test Suites for a Class.

Constructing a Test Driver.
Test Driver Requirements.
Tester Class Design.

Summary.

6. Testing Interactions.
Object Interactions.
Identifying Interactions.
Specifying Interactions.

Testing Object Interactions.
Testing Collection Classes.
Testing Collaborator Classes.
The Interaction between Testing and Design Approach.

Sampling Test Cases.
Orthogonal Array Testing.
Adequacy Criteria for OATS.
Another Example.
Another Application of OATS.

Testing Off-the-Shelf Components.
Case Study in Component Acceptance Testing.

Protocol Testing.
Test Patterns.
Listener Test Pattern.
Specific Example.

Testing Exceptions.
Testing Interactions at the System Level.

Summary.

7. Testing Class Hierarchies.
Inheritance in Object-Oriented Development.
Subclass Test Requirements.
Refinement Possibilities.
Hierarchical, Incremental Testing.

Organizing Testing Software.
Testing Abstract Classes.
Summary.

8. Testing Distributed Objects.
Basic Concepts.
Computational Models.
Concurrent.
Parallel.
Networked.
Distributed.

Basic Differences.
Non-Determinism.
Additional Infrastructure.
Partial Failures.
Time Outs.
Dynamic Nature of the Structure.

Threads.
Synchronization.

Path Testing in Distributed Systems.
Thread Models.

Life Cycle Testing.
Models of Distribution.
Basic Client/Server Model.
Standard Models of Distribution.
Comparisons and Implications.

A Generic Distributed Component Model.
Basic Architecture.
Local and Remote Interfaces.

Specifying Distributed Objects.
Interface Definition Language.
Traditional Pre/Post-Conditions and Invariants.

Temporal Logic.
Temporal Test Patterns.
Eventually(a).
Until(a,b).
Always.

A Test Environment.
Class Testing.
Interaction Testing.

Test Cases.
Model-specific tests.
Testing Every Assumption.
Infrastructure Tests.
Logic-Specific Test Cases.

The Ultimate Distributed System — The Internet.
Web Servers.
Life Cycle Testing of Internet Applications.
What Haven't We Said?

Summary.

9. Testing Systems.
Defining the System Test Plan.
Features Tested and Not Tested.
Test Suspension Criteria and Resumption Requirements.

Complementary Strategies for Selecting Test Cases.
Use Profile.
ODC.

Use Cases as Sources of Test Cases.
Constructing Use Profiles.
Using Scenarios to Construct Test Cases.
The Expected Results Section of a Test Case.
Brickles.

Testing Incremental Projects.
Legacy Projects.

Testing Multiple Representations.
What Needs to Be Tested.
Testing Against Functional Requirements.
Testing for Qualitative System Attributes.
Testing the System Deployment.
Testing After Deployment.
Testing Environment Interactions.
Test System Security.

Types of Testing.
Stress Testing.
Life Cycle Testing.
Performance Testing.

Testing Different Types of Systems.
Reactive Systems.
Embedded Systems.
Multi-Tiered Systems.
Distributed Systems.

Measuring Test Coverage.
What Is to Be Covered?
When Is Coverage Measured?
When Is Coverage Used?
ODCDefect Impacts.
More Examples.

Summary.

10. Components, Frameworks, and Product Lines.
Component Models.
Enterprise JavaBeans Component Model.
Testing Components vs. Objects.
Component Test Processes.
Test Cases Based on Interfaces.
Case Study — A GameBoard Component.

Frameworks.
Basic Issues.
Framework Testing Processes.
Inspecting a Framework.
Structuring Test Cases to Support a Framework.

Product Lines.
Testing at the Organizational Management Level.
Testing at the Technical Management Level.
Testing at the Software Engineering Level.
Testing in a Product Line Project.
Future.

Summary.

11. Conclusion.
Suggestions.
Organization and Process.
Data.
Standards.
Software Infrastructure.
Techniques.
Risks.
Brickles.
Finally.

Bibliography.
Index. 0201325640T04062001


Back to Top

商品描述(中文翻譯)

```

描述


從頭到尾的物件導向軟體測試方法論:什麼、為什麼、如何、誰以及何時!


  • 理解測試物件導向軟體的獨特挑戰。

  • 確立測試優先順序、選擇方法、開發測試軟體等。

  • 包含一個從開始到結束的案例研究。

雖然開發人員和IT組織越來越承認軟體測試的重要性,但很少有人知道該如何進行,尤其是在測試先進的物件導向軟體系統時。在本書中,兩位領先的物件導向測試研究者和顧問概述了一個從頭到尾的測試方法論:什麼需要測試,為什麼要測試它,如何進行測試,應該進行測試,以及何時進行測試。這本書圍繞任務導向組織,涵蓋測試模型;測試組件、系統和子系統;以及測試計劃。作者回顧了與物件導向軟體測試相關的獨特挑戰,提供了對測試優先順序的實用見解,介紹了每種主要測試技術,並逐步說明如何應用它們。他們回顧了自訂測試軟體的開發,並展示了如何加強測試與開發過程其他部分之間的聯繫。特色包括詳細的物件導向測試常見問題解答,以及一個貫穿所有階段和元素的物件導向測試案例研究。適合每位IT經理、專案經理、軟體開發人員和工程師,以及任何關心軟體品質測量的專業人士。

John D. McGregor 是國際知名的軟體測試顧問,目前與南卡羅來納州的克萊姆森大學合作,領導一個研究團隊,調查最先進的物件導向軟體測試方法。David A. Sykes 是專注於物件導向測試的獨立顧問。

回到頂部


目錄


1. 介紹。
誰應該閱讀本書?
軟體測試是什麼,什麼不是。
測試物件導向軟體有什麼不同?
我們的測試方法概述。
早期測試。
經常測試。
測試足夠。



測試的觀點。
本書的組織。
本書中使用的慣例。
持續的範例 — Brickles。
基本的 Brickles 組件。
Brickles 物理。
遊戲環境。





2. 測試的觀點。
測試觀點。
物件導向概念。
物件。
訊息。
介面。
類別。
繼承。
多型。



開發產品。
分析模型。
設計模型。
原始碼。



總結。


3. 測試計劃。
開發過程概述。
測試過程概述。
風險分析 — 測試工具。
風險。
風險分析。



測試過程。
計劃問題。
軟體測試的維度。
誰執行測試?
哪些部分被測試?
何時進行測試?
如何進行測試?
測試多少才算足夠?



測試過程中的角色。
詳細的測試活動集。
測試過程中的角色。



類別測試員。
整合測試員。
系統測試員。
測試經理。
詳細的測試活動集。



計劃活動。
排程測試活動。
估算。
測試 Brickles 的過程。
文件範本。
測試指標。



總結。


4. 測試分析和設計模型。
概述。
在開發過程中的位置。
指導檢查的基本知識。
評估標準。



指導檢查活動的組織。
基本角色。
個別檢查。



準備檢查。
指定檢查。
實際模型。
為檢查選擇測試案例。
創建測試案例。
完成檢查清單。
互動檢查會議。



測試特定類型的模型。
需求模型。
分析模型。
設計模型。
再次測試。



測試額外品質的模型。
總結。
模型測試檢查清單。



附錄:指導檢查的過程定義。
過程中的步驟。
詳細步驟描述。
過程中的角色。





5. 類別測試基礎。
類別測試。
測試類別的方法。
類別測試的維度。



構建測試案例。
類別的測試套件的充分性。



構建測試驅動程式。
測試驅動程式的要求。
測試者類別設計。



總結。


6. 測試互動。
物件互動。
識別互動。
指定互動。



測試物件互動。
測試集合類別。
測試協作類別。
測試與設計方法之間的互動。



抽樣測試案例。
正交陣列測試。
OATS 的充分性標準。
另一個範例。
OATS 的另一個應用。



測試現成組件。
組件接受測試的案例研究。



協定測試。
測試模式。
監聽器測試模式。
具體範例。



測試例外。
在系統層級測試互動。



總結。


7. 測試類別層級。
物件導向開發中的繼承。
子類別測試要求。
精煉的可能性。
層級增量測試。



組織測試軟體。
測試抽象類別。
總結。


8. 測試分散物件。
基本概念。
計算模型。
同步。
並行。
網路化。
分散式。



基本差異。
非確定性。
額外基礎設施。
部分失敗。
超時。
結構的動態性。



執行緒。
同步。



在分散系統中的路徑測試。
執行緒模型。



生命週期測試。
分配模型。
基本客戶/伺服器模型。
標準分配模型。
比較與影響。



一個通用的分散組件模型。
基本架構。
本地和遠端介面。



指定分散物件。
介面定義語言。
傳統的前/後條件和不變式。



時間邏輯。
時間測試模式。
最終(a)。
直到(a,b)。
總是。



測試環境。
類別測試。
互動測試。



測試案例。
模型特定測試。
測試每一個假設。
基礎設施測試。
邏輯特定測試案例。



終極分散系統 — 網際網路。
網頁伺服器。
網際網路應用的生命週期測試。
我們還沒有說什麼?



總結。


9. 測試系統。
定義系統測試計劃。
測試的功能和未測試的功能。
測試暫停標準和恢復要求。



選擇測試案例的補充策略。
使用概況。
ODC。



使用案例作為測試案例的來源。
構建使用概況。
使用情境構建測試案例。
測試案例的預期結果部分。
Brickles。



測試增量專案。
遺留專案。



測試多重表示。
需要測試的內容。
根據功能需求進行測試。
測試質量系統屬性。
測試系統部署。
部署後的測試。
測試環境互動。
測試系統安全性。



測試類型。
壓力測試。
生命週期測試。
性能測試。



測試不同類型的系統。
反應系統。
嵌入式系統。
多層系統。
分散系統。



測量測試覆蓋率。
什麼需要被覆蓋?
何時測量覆蓋率?
何時使用覆蓋率?
ODC缺陷影響。
更多範例。



總結。


10. 組件、框架和產品線。
組件模型。
企業 JavaBeans 組件模型。
測試組件與物件。
組件測試過程。
基於介面的測試案例。
案例研究 — 一個遊戲板組件。



框架。
基本問題。
框架測試過程。
檢查框架。
結構化測試案例以支持框架。



產品線。
在組織管理層進行測試。
在技術管理層進行測試。
在軟體工程層進行測試。
在產品線專案中進行測試。
未來。



總結。


11. 結論。
建議。
組織與過程。
數據。
標準。
軟體基礎設施。
技術。
```