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

合集下载

面向对象的软件测试

面向对象的软件测试

面向对象的软件测试

作者:王容

来源:《电脑知识与技术》2013年第05期

摘要:软件的测试时软件开发的重要部分,是保证软件质量提高软件性能的关键。面向对象的软件测试具有它自己的特点,需要与传统的软件测试相区别,因此面向对象的软件测试则被分成不同的阶段,本文将面向对象软件测试层次划分为六个个层次,主要介绍了面向对象软件测试的以下三个层次:类测试、集成测试和系统测试。

关键词:面向对象;单元测试;集成测试;系统测试

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)05-1200-02

面向对象的方法在现在的软件开发的运用中是越来越广泛,但是相应的测试方法并没有做出相应的改变,仍然有很多使用的还是传统软件使用的测试方法,出现这样的结果不是单方面的原因,既有在采用面向对象方法开发软件的时候在设计和分析阶段保留的文档不够全面或者并没有按照面向对象的方法进行保存,造成了在设计测试的时候不能够找到原始文档。还有可能就是现在并没有有效的方法是针对面向对象方法的。这样就会使得工作变得更加的复杂,就会增加工作量。但是测试的结果也可能并不理想,使得最后得到的软件并不能够达到用户的期望。因此,如何使用面向对象的方法来测试软件是非常必要的。

1 面向对象测试与传统测试技术的异同

首先,这两种技术的测试过程是相同的。都要对整个测试进行计划,设计出测试用例,运行测试用例,根据结果进行测试分析,最后是用户验收。其次,这两种技术的测试目标也是相同的。测试的目的都是为了使得设计出来的软件能够达到期望的功能。再次,测试也是为了用尽可能少的工作量测试出软件尽可能多的错误,虽然在这三个方面这两种技术都是相同的,但是在测试计划和设计测试用例的时候是有很大的区别的,这主要是归结于面向对象软件和传统的软件的设计思路不同。传统的软件是由各个功能模块组成的,那么在测试计划和设计测试用例的时候就要注意的就是这些功能模块之间的关系。他们之间的关系,它们之间是调用的关系。而面向对象的软件,它更加注重的是对象之间的相互交流。它们是通过对象来传递它们之间的消息。这也是在测试计划和设计测试用例的时候需要考虑的,怎样的测试用例才能够更好使得软件的功能的优缺点体现出来。

面向对象的软件测试技术

面向对象的软件测试技术

摘 要 :随 着面 向对 象技 术 的发展 ,面 向对 象的软件 测试 已经 成为 面向对 象技 术 中的关键 环 节 ,是保 证软件 的质量和 可靠性 的重要 手段 ,为 此 ,本 文对 面向对 象的软 件测 试技 术进行探 讨 。 关键 词 :面向对 象;软件 测试 ;封装 性 中图分 类号 :T 3 1 文献标 识码 :A P 1. 5 文章 编号 :10— 59 (0 0 1— 15 0 07 99 2 1 ) 2 0 4— 1
A s a t t e e eo m n o b c o e t c n l yojc— i t f a s n f b c o e t c n l b t c: ht v l e t f j t r n dt h o g , et r ne s t r t t go j t r n dt h oo r Wi h d p o e -i e e o b o e d o w ee i o e -i e e y g hs eo ea e ik o nuesf ae ulyad e ait fli ot t asnte ae ojc— et f r t t g a bcm kyl t sr ot r qa t n lbl o a mpr n me , h ppr bet r ne st e e i n e w i ri i y l a n i o i d o wa s n

面向对象与传统软件的测试技术

面向对象与传统软件的测试技术
传统软件中存在的依赖关系有:变量间的数据依赖;模块 间的调用依赖;变量与其类型间的定义依赖;模块与其变 量间的功能依赖。
面向对象软件除了存在上述依赖关系外,还存在以下的依 赖关系:类与类间的依赖;类与操作间的依赖;类与消息 间的依赖;类与变量间的依赖;操作与变量间的依赖;操 作与消息间的依赖;操作与操作间的依赖。
欧共体
Ip2.3 Op2.3 Op3.3 Op4.4
Ip2.4 Op2.4 Op3.4 Op4.3
日本
Biblioteka Baidu
图16-8 选择国家状态详细视图
Ip5
退出
在存储器中
结束
执行 Ip4 清除
空闲
Ip3/op8

