基本信息
- 原书名:Testing Object-Oriented System:Models,Patterns,and Tools
- 作者: (美)Robert V. Binder
- 译者: 华庆一 王斌君 陈莉
- 丛书名: 其他
- 出版社:人民邮电出版社
- ISBN:7115091528
- 上架时间:2001-8-8
- 出版日期:2001 年4月
- 页码:796
- 版次:1-1
- 所属分类:计算机 > 软件工程及软件方法学 > 面向对象
编辑推荐
本书是从模型、样式和工具3个方面介绍面向对象应用程序的设计和测试技术的权威指南。
本书主要内容包括:
·面向对象编程的bug的危害及其与程序化测试代码的不同;
·如何针对类、簇、运用类变量的子系统、数据流模型接口、层次状态机、类关联和场景分析设计基于基责任的测试;
·如何通过抽象类、一般类、组件和框架的有效测试来支持复用;
·如何通过可测试的用例来实现全面的系统测试;
·如何得到预期的测试结果和评估一个对象的后置测试状态;
·如何通过断言、面向对象的测试驱动、桩和测试框架进行自动测试。
内容简介
目录
第1章 一个小问题
第2章 如何使用本书
2.1 读者向导
2.2 约定
2.2.1 每章的基本成分
2.2.2 难度
2.2.3 标准
2.2.4 面向对象术语
2.2.5 程序设计语言和代码举例
2.2.6 测试工具
2.2.7 欢迎指出本书的错误
2.3 用于面向对象测试的FAQ
2.3.1 为什么要测试对象
2.3.2 测试设计
2.3.3 方法和类的测试设计
2.3.4 复用的测试
2.3.5 子系统和应用系统的测试设计
2.3.6 集成测试和开发的顺序
2.3.7 回归测试和重复的增量的开发
前言
《面向对象系统的测试》是指导人们设计面向对象软件的测试包及自动测试的一本书。它向人们说明了,针对面向对象编程语言及面向对象的分析/设计方法,如何设计测试实例的过程,类、类簇、框架、子系统和应用系统均在考虑之列,并对许多测试设计问题提供了实用的综合指导。具体包括如下内容:
如何利用行为模型、状态一空间覆盖和接口数据流分析,设计用于类和小簇的基于责任能力的测试。
如何利用覆盖分析,评估测试的完全性。
如何利用依赖分析和层次状态模型,设计用于族和子系统的基于责任的测试。
如何利用OOA/D方法,设计用于应用系统的基于责任的测试。
如何用面向对象的驱动器测试、桩测试、框架测试和内置测试,使测试执行自动化。
本书是关于系统工程和软件工程的书,更是一本有关测试面向对象软件的书。用于测试设计的模型(model)是必须的—本书向读者展示了如何开发可测试的模型,用于防止和排除错误。书中讨论的样式(pattern)对于设计测试包是非常有效的。工具(tool)可用于实现测试设计——本书告诉读者如何设计有效的自动测试框架。
这本书适合你吗
本书是为那些想要改善面向对象系统的可靠性的人而写的,涉及了基本方法和高级方法。我一直想使这本书像一个设计得很好的厨房,如果你所需要的是一块三明治和一杯冷饮,而你并不了解高水平的配方、各种成分的目录等,有了这本书,就足以为20个客人准备一套七个系列的午餐。
这里,假设读者已至少了解了面向对象程序设计和面向对象分析/设计。如果你是像大多数面向对象的开发者一样,对某一个语言(大多数可能是C++或Java)已经很在行,可能还生成过或使用过某一个面向对象的模型,但是我并不认为你对测试了解得很多;你还需要一些计算机科学和软件工程的背景,以便于理解本书更深入的内容。但是即使没有特殊的理论训练,你也能应用测试设计样式。
如果必须回答下列问题之一,你会发现本书是很有用的:
测试过程软件和测试面向对象软件之间的不同是什么?
我刚刚写了一个新的子类,它似乎是可运行的,我还需要重新测试所继承的超类的特征吗?
需要什么类型的测试,以确信一个类对于所有可能的消息序列具有正确的行为?
对于快速的、增量的开发,一种好的集成测试策略是什么?
用UML表示的模型,如何用于设计测试?
为了使类和应用的测试更容易,我能做些什么?
如何利用测试获取更多的复用?
应该设计测试驱动模块和桩模块吗?
序言
几乎所有在测试过程式程序设计语言程序中所学到的东西,也适用于测试面向对象实现。如本书所示,面向对象测试也是建立在这样的基础之上的。然而,对面向对象来说,各种测试技术的重要性和有效性是不同的。例如,人们可能没有理由将数据流测试和有限状态机测试,同时用于用过程式程序设计语言写的应用;而对一个利用了OOP必须提供的东西的应用,则同时使用这些技术是不可避免的。此外,单元测试和集成测试的相对重要性也有改变。在过程式语言中,单元测试处于首要地位,而集成测试次之。但在OOP中,这种相对重要性恰好相反。
面向对象程序设计也给测试者带来新的问题,这些问题在过程式程序设计中无法发现。在这些问题中,多态、继承和动态绑定(binding)是最易出问题的地方,而它们又是面向对象的核心。
某些早期的面向对象测试研究相当悲观,竞然到了说“面向对象有什么用呢?我们完全无法对它进行测试,或许也无法进行真正的调试”的地步。这种说法是OOP研究团体和机敏的从业者都不愿接受的。测试面向对象软件的方法正是在这些团体的共同关心下出现的。这些方法使用了新的技术和/或为了适合于这种新范式而经过改造的老技术。
然而,大部分这样的知识从业人员是难于得到的;它们散布在成百上千的研究论文或大量未发表的OOP资料之中。Binder对研究成果精巧的论述消除了这种隔阂。这些研究成果,尽管是建立在以前程序设计范式(经过几十年使用业已证明)的坚实基础之上,但也经过了在给OOP提供了方法和技术的大厦中实践的严酷现实锤炼。我相信本书提供了OOP丢失的那一半-测试的那一半。
Boris Beizer
阿宾格登 宾夕法尼亚