关于面向对象软件测试技术的研究

合集下载

基于面向对象软件测试技术分析

基于面向对象软件测试技术分析

基于面向对象的软件测试技术分析【摘要】本文通过分析面向对象软件测试的技术特点,针对几种常用的测试方法进行探讨,并以某网上购物系统为例对软件测试方法的实现进行分析,以期通过本文的阐述有效提升程序员的软件测试技能,促进软件测试技术发展。

【关键词】面向对象;软件测试;编码;程序1.面向对象软件测试的技术特点从程序的组织结构方面来讲,传统测试技术不完全适用于面向对象软件的测试。

传统程序的测试过程是选定一组数据,交给待测程序处理,通过比较实际执行结果和预期执行结果,判断程序是否含有错误。

因此,传统软件测试技术与过程式程序中数据和操作分离的特点相适应。

而面向对象软件不是把程序看成是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合,在面向对象程序中,对象是一组属性以及这组属性上的专用操作的封装体,每个对象就像一个传统意义上的小程序,有自己的数据、操作、功能和目的。

而在面向对象的系统中,系统的功能体现在对象间的协作上,相同的功能可能驻留在不同的对象中,操作序列是由对象问的消息传递决定的。

不同对象有自己的不同状态,而且同一对象在不同的状态下对消息的响应可能完全不同。

为实现某一特定的功能,有可能要激活调用属于不同对象类的多个方法(c++中的成员函数),形成方法的启用链。

显然,基于功能分解的自顶向下或自底向上的集成测试策略并不适用于以面向对象方法构造的软件。

面向对象软件语言特有的一些概念和机制,如数据抽象、继承、多态、动态绑定和消息传递都对测试有着深刻的影响。

其中有的因素使测试复杂化,导致测试工作量加大,有的因素有助于测试过程中重用已有的测试资源,从而有利于减少测试的工作量,有的因素两方面兼而有之。

但总的来讲,在这些因素的共同作用下,测试面向对象比测试传统软件更加困难。

2.面向对象软件测试的常用方法2.1基于类流图的测试类流图是一种用来表示类的行为特性,且在结构上与传统控制流图相似的有向图。

面向对象的软件测试技术

面向对象的软件测试技术



obet o i tdS f r et gT c n lg jc- r n e ot eT si eh oo y e wa n
MaD njn o gu ( s tt o o ue c n ea dT c n l yS a d n nv ri f e h o g ,io 2 5 4 , hn ) I tu f mp t r i c n e h oo ,h n o g U i s y c n l yZb 5 0 9C i n i e C S e g e to T o a
计 算机 光盘 软件 与应用
21 0 0年第 l 2期 Cm u e DS f w r n p l c to s o p t rC o t a eadA p a n i i 软 件 设 计 开发
面向对象的软件测试技术
马 东君
( 东理 工大学计算机 学院 ,山 东淄博 山
2 54 ) 50 9
面 向对 象方法 概述 2 0世纪 6 0年 代后期 出现 的面 向对象 编程语 言 Sm l一 7中 iu a6 首 次引入 了类和对 象 的概念 , 自 2 世 纪 8 0 0年代 中期 起 ,逐步形 成 了面 向对象方 法学 ,现在 ,面 向对 象技 术 已经 成 为最好 的软件 开 发技术 。 面 向对 象方 法是一 种把 面 向对 象 的思想 应用 于软件 开发 过程 中, 指导 开发 活动 的系统方 法 , 简称 O O方法 。 是建立 在 “ 它 对象 ” 概 念基础 上的方法 学 。 象是 由数据 和容许 的操 作组成 的封 装体 , 对 与 客观实 体有 直接对应 关 系 ,一 个对 象类 定义 了具有 相似 性质 的 组对象 。所谓 面 向对 象就 是基 于对 象概念 , 以对象 为 中心, 以 类 和继承 为构造 机制 ,来认 识 、理解 、刻 画客观 世界 和设计 、构 建 相应 的软件系 统 。 二 、面 向对 象技术 的特 点对测 试 的影 响 面 向对 象 的测试在 许 多方面 要借 鉴传统 软件 测试 方法 中可适 用 部分 ,并 且在 软件 开发 的具体 实践 中,也 经常 混合 使用面 向对

面向对象软件测试模型研究

面向对象软件测试模型研究

活动 , 进行开发与相应 的测试 , 并在每 次选 代 中逐 步完善 , 开发 出 不 同的软件版本 , 在每次 演进 过程 中, 个 阶段 的测 试重 点各 且 各 不相 同。
3 结 论
该测试模型对面 向对象软件工 程管理具有 相 当的借鉴 价值 , 不 足之处在于它将一体 的软 件测试 生硬 地划 分为一 些不 同的 阶 段, 这就 意味着对 每个阶段 的 变更相 对 比较困难 , 是该模 型将 但
20 0 50 1

. . . . . . .


. . . . . . .
. . — —
. . . .
维普资讯
t囊拄木 与4囊亿 1 1
试软 件是否能满足用 户的需 求 , 并得 到实 际测试 数据 , 分析 比较 后 可以更好的改善软件 的实 际性 能 , 使其更能满足用户 的需求 。
当前需求分析的要求 , 更主要 的是通过重新组合 或加以适 当的补 充, 方便实现功能 的重用和扩增 。设计 阶段是对 分析模型进一步
细化 , 构造实现中所涉及 的新对象 。 面向对象编程 ( O ) O P 是软件 的计算机实现 , 是指用一种 面向 对象 的程序设计语言 实现设计模型 , 编写 出源程 序。面向对 象 的 程序设计的主要 活动集 中在 建立对 象和 对象 之间 的联系 ( 或通 信) , 上 从而完成所需 功能。 由于现 实世界 可以抽象 为对象 和对
面 向对 象 软件测试 测 试模 型
面向对象软件测试过程指软件 开发过程 中所有 的测 试实施
活动 , 特别 是一 些 相 关 活 动 的 组 织 管 理 、 施 和 相 互 协 作 , 成 整 实 完
的 、 自然 的程序设计方法 。用面向对象语 言所 编写 的源代码 至 更

面向对象的软件测试综述

面向对象的软件测试综述

