Ch8-面向对象软件测试-STMT解析.ppt
文本预览下载声明
软件测试方法和技术 - Ch.8面向对象软件的测试 Zhu.Kerry@ 第七章回顾 第八章:面向对象软件的测试 8.1面向对象软件的特点 面向对象(object-oriented) 面向对象(object-oriented) 可重用性。从一开始对象的产生就是为了重复利用,完成的对象将在今后的程序开发中被部分或全部地重复利用。 可靠性。由于面向对象的应用程序包含了通过测试的标准部分,因此更加可靠。由于大量代码来源于成熟可靠的类库,因而新开发程序的新增代码明显减少,这是程序可靠性提高的一个重要原因。 连续性。具有面向对象特点的C++与C语言有很大的兼容性,C程序员可以比较容易地过渡到C++语言开发工作。 面向对象(object-oriented) 8.2面向对象测试的层次与数据流 类与子类的测试 分层与增量 分层与增量 -测试用例选择 D的接口中添加新的操作,并且有可能是D中的一个新方法实现的新操作。新操作引入了新的功能/代码,这些都需要测试。 在D中改变那些在C中声明的操作规范,需要为操作添加新的基于规范的测试用例。附加的测试用例提供了符合其前置条件的新输入,并且对由任何加强了的后置条件导致的新的期望结果进行检查 。 在D中覆盖那些在C中实现了某个操作并且被D继承了的方法,可以复用于该方法的所有继承来的基于规范的测试用例 。 在D中添加新的实例变量来实现更多的状态和/或属性,最有可能与新的操作和/或重载方法中代码有关,而且关系到对测试的处理。 在D中改变类常量。类常量累计成每个测试用例的附加的后置条件。 面向对象层次结构测试重点 面向对象层次结构测试重点 面向对象层次结构测试重点 8.3面向对象的单元测试 面向对象的单元测试 8.4 面向对象的集成测试 8.4 面向对象的集成测试-对象交互 8.4 面向对象的集成测试—常用方法 8.4 面向对象的集成测试—分布式对象测试 8.4 面向对象的集成测试 -分布式对象的概念和特点 8.4 面向对象的集成测试 Q A * * Kerry Zhu Zhu.Kerry@ Zhu.Kerry@ 验收测试的过程和主要内容 产品规格说明书的验证 用户界面和可用性测试 兼容性测试 可安装性和可恢复性测试 文档测试 验收测试报告和用户验收测试 Zhu.Kerry@ 8.1面向对象软件的特点 8.2面向对象测试的层次与数据流 8.3面向对象的单元测试 8.4面向对象的集成测试 Zhu.Kerry@ 我们生活在一个对象的世界里,每个对象有一定的属性,把属性相同的对象进行归纳就形成类,如家具就可以看作类,其主要的属性有价格、尺寸、重量、位置和颜色等,无论我们谈论桌子、椅子还是沙发、衣橱,这些属性总是可用的,因为它们都是家具而继承了为类定义的所有属性。实际上,计算机软件所创建的面向对象思想同样来源于生活。 除了属性之外,每个对象可以被一系列不同的方式操纵,它可以被买卖、移动、修改(如漆上不同的颜色)。这些操作或方法将改变对象的一个或多个属性。这样所有对类的合法操作可以和对象的定义联系在一起,并且被类的所有实例继承。 Zhu.Kerry@ 面向对象(object-oriented) = 对象 + 分类 + 继承 + 通信 Zhu.Kerry@ 对象的封装和抽象 继承性与多态性 Zhu.Kerry@ 继承与多态 面向对象软件测试的层次与数据流,是面向对象软件的单元测试与集成测试的基础。 Zhu.Kerry@ Zhu.Kerry@ 假设类D是类C的子类,类C已进行了充分的测试 Zhu.Kerry@ 派生类D是C的子类,那么所有的用于C的基于规范的测试用例也都适用于D。引入术语“继承的测试用例”来代表从父类测试用例中选取出来的、用于子类的测试用例。可以通过增量变化分析来确定继承的测试用例中哪些在测试子类时必须执行、哪些可以不执行。 合理的分析,有利于找出更有价值的测试用例。 Zhu.Kerry@ Zhu.Kerry@ 对认定的对象的测试 OOA(面向对象分析)中认定的对象是对问题空间中的结构、其他系统、设备、被记忆的事件、系统涉及的人员等实际实例的抽象。对它的测试可以从如下方面考虑: 认定的对象是否全面,其名称应该尽量准确、适用,是否问题空间中所涉及到的实例都反映在认定的抽象对象中。 认定的对象是否具有多个属性。只有一个属性的对象通常应看作其他对象的属性而不是抽象为独立的对象 对认定为同一对象的实例是否有共同的、区别于其他实例的共同属性,是否提供或需要相同的服务,如果服务随着不同的实例而变化,认定的对象就需要分解或利用继承性来分
显示全部