Ip2/op2,op3 Ip1/op1 Ip6 遗漏国
国家已 选择
Ip3/op7
美圆金 额已输入
家和美 圆消息
面向对象与传统软件的测试技术
技术创新,变革未来
面向对象的基本概念
对象 类 消息 接口 封装 继承 多态
面向对象的基本概念
Peter Coad 和 Edward Yourdon 提出下列等式认 识面向对象方法: 面向对象 = 对象(Object) + 分类(Classification) + 继承(Inheritance) + 通过消息的通信 (Communication with message)

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

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

【关键 词 】面向对象 ;软件测试 ;技术 分析
【中图分类号 】TP31 1
【文献标识码 】A
【文章编号 】1006—4222(2016)04—0253一Ol
1 引 言
3 面向对象软 件测试技术分析
对 于 软 件 本 身存 在 的 不 完 善 之 处 ,特 别是 其 在 开发 过 程 3.1 正交 试验 设 计法
2016年 2 月 下
关 于 面向对 象软 件 测试 技 术分 析
陈文其 (海南师范大学,571127)
【摘 要 】现 阶段 ,虽然软件取得 了广泛的应用 ,但 因为软件 本身不完善而导 致的应用事故却时有发生 ,这给用户 带来 了比较 严重 的影 响。因
此 ,为 了确 保 所 开 发 的软 件 不 存 在 缺 陷 和 漏 洞 ,采 用 面 向对 象 的软 件 测 试 技 术 对其 进 行 测 试 是 完 全 有 必要 的 ,应 该 引 起 我们 充 分 的 重视 。
了软 件 测 试 环 节 , 而软 件 测 试 需 要 用 到 测 试 技 术 .可 以 这 样 这 种 技 术 的 最 大 优 点是 测 试 用 例 比 较 少 .所 以 测 试 效 率很 高 。
说 ,软 件 测 试 技 术 本 身 的优 劣 在 一 定 程 度 上 决 定 了测 试 结 论 所 谓 正 交试 验 设 计 法 .是 指 在 对 测 试 因素 及 其 水 平 进 行 充 分

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

面向对象软件测试技术研究
科技信息
0 I T论l i fO
SI C CEN E&T C N O F MA I N E H OL GYI OR T O N
21 年 Hale Waihona Puke Baidu1
第 3期
面 向对 象软件测试技术研 究
郭 滔 ( 南 理 工 职 业 技 术 学 院 信 息 系 湖 南 湘 潭 湖
【 摘
4 1 0 1 0 ) 1
或 自动 手 段 运 行 或 测 定 某个 系统 的 过程 , 目的在 于 检 验 它 是 否 满 足 类和对象. 而不 再 是一 个 个 能 完 成 特 定 功 能 的 功 能 模 型 。 每 个 对 象 有 规 定 的需 求 或 是 弄 清 预 期 结 果 与 实 际 结 果 之 间 的 差别 。 自己 的 生 仔 期 , 自己 的 状 态 。 消 息 是 对 象 之 间 相 互 请 示 或 协 作 的途 有 软 件 测 试 是 伴 随 着 软 件 的产 生 而产 生 的 。 件 危 机 的频 繁 出现 促 径 , 外 界 使 用 对 象 方 法 及 获 取 对 象 状 态 的 唯一 方 式 。 对 象 的 功 能 是 软 足 使 了 软 件 测 试 的 地 位 得 到 了 大 幅 提 升 。 件 测 试 已经 不 仅 仅 是 局 限于 软 在 消息的触发下. 由对 象 所 属 类 中 定 义 的 方 法 与 相 关 对 象 的 合 作 共 同 软 件 开 发 过 程 中 的 一 个 阶段 , 已经 开 始 贯穿 于整 个 软 件 开 发 过 程 , 它 成 完 成 , 且 对 象 在 不 同状 态 下 对 消 息 的 响 应 可 能 完 全 相 同 。 工 作 过 程 并 为 软 件 产 品 质 量控 制 与质 量 管理 的重 要 手 段 之 ~ 。 中 象 的状 态 可 能 被 改 变 , 生 新 的状 态 , 对 产 即发 生 状 态 的 转 移 对 象 中 随 着 面 向 对 象 软 件 开 发 技 术 的J 一泛 应 用 , 及 软 件 测 试 在 软 件 开 的数 据 和 方 法 是 一 个 有 机 的整 体 , 软 件 测 试 过 程 中, 能 仅 仅 检 查 输 以 在 不 发 过程 中地 位 的不 断 上 升 , 件 项 目开 发 过 程 中面 向对 象 技 术 对 传 统 软 入 数 据 产 生 的输 出 结 果 是 否 与 预 期结 果 相 吻 合 , 要 考 虑 对 象 的 状 态 还 软 件 测 试产 生 了新 的挑 战 , 向对 象 软 件 测 试技 术 的研 究 越 来 越 受 人 变 化 。 因此 r要 对 对 象 的 状 态 与 方 法 间 的相 互 影 响进 行 测 试 , 要 面 除 还 们的关注。 进行状态测试 。