JMeter
开源组织 压力测试、性能测试 开源免费
TestDirector Mercury公司
测试管理
收费昂贵
Bugzilla
开源组织
缺陷跟踪管理
开源免费
面向对象的特点对软件测试的影响
信息隐蔽和封装对测试的影响 类的重要作用之一是信息隐蔽。它对类中所封装的信 息的存取进行控制,从而避免类中有关实现细节的信 息被错误地使用。该隐蔽机制给测试带来了困难。
继承对测试的影响 若一个类得到了充分的测试,当其被子类继承后,
继承的方法在子类的环境中的行为特征需要重新测试 。 多态性对测试的影响 传统软件测试中经常使用静态分析技术对代码进行分 析;面向对象软件中,由于动态绑定和多态性的存在 所带来的不确定性,给测试覆盖率的满足增大了难度 。
JMeter
JMeter是Apache组织开发的基于Java的压力 测试工具。 Meter 可以用于对服务器、网络或对 象模拟巨大的负载,来在不同压力类别下测试它 们的强度和分析整体性能。另外,JMeter能够对 应用程序做功能/回归测试,通过创建带有断言的 脚本来验证你的程序返回了你期望的结果。
面向对象的软件测 试的综述
软件测试的方法
黑盒测试
黑盒测试又称为功能测试,是一种面向设计的测试 。这种测试在完全不考虑测试对象内部结构的情况下 ,把被测程序当作一个黑盒,根据程序的功能和外部 特性得到测试数据。进行黑盒测试所必须具备的文档 有产品描述、用户文档及安装指令。黑盒测试方法主 要用于软件确认测试。
面向对象的测试与传统测试的比较
测试单元的不同 传统软件的基本构成单元为功能模块,每个功能
模块一般能独立地完成一个特定的功能。而在面向 对象的软件中,基本单元是封装了数据和方法的类 和对象。 系统构成不同 传统的软件系统是由一个个功能模块通过过程调用关 系组合而成的。而在面向对象的系统中,系统的功 能体现在对象间的协作上,相同的功能可能驻留在 不同的对象中,操作序列是由对象间的消息传递决 定的。

面向对象软件类测试研究新进展

面向对象软件类测试研究新进展
r lod s u s d a ea s ic s e . Ke r s c a stsi g s t - a e ; s e i c t n b s d UM L b e ; M t - a e ; d t o b s d y wo d : ls t ; t eb d e n a s p cf ai - ae ; i o -a d s SS b d s a f w- a e al
0 引 言
面 向对 象 软 件 测 试 技 术 的研 究 是面 向对 象 开 发 方 法 的 不 可 缺 少 的一 环 , 保 证 软 件 质 量 和 提 高 软 件 可 靠 性 的 关 键 。 是 面 向对 象 测 试 的 整 体 目标 一 以 最 小 的 工 作 量 发 现 最 多 的 错
s d fh e eo me t f bet r ne R re ls ite ai cmp sino jc_r ne R r, n dc s sn t yo te v lp n jc. i t s wa . as sh s o oio f bet i td o wae u d oo 0e d o C b s t o oe s a l s et gi a t i s
tsi g UM L-a e si g M t S b sdtsig a dd t o -a e sigaes r e e . Fn l , dr cin f uu er sac et , n b s dt t , e n S - a e t , n aaf w b sdt tn u v y d e n l e r ial y ie t so tr e h o f e r
S re i d p igC iee epe iea o r fr ai n i e n nvri , hn z o 5 0 2C ia uvyn a p , hns o l’ brt n my nom t n gn r g iesyZ eg h u o 5 , hn) g n Ma n P S L i A I oE ei U t 4

面向对象系统的测试方法与技术研究

面向对象系统的测试方法与技术研究

面向对象系统的测试方法与技术研究在当今这个数字化和互联网时代,面向对象的编程技术已经成为了主流。

这种编程方法通过将数据与行为进行归纳总结,能够有效的提高软件开发的效率和质量。

然而,在面向对象编程中,软件测试的复杂度也在不断增加。

本文将对面向对象系统的测试方法与技术进行探讨。

一、面向对象编程的测试挑战面向对象编程所包括的概念、继承和多态性,使得测试面临的挑战在不断增加。

在使用面向对象编程的软件开发中,主要的测试问题如下:1. 代码复杂度高。

面向对象系统的代码普遍比较难读懂和理解。

这是因为它是由多个类和对象组成的,每个类内部还有许多的属性和方法。

如果不理解这些类之间的关系,那么测试就会变得异常困难。

2. 数据复杂度高。

在面向对象系统中,数据往往是以对象的形式存在的。

这些对象是由不同的类和属性组成的。

测试过程中需要针对不同的数据组成进行测试,从而提高测试的全面性。

3. 继承带来新的问题。

在面向对象系统中,对象之间的关系通常是基于继承设计的。

这种继承可能会导致子类的方法继承了父类的行为,可能会对测试结果产生影响。

二、面向对象系统的测试方法1. 单元测试。

单元测试是软件测试的基础组成部分。

在面向对象编程中,单元测试的目标是每个类或方法。

通过将代码分成小的测试单元,可以确保每个部分的正常运行。

单元测试有利于提高测试效率,减少测试对产品开发周期的影响。

2. 集成测试。

在集成测试中,需要将不同的模块组合成一个完整的系统,以便测试该系统的移交功能。

在面向对象编程中,集成测试是特别困难的,因为需要对每个对象以及它们之间的相互影响进行测试。

3. 静态代码分析。

静态代码分析是对源代码的分析,以发现代码中潜在的错误和缺陷。

这种方法可以发现更多的错误和漏洞,因为它可以在代码编译之前识别问题。

常用的静态代码分析工具包括QA-C、Coverity和Fortify等。

4. 动态测试。

动态测试是为了验证软件运行时的行为而进行的测试。

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

面向对象软件测试的方法研究
t e casa ai etu t h ls sa b sct s ni .
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 面向对象软件的类测试类的概念是面向对象程序设计的核心概念。

把数据和对象的操作和处理封装在一个程序模块中的方法,可以说是人们积几十年程序设计实践的经验总结。

把程序以类的形式组织成若干模块,使其获得了最佳的结构特性,类的概念的引入使程序设计技术发生了革命性的转变。

从结构程序设计中以函数作为程序的基本模块转变为面向对象程序设计中,以类作为程序的基本模块,这一变化使程序设计技术出现了质的飞跃。

类的概念抓住了程序的本质。

程序的基本元素是数据,而函数是围绕数据进行的处理和操作。

