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經理、項目經理、軟件開發人員和工程師,以及任何關心軟件質量測量的專業人士。

目錄

1. 簡介
誰應該閱讀本書?
軟件測試的定義和非定義。
測試面向對象軟件的不同之處。
我們測試方法的概述。
早期測試。
經常測試。
足夠的測試。
測試的觀點。
本書的組織。
本書中使用的約定。
一個連續的例子 - Brickles。
基本的Brickles組件。
Brickles物理。
遊戲環境。

2. 測試的觀點
測試的觀點。
面向對象的概念。
對象。
消息。
接口。
類。
繼承。
多態。

3. 測試計劃
開發過程概述。
測試過程概述。
風險分析 - 測試的工具。
風險。
風險分析。
測試過程。
計劃問題。
軟件測試的維度。
誰執行測試?
哪些部分進行測試?
何時進行測試?
如何進行測試?
多少測試是足夠的?
測試過程中的角色。
詳細的測試活動集合。