面向对象软件测试方法研究
面向对象的软件测试策略

面向对象的软件测试策略软件测试是保证软件质量的重要手段之一,而面向对象的软件测试策略则是针对基于面向对象编程模式开发的软件产品进行测试的一种方法。
本文将介绍面向对象的软件测试策略,并探讨其在软件开发过程中的应用。
一、引言面向对象编程(Object-Oriented Programming,简称OOP)是一种基于对象概念的编程范式,它将现实世界中的事物抽象为对象,通过对象之间的交互和信息传递来完成程序的设计和实现。
在面向对象的软件开发过程中,为了保证软件的质量和可靠性,需要采用相应的测试策略。
二、面向对象的软件测试特点1. 封装性测试:针对对象的封装性进行测试,验证对象对外部的接口是否正确封装,以及属性和方法的访问权限是否符合要求。
常用的测试方法有黑盒测试和白盒测试。
2. 继承性测试:测试继承关系是否正确,验证子类是否继承了父类的属性和方法,并且可以正常使用。
重点关注继承方式、重载和重写等特性的正确性。
3. 多态性测试:测试多态的正确性,验证同一个方法在不同对象上的行为是否符合预期。
主要包括参数类型、返回值和异常处理等方面的测试。
4. 接口测试:测试接口的正确性和一致性,尤其是在多模块或多团队协作开发的情况下,确保接口参数和返回值满足约定,并且实现类符合接口规范。
三、面向对象的软件测试策略1. 单元测试:针对类或方法进行测试,确保其功能的正确性。
可以使用各种单元测试框架,如JUnit、TestNG等来编写和执行测试用例。
2. 集成测试:测试多个对象之间的交互和协作,验证对象的集成是否正确。
可以使用自顶向下或自底向上的测试方法进行集成测试。
3. 系统测试:测试整个软件系统的功能和性能,验证系统的行为是否符合用户需求。
可以采用功能测试、性能测试、压力测试等方法。
4. 验收测试:由用户或客户进行的测试,验证软件是否满足用户需求,并按照预定的标准进行测试评估。
常用的方法包括 Alpha 测试和Beta 测试等。
面向对象的软件测试

面向对象的软件测试一、引言随着软件领域的迅猛发展,面向对象编程成为主流的开发范式。
在面向对象的软件开发过程中,软件测试是不可或缺的一环。
本文将重点讨论面向对象的软件测试方法和技术。
二、面向对象的软件测试概述面向对象的软件测试是基于面向对象编程范式的软件测试过程。
它的核心思想是将软件抽象为对象,通过对对象的测试来确保软件的质量和可靠性。
与传统的结构化软件测试相比,面向对象的软件测试更加灵活、可复用,并能够更好地应对软件变更和维护的需求。
三、面向对象的软件测试原则1. 固化测试用例:面向对象的软件测试需要建立一组完整的测试用例,覆盖各个对象的各种状态和行为。
这样可以确保对对象的测试的全面性和准确性。
2. 封装测试逻辑:对于面向对象的软件,应该封装测试逻辑,将测试代码与被测试的对象分离开来,从而提高代码的可维护性和可测试性。
3. 高内聚低耦合:在进行面向对象的软件测试时,应该尽量保持对象之间的高内聚性和低耦合性。
这样可以使得测试更加独立,减少测试之间的相互影响。
4. 多态性测试:面向对象的软件中,多态性是非常关键的特性。
在进行测试时,需要充分考虑对象在不同状态下的不同行为,以及对象之间的相互作用。
四、面向对象的软件测试方法1. 单元测试:单元测试是面向对象的软件测试的基石。
通过针对各个对象进行独立的测试,可以确保对象的功能和逻辑正确性。
2. 集成测试:集成测试是对多个对象间相互作用的测试。
可以通过模拟对象之间的协作和通信,来检验对象间的接口和交互是否符合预期。
3. 系统测试:系统测试是对整个软件系统的测试,包括功能测试、性能测试、安全性测试等。
通过系统测试可以全面评估软件的质量和性能。
4. 面向对象的覆盖率分析:面向对象的覆盖率分析能够精确评估测试用例对对象的覆盖程度。
通过该分析,可以发现测试用例中的不足和重复,从而优化测试策略和用例设计。
五、面向对象的软件测试工具1. JUnit:JUnit是Java语言中最常用的单元测试框架,支持面向对象的测试方法和断言。
面向对象软件测试的方法研究