类的使用使得:程序设计本身更有条理了;程序的可读性好了:程序设计的过程真正像是机器部件的组装;程序由多个程序员设计变得方便和自然;由于程序的零部件化,使得程序的可重用性变成切实可行的事情。

正是由于面向对象软件构件的基础是类,所以类的测试显得尤为重要。

类测试是面向对象软件测试的关键。

面向对象软件的类测试与传统软件的单元测试相对应,但和传统的单元测试不一样。

类测试时不仅要将操作作为类的一部分,同时要把对象与其状态结合起来,进行对象状态行为的测试。

类的测试按顺序分为以下三个部分:(1)基于服务的测试:测试类中的每一个方法;(2)基于状态的测试:考察类的实例在其生命周期各个状态下的情况;(3)基于响应状态的测试:从类和对象的责任出发,以外界向对象发送特定的消息序列的方法来测试对象的各个响应状态。

2 类测试技术(1)基于服务的类测试技术基于服务的类测试主要考察封装在类中的一个方法对数据进行的操作。

它可以采用传统的白盒测试方法,如:控制流测试、数据流测试、循环测试、排错测试、分域测试等。

但由于受面向对象软件测试技术发展水平等方面因素的限制,测试人员在选择测试用例时往往都是根据直觉和经验来进行,给测试带来很大的盲目性;再者由于测试人员的个性及倾向性也使得选择的测试用例仅能测试出其所熟悉的某一方面的错误,许多隐含的其它错误不能被检测出来,这在无形中降低了软件的可靠性。

面向对象软件测试技术研究

面向对象软件测试技术研究

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

面向对象软件测试的技术研究

面向对象软件测试的技术研究

试, 而对于由类集成 的类簇测试作为集成测试 , 系统级测试与传统测试层基本相同。
12 面 向对 象测试 模 型 .
我们提 出的测试模 型( 图 1 , 如 )使开发阶段 的测试与编码 完成后的测试成为一个整体 , 该测试模 型给出了面向对象测试
OO T与 O OA、 OD和 O O OP三者 之 间的对 应关 系 。 12 I 面向对 象分 析 的测试 ..
1 面 向对 象 测 试 模 型
由文献[ 我们知道 目前提高 试效率的一种方法为在软件进行设计阶段 , 2 ] 4 就把可测试性 的要求考虑进 去, 并且在软件生命周期 中始终考虑它 的可测试性 的特征 , 可以省时省力地提 高软件 的可测试性 。所 以, 我
们从面向对象的开发模型和测试层次划分 出发, 提出了一种在整个软件开发过程 中不断进行 测试 的面 向对