面向对象的软件测试技术(转)

面向对象的软件测试技术(转)

面向对象的软件测试技术(转)

面向对象的软件测试技术

相关知识点-面象对象(=objectoriented)技术

1.对象和类

l面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息

l类就是一种代莱数据类型,就是设计的核心,就是通过抽象数据类型的方法去同时

实现的一种数据类型

l类是对某一对象的抽象,对象是某一类的实例,两者密切相关

2.PCB、承继和多态性

(1)封装:把数据和操作结合一体,使程序结构更加紧凑,避免了数据紊乱带来的

调试与维护的困难

(2)承继:可以从一个类衍生至另一个类,派生类承继了父类和祖先类的数据成员

和函数,减少了软件的可扩充性,并为代码器重提供更多了强有力的手段

(3)多态性:多种表现形式,可以用‘一个对外接口,多个内在实现方法’表示。

一.面向对象测试模型

1.面向对象测试的分类

依据面向对象研发模型(面向对象分析、面向对象设计、面向对向编程),分成:

(1)面向对象分析的测试(ooatest)、面向对象设计的测试(oodtest):是对分

析结果和设计结果的测试,主要对分析设计产生的文本进行的,是软件开发前期的关键性

测试

(2)面向对象编程的测试(ooptest):对编程风格和程序代码同时实现展开测试,

主要的测试内容在oounittest和oointegratetest中彰显

(3)面向对象单元测试(oounittest):对程序内部具体单一的功能模块的测试,

主要对类成员函数的测试,是oointegratetest的基础

(4)面向对象内置测试(oointergratetest):对系统内部的相互服务展开测试,

面向对象软件测试的方法与实践

面向对象软件测试的方法与实践

面向对象软件测试的方法与实践引言:

随着软件开发行业的发展,面向对象编程已成为主流。面向对象的

软件测试在保证软件质量和有效性方面具有重要作用。本文将深入探

讨面向对象软件测试的方法与实践。

一、面向对象编程概述

面向对象编程(Object-Oriented Programming,简称OOP)是一种

程序设计范型,它将程序中的对象视为独立实体,并通过对象之间的

交互来实现功能。面向对象编程的特点包括封装、继承和多态性。

二、面向对象软件测试的重要性

面向对象的软件测试是确保软件质量和可维护性的重要手段。它能

够发现代码中的错误、漏洞和潜在问题,提高软件的稳定性和可靠性。面向对象的软件测试还可以提供代码覆盖率统计、性能分析和代码维

护等功能,有助于提高软件开发的效率和效果。

三、面向对象软件测试的方法

1. 单元测试(Unit Testing)

单元测试是面向对象软件测试中最基础的一种方法。它通过对软件

中的最小可测试单元(通常是一个类或方法)进行测试,并确保其功

能正确性。单元测试的目标是隔离各个单元,以确保其独立性,避免

相互依赖引起的问题。

2. 集成测试(Integration Testing)

集成测试是针对多个单元测试之间的协同工作进行的测试。它将多个单元组织成一个整体,并测试它们之间的交互和协作是否正常。集成测试能够发现单元之间的接口问题、数据传递问题和协作问题等。

3. 系统测试(System Testing)

系统测试是面向对象软件测试中的最高级别的测试。它测试整个系统的功能、性能、安全性等各个方面。系统测试能够检查系统是否满足用户需求,并验证系统在各种场景下的稳定性和可用性。

面向对象的软件验证技术研究

面向对象的软件验证技术研究