K ywod : jc Or ne;owaet tt tat ;eteh oo ; ls e e rsObet i t sf r e ;e c c t cn lg c st t e d t s st i st y a s
维普资讯
・
研 究 开 发 ・ ・ ・ ・ ・ ・
电 脑 知 识 与 技 术
面 向对软件测试 的方法研究
刘 维 光
( 南科 技 大学 计 算 机 学 院 , 川 绵 阳 6 1 1 ) 西 四 2 0 0
摘 要 : 向 对 象软 件 测 试 是 面 向 对 象 软件 开发 的 不 可缺 少的 一 环 . 面 是保 证 软件 质 量 、 高软 件 可靠 性 的 关键 。 文 在 分析 面 向 对 象程 提 本
整 的 和 准 确 的评 价 ; 一 方 面 , 试 活 动 所 占用 的 时 间 、 费 的人 另 测 花 力 和经 费 在 软 件开 发 中 占有 很 大 的 比重 。 根 据 统 计 , 果 我 们 把 如 维 护 阶 段 也 考 虑 在 内 , 整个 软 件 生 存 期 , 计 有 5 %的 时 间 和 在 估 0 成本 花在 测 试 工作 上 。 什 么 是 软 件测 试 。 19 9 3年 IE E E给 出 了 一个 综 合 的定 义 :将 “ 系统 化 的 、 范 的 、 规 可度 量 的 方 法 应用 于 软 件 的 开 发 、 行 和 维 护 运
1软件 测试 的意 义与概 述
软件 测 试 在 软 件 生 存 周 期 中 占 有非 常 突 出 的 重 要 地 位 . 其 究 原 因 是 多方 面 的 。一 方 面是 因 为 它 能 对 软 件 质 量 进 行 系统 的 、 完
面向对象的软件测试方法及实践

面向对象的软件测试方法及实践面向对象编程是一种重要的编程方法。
在面向对象的软件开发中,测试也是一个至关重要的环节,它可以有效地发现程序的缺陷,并确保程序的正确性和稳定性。
然而,面向对象的软件测试方法与传统的测试方法有着很大的不同。
本文将就面向对象的软件测试方法及实践的相关问题进行探讨。
一、面向对象的软件测试方法在面向对象的软件测试中,测试重点是对象的行为。
这与传统的测试方法不同,传统的测试方法重点是函数和子程序。
因此,在面向对象的软件测试中,测试的粒度更加细致,测试的内容更加全面。
面向对象的软件测试方法通常包括以下几个方面:1. 单元测试单元测试是指对系统中最小的可测试单元进行测试。
在面向对象的软件测试中,单元测试是对对象的方法进行测试。
单元测试是测试的第一步,它可以有效地发现程序的错误,还可以帮助开发人员快速地发现错误并修正它们。
单元测试通常由开发人员进行,他们会编写测试用例并运行单元测试,以确保代码的正确性。
2. 集成测试集成测试是指在完成单元测试后,将各个部分集成起来测试整个系统。
在面向对象的软件测试中,集成测试是测试对象之间的交互行为。
集成测试可以发现不同对象之间的复杂关系,以及在集成过程中可能存在的问题。
集成测试通常由测试人员进行,他们会编写和运行测试用例,以确保整个系统的正确性。
3. 系统测试系统测试是指在完成集成测试后,对整个系统进行测试。
在面向对象的软件测试中,系统测试是对系统的交互行为进行测试。
系统测试可以确保整个系统的正确性、稳定性和性能。
系统测试通常由测试人员进行,他们会编写和运行测试用例,以确保整个系统的正确性。
4. 用户验收测试用户验收测试是指在完成系统测试后,由最终用户对系统进行测试。
在面向对象的软件测试中,用户验收测试是测试系统是否满足用户的需求。
用户验收测试可以发现系统与用户的交互是否流畅,并帮助开发人员修正不足。
用户验收测试由最终用户进行。
二、面向对象的软件测试实践1. 编写测试用例编写测试用例是面向对象的软件测试实践的第一步。
面向对象类测试技术研究

