| 网站首页 | 测试咨讯 | 新手入门 | 专注性能 | 测试技术 | 测试管理 | 测试工具 | 开发社区 | 工具下载 | 资料下载 | 测试论坛 | 

[CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523

新手入门
 入门指南
 经验之谈
测试咨讯
 行业新闻
 网站动态
 人才就业
 CNTester基金
 标准规范
专注性能
 性能测试知识
 性能测试工具
 程序设计性能
 数据库性能
 Web应用服务器性能
 操作系统性能
 服务器与网络性能
测试技术
 用例设计
 性能测试
 自动化测试
 Web测试
 面向对象测试
 综合技术
 阶段性测试
 行业类测试
测试管理
 项目管理
 项目案例
 质量管理
 软件过程
测试工具
 Mercury系列
 Rational系列
 测试管理工具
 性能测试工具
 功能测试工具
 单元测试工具
 其它测试工具
开发社区
 Java技术
 DotNet技术
 C技术
 数据库技术
 操作系统
 服务器与中间件
工具下载
 测试工具
 开发工具
 企业工程
 网络通信
 媒体桌面
 游戏娱乐
 其他工具
资料下载
 测试资料
 程序设计
 数据库
 操作系统
 应用服务器
 电子期刊
 其他资料
 
 
您现在的位置: 中国测试员网站 >> 测试技术 >> 面向对象测试 >> 文章正文
  找错―面向对象软件的测试技术与方法          【字体:
找错―面向对象软件的测试技术与方法
作者:佚名    文章来源:希赛网    点击数:    更新时间:2007-5-26    

  面向对象技术所独有的多态、继承、封装等新特点,使OO程序设计比传统语言程序设计产生错误的可能性增大,使得传统软件测试中的重点不再显得那么突出,也使原来测试经验和实践证明的次要方面成为了主要问题。

  用户使用低质量的软件,在运行过程中会产生各种各样的问题,可能带来不同程度的严重后果,轻者影响系统的正常工作,重者造成事故和财产损失。软件测试是保证软件质量的最重要的手段,它使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求,弄清预期结果与实际结果之间的差别。

  面向对象技术是一种全新的软件开发技术,正逐渐代替被广泛使用的面向过程的开发方法,被看成是解决软件危机的新兴技术。尽管面向对象技术的基本思想保证了软件应该有更高的质量,但实际情况却并非如此,因为无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,以避免错误的繁衍。

  一、评审

  因为OOA、OOD阶段所建立的OOA和OOD模型不能执行,所以在每次迭代之后,一定要进行评审。

  1.正确性

  OO开发模式为演化(重复迭代)性质,即系统的初期为非形式化表示,以后发展为类的细节模型、类的连接和关联,系统设计和配置,以及对类的设计(通过消息组成对象连接模型)。每一阶段都要进行评审。

  正确性主要在分析和设计模型表示所使用的符号语法是否正确,语义是否正确(即模型与真实世界领域是否一致),以及类的关联(实例间的联系)是否正确地反映了真实世界对象间的关联。

  2.一致性

  由于演化性质,OOA和OOD模型(包括分析、设计和编码层次,即类、属性、操作、消息)不仅要正确,而且要一致。一致性可以用模型内各实体间的关联性来判断。

  二、测试

  1.单元测试

  OOP完成以后,就可以进行单元测试了。与传统的单元(模块)不同,OO中的单元是类。每个类都封装了属性(数据)和管理这些数据的操作(也被称做方法或服务)。一个类可以包含许多不同的操作,一个特殊的操作可以出现在许多不同的类中。

  传统的单元测试只能测试一个操作(功能)。而在OO单元测试中,一个操作功能只能作为一个类的一部分,类中有多个操作(功能),就要进行多个操作的测试。

  另外,父类中定义的某个操作被许多子类继承。但在实际应用中,不同子类中某个操作在使用时又有细微的不同,所以还必须对每个子类中某个操作进行测试。

  类的测试可以使用多种方法,如基于故障的测试、随机测试和分割测试等。每一种方法都要检查封装在类中的操作,即设计的测试序列(用例),要保证相关的操作被检查。因为类的属性值表示类的状态,由此来确定被检查的错误是否存在。

  2.组装测试

  传统软件的层次模块间存在着控制关系,而OO软件没有层次控制结构。所以传统的自顶向下和自底向上的组装策略在OO软件组装测试中就没有意义了。

  另外,一个类每次组装一个操作(传统软件的增量法)在OO软件组装中是不够的,因为组成类的各个成分之间存在着直接或间接的交互作用。OO软件的组装测试有两种不同的策略:

  (1)基于线程测试(thread-based-testing) 基于线程的测试就是把合作对应一个输入或事件的类集合组装起来,也就是用响应系统的一个输入或一个事件的请求来组装类的集合。对每个线程都要分别进行组装和测试。

  (2)基于使用测试(use-based-testing) 基于使用的测试就是按分层来组装系统,可以先进行独立类的测试。在独立类测试之后,下一个类的层次叫从属类。从属类用独立类进行测试。这种从属类层的顺序测试直到整个系统被构造完成。传统软件使用驱动程序和连接程序作为置换操作,而OO软件一般不用。

  OO系统组装时还必须进行类间合作(强调上下级关系)的测试。类的合作测试与单个类测试相似,可用随机应用和分割测试来完成。另外,还可以用基于脚本测试和行为模型导出的测试进行。

  3.确认测试

  确认测试是在系统层进行测试,因此类间的联系细节出现了。与传统软件一样,OO软件确认测试也主要集中在用户可见活动和用户可识别的系统输出上,所以OO软件也使用传统软件的黑盒子测试方法。确认测试大多使用基于脚本(scenarios)的测试,因而使用用例成为确认测试的主要驱动器。

 三、测试用例设计

  这种设计目前正处于形成阶段。

  传统软件测试用例设计是从软件的各个模块的算法细节得出的,而OO软件测试用例则着眼于适当的操作序列,以实现对类的说明。

  黑盒子测试不仅适用于传统软件,也适用OO软件测试。白盒子测试也用于OO软件类的操作定义。但OO软件中许多类的操作结构简明,所以有人认为在类层上测试可能要比传统软件中的白盒子测试方便。

  OO测试用例设计包含OO概念,在OO度量中所讲的五个特性:局域性、封装性、信息隐藏、继承性和对象的抽象,肯定会对用例设计带来额外的麻烦和困难。

  Berard提出了一些测试用例的设计方法,主要原则包括:

  (1)每个测试用例应当给予特殊的标识,并且还应当与测试的类有明确的联系。

  (2)测试目的应当明确。

  (3)应当为每个测试用例开发一个测试步骤列表。这个列表应包含以下一些内容:


  列出所要测试对象的专门说明。

  列出将要作为测试结果运行的消

[1] [2] [3] 下一页

文章录入:root    责任编辑:root 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    最新热点 最新推荐 相关文章
    · 性能测试方法
    · Java 安全的演进
    · Java 安全性的演变和理念 第一部分:安全
    · 第 1 部分: Web 安全与 Rational AppScan
    · 自动化测试实施步骤和最佳实践
    · Web测试方法
    · 站点测试-WebTesting
    · 实施自动化功能测试的解决方案
    · 经典之作《代码大全》中的单元测试---测试
    · IP网络的测试方法
    · 第 2 部分: 使用 Rational AppScan 应对 
    · 第 1 部分: Web 安全与 Rational AppScan
    · 构建安全软件: 选择技术,第一部分
    · 软件安全性原则: 第一部分
    · Java 安全性的演变和理念 第一部分:安全
    · 安全的代价是什么?
    · 保护系统安全: 一个识别用户的三向解决方
    · 穿透企业网络
    · Java 安全的演进
    · 您的 Java 代码安全吗 — 还是暴露在外?
    没有相关文章
     
     
     
    ======> [CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | 

    Copyright@2007 by CNTester.com 中国测试员网站 桂ICP备07005590

    本站为开源免费网站,非商业赢利性组织。本站文章部分从网络搜索获取,如果您认为某些侵犯了您的权益,麻烦您联系本站,我们会尽快删除相关内容,同时也希望您的谅解,我们的初衷是为了让更多人去学习这方面的知识,让行业有更好的发展。

    联系电话: 15021358905