面向对象的软件验证技术研究

一、引言

随着软件行业的发展,复杂的软件系统变得越来越多,如何保

证软件的正确性和可靠性成为了一个重要的问题。同时,面向对

象的软件开发方法已经成为主流,如何在面向对象的软件开发中

进行可靠的验证也成为了研究的重点。本文将从面向对象的角度

出发,探究软件验证技术的研究现状及未来方向。

二、面向对象开发技术对软件验证的影响

面向对象的软件开发方法与传统的软件开发方法相比具有很多

优势。面向对象的程序设计可以更好地反映出现实世界的事物之

间的关系,软件开发的可维护性和可扩展性都得到了大幅提高。

但是,随着面向对象的软件系统日益复杂,如何在开发过程中保

证软件的正确性和可靠性是一个亟待解决的问题。

传统的软件验证方法主要是基于静态的代码分析和动态的测试,但是这种方法有很多局限性。静态的代码分析只能检测出代码中

的一些明显的错误,而无法覆盖所有可能的错误情况。动态的测

试需要大量的人力与时间,测试的覆盖率也很难达到100%。

面向对象的软件开发方法更加注重代码复用性和接口的一致性,大大增加了软件系统的复杂性。针对这种情况,面向对象的软件

验证技术应运而生。

三、面向对象软件验证的研究现状

目前,面向对象的软件验证技术主要包括基于模型的验证技术

和基于测试的验证技术。

1.基于模型的验证技术

基于模型的验证技术主要是利用形式化方法验证软件的正确性。形式化方法是一种数学化的验证方法,在代码实现之前,通过定

义形式化规范来验证系统的正确性。建立系统模型并进行形式化

验证是这种方法的核心。

2.基于测试的验证技术

基于测试的验证技术是指通过对程序输入输出进行测试,分析

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

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

( O 三 个 阶段 。 分析 阶段 产 生 整个 问题 空 间 的 抽象 描 述 , O P)
在 此 基 础 上 , 一 步 归 纳 出 适 用 于面 向对 象 编 程语 言 的类 结 进
构 , 后 形成 代 码 。 由于 面 向对 象 的特 点 , 用这 种 开 发模 型 最 采
能有效 地将 分析 设 计 的文本 或 图表 代码 化 , 不断 适应 用户 需求
信 息安全 与技术 ・ 0 01 13・ 2 1.1・ 1
经 过抽 象后 的产 物 , 能直 接运 行 , 要 实例 化类 , 化 后形 不 需 实例
题 。因此 , 要深 入研 究 面 向对象 软件 的测 试 技术 。 需
翰入蠡据 翘 始 袄 态
图 2 类 测 试 模 பைடு நூலகம்
2 .面向 对 象测 试 与传 统 测 试技 术 的 区别
面 向对象 软件 与 传统 软件 的测 试 目标 完全 相 同 , 是为 了 都
确 保 软件 能够 正确 的 执行 预定 功能 , 试过 程基 本都 包括 了测 测
面 向对 象 分析 ( O 、 向对象 设 计 ( O 和 面向对 象 编程 O A)面 O D)
系 列相 关联 的 功能 单元 构成 , 序之 间 的关 系是调 用 关 系。 而 程
面 向对 象 的系 统则 由一 些相 互 关联 的对 象 构成 , 对象 由数 据 和 操 作 组成 , 对象 之 间靠 消息 传递 信息 , 然 系统 由对象 构成 , 虽 但

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

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