面向对象的类测试技术研究摘要:类是面向对象软件的基本构成单元,类测试是面向对象软件测试的关键。
从基于服务的、基于对象动态测试模型的、基于流图的四个方面论述了类测试的思想和方法。
关键词:面向对象软件测试类类测试1 面向对象软件的类测试类的概念是面向对象程序设计的核心概念。
把数据和对象的操作和处理封装在一个程序模块中的方法,可以说是人们积几十年程序设计实践的经验总结。
把程序以类的形式组织成若干模块,使其获得了最佳的结构特性,类的概念的引入使程序设计技术发生了革命性的转变。
从结构程序设计中以函数作为程序的基本模块转变为面向对象程序设计中,以类作为程序的基本模块,这一变化使程序设计技术出现了质的飞跃。
类的概念抓住了程序的本质。
程序的基本元素是数据,而函数是围绕数据进行的处理和操作。
类的使用使得:程序设计本身更有条理了;程序的可读性好了:程序设计的过程真正像是机器部件的组装;程序由多个程序员设计变得方便和自然;由于程序的零部件化,使得程序的可重用性变成切实可行的事情。
正是由于面向对象软件构件的基础是类,所以类的测试显得尤为重要。
类测试是面向对象软件测试的关键。
面向对象软件的类测试与传统软件的单元测试相对应,但和传统的单元测试不一样。
类测试时不仅要将操作作为类的一部分,同时要把对象与其状态结合起来,进行对象状态行为的测试。
类的测试按顺序分为以下三个部分:(1)基于服务的测试:测试类中的每一个方法;(2)基于状态的测试:考察类的实例在其生命周期各个状态下的情况;(3)基于响应状态的测试:从类和对象的责任出发,以外界向对象发送特定的消息序列的方法来测试对象的各个响应状态。
2 类测试技术(1)基于服务的类测试技术基于服务的类测试主要考察封装在类中的一个方法对数据进行的操作。
它可以采用传统的白盒测试方法,如:控制流测试、数据流测试、循环测试、排错测试、分域测试等。
但由于受面向对象软件测试技术发展水平等方面因素的限制,测试人员在选择测试用例时往往都是根据直觉和经验来进行,给测试带来很大的盲目性;再者由于测试人员的个性及倾向性也使得选择的测试用例仅能测试出其所熟悉的某一方面的错误,许多隐含的其它错误不能被检测出来,这在无形中降低了软件的可靠性。
面向对象软件测试技术研究