要: 面向对象软件测试是面向对 象软件开发的重要 一环 , 是保证软件质量、 高软件 可靠性的 提
关键。针对面向对象软件具有的特征 , 分析 了面向对象开发模 型和测试层次划分, 出了一个面向 给
对 象 的测试 模 型 , 并详 细讨 论 了面 向对 象软 件 测 试 的测 试方 法和 解 决方 案 。 关 键词 : 面向 对 象; 测试 模 型 ; 件 测试 ; 软 类测 试 ; 类族 测试
维普资讯
苏州大学学报 ( 工科 版)
第 1 期
已不是方法 , 而是封装了属性和方法的类。类是抽象的描述 , 是构成面向对象程序 的基本成分 , 而且 已经有 经验表明类级测试是必须 的, 也是发现错误 的重要手段 。以簇作为测试 的最小单元会导致某些应 当在开发 周期 中较早发现的错误延至系统测试时才被发现[ 。所以我们 提出的测试策 略将类层 的测试作为单元测

面向对象测试技术研究

面向对象测试技术研究

R sa c no jc—re td ts c n lg ee rho betoine et eh oo y t
HU AN Jaw i A0 Xi. o g G i e .C ed n
( co l fC mp t c n e S uh et e oem nv ri , h n d 150, hn ) Sh o o ue S i c , o tw s P t lu U ies y C eg u6 00 C ia o r e r t
有高质量 、 稳定性好、 可重用行好和可维护性好等优
点 。然而 , 由于 面 向对象 技 术 的多态 、 承 、 继 封装 等 特性, 不再 是传统 的功能 模块结 构 , 原有 集成 测试方
面向对 象的 特点是封装 、 承 和多 态 , 试的视角 扩 继 测 大 到包 括复 审分析 和设 计 模 型 , 测试 的焦点 从 过程 构 件转 向了类 。
面 向对象软 件 已经不 再 适 用 , 对 面向对 象 的开 发 应
技术 , 需要 提 出新 的测 试 策 略 和方 法 来支 持 面 向对 象 的软件测 试 。
1 面 向对 象测 试
面向对 象测试 的整体 目标 和传统 软件测试 的 目
标 是一 致 的— — 以最 小 的工 作量 发 现 最 多 的错误 。 但 是 面向对象 测试 的策 略和 战术 有 很 大不 同 , 由于
面 向对 象 的开 发模 型 突 破 了传 统 的瀑 布 模型 , 将 开发 分 为 面 向对 象 分 析 ( O , 向 对 象 设 计 O A) 面 ( O ) 面 向对 象 编 程 ( O ) 个 阶 段 。针对 面向对象的软件测试可分为 : 面向对象

要 :面 向对 象程序 设计语 言 的 出现 ,传 统 的测 试 方 法 已经 不 能 满足 面 向对 象软 件 测 试 的需

面向对象软件测试技术的研究

面向对象软件测试技术的研究

测试 方法 的差 异 。在 传统 的软 件 测试 中, 测试 过程 要求 与应用 环境 尽 量 相结 合 , 合 得越 紧 密 , 测试 的结 果越 可 靠 。但在 结 其
面对对 象 的软 件 测试 中 , 是一 个 可 以应用 于不 同软 件 中的独 类 立部件, 其复 用 的 程度 高 , 类 的 测试 要 求尽 量 与 具体 应用 环 对 境 相独 立 , 越独 立 其测 试 的结果 越 可靠 。面 向对象 的测试 与传 统 测 试 的差 异 主 要 由于 程 序 实 现机 制 的 不 同造 成 ,类 ” 面 “ 是 向对象 程序 的 主要 机 制 , 决 了类 的测 试 问题 也就 解 决面 向对 解
在 程 序 中 的基 本 单 元却 是 “ ”它 是对 象 的抽 象 描述 , 象 是 类 , 对
类 的 实例 , 同时 类 还具 有 封 装 、 承和 多 态等 特 性 。类 是 对象 继
的变动。针对这种模型, 结合传统的测试方法 , 可以建立一种
整个 软 件开 发过 程 中不 断进 行测 试 的面 向对象 软件 模 型 , 开 使
题 。因此 , 要深 入研 究 面 向对象 软件 的测 试 技术 。 需
翰入蠡据 翘 始 袄 态
图 2 类 测 试 模 型
2 .面向 对 象测 试 与传 统 测 试技 术 的 区别
面 向对象 软件 与 传统 软件 的测 试 目标 完全 相 同 , 是为 了 都
确 保 软件 能够 正确 的 执行 预定 功能 , 试过 程基 本都 包括 了测 测
靠性 的最基 本 和最 重 要 的手 段 17 年 , o d E o g 95 G o n u h等 首 次提 出了软 件 测 试理 论 , 同年 Hu n a g全 面讨 论 了 测试 过 程

面向对象软件测试方案分析与研究

面向对象软件测试方案分析与研究

汇. 如仪 器 、 拟仪 器 、 试 、 虚 测 虚拟 测试 、 虚拟 试验 、 断 这种 分 析也 能 帮助 我 们设 计 出 有针 对 性 地检 测方 法 , 诊 与维 修 、 测 与 评估 、 I 预 B T等 日新 月 异 , 些 都 是 测 试 改善测 试 的有 效性 。没 有发 现错 误 的测试 也 是有价 值 这
1引言 .
制 定测试 方案 的策 略和重点 也不 同。
软 件测 试是 伴 随着 软 件 的产生 而产 生 的 软 件危 3软 件 测 试 . 机 的频繁 出现 促 使 了软 件 测 试 的地 位 得 到 了大 幅提 31软件测 试的 目的 . 升 。软件测 试 已经 不仅 仅是 局 限于软 件开 发过 程 中 的 软件 测试 是 在软 件投 入运 行前 。 软 件需 求分 析 、 对 个 阶段 , 已经 开始 贯穿 于 整个 软件 开 发 过程 . 为 设 计规 格说 明和编 码 的最 终 复审 .它是 软件 质量 保证 它 成 软件产 品质量 控制 与质量 管理 的重要 手段之 一 的关键 步骤 。 软件测 试 的 目的决定 了如何 去组织测 试 。
按期接 收应该 交 付的文 档和作 品 。
试 、 装测试 ( 组 集成 测试 ) 确认 测试 和 系统测试 。 、
23测 试 领域 发展 目前 .测试 领域 的需 求 和应 用 33 件测试 工作 的流程 : . .软 非常广 泛 , 所应 用 的技术 从 软件技 术 到模拟 数 字 、 电 从 测试 并 不仅 仅是 为 了要找 出错误 。通 过分析 错 误 子商 务 到低 频 高 频/ 波 、 测试 到 诊 断 、 维 修 到 保 产生 的原 因和错误 的分 布特 征 .可 以帮 助项 目管理 者 微 从 从 以便 改进 。 同时 , 障. 方方 面面都 在快 速发 展 . 展现 在我们 面 前 的专业 词 发现 当前所 采用 的软件 过程 的缺 陷 ,

面向对象软件测试方法及工具

面向对象软件测试方法及工具

面向对象软件测试方法及工具一、面向对象软件测试方法介绍随着面向对象编程的普及,针对面向对象的软件测试方法也得到了广泛的应用和研究。

面向对象软件测试方法充分利用了面向对象程序设计的特点,对软件系统进行有效的测试。

面向对象软件测试方法主要包括单元测试、集成测试、系统测试、验收测试等。

1、单元测试单元测试是对软件系统中最小单元的测试。

最小单元可以是一个类,一个函数或者一个模块等。

单元测试主要是通过代码测试来验证一个单元的正确性。

单元测试的目标是在每次开发的过程中及时发现和解决问题,以提高软件质量和开发效率。

2、集成测试集成测试是将多个模块或子系统组合在一起进行测试,以验证它们之间的交互和一致性。

集成测试可以分为自下而上的集成测试和自上而下的集成测试。

自下而上的集成测试,也称为模块集成测试。

模块集成测试是对系统中单个模块的测试。

当一个模块经过单元测试后,可以将其与其他模块进行联合测试。

在单元测试中发现的问题可能会影响到多个模块,因此需要在联合测试时进行综合分析和解决。

自上而下的集成测试,也称为模块组装测试。

模块组装测试是将上层模块作为测试的重点,在测试过程中逐步加入下层模块进行测试。

在这种测试方法中,需要重点测试上层模块的功能和接口是否正常,以保证整个软件系统的运行。

3、系统测试系统测试是对整个软件系统的测试,包括对系统的功能、性能、安全、稳定性等方面的测试。

系统测试是保证整个软件系统按照设计要求正常运行的重要手段。

4、验收测试验收测试是在软件系统开发完成后对软件系统进行测试,目的是验证软件系统是否满足用户需求。

验收测试主要包括安装测试、兼容性测试、功能测试和性能测试等。

二、面向对象软件测试技术1、黑盒测试黑盒测试是一种基于软件系统功能的测试技术。

黑盒测试不考虑软件的内部结构,只测试软件是否能够按照规格说明正常工作。

黑盒测试可以独立于编写代码的程序员进行,只需要依据需求文档,就能进行有效的测试。

2、白盒测试白盒测试是一种基于软件系统的内部结构的测试技术。

一个面向对象软件测试工具实现及其实验研究

一个面向对象软件测试工具实现及其实验研究
测 试 , 将 测 随 过 程 中发 现 的 错 误 按 照 ^ 为植 ^ 的 错 误 和 固 并 有 的错 误 分 别 登 记 . 如果 在 软 件 中 ^为地 植 ^ 丁 ^个错 误 , 而
错误 , 每类 叉包 告 若 干型 号 的错 靛 这些 错误 都 是编 译 器 难 以
识 别 的

个 面 向对 象 软 件 测 试 工 具 实 现 及 其 实 验 研 究
李 心 科 刘 宗 田。 何 免 如
。 肥 工 业 大 学 微 型 计 算 机 应用 研 究 所 安 触 音 肥 20 0 ) f 胥 5 0 9
“ 大 学 计葬 机 学 院 . f 2 9 7 ) t海 。 海 00 2
・ t个 错 误 J