软件测 试技 术作 为软 件工程 学科 的一 个分 支 。 保 如果测 试 的 目的是 为 了尽 可 能多地 找 出错误 .那 么测 是 证软 件质 量 和可靠 性 的关 键.因此 它也 是 软 件开 发 过 试 就应 该直接 针对 软件 比较 复杂 的部分 或是 以前 出错 程 中的一 个重要 环 节 。随着 面 向对 象软 件开 发 技术 的 比较多 的位置 。如果 测试 目的是为 了 给最终 用户提 供 广 泛应用 和软件 测试 自动化 的要 求.特别 是基 于的 软 具 有一定 可信度 的质 量评 价 .那 么 测试 就应该 直接针 件 开发技 术 的逐 渐普 及 . 于模 型 的 软件 测试 逐 渐得 对在 实际应 用 中会经 常用 到 的商 业假 设 。软件 测试是 基 到 了软件 开发人 员和 软件 测试人 员 的认可 和接 受 。它 项 细致并 需要 高度技 巧 的工作 .稍 有不 慎就会 顾此 是一 种新 兴的测试 用例 生 成技术 。有 优于 以前 的测试 失彼 . 生不应有 的疏漏 。 件工程 的 总 目标 是充分利 发 软
按期接 收应该 交 付的文 档和作 品 。
试 、 装测试 ( 组 集成 测试 ) 确认 测试 和 系统测试 。 、
23测 试 领域 发展 目前 .测试 领域 的需 求 和应 用 33 件测试 工作 的流程 : . .软 非常广 泛 , 所应 用 的技术 从 软件技 术 到模拟 数 字 、 电 从 测试 并 不仅 仅是 为 了要找 出错误 。通 过分析 错 误 子商 务 到低 频 高 频/ 波 、 测试 到 诊 断 、 维 修 到 保 产生 的原 因和错误 的分 布特 征 .可 以帮 助项 目管理 者 微 从 从 以便 改进 。 同时 , 障. 方方 面面都 在快 速发 展 . 展现 在我们 面 前 的专业 词 发现 当前所 采用 的软件 过程 的缺 陷 ,

面向对象的软件测试技术综述

面向对象的软件测试技术综述

面向对象的软件测试技术综述

随着软件应用范围的不断扩大,软件测试的技术手段也不断进步。面向对象的软件开发思想逐渐被广泛采用,因此,面向对象的软件测试技术也应运而生。本文将综述面向对象的软件测试技术。

一、面向对象软件测试的概念

面向对象的软件测试是针对采用面向对象开发思想的软件进行的测试。与传统的结构化软件测试相比,面向对象软件测试更加注重对软件内部各个部分之间的关系的测试,并且更加关注软件的继承、重载、多态等特性的测试。

二、面向对象软件测试的方法

1. 黑盒测试方法

对于面向对象的软件测试中的黑盒测试方法,测试人员仅考虑输入与输出,而不关心系统内部的具体实现。黑盒测试方法可以通过参照生成测试用例的过程,来完成对程序的测试覆盖。

2. 白盒测试方法

白盒测试方法则针对系统内部的具体实现进行测试。它主要通过静态和动态两种方式进行测试,其中静态分析主要是通过代码分析或模型检查等方式,而动态分析则通过运行测试用例,观察程序执行流程和变量变化等方式进行测试。

3. 增量式测试方法

对于大型的面向对象软件开发,其测试过程可能需要相当长的时间,增量式测试方法就可以有效缩短测试时间。增量式测试方法是指将整个系统分成几个部分,然后逐渐增加到完整的系统环境。这不仅能够逐步发现bug,还能够及时修复,并能逐步提高测试用例的质量。

三、面向对象软件测试的技术手段

1. 测试驱动开发(TDD)

测试驱动开发是一种基于测试驱动的软件开发方法,它强调在实现代码之前,先编写测试程序,以确保所编写的代码能够满足测试需要。TDD可以提高测试的自动化程度,逐步提高测试用例的品质,并减少未发现的bug出现次数。

面向对象的软件测试过程

面向对象的软件测试过程

面向对象的软件测试过程

随着信息化的发展,软件行业也越来越成熟,软件测试作为软件开发的重要环节,更是受到了广泛关注。面向对象的软件测试作为最新的软件测试方式,越来越受到软件工程师们的关注和研究。本文从面向对象的软件测试概述、面向对象的软件测试流程、面向对象的软件测试技术等多个方面进行论述,希望能够对读者有所帮助。

一、面向对象的软件测试概述

面向对象的软件测试主要是针对面向对象的软件技术而言的。它强调基于对象、面向对象和基于类的软件开发思想。在软件测试中,面向对象的设计和实现越来越得到重视,主要是因为它与传统的数据驱动的测试方法不同。传统的测试方法主要是将测试用例和程序输入进行匹配测试,很难完全覆盖整个软件的各个方面。而面向对象的软件测试则不同,由于它更具有适应性,可以更好的应对软件的不同需求和不同制约条件。

二、面向对象的软件测试流程

1.需求分析阶段

需求分析是整个软件测试流程中的第一阶段。在这个阶段,软件测试工程师需