要 】 件 测 试 在 整 个 软 件 项 目开 发 过 程 中有 着 举 足 轻 重 的 地 位 , 试 技 术 的 发 展 对 于 缩 短 软 件 开 发 周 期 、 低 成 本 、 高 软 件 质 量 都 软 测 降 提
有 着 十分 重要 的 意 义。 本 文 介 绍 了面 向 对 象与 软 件 测 试 相 关 知 识 , 对 面 向 对 象软 件 测 试 技 术 进 行 了深 入研 究 。 并
或 自动 手 段 运 行 或 测 定 某个 系统 的 过程 , 目的在 于 检 验 它 是 否 满 足 类和对象. 而不 再 是一 个 个 能 完 成 特 定 功 能 的 功 能 模 型 。 每 个 对 象 有 规 定 的需 求 或 是 弄 清 预 期 结 果 与 实 际 结 果 之 间 的 差别 。 自己 的 生 仔 期 , 自己 的 状 态 。 消 息 是 对 象 之 间 相 互 请 示 或 协 作 的途 有 软 件 测 试 是 伴 随 着 软 件 的产 生 而产 生 的 。 件 危 机 的频 繁 出现 促 径 , 外 界 使 用 对 象 方 法 及 获 取 对 象 状 态 的 唯一 方 式 。 对 象 的 功 能 是 软 足 使 了 软 件 测 试 的 地 位 得 到 了 大 幅 提 升 。 件 测 试 已经 不 仅 仅 是 局 限于 软 在 消息的触发下. 由对 象 所 属 类 中 定 义 的 方 法 与 相 关 对 象 的 合 作 共 同 软 件 开 发 过 程 中 的 一 个 阶段 , 已经 开 始 贯穿 于整 个 软 件 开 发 过 程 , 它 成 完 成 , 且 对 象 在 不 同状 态 下 对 消 息 的 响 应 可 能 完 全 相 同 。 工 作 过 程 并 为 软 件 产 品 质 量控 制 与质 量 管理 的重 要 手 段 之 ~ 。 中 象 的状 态 可 能 被 改 变 , 生 新 的状 态 , 对 产 即发 生 状 态 的 转 移 对 象 中 随 着 面 向 对 象 软 件 开 发 技 术 的J 一泛 应 用 , 及 软 件 测 试 在 软 件 开 的数 据 和 方 法 是 一 个 有 机 的整 体 , 软 件 测 试 过 程 中, 能 仅 仅 检 查 输 以 在 不 发 过程 中地 位 的不 断 上 升 , 件 项 目开 发 过 程 中面 向对 象 技 术 对 传 统 软 入 数 据 产 生 的输 出 结 果 是 否 与 预 期结 果 相 吻 合 , 要 考 虑 对 象 的 状 态 还 软 件 测 试产 生 了新 的挑 战 , 向对 象 软 件 测 试技 术 的研 究 越 来 越 受 人 变 化 。 因此 r要 对 对 象 的 状 态 与 方 法 间 的相 互 影 响进 行 测 试 , 要 面 除 还 们的关注。 进行状态测试 。
面向对象软件测试的技术研究