基于 植 错 算 法 的测 试 方 法 的 忧 点 是 : 1 原 理 比 较 简 单 . (]
O 软 件 测 试 工 具 Er e d 它 可 对 目标 软 件 所 包 告 的 错 误 O S e. r
引 起 软 件 错 误 的原 因 很 多 , 如设 计语 言的 缺 陷 、 计 ^员 设 主 观 上 的 错 话: . 过 对 卜 软 件 设 计 中 容 易 出现 的 错 误 等 通
着 多 种 ( ) 程 浯 言 如 c十 一 、AVA 等 的诞 生 向 对 象 方 ) 编 ( _』 面
O 软 件 中 不 但 有 传 统 软 件 中 可 能 出 现 的 错 误 ( 要 体 现 在 0 主 类 的方法 中 因 为 类 的 方 法 从 某 种 意 义 上 仍 是 一个 过 程 )还 , 会 出 现 一 与 OO 特 征 相 关 的 错 误 . 继 承 和 封 装 方 面 的 错 些 如 误 . O 测 试技 术 中 , 娄 作 为 洲 试 的 重点 植 错 工 具 一 方 在 O 将

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

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

面向对象软件测试方法研究作者:李珩武雪芳来源:《消费电子·理论版》2013年第12期摘要:软件测试是软件开发过程中确保软件质量的重要手段,随着面向对象软件开发技术的广泛应用,对面向对象软件测试技术的研究显得尤为重要。

本文首先介绍了软件测试的概念以及面向对象软件特点对传统软件测试产生的影响,接着重点讨论了面向对象软件测试的方法。

关键词:软件测试;面向对象;类测试中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2013) 24-0000-01面向对象软件测试技术是针对使用面向对象技术开发的软件而提出的一种测试技术。

面向对象开发技术和传统开发技术相比有新的特点,使用面向对象技术开发的程序具有高质量、高效率、易扩展、易维护等优点,这也给它的测试技术带来新的挑战。

面向对象软件测试与传统的软件测试相比,由于面向对象技术开发的软件会出现传统软件技术中不存在或者不突出的错误,使得传统的软件测试中次要方面成为了现在的主要问题,影响了软件测试的方法和内容,增加了软件测试的难度。

一、软件测试(一)软件测试软件测试是使用人工操作或者利用测试工具按照测试方案和流程对软件产品进行功能和性能方面的评估,检验软件产品是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。

(二)面向对象对软件测试的影响面向对象软件具有抽象性、封装性、继承性和多态性等特点,这些特点对软件测试产生了不同的影响。

面向对象程序中子类可以继承父类的功能,父类进行了充分测试后,子类也要设计相应的测试用例进行充分测试,对子类进行测试时不仅要测试子类中的方法,还要重新测试与子类中重定义方法相关的类。

面向对象软件测试时,对象的状态通常是信息隐蔽的,测试人员需要在测试类中添加适当的信息来表明对象的实现方法及其内部状态。

对于面向对象软件的多态性形成的动态绑定的测试使用传统的静态分析策略是不合适的,需要使用动态的测试标准来解决这个问题。

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

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