要仔细分析用户需求等,从而确定软件测试的目标和方法。

2.测试计划阶段

在测试计划阶段,软件测试工程师需要进一步细化测试目标,并制定出具体的

测试计划。

3.测试设计阶段

在测试设计阶段,软件测试工程师主要是根据需求规格说明书,制定测试用例和测试场景等。

4.测试执行阶段

在测试执行阶段,软件测试工程师需要执行测试用例,记录测试结果,同时进行错误跟踪和统计分析工作。

5.测试评价阶段

在测试评价阶段,软件测试工程师需要将测试结果进行汇总和分析,并提供给开发人员和测试负责人。

三、面向对象的软件测试技术

面向对象的软件测试

面向对象的软件测试

本科生课程论文---文献综述

题目:面向对象的软件测试

姓名:

学号:

学院:软件学院

专业:软件工程

年级:2010

教师:王灿辉

2013年05月20日

面向对象的软件测试

摘要:软件测试在整个软件项目开发过程中有着举足轻重的地位,测试技术的发展对于缩短测试周期、降低成本、提高质量都有着十分重要的意义。本文介绍了软件测试的关键技术,并对面向对象软件测试技术进行了简单的研究,讨论了面向对象软件测试的测试策略、方法及测试技术。随着软件产业的发展, 市场对软件质量的不断提高,软件测试不断受到重视。几乎每个中大型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作。软件测试的重要性已成为企业生存与发展的核心。

关键词:软件质量性能测试软件测试面向对象

1软件测试的概念

1.1什么是软件测试

软件测试就是在软件投入运行之前,对软件需求分析、设计规格说明和编码实现的最终审查,他是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:定义1:软件测试是为了发现错误而执行程序的过程。

定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。

1.2软件测试的意义

软件测试的意义在于保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明软件有缺陷,从而加以改正,而不是保证软件没有缺陷,缺陷是软件与生俱来的。

面向对象测试技术详解

面向对象测试技术详解

面向对象测试技术详解

面向对象测试技术是软件测试中的一种重要方法,它基于面向对象

的编程思想,通过对软件系统的对象进行测试,来保证系统的质量和

可靠性。本文将详细介绍面向对象测试技术的原理和方法,以及在实

际项目中的应用。

一、面向对象测试技术概述

面向对象测试技术是一种针对面向对象软件的测试方法,在传统测

试技术的基础上进行了扩展和优化。它以对象为单位进行测试,通过

模拟对象的行为和交互,来验证软件系统的功能和性能。面向对象测

试技术主要包括以下几个方面:

1. 单元测试:针对软件系统的最小单元进行测试,即类或对象的方

法和属性。通过构造合适的测试用例,来验证单元的正确性和稳定性。

2. 集成测试:将各个单元进行组合和协作,测试它们之间的接口和

交互。目的是检测集成后的系统是否符合预期的功能和性能要求。

3. 系统测试:对整个软件系统进行测试,验证系统在不同环境下的

稳定性和可用性。主要关注系统的功能、性能、兼容性等方面。

4. 验收测试:由用户或客户进行的测试,用来验证软件系统是否满

足用户需求和要求。

二、面向对象测试技术的原理

面向对象测试技术的原理主要包括以下几个方面:

1. 继承和多态:通过继承和多态的特性,可以构造多个对象,并且使用相同的测试用例进行测试。这样可以提高测试效率和覆盖率,减少测试工作的重复性。

2. 封装和封装测试:封装是面向对象编程的基本原则之一,也适用于测试。通过封装测试的方式,可以隐藏对象的内部实现细节,只暴露出外部接口和行为。这样可以保持测试的独立性和可维护性。

3. 测试驱动开发:测试驱动开发是一种先写测试用例,再写代码的开发方式。它可以帮助开发人员更早地发现和解决问题,提高软件的质量和稳定性。

面向对象的软件测试

面向对象的软件测试