试, 而对于由类集成 的类簇测试作为集成测试 , 系统级测试与传统测试层基本相同。
12 面 向对 象测试 模 型 .
我们提 出的测试模 型( 图 1 , 如 )使开发阶段 的测试与编码 完成后的测试成为一个整体 , 该测试模 型给出了面向对象测试
OO T与 O OA、 OD和 O O OP三者 之 间的对 应关 系 。 12 I 面向对 象分 析 的测试 ..
1 面 向对 象 测 试 模 型
由文献[ 我们知道 目前提高 试效率的一种方法为在软件进行设计阶段 , 2 ] 4 就把可测试性 的要求考虑进 去, 并且在软件生命周期 中始终考虑它 的可测试性 的特征 , 可以省时省力地提 高软件 的可测试性 。所 以, 我
们从面向对象的开发模型和测试层次划分 出发, 提出了一种在整个软件开发过程 中不断进行 测试 的面 向对
摘
要: 面向对象软件测试是面向对 象软件开发的重要 一环 , 是保证软件质量、 高软件 可靠性的 提
关键。针对面向对象软件具有的特征 , 分析 了面向对象开发模 型和测试层次划分, 出了一个面向 给
对 象 的测试 模 型 , 并详 细讨 论 了面 向对 象软 件 测 试 的测 试方 法和 解 决方 案 。 关 键词 : 面向 对 象; 测试 模 型 ; 件 测试 ; 软 类测 试 ; 类族 测试
维普资讯
苏州大学学报 ( 工科 版)
第 1 期
已不是方法 , 而是封装了属性和方法的类。类是抽象的描述 , 是构成面向对象程序 的基本成分 , 而且 已经有 经验表明类级测试是必须 的, 也是发现错误 的重要手段 。以簇作为测试 的最小单元会导致某些应 当在开发 周期 中较早发现的错误延至系统测试时才被发现[ 。所以我们 提出的测试策 略将类层 的测试作为单元测
面向对象软件测试技术的研究

测试 方法 的差 异 。在 传统 的软 件 测试 中, 测试 过程 要求 与应用 环境 尽 量 相结 合 , 合 得越 紧 密 , 测试 的结 果越 可 靠 。但在 结 其
面对对 象 的软 件 测试 中 , 是一 个 可 以应用 于不 同软 件 中的独 类 立部件, 其复 用 的 程度 高 , 类 的 测试 要 求尽 量 与 具体 应用 环 对 境 相独 立 , 越独 立 其测 试 的结果 越 可靠 。面 向对象 的测试 与传 统 测 试 的差 异 主 要 由于 程 序 实 现机 制 的 不 同造 成 ,类 ” 面 “ 是 向对象 程序 的 主要 机 制 , 决 了类 的测 试 问题 也就 解 决面 向对 解
在 程 序 中 的基 本 单 元却 是 “ ”它 是对 象 的抽 象 描述 , 象 是 类 , 对
类 的 实例 , 同时 类 还具 有 封 装 、 承和 多 态等 特 性 。类 是 对象 继
的变动。针对这种模型, 结合传统的测试方法 , 可以建立一种
整个 软 件开 发过 程 中不 断进 行测 试 的面 向对象 软件 模 型 , 开 使
题 。因此 , 要深 入研 究 面 向对象 软件 的测 试 技术 。 需
翰入蠡据 翘 始 袄 态
图 2 类 测 试 模 型
2 .面向 对 象测 试 与传 统 测 试技 术 的 区别
面 向对象 软件 与 传统 软件 的测 试 目标 完全 相 同 , 是为 了 都
确 保 软件 能够 正确 的 执行 预定 功能 , 试过 程基 本都 包括 了测 测
靠性 的最基 本 和最 重 要 的手 段 17 年 , o d E o g 95 G o n u h等 首 次提 出了软 件 测 试理 论 , 同年 Hu n a g全 面讨 论 了 测试 过 程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-氏 , ' 则给当前结点增加一条分支和一个后续结点, 分支标识函数调用, 后续结点标识对象的下一个状 态: k S ,3 …,k …,/ ; ( 2 S , S , S ) S ,k k 1 2 i l i ,
・ 重复上述动作, 直到所有结点都不可扩展。 对象状态迁移树的最后形式如图 3 所示。
成过程 。
面向对象软件测试(O ) O T 的实现
测试层次与流程
() 根据 0 1 0软件的特点, 我们将软件测试过程划分成如表 1 所示的层次。
[ 收稿日 20-0-1 期〕 04 6 6
〔 作者简介〕 宋雪芬(93 , 河北高邑人, 17-)女, 工程师, 主要从事遥测工程专业方面的研究工作。
23 测试方法 .
测试方法主要包括对象状态测试方法和类簇测试方法。
231 对象状态测试方法 .. 对象的动作依赖于它的状态, 在消息驱动下, 对象在不同的状态下会导致不同的动作响应, 而对象的 动作又可能会导致对象发生状态迁移。这个过程可能会产生某种错误, 这些错误是无法用功能测试和类 方法测试检查出来的, 必须针对对象状态迁移过程构造专门的测试。对象状态迁移测试是根据对象状态 迁移轨迹构造一系列的消息序列, 驱动对象动作, 检查对象的响应和状态变换。 对象状态测试的步骤和方法如下: () 1识别类的状态变量, 标识其状态 类状态变量的识别是根据该类所有成员函数中所有路径条件进行。一个类成员变量通过影响程序 执行路径从而影响对象状态的迁移, 所以, 将影响类成员函数执行路径的成员变量作为类的状态变量。
19. 93
[] K n,GoP iDsn v y s ta ttg b c oet p g m [ ][ 1 Rvr Eg 3 C ugJ , H a i r oe f ow r e i oojt rn d r s . :e s ni H a s eg e r o f e n f - i e r a M s e e - c r s e o ]
俨 S :区间 1 0仁 ] V S :区间 0 ' o[ ' ]
45 4
( 冶金 自 动化》04 20 年增刊
Vl 俨
S:区间 1 i「 ] S.区间。 o仁 2 〕
对象状态可以用状态变量的状态来表示: S= ¥ ,若… ,o( o ( ,o , S)对象的初始状态) SS S () 2构造状态变量的状态迁移图状态变量的状态在类成员函数的作用下会发生迁移, 这个导致状态 迁移的成员函数称为一个迁移。见图 2 。
44 4
( 冶金 自动化》04 20 年增刊
表 1 测试层次
类测试( 类方法测试、 类方法交互测试、 类状态测试)
类簇测试 部件测试 配置项测试 系统测试
() 2测试流程如图 1 所示。
对象关系图
静态分 析
类方法
类 方法 结构 分析 数据
类 方 法 交互 事件 分析数据
图 1 O O T流程
nen , 9. er g1 3 i 9 [〕 4 何新华. 面向对象软件的测试研究[ ] 19 年全国软件工程会议论文集[]北京: A . 6 9 C. 清华大学出版社,96 19. 「 编辑: 胜〕 张
O T的重要内容。 O
() 3状态变量(V S)
对象的状态是由类成员变量的取值来表示的, 能够影响对象状态表现和状态迁移的类成员变量称为 状态变量(V:t e rb ) S Sa V i l 。 t aa e 12 O . O 丁的基本内容 O T是在后期软件测试中应用 0 O 0技术的体现, O T同样要遵循一般的 0 所以 O 0概念和原则。被 测软件本身具有的 0 0概念和原则对测试起着决定性影响。面向对象软件测试与面向过程软件测试在 内容上存在以下差异: () 1面向对象软件测试的基本单元是类 类是 0 0软件的基本组成单元, O O T的中心就是类的测试。与面向过程测试中以模块为单元不同, O T以类为测试的基本单元可以在测试中充分利用 0 O 0技术, 避免将作为整体封装的类人为地拆解成 函数和数据进行测试。 () 2类簇测试是更高级别的测试 类簇测试是将一组相关的类作为一个整体进行测试, 主要是测试类簇中各个类之间的交互和它的集
图 2 状态变f状态迁移图
状态变量的状态转移图可以根据状态变量的状态标识以及对程序的分析而获得。 () 3构造对象状态迁移树 根据各个状态变量的状态迁移图, 可以构造对象的状态迁移树, 过程如下: 1将各个状态变量在构造函数执行以后的初始状态组合作为对象初始状态, ) 标识为 (iS,弓……,o( 个状态变量) S,若S, S)n 如果某个状态变量可能有多个初始状态, 则对象的初始状态相应地就有几个。比如, 假定第二个状 态变量具有两个初始状态:l S。 S . o 。 羞
《 冶金 自动化》04 20 年增刊
面 向对象软件测试方法研究
宋雪芬‘王冠军‘宋雪玲“ , ,
0. 酒泉卫星发射中心 遥测室, 甘肃 酒泉 725 ;. 3702河北科技大学)
[ 要〕 摘 介绍了面向对象软件测试的概念和内容, 提出了面向对象软件的测试层次与流程, 并重点论述了对象状态测试 的方法。测试结果证明, 该方法为提高软件可靠性的一种有效方法。
22 测试排序 .
测试排序包括类排序和类方法排序。 类方法排序在类排序的基础上进行。测试排序的目的是为了
减少测试辅助程序的构造量。排序的基本原则是首先测试最少依赖的类或方法, 优先测试作为其它类或 方法支撑的类或方法, 最后测试依赖最多的类或方法。 类排序的基本依据是软件的类及对象关系图( R )类测试排序需要明确参加排序的类的范围。 O D, 类 方法排序的基本依据是类方法调用关系图(C ) F D 。类方法排序是在同一个类内部进行, 排序的对象是该 类的方法集合。
3 结束语
0 0软件开发技术为 O T提供了许多技术支持, O 同时也给 O T带来了诸如 0 O 0软件的理解、 动态 绑定等问题, 因此, 前 0 目 0软件的测试是比较困难的。0 0软件测试的难易程度依赖于软件开发各阶 段提交文档的丰富性, 依赖于该文档对类、 对象关系、 对象状态迁移、 类方法调用等技术描述的准确性。 充分应用这些信息, 采用模式语言形式化地描述 O T 最大程度地实现 O T的自 O , O 动化。本文提出的测 试方法已经在测试辅助工具中得到良好应用。但 目前还有一些技术问题需要进一步研究解决, 比如路径 计算问题、 状态图自 动生成问题等。
通过分析路径条件, 标识出 可以 状态变量的状态。这个过程就是通过分析路径条件, 划分一个状态
变量的取值区间, 使同一个区间中的值导致同样的程序路径, 不同的区间导致不同的程序路径。同一个 状态变量可能影响多个成员函数的执行路径, 这样就得到多个取值区间。这些区间称为状态变量的状态
区间, 简称状态。 状态变量的状态标识格式如下: 本结点没有在更高层出现, 并且某个状态变量存在迁移:; L, S} -S 考虑该状态迁移对应的成 员函数调用, 如果该函数调用还导致了其它状态变量的状态迁移, 就要综合考虑各个发生改变的状态变 量的最终状态。比如, 如果该状态迁移对应的函数调用 F n(还导致了第 i uc) 个状态变量的状态迁移:k S i
〔 考 文 献〕 参
[] 1 吴鹏程, 金茂忠. 面向对象软件测试模型与测试策略[ ]19 年全国软件工程会议论文集[ ]北京: A . 6 9 C. 清华大学出版 社, 9. 16 9 [] T r r J snT e t ae t t g oj t rne por sM][ 1:o 一w r Ma t ac, 2 C un , R bo. Sa -bs e i o b c i t r a [ . ]Sf a D e D o h te d n f e 一o e d g m s s t e ie ne nn
〔 关键词〕 面向对象 ; 软件测试 ; 类测试
面向对象( 0 方法已经成为软件开发的主流技术, 0 ) 目前已有 比较成熟的面向对象的分析( O ) O A, 面向对象的设计( O ) O D 和面向对象的编码( O ) O P 等技术, 而且也出现了面向对象的软件工程技术。这 些技术为解决“ 软件危机” 发挥了巨大的作用。但是, 在面向对象技术领域中, 有关软件的后期测试活动 却明显滞后。随着面向对象技术在应用软件开发中的广泛应用, 面向对象的软件测试方法为大型软件质
量控制和测试提供了一种全新的技术, 它有效避免了面向过程软件测试的复杂程度, 提高了测试准确性
和有效性。
1 面向对象软件测试(O ) O T 概述
11 基本概念 . () 1面向对象软件测试
面向对象软件测试(O :b c rne Tsn) O T O j t i t e i 是指利用0 e -O e d tg 0技术提供的各种机制对0 0软件
进行测试, 广义地讲, 它还包括对软件分析、 设计和实现的一致性检查。 () 2对象的状态( S O)
对象的状态(SO j t t 是指某一时刻对象所有属性值的集合。 O : cSa ) b e te 对象状态是对象的重要特征,
对象的行为依赖于对象的状态, 同时对象的行为又会改变对象的状态。对对象状态迁移过程的测试是
图 3 对象状态迁移树形式
() 4构造消息序列, 驱动测试
46 4
( 冶金 自动化》04 20 年增刊
从对象状态迁移树的根结点开始, 依次搜索到树的每个叶子结点, 这样每个叶子结点对应一条搜索 路径, 一个搜索路径所经过的所有迁移就组成一个消息序列。每个消息序列就是对象状态测试的一个测
试用例。
则对象就有 个初始状态 2
初始状态 1( ,2 S, S) : iS ,君…,o S l o
初始状态 :S ,呈 君…,o 2(乙S。S , S) , 2对于对象的每个初始状态, ) 构造这样一个测试树: ・ 将对象初始状态作为根结点;
・ 逐个检查测试树的各个结点, 假设当前结点是: k S + …,b ; ( k S , S + 2 l k St i ) ・ 如果当前结点已经在树的更高层出现, 则本结点不再扩展, 检查下一结点;