重要。采用面 向对象的思想来 测试 面向对象 的软件 , 为测试用例 的生成提 供 了通用 的接 口, 提高 了测试代码 的可复用性 , 为面 向对象软件 的充分测试奠定 了基础 。
关键词 : 面向对象 ; 软件测试 ; 单元测试 ; 类测试 中图分类号 :P 1.6 T 3 15 文献标识码 : A 文章编号 :6 1 2 120 )4 04 2 17 —03 (0 80 —01 —0
动程序时应该 能够复用 已存 在的驱动程序 的代码 _ 。 6 J 2 3 测试驱动程序 的设计 .
第3 o卷 第 4期 23 (8年 1 Y 2月
湘潭 师范学院学报( 自然科学版 )
J u a o i ga oma U i rt( aua S i c d i ) o m l f a t N r l n esy N trl c neE i n X n n v i e t o
2 1 构 建 测 试 驱 动 程 序 .
一ቤተ መጻሕፍቲ ባይዱ
旦我们确定 了一个类 的可执行测试用例 , 我们就必须执行测试驱动程序来运 行每个 测试用例 , 给出每个测试用 例 并
运行 的结果 。测试驱动程 序创建一个 或多个类的实例来运行一个 测试用 例。重 要的是要记住 我们是通过创 建实例 和测试
这些 实例 的行为来测试类 的 j 。
软件开发过程中不断测试的测试模型 , 使开发 阶段 的测试与编码完成后 的单元测试 、 集成测试 、 系统测试成为一个整体。
2 面 向对象软件的类测试
面向对象程序 的基本单位是类。类测试在面 向对象编程阶段实施 为面 向对象编程的测试。类测试是 由那些 与验证类 的实现是否和该类 的说 明完全一致的相关联的活动组成 。如果类的实现正确 , 那么类 的每个 实例 的行为也应该是 正确的。 类测试与传统测试 过程 中的单元测试大体相似。 我们能够通过代码 检查或执行测试用例来有效地测 试一个类 的代码。在某些情况下用代码检查代 替基于执行的测试

面向对象软件测试技术的研究与应用

面向对象软件测试技术的研究与应用

0 引

例、 执行测试和评价 , 这都与传统的软件测试一致。但 由
于面 向对 象测试 本身 所 具有 的封 装 性 、 承 性 、 继 多态 性 和
如何提高软件质量是软件工程致力解决 的关键问题
之一。软件测试和验证是保证软件正确性和提高软件可
靠性的最基本和最重要的手段。 白2 O世纪 8 年代以来, 0 面向对象方法和技术 的研究已遍及计算机软件、 硬件和应
A s atO j t r ne ot r sn dsesbet edvlp n f bet r ne f r , n stekyt ot ae bt c: be —o etdsf et t gii i nal ot ee met jc —o etds t e a di h e sf r r c i wa e i s n p h o oo i o wa o w
动态绑定等特性 , 使得面向对象软件测试的策略和技术与 传统 的软件测试方法有很大不同… 。
在面 向对象 系统 中, 系统 的基 本构 造模 块 已不再 是 能
用各领域 , 在软件工程领域更是得到了广泛的重视 , 但研
究的重点和成果主要集 中于面向对象分析与技术方法学 领域( 即软件开发的前期 )而面向对象软件测试技术的研 ,
sse . yt m
Ke r s e t o e td;ot ree gn e n ;ot ret tn ; l ̄ e t ;lc r c ig a ywo d : f — r ne s fwa n ierg sfwa e i cmstsi bo k b a h da rm i i s g g n n
关键词 : 向对象 ; 工程 ; 面 软件 软件测 试 ; 测试 ; 支图 类 块分

面向对象软件测试技术研究

面向对象软件测试技术研究

浙江杭州 )
法对 数据进 行 的操 作 ,它 与传统 的单元模 块 测 试 相 对 应 , 可 以 将 传 统 成 熟 的 单 元 测 试 方 法 。但是 ,方法与 数据 一起 被封 装在类 中, 并通 过 向所 在对象 发送消 息来驱 动,它 的执 行 与对象状 态 有关,也有 可能会 改变对象 的 状 态 。 因此 ,设 计 测试 用 例 时 要考 虑 设 置 对象 的初态 ,使它 收到消 息时执行 指定 的路 Fra bibliotek径 。 、
2 、类 测 试 主要考 察封装 在一个类 中 的方法与数据 之 间 的 相 互 作 用 。 一 个 对 象 有 它 自 己 的状 态 和 依 赖 于 状 态 的行 为 ,对 象 操 作 既 与 对 象 状 态 有 关 , 又 反 过 来 可 能 改 变 对 象 的 状 态 。 普
窿要墨 重墨
』 曼
面向对 象软件测试技术研究
文◎ 徐舒 ( 州师范大学钱江学院 电气机械工程 系 计算机科学与技术专业 杭
摘要 :软 件 测试 在整 个软件 项 目开发 过 程 中有 着举足轻 重的地位 ,测试 技术 的发展 对 于缩短 测试周 期 、降低 成本 、提 高质 量都 有 着 十 分 重 要 的 意 义 本 文 介 绍 了软 件 测 试 的 关 键 技 术 , 并 对 面 向对 象软 件 测 试 技 术 进
在 面 向对 象 系 统 中 , 系 统 的 基 本 构 造 单 元 是封装 了数据和 方法 的类和对 象 ,而不再 是 一 个 个 能 完 成 特 定 功 能 的 功 能 模 型 。 每 个 对 象 有 自 己 的 生 存 期 ,有 自 己 的状 态 。 消 息 是对 象 之 间 相 互 请 示 或 协 作 的途 径 , 是 外 界 行 了深入 研 究。 使 用对象 方法及 获取对象状 态 的唯一方 式 。 关 键 词 : 软 件 测 试 ; 关 键 技 术 ; 软 件 项 对 象 的 功 能 是 在 消 息 的 触 发 下 , 由 对 象 所 属 目开 发 类 中 定 义 的 方 法 与 相 关 对 象 的 合 作 共 同 完 引 言 成 , 并 且对 象 在 不 同 状 态 下 对 消 息 的 响 应 可 . 软 件 测 试 是 伴 随 着 软 件 的 产 生 而 产 生 能完 全 同 。 的 。软 件 危 机 的 频 繁 出现 促 使 了软 件 测 试 的 , 工 作 过 程 中 , 对 象 的状 态 可 能 被 改 变 , 地 位 得 到 了大 幅 提 升 。 软 件 测 试 已经 不 仅 仅 产 生 新 的状 态 , 即 发 生 状 态 的 转 移 。对 象 中 是局 限于软件 开发过程 中的 一个阶段 ,它 已 的 数 据 和 方 法 是 一 个 有 机 的 整 体 ,在 软 件 测 经 开始 贯 穿 于 整 个 软 件 开 发 过 程 ,成 为 软 件 试 过 程 中 , 不 能 仅 仅 检 查 输 入 数 据 产 生 的 输 产 品 质 量控 制与 质 量 管 理 的 重 要 手 段 之 。 出 结 果 是 否 与预 期 结 果 相 吻 合 , 还 要 考 虑 对 软 件 测 试 技 术 作 为 软 件 工 程 学 科 的 一 个 象 的 状 态 变 化 。 因 此 , 除 了要 对 对 象 的 状 态 分支 ,是保证 软件质 量和可靠 性 的关 键 ,因 与 方 法 间 的 相 互 影 响 进 行 测 试 , 还 要 进 行 状 态测试 。 此它也 是软件 开发过程 中的 一个重要 环 节。 它 的核心思想 是:对 于输入 域的特 定输入 , 2 系 统 的 功 能 实现 、 观 察 软 件 的执 行 结 果 , 验 证 该 结 果 与 期 望 结 在面 向对象系 统中 ,系统 的功能 体现在 果 是 否 一 致 , 然 后 根 据 结 果 作 相 应 的 纠 错 和 对 象间 的协作上 ,而不 再是简 单的过程 调用 调 整 。 在 测 试 过 程 中 , 测 试 用 例 的选 择 决 定 关系 。面向对象 程序 的执行实 际上是 执行 一 测 试 的 有 效 性 , 这 也 就 直 接 影 响 到 成 本 ,是 个 由消 息 连 接 起 来 的 方 法 序 列 , 方 法 的 实 现 软 件 测 试 的关 键 和 难 点 。 目 前 , 软 件 测 试 技 与所属对 象本身 的状态 有关 ,各方法之 间可 术 的 发 展 还 不 是 很 成 熟 ,测 试 人 员在 选 择 测 能有相 互作用 。为实现 某一特 定的 功能 ,可 试 用 例 时 通 常 根 据 赢 觉 和 经 验 进 行 , 给 测 试 能 要 激 活 调 用 属 于 : 对 象 类 的 多 个 成 员 函 同 带 来 很 大 的盲 目性 , 最 终 导 致 的 后 果 是 使 软 数 , 形 成 成 员 函 数 的 启 用 链 。 因 此 , 基 于 功 件 后期维 护的 费用在 成本 中居高 不下 。科 学 能 分 解 的 自顶 向 下 或 自底 向 上的 集 成 测 试 策 生 成 测 试 用 例 对 提 高 软 件 质 量 不 仅 重 要 而 且 略 不适 用于 面 向对 象 软 件 系 统 的 测 试 。 必要 。 3 、封 装 对 测 试 的 影 响 封 装 是 指 在 词 法 单 位 之 中 或 之 间 决 定 名 随 着 面 向 对 象 软 件 开 发 技 术 的广 泛 应 用 和 软 件 测 试 自动 化 的 要 求 , 特 别 是 基 于 的 软 字 可见 性 的 访 问 控 制 机 制 。它 支 持 信 息 的 隐 件 开 发 技 术 的 逐 渐 普 及 ,基 于 模 型 的 软 件 测 蔽 和 模 块 化 ,有 助 于 防 止 全 局 变 量 访 问 的 问 试 逐 渐 得 到 了 软 件 开 发 人 员 和 软 件 测 试 人 员 题 。尽 管 封 装 不 会 直 接 促 成 错 误 的 发 生 , 它 的 认可和接 受 。它 是 一 种新 兴的测试 用例 生 却 给 测 试 带 来 了 障 碍 。 封 装 使 对 象 的 内部 状 成 技术 。有优于 以前的测试 技术 的方面 。其 态 隐 蔽 , 如 果 类 中未 提 供 足 够 的 存 取 函 数 来 中模型 以其定义 良好 、功 能强大 、普遍适 用 表 明对 象的 实现 方式 和 内部状 态 ,则类 的信 的优点 ,为基于模 型的测试 提供 了非常好 的 息隐蔽机制将给测试带来 困难。 契机 。 4 、继 承 对 测 试 的 影 响 二、面向对象特征对软件测试的影晌 继承 也是面 向对象 语言 中的 一 个本质特 面 向对 象 技 术 是 一 个 全 新 的 开 发 模 式 , 征 。继 承 可 用 于 一 般 与 特 殊 关 系 , 并 目方 便 具有 以下 特 点 : 编 码 。 但 继 承 削 弱 了 封 装 性 , 产 生 了类 似 于 ( ) 要 综 合 考 虑 软 件 开 发 过 程 所 有 阶 非 面 向 对 象 语 言 中全 局 数 据 的 错 误 风 险 。 由 1它 段。 于继承 的作 用,一个 函数可 能被封 装在 具有 () 软 件 开 发 的整 个 生存 周 期 中 , 每 个 继 承 关 系 的 多 个 类 中 , 子 类 中 还 可 以对 继 承 2在 阶 段 之 间是 连 续 的 。 的 特 征 进行 覆 盖或 重 定义 。 () 发 过 程 分 为 面 向对 象 分 析 (O ) 3开 OA、 5 、多 态 对 测 试 的 影 响 面 向 对 象 设 计 (O ) 面 向对 象 编 程 (O ) OD 、 OP、 多态 性 是 指 一 个 引用 可 以与 多 个 对 象 面 向对 象 测 试 (O ) 个连 续 的部 分 。 OT 四 绑 定 的 能 力 。 多 态 能 减 少 代 码 的 复 杂 性 和 规 C a 和g u d n 面 ) od or o给 向对 象 的 概 念 下 了 模 , 同 时 还 可 以 实 现 动 态 绑 定 。但 依 赖 于 不 个定义 : 规 则 的 类 层 次 的 动 态 绑 定 可 能 产 生 编 程 人 员 面 向对 象 = 象 + + 承 + 信 对 类 继 通 没 有 想 到 的 结 果 。某 些 绑 定 能 正 确 的 工 作 但 如 果一个软件系统是使用这样4 个概念设 并 不 能 保 证 所 有 的 绑 定 都 能 正 确 地 运 行 。 以 计 和实现 的,则认 为这个 软件系统 是面 向对 后 绑 定 的 对 象 可 能 很 容 易将 消 息 发 送 给 错 误 象 的 。 ~ 个 而 向对 象 的 程 序 的 每 一 个 组 成 部 的 类 ,执 行 错 误 的 功 能 ,还 可 能 导 致 一 些 与 分 都是对 象,计算 是通过对 象和对 象之 问的 消 息 序 列和 状 态 相 关 的错 误 。 通信来执行的。 三 、 面 向对 象 软 件 测 试 的 层 次 划 分 及 内 面 向 对 象 技 术 的 本 质 是 定 义 了 类 的 抽 容 象 ,将 变量 和 与 作用 于 它 的 操 作封 装 到 ・ 面 向 对 象 软 件 测 试 的 测 试 工 作 过 程 与 传 块 。 然 后 用 不 同 的类 和 方 法 组 合 成 一 个 对 象 统 的 测 试 一样 , 分 为 以下 几 个 阶 段 : 制 定 测 系 统 。 面 向对 象 软 件 将 传 统 软 件 中 的 个 过 试 计划 、 产 生 测 试 用 例 、执 行 测 试 和 评 价 。 程 或一个 方法 内的复杂性转 移到对 象之 问的 日前 ,面 向对 象软件 测试划 分方法 是 :方法 交 互 中 。 面 向 对 象 语 言 一 些 本 质 特 征 形 成 了 测 试 、 类 测 试 、类 簇 测试 、系 统 测 试 。 如 下 的 一 些 新 的 故 障 、错 误 风 险 1 、方 法 测 试 1 、基 本 功 能 模 块 方法 测 试 主 要 考 察 封 装 在 类 中 的 … 个 方
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于面向对象软件测试技术的研究
【摘要】在整个软件项目开发过程中软件测试有着非常重要的地位,测试技术的发展对于缩短测试周期、降低成本、提高质量都有着十分重要的意义。

本文介绍了软件测试的关键技术,并对面向对象软件测试技术进行了深入研究。

【关键词】软件测试;关键技术;软件项目开发
软件测试技术作为软件工程学科的一个分支,是保证软件质量和可靠性的关键,因此它也是软件开发过程中的一个重要环节。

它的核心思想是:对于输入域的特定输入,观察软件的执行结果,验证该结果与期望结果是否一致,然后根据结果作相应的纠错和调整。

在测试过程中,测试用例的选择决定测试的有效性,这也就直接影响到成本,是软件测试的关键和难点。

目前,软件测试技术的发展还不是很成熟,测试人员在选择测试用例时通常根据直觉和经验进行,给测试带来很大的盲目性,最终导致的后果是使软件后期维护的费用在成本中居高不下。

科学生成测试用例对提高软件质量不仅重要而且必要。

1 面向对象特征对软件测试的影响
面向对象技术是一个全新的开发模式,具有以下特点:
(1)它要综合考虑软件开发过程所有阶段。

(2)在软件开发的整个生存周期中,每个阶段之间是连续的。

(3)开发过程分为面向对象分析(00a)、面向对象设计(ood)、面向对象编程(oop)、面向对象测试(oot)四个连续的部分。

coad和yourdon给面}向对象的概念下了一个定义:
面向对象=对象+类+继承+通信
如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。