软件工程
2.面向对象的集成测试
由于构成类的各个成分彼此间存在直接 或间接的交互,一次集成一个操作到类中通 常是不现实的。Murphy等认为一组对象类通 过组合行为提供一组服务,它们应该一起测 试.即所谓集群测试(cluster testing)。 集群测试使用的测试用例主要是力图发现相 互协作的类之间的协作错误。
1. 面向对象的单元测试
面向对象的单元测试主要是对每个类进行单元测试。 在对对象类进行测试时,可从2个层次来进行:测试与对象 关联的单个操作;测试单个对象类。对象关联的单个操作 是一些函数或程序,可以使用白盒测试方法和黑盒测试方 法来进行测试。对于单个对象类应该把操作作为类的一部 分来测试,不能再孤立地测试单个操作。黑盒测试的原理 不变,但等价类划分这个概念需要扩展以便适合操作序列 的情况。划分测试(partition testing)和基于故障的测 试(fault based testing)就是对原概念扩展的方法。
类的动态行为可以用状态转换图来表达。利 用类的状态图可以帮助我们导出测试该类(及与 其协作的那些类)的动态行为的测试用例。在遍 历状态模型时,可以按“深度优先的方式”和 “宽度优先的方式”。在类的行为导致与一个或 多个类协作的情况下,应该使用多个状态图去跟 踪系统的行为流。
软件工程
软件工程
软件工程
1.2 面向对象的测试用例设计

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

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

T eR sac f betO i t o w r et gT c nlg h eerho jc r ne Sf a T sn eh o y O - e d t e i o
S ONG h n l C n xu
( a c e g B oo yE gn e n ih r c o l Y n h n 2 0 1 Y n h n ilg n i r gH g e h o , a c e g 2 4 5 ) ei S
对象集成 测试的重点是类之间的逻辑关系 ,不仅要基于面 向
对 象 单 元 测 试 ,更 要 参 见 O D或 O D T s结 果 。 面 向 对 象 O O et
系统测试 是最后 阶段 的测试 ,主要 以用户需求 为测试标 准 ,
借鉴 O A 或 O A T s结果 ,对 系统 的有 效性 进 行 测试 。 O O et
b bet v l s n bet o e tds f a . rp s s n o e r be to e t o w r a c rigt i ea l o ai t t gt o jc r ne o w r We po oe t t gm d l f jc- r ne sf ae c odn s d ei o -i t e ei so o i d t ot
电脑 编 程技 巧 与维 护
面 向对 象 软件 的测试 技 术 的研 究
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

【关键词】面向对象;软件测试;编码;程序

1.面向对象软件测试的技术特点

从程序的组织结构方面来讲,传统测试技术不完全适用于面向对象软件的测试。传统程序的测试过程是选定一组数据,交给待测程序处理,通过比较实际执行结果和预期执行结果,判断程序是否含有错误。因此,传统软件测试技术与过程式程序中数据和操作分离的特点相适应。而面向对象软件不是把程序看成是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合,在面向对象程序中,对象是一组属性以及这组属性上的专用操作的封装体,每个对象就像一个传统意义上的小程序,有自己的数据、操作、功能和目的。

而在面向对象的系统中,系统的功能体现在对象间的协作上,相同的功能可能驻留在不同的对象中,操作序列是由对象问的消息传递决定的。不同对象有自己的不同状态,而且同一对象在不同的状态下对消息的响应可能完全不同。

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

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

面向对象软件语言特有的一些概念和机制,如数据抽象、继承、多态、动态绑定和消息传递都对测试有着深刻的影响。其中有的因素使测试复杂化,导致测试工作量加大,有的因素有助于测试过程中重用已有的测试资源,从而有利于减少测试的工作量,有的因素两方面兼而有之。但总的来讲,在这些因素的共同作用下,测试面向对象比测试传统软件更加困难。

2.面向对象软件测试的常用方法

2.1基于类流图的测试

类流图是一种用来表示类的行为特性,且在结构上与传统控制流图相似的有向图。假设对于一个给定的类c,o代表它的方法集,那么它的类流图g中的结点分别表示o中的每一个方法,有向边

(o1,o2)表示方法o2可在方法o1之后被调用,事实上也就是方法o1的后置条件满足方法o2的前置条件。有了类流图,类的方法序列就可以很方便地由对图的遍历得到,其覆盖准则也包括点覆盖、边覆盖、路径覆盖等。某些有向边旁标有判断条件,类似于流程图中的逻辑条件,可以用来确定变量的取值。

以上两种方法都可以推广到类簇测试中。通过方法序列规范或类流图,可以很方便地为被测类生成消息序列,但它们的缺陷均在于没有考虑被测类的状态,鉴于状态检查在类测试中的重要地位,它们通常不被看作主流的测试方法。

