- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件测试方法和技术第2版第8章 面向对象软件的测试 zhang_shu_yan@163.com 张淑艳 第七章回顾 验收测试过程 产品规格说明书的验证 用户界面和可用性测试 兼容性测试 可安装性和可恢复性测试 文档测试 第八章:面向对象软件的测试 8.1面向对象软件测试概述 8.2面向对象的单元测试 8.3面向对象的集成测试 8.4 基于客户角度的Java 测试 8.5基于程序角度的Java测试 8.1概述 我们生活在一个对象的世界里,每个对象有一定的属性,把属性相同的对象进行归纳就形成类,如家具就可以看作类,其主要的属性有价格、尺寸、重量、位置和颜色等,无论我们谈论桌子、椅子还是沙发、衣橱,这些属性总是可用的,因为它们都是家具而继承了为类定义的所有属性。实际上,计算机软件所创建的面向对象思想同样来源于生活。 除了属性之外,每个对象可以被一系列不同的方式操纵,它可以被买卖、移动、修改(如漆上不同的颜色)。这些操作或方法将改变对象的一个或多个属性。这样所有对类的合法操作可以和对象的定义联系在一起,并且被类的所有实例继承。 面向对象(object-oriented) 面向对象(object-oriented) = 对象 + 分类 + 继承 + 通信 类与子类的测试 假设类D是类C的子类,类C已进行了充分的测试 分层与增量 派生类D是C的子类,那么所有的用于C的基于规范的测试用例也都适用于D。引入术语“继承的测试用例”来代表从父类测试用例中选取出来的、用于子类的测试用例。可以通过增量变化分析来确定继承的测试用例中哪些在测试子类时必须执行、哪些可以不执行。 分层与增量 -测试用例选择 D的接口中添加新的操作,并且有可能是D中的一个新方法实现的新操作。新操作引入了新的功能/代码,这些都需要测试。 在D中改变那些在C中声明的操作规范,需要为操作添加新的基于规范的测试用例。附加的测试用例提供了符合其前置条件的新输入,并且对由任何加强了的后置条件导致的新的期望结果进行检查 。 在D中覆盖那些在C中实现了某个操作并且被D继承了的方法,可以复用于该方法的所有继承来的基于规范的测试用例 。 在D中添加新的实例变量来实现更多的状态和/或属性,最有可能与新的操作和/或重载方法中代码有关,而且关系到对测试的处理。 在D中改变类常量。类常量累计成每个测试用例的附加的后置条件。 面向对象层次结构测试重点 对认定的对象的测试 OOA(面向对象分析)中认定的对象是对问题空间中的结构、其他系统、设备、被记忆的事件、系统涉及的人员等实际实例的抽象。对它的测试可以从如下方面考虑: 认定的对象是否全面,其名称应该尽量准确、适用,是否问题空间中所涉及到的实例都反映在认定的抽象对象中。 认定的对象是否具有多个属性。只有一个属性的对象通常应看作其他对象的属性而不是抽象为独立的对象 对认定为同一对象的实例是否有共同的、区别于其他实例的共同属性,是否提供或需要相同的服务,如果服务随着不同的实例而变化,认定的对象就需要分解或利用继承性来分类表示。 如果系统没有必要始终保持对象代表的实例信息,提供或者得到关于它的服务,认定的对象也无必要。 面向对象层次结构测试重点 对认定的结构的测试 认定的结构指的是多种对象的组织方式,用来反映问题空间中的复杂实例和复杂关系。认定的分类结构测试要点: 处于高层的对象,是否在问题空间中含有不同于下一层对象的特殊可能性,即是否能派生出下一层对象。 处于同一低层的对象,是否能抽象出在现实中有意义的更一般的上层对象。 对所有认定的对象,是否能在问题空间内向上层抽象出在现实中有意义的对象。 高层的对象的特性是否完全体现下层的共性,低层的对象是否有高层特性基础上的特殊性。 8.2面向对象的单元测试 类测试的方法 通过代码检查或执行测试用例能有效地测试一个类的代码。 面向对象的单元测试 类测试的组成部分 作为每个类,决定是将其作为一个单元进行独立测试,还是以某种方式将其作为系统某个较大部分的一个组件进行独立测试,需要基于以下因素进行决策: 这个类在系统中的作用,尤其是与之相关联的风险程度。 这个类的复杂性(根据状态个数、操作个数以及关联其他类的程度等进行衡量) 开发这个类测试驱动程序所需的工作量。 面向对象的单元测试 构建测试用例 从类说明中确定测试用例?根据类实现引进的边界值来扩充附加的测试用例。 根据前置/后置条件来构建测试用例的总体思想是: 为所有可能出现的组合情况确定测试用例需求。 创建测试用例来表达这些需求、包括特定输入值(包括常见值和边界值),并确定它们的正确输出。 增加测试用例来阐述违反前置
文档评论(0)