一个而向对象的程序的每一个组成部分都是对象,计算是通过对象和对象之间的通信来执行的。

面向对象技术的本质是定义了类的抽象,将变量和与作用于它的操作封装到一块。

然后用不同的类和方法组合成一个对象系统。

面向对象软件将传统软件中的一个过程或一个方法内的复杂性转移到对象之间的交互中。

面向对象语言一些本质特征形成了如下的一些新的故障、错误风险。

1.1 基本功能模块
在面向对象系统中,系统的基本构造单元是封装了数据和方法的类和对象,而不再是一个个能完成特定功能的功能模型。

每个对象有自己的生存期,有自己的状态。

消息是对象之间相互请示或协作的途径,是外界使用对象方法及获取对象状态的唯一方式。

对象的功能是在消息的触发下,由对象所属类中定义的方法与相关对象的合作共同完成,并且对象在不同状态下对消息的响应可能完全同。

工作过程中,对象的状态可能被改变,产生新的状态,即发生状态的转移。

对象中的数据和方法是一个有机的整体,在软件测试过程中,不能仅仅检查输入数据产生的输出结果是否与预期结果相吻合,还要考虑对象的状态变化。

因此,除了要对对象的状态与方法间的相互影响进行测试,还要进行状态测试。

1.2 系统的功能实现
在面向对象系统中,系统的功能体现在对象间的协作上,而不再是简单的过程调用关系。

