当前位置:文档之家› 面向对象测试技术

面向对象测试技术

2010-7-2 Institute of Computer Software Nanjing University 13
摘要
软件测试 面向对象软件测试 测试驱动的开发
2010-7-2
Institute of Computer Software Nanjing University
14
OO技术 技术
系统测试需要对被测的软件结合需求分析做仔 细的测试分析,建立测试用例
2010-7-2
Institute of Computer Software Nanjing University
27
OO System Test
具体测试内容
功能测试:最常用和必须的测试 强度测试:测试系统的能力最高实际限度 性能测试:测试软件的运行性能 安全测试:测试是否确实能对系统进行保护,是否 有安全保密漏洞 恢复测试:采用人工的干扰使软件出错,中断使用, 检测系统的恢复能力,特别是通信系统 可用性测试:测试用户是否能够满意使用
2010-7-2
Institute of Computer Software Nanjing University
22
OOD Test
对类库支持的测试:强调的重点是再次软件开 发的重用
一组子类中关于某种含义相同或基本相同的操作, 是否有相同的接口(包括名字和参数表) 类中方法的功能是否较单纯,相应的代码行是否较 少 类的层次结构是否是深度大,宽度小
OOA:把E-R图和语义网络模型,即信息造型 中的概念,与OOP中的重要概念结合在一起 而形成的设计方法.
问题空间的图表的形式描述 OOA直接映射问题空间,全面的将问题空间中实现 功能的现实抽象化.将问题空间中的实例抽象为对 象,用对象的结构反映问题空间的复杂实例和复杂 关系,用属性和操作表示实例的特性和行为.
面向对象软件测试模型
最后阶段的测试,需借鉴 OOA和OOD测试的结果 对服务交互进 行测试 单一功能模块 的测试
对分析结果的测试
对设计结果的测试
对编程风格和程序代码的测试
2010-7-2
Institute of Computer Software Nanjing University
17
OOA Test
测试的两个方面
数据成员是否满足数据封装的要求 类是否实现了要求的功能
2010-7-2 Institute of Computer Software Nanjing University 24
OO Unit Test
传统的单元测试对象:模块.多采用白盒测试 技术. OO的单元测试:封装的类或对象.不再孤立 地测试单个操作,而是将操作作为类的一部分. 两个考虑
继承的成员函数是否都不需要测试?
继承的成员函数在子类中做了改动 成员函数调用了改动过的成员函数的部分
对父类的测试是否能照搬子类?
2010-7-2 Institute of Computer Software Nanjing University 25
OO Integrate Test
传统的集成测试
对认定的类的测试 对构造的类层次结构的测试 对类库的支持的测试
2010-7-2 Institute of Computer Software Nanjing University 20
OOD Test
对认定的类的测试:认定的类原则上应该尽量 是基础类
是否涵盖了OOA中所有认定的对象 是否能体现OOA中定义的属性 是否能实现OOA中定义的服务 是否对应着一个含义明确的数据抽象 是否尽可能少的依赖其它类 类中的方法是否单用途
2010-7-2
Institute of Computer Software Nanjing University
4
软件测试
软件测试:使用人工或自动手段来运行或测试 某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间 的差别. -- IEEE,1993 "程序测试是为了发现错误而执行程序的过 程".
面向对象软件测试模型
面向对象开发模型:OOA, OOD, OOP 相应的
OOA Test OOD Test OOP Test OO Unit Test OO Integrate Test OO System Test
2010-7-2 Institute of Computer Software Nanjing University 16
Object-Oriented Testing
面向对象测试技术
2010-7-2
Institute of Computer Software Nanjing University
1
摘要
软件测试 面向对象软件测试 测试驱动的开发
2010-7-2
Institute of Computer Software Nanjing University
2010-7-2
Institute of Computer Software Nanjing University
7
软件测试的原则
"尽早和不断地测试" 设计测试用例时应该考虑合法的和不合法的输 入以及各种边界条件,特殊情况下要制造极端 状态和意外状态,如网络异常中断,电源断电 一定要注意测试中的错误集中发生现象 对测试错误结果一定要有一个确认过程 回归测试的关联性要引起充分注意 妥善保存一切测试过程文档,以便测试的重现
新特点:封装,继承,多态
产生新的错误可能性
不再是传统的功能模块结构,原有集成测试所 要求的逐步将开发的模块搭建在一起进行测试 的方法已成为不可能 OO开发模式不同于传统开发模式,不可能用 功能细化的观点来检测OOA和OOD的结果.
需要一种新的测试模型! 需要一种新的测试模型!
2010-7-2 Institute of Computer Software Nanjing University 15
12
软件测试的模型
X模型:弥补V模型的一些缺 陷,例如:交接,经常性的集 成等问题.
X模型的左边描述的是针对单独程序 片段所进行的相互分离的编码和测试, 此后将进行频繁的交接,通过集成最 终合成为可执行的程序. 右上方:这些可执行程序还需要进行 测试.已通过集成测试的成品可以进 行封版并提交给用户,也可以作为更 大规模和范围内集成的一部分.多根 并行的曲线表示变更可以在各个部分 发生. 右下方:探索性测试.这是不进行事 先计划的特殊类型的测试
2010-7-2 Institute of Computer Software Nanjing University 26
OO System Test
Tips:
应该尽量搭建与用户实际使用环境相同的测试平台, 应该保证被测系统的完整性; 应该参考OOA分析的结果,对应描述的对象,属性 和各种服务,检测软件是否能够再现"问题"空间
2010-7-2
Institute of Computer Software Nanjing University
9
软件测试的模型
V模型:软件开发瀑布 模型的变种,主要反映 测试活动与分析和设计 的关系 局限性:把测试作为编 码之后的最后一个活动, 需求分析等前期产生的 错误直到后期的验收测 试才能发现
自顶向下集成 自底向上集成
OO集成:由于"构成类的成分的直接和间接的交 互",传统的增量集成方式经常是不可能的 OO集成测试
静态测试:针对程序的结构,"逆向工程" 动态测试:测试需要达到一定的覆盖标准(达到类所有的服 务要求或服务提供的一定覆盖率;依据类间传递的消息,达 到对所有执行线程的一定覆盖率;达到类的所有状态的一定 覆盖率)
2010-7-2 Institute of Computer Software Nanjing University 11
软件测试的模型
H模型:测试活动完全独 立出来,形成了一个完全 独立的流程,将测试准备 活动和测试执行活动清晰 地体现出来.只要测试准 备完成,就可以执行测试
2010-7-2
Institute of Computer Software Nanjing University
2
摘要
软件测试 面向对象软件测试 测试驱动的开发
2010-7-2
Institute of Computer Software Nanjing University
3
软件测试
可靠性:观测系统行为是否同规格说明行为一 致的一种成功标准 软件可靠性:软件系统在特定条件和特定时间 下,不会导致系统失败的可能性. -- IEEE 测试的最大目标:最大限度地发现错误,以便 开发者改正它们,以增加系统的可靠性.
OOA测试重点在其完整性和冗余性 测试重点在其完整性和冗余性
2010-7-2 Institute of Computer Software Nanjing University 19
OOD Test
OOD:"造型的观点",以OOA为基础归纳 类,并建立类结构或进一步构造成类库,实现 分析结果对问题空间的抽象,是OOA的进一 步细化和更高层的抽象. 测试的三个方面
行为是相对稳定的,结构是相对不稳定的! 行为是相对稳定的,结构是相对不稳定的!
2010-7-2 Institute of Computer Software Nanjing University 18
OOA Test
测试的划分
对认定的对象的测试 对认定的结构的测试 对认定的主题的测试 对定义的属性和实例关联的测试 对定义的服务和消息关联的测试
2010-7-2
Institute of Computer Software Nanjing University
6
软件测试术语
相关主题