2.2基于状态的测试

基于状态的测试是以状态机模型或某些模型化规约为基础的测试。测试时按照一定的覆盖准则对状态转换图进行遍历,以产生消息序列,并依据状态图检查每一消息序列是否使被测象达到了规定的状态。

基于状态的测试充分考虑了对象的消息序列和状态,且按照一定的覆盖标准产生测试用例,是一种较为有效的面向对象的类级和簇级测试方法,也是目前研究和使用得较多的。不过状态机是一种较为复杂的动态模型,比较难于生成。

2.3基于uml的测试

uml(unified modeling language)是一种图形化建模语言,它为面向对象软件提供了一整套强大的建模工具,同时也可以作为测试的依据。下面介绍几种已被应用于面向对象软件测试的uml模型:(1)类图:类图描述了组成面向对象程序的各个类之间的关系,包括联系、聚集、重数、子类型和递归包含等。采用类图可以检查类之间的这些关系是否得到了正确的实现。例如对于重数关系的检验,通过为具有重数关系的两个类分别创建一定数目的实例对象来检验关系实现的正确性;再如,对两个具有“拥有”关系的类,可通过检察其中一个类是否对另一个类的对象被更新或删除作出

正确的反应来判断其关系实现的正确性。

(2)顺序图:顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序,因此它可以作为类簇测试的依

据。顺序图可以转换为流程图,这种流程图表示了对象间消息传递的顺序,与程序流程图在形式上极为类似,也包括了顺序、分支和循环等,是一种高度的可测试模型。其测试方法与程序控制流图的测试方法类似。

(3)状态图:状态图描述了一个对象在其生命周期中所有可能的状态,以及由于事件的发生而引起的状态间的转移。状态图可作为前面提到的基于状态测试的依据。

(4)用例图:用例模型描述的是外部执行者所理解的系统功能,它可以为整个的软件系统建模,因此用例模型的图形化表示该用例图可被用在系统测试中。用例图中的每一个用例都可以转换为一个状态转换图,然后参照状态测试的方法进行测试。

3.基于uml测试的网上购物系统测试实例

3.1编码前工作

按照uml测试技术,对网上购物系统分析,建立起用例图,对分析结果、设计结果进行测试,再进入编码,完成后可进行如下测试。

3.2编码后工作

(1)进行类或对象测试。首先对注册模块进行测试,根据时序关系,普通购物用户在使用本系统的购物功能前,必须先注册账号;其次对维护个人信息测试,进入系统后,用户也可选择维护自己的信息,比如修改账号名,密码,联系地址等;再对浏览商品信息、维护购物车测试,如果直接进行购物,系统可让用户首先浏览商品信息,查看其详细信息,使之对商品的数量、种类有。个大概的了

解:对生成订单进行测试,当购物结束时,系统可以生成一份订购商品的订单(包括所有商品的名字,单价,小计,总价),自动将用户信息、信用卡信息和购物总价发送到银联系统,由银联系统验证信用卡信息并执行扣款,并将银联系统操作成功与否的信息返回到系统。

管理员进入系统时,首先要输入口令,如果检查通过,就可以对系统中的信息进行维护和管理,包括如下测试:①管理用户信息。当有些用户有不正常操作时,如填写订单时使用不存在的信用卡号,可以将此用户账号冻结,也可以启用用户账号。但管理员无权修改客户信息;②管理系统中的商品信息,例如有新的商品时,管理员可向系统中添加此商品。当商品的价格或规格发生浮动时,管理员也可以对它们作修改,使用户及时了解商品的最新情况。若某件商品没有存货或不再出售时,管理员可删除系统中的此项商品记录。③管理客户定单。及时获得客户的资料(资料中有电子邮件地址),以便与客户联系。

(2)进行顾客、管理员、银联和物流系统测试,功能测试,直至系统测试。根据对测试结果分析的评判准则,对以上测试用例设计过程进行分析,可知这种测试是一种完全意义上的测试。测试用例的生成可静态生成,也可根据以上模型,生成最优随机数集。

4.结束语

面对面向对象技术开发出来的程序具有更好的结构更规范的编程风格,极大地优化了数据使用的安全性,提高了代码的重用率。

相关文档
最新文档