面向对象程序的执行实际上是执行一个由消息连接起来的方法序列,方法的实现与所属对象本身的状态有关,各方法之间可能有相互作用。

为实现某一特定的功能,可能要激活调用属于不同对象类的多个成员函数,形成成员函数的启用链。

因此,基于功能分解的自顶向下或自底向上的集成测试策略不适用于面向对象软件系统的测试。

1.3 封装对测试的影响
封装是指在词法单位之中或之间决定名字可见性的访问控制机制。

它支持信息的隐蔽和模块化,有助于防止全局变量访问的问题。

尽管封装不会直接促成错误的发生,它却给测试带来了障碍。

封装使对象的内部状态隐蔽,如果类中未提供足够的存取函数来表明对象的实现方式和内部状态,则类的信息隐蔽机制将给测试带来困难。

1.4 继承对测试的影响
继承也是面向对象语言中的一个本质特征。

继承可用于一般与特殊关系,并目方便编码。

但继承削弱了封装性,产生了类似于非面向对象语言中全局数据的错误风险。

由于继承的作用,一个函数可能被封装在具有继承关系的多个类中,子类中还可以对继承的特征进行覆盖或重定义。

1.5 多态对测试的影响
多态性是指一个引用可以与多个对象绑定的能力。

多态能减少代码的复杂性和规模,同时还可以实现动态绑定。

但依赖于不规则的类层次的动态绑定可能产生编程人员没有想到的结果。

2 面向对象软件测试的层次划分及内容
面向对象软件测试的测试工作过程与传统的测试一样,分为以下几个阶段:制定测试计划、产生测试用例、执行测试和评价。

目前,面向对象软件测试划分方法是:方法测试、类测试、类簇测试、系统测试。

2.1 方法测试
方法测试主要考察封装在类中的一个方法对数据进行的操作,它与传统的单元模块测试相对应,可以将传统成熟的单元测试方法。

但是,方法与数据一起被封装在类中,并通过向所在对象发送消息来驱动,它的执行与对象状态有关,也有可能会改变对象的状态。

因此,设计测试用例时要考虑设置对象的初态,使它收到消息时执行指定的路径。

2.2 类测试
主要考察封装在一个类中的方法与数据之间的相互作用。

一个对象有它自己的状态和依赖于状态的行为,对象操作既与对象状态有关,又反过来可能改变对象的状态。

普遍认为这一级别的测试是必须的。

类测试时要把对象与状态结合起来,进行对象状态行为的测试。

类测试可分以下两个部分:
2.2.1 基于状态的测试
考察类的实例在其生命期各个状态下的情况。

这类方法的优势是可以充分借鉴成熟的有限状态自动机理论,但执行起来还很困难。

一是状态空间可能太大,二是很难对一些类建立起状态模型,没有一种好的规则来识别对象状态及其状态转换,三是可能缺乏对被测对象的控制和观察机制的支持。

2.2.2 基于响应状态的测试
从类和对象的责任出发,以外界向对象发送特定的消息序列来测试对象。

较有影响的是基于规约的测试方法,和基于程序的测试。

基于规约的测试往往可以根据规约自动或半自动地生成测试用例,但未必能提供足够的代码覆盖率。

基于程序的测试大都是在传统的基于程序的测试技术的推广,有一定的实用性但方法过于复杂且效率不高。

2.3 系统测试
系统测试是对所有类和主程序构成的整个系统进行整体测试,以验证软件系统的正确性和性能指标等满足需求式样说明书和任务书所指定的要求。

它与传统的系统测试一样,包括功能测试、性能测试、余量测试等,可套用传统的系统测试方法。

3 面向对象软件测试的覆盖准则
测试覆盖标准是对软件测试充分性的度量,任何测试策略都应该有相对应的覆盖标准,在此基础上选择测试用例,通过覆盖率来说明测试结果的可信性。

传统的软件测试的覆盖标准对基于代码的测试而言,主要是代码覆盖,可细分为语句覆盖、路径覆盖、分支覆
盖、判定分支覆盖,其中判定分支是最强的覆盖标准。

对于面向对象软件的测试而言代码的覆盖只对方法级测试适用,为了测试面向对象程序设计机制带来的错误风险,必须引入新的覆盖标准。

对于继承而言,要求达到继承的上下文覆盖;多态性要求覆盖所有可能的消息绑定;基于代数规约的测试要求能达到公理的覆盖;基于状态的测试要求能覆盖所有的状态和转换。

【参考文献】
[1]朱少民.软件测试方法和技术[m].北京:清华大学出版社,2005.
[2]徐中伟.软件测试质量的度量[j].计算机工程与应用,2002.
[3]张雪萍.类测试技术研究[j].计算机工程与应用,2002. [责任编辑:王静]。

相关文档
最新文档