首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 移动开发 | 游戏开发 | 数据库开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  软件工程首页 | 软件工程 | 项目管理 | 软件测试 | 配置管理 | 项目文档 | UML | CMM 认证
  您现在的位置:天新网 > 软件开发 > 软件工程 > 软件工程
游戏项目中的自动化测试和持续集成
http://dev.21tx.com 2005年06月11日 51cmm

每日文章精萃
.Net:通过WMI列出Windows系统进程 Java:Java数据库编程中查询结果的表格式
ASP:用正则表达式突出显示字符串中查询到 PHP:PHP脚本的8个技巧(6)PHP和COM
JSP:安装配置篇(四)--apache+resin CGI:Perl教学 第四篇 列表和数组变量之一
VB:设置计算机名称 VC:让你的控制台程序也支持自动补齐

1 2 3 下一页

  现在,许多游戏项目要么跳票严重,要不就是发布时Bug多多。当然,这样的现象并不仅存于游戏工业。例如,根据2001Standish集团发表的那份 声名狼藉的报告“极度混乱”所表述的,70%以上的软件项目要么被取消,要么严重的超时和超支。然而,游戏是软件开发复杂性的最佳代表,不同技能的人需要 协同工作,这也就是某些人所说的游戏项目中高风险因素所在。

  软件项目延期、Bug满天飞和失败的原因是多种多样的,但看起来除了随产品特性不断变化之外,测试和品质管理是永恒的问题。以我们的经验来看,相当多数的游戏开发工作室完全依靠人工的方式来测试游戏引擎、开发工具和游戏代码,几乎没有采用自动化过程测试。很巧,在2002GDC的圆桌会议:游戏中的纯软件工 程,只有18%的与会者表示他们参与的项目采用了自动化测试。

  在2000年,我们的客户,当时新成立的中间件公司对我们的3D引擎的稳定性和大量的BUG抱怨频频,我们第一次想到了自动化测试。直到那时,每当完成一 个新特征,我们还是依靠人工测试,并且使用这些特征开发出技术演示供市场部使用。我们在彻底分析了情况后得出以下结论,我们的软件质量问题主要和我们测试 方法有关:

  *人工测试不够全面和彻底,因为它仅仅花费了很多时间。 代码在修改或添加之后,它本应运行预定义的人工测试集来保证修改不会产生新的问题。人工测试花费的时间越来越多,并给开发者带来挫折感,打击他们执行测试 的积极性。而且,测试的工作量使得开发者不愿意改进或优化现有的代码。

  *当开发者测试他们自己的代码时,他们总是不愿意(潜意识?)执行最苛刻的测试用例,因此就导致了最有可能出错之处也是最不可能被全面测试到这样的情形。

  因此,我们决定采用自动化测试,从开发一个新SDK部件开始。结果是鼓舞人心的,最终我们把它推广到所有的SDK部件开发中去。测试框架极限编程,由Kent Beck和Martin Fowler总结的一系列方法和经验,带来了自动化测试的流行。一般来说,自动化测试指无需用户干预,用来验证软件产品中的功能子集的代码和数据。它可以是用来测试某个特定类方法(通常称为单元测试),也可以是用来测试程序功能性的集成测试(功能测试)。

   为了促进自动化测试进程,有许多开源代码的单元测试框架,比如CPPunit(C++专用)或Nunit(.net专用)。这些测试框架提供了GUI来 运行测试集并提供测试结果反馈。根据你的项目,也许需要根据你的游戏进行一些额外的功能扩展和自定义,例如支持跨平台。这些测试框架的内容,一个单元测试 对应一个函数,测试类由多个单元测试组成,并且包含一个开始和结束测试的方法(例如载入和卸载一幅地图)。这些测试类可以放在分离的执行文件中,例如 DLL文件,也可以与主项目在一起。除此之外,测试类应该存放在产品代码之外的文件中,这样的话,他们就可以很方便的从版本发布中移除。

  物理引擎的简单测试代码,如果任何一个VTEST条件没有满足,那么测试就失败。该测什么?当要决定测试的范围时,实用第一。一般来说,为简单的功能编写单元测试是没有意义的,比如常见的getter和setter方法。为了让自动化测试物有 所值,被测试的代码至少应该是可能会产生错误的,比如,发射一束穿透游戏场景的光线并且返回它穿过的任何几何物体的方法(光线测试),然后将返回的结果与 编写测试用例的作者提供的预期结果作比较。

  到底是只为类的公用 接口编写测试用例(黑盒测试)还是要兼顾类的私有成员(白盒测试),是一个有争议的问题。通常来说,黑盒测试比白盒测试粗糙,它们只能检查一个操作的最终 结果,不能检查内部中间状态,它们对于被修改的测试代码比较迟钝。刚才提到的光线测试功能可能被全部重写(比如原先的版本运行效率不够),但是它返回的结果没有变化。这时,白盒测试用例就需要跟着重写,然而黑盒测试可以继续用来检测代码修改后,所产生的结果是否与原先一致。

  因此,我们认为自动化测试中,测试范围只要包括类的公有成员就够了,毕竟,类的内部修改比它接口修改要频繁得多。

上一篇: 软件开发质量管理层次模型
下一篇: 建模过程的盲点:软件集成中的软知识

1 2 3 下一页

编辑推荐
相关内容
·统一建模语言UML轻松入门之类和对象
·统一建模语言UML轻松入门之用例
·“寻找圣杯的任务”——度量软件之美
·函数库、组件产品的测试方法
·单元测试工具C++ Test简介
·追求代码质量: 不要被覆盖报告所迷惑
·软件开发中项目需求管理简述
·获取用户需求的沟通技巧之一
·采用简化原型法进行需求分析
·如何做好项目软件的分析
·用C#+XMI技术进行UML模型捕获
·单元测试工具Visual Unit 简明教程
·论《金瓶梅》与项目管理中人际关系协调
·游戏项目中的自动化测试和持续集成
·从六个角度分析流程建模
·软件开发项目控制浅谈
·EA与Rose UML建模工具比较
·初学者入门:软件测试从零开始
·建模过程的盲点:软件集成中的软知识
·面向服务架构(SOA)的原则
最近更新
人气最热
·从六个角度分析流程建模
·软件开发项目控制浅谈
·EA与Rose UML建模工具比较
·初学者入门:软件测试从零开始
·软件开发质量管理层次模型
·建模过程的盲点:软件集成中的软知识
·对项目开发中几种测试类型的理解
·软件开发中项目需求管理简述
·面向服务架构(SOA)的原则
·客户关系管理的三大纪律
·商场荧屏导购展板系统软件需求说明书
·需求分析的20条法则
·EA与Rose UML建模工具比较
·怎么提高与客户沟通的技巧
·软件开发项目控制浅谈
·初学者入门:软件测试从零开始
·管理信息系统需求调研分析指南
·如何编写高质量“软件需求说明书”
·获取用户需求的十大沟通技巧
·采用简化原型法进行需求分析

 
·[硬件]机会不容错过 仅售55元的5口交换机
·[数码]5GB卖1900元 iRiver两硬盘MP3齐降
·[汽车]富士重工SUBARU主动安全在美国获“优秀
·[开发]在 linux 系统下安装 perl
·[资讯]农民发明家造出25个机器人 能翻跟头会
·[游戏]《大话西游2》关于帮派
·[本本]女性笔记本专题
·[办公]家用办公超强帮手!HP4255一体机美图欣
·[手机]2650元! 旗舰摩托罗拉A780特价促销
·[考试]数学专业考试计划
·[学院]Maya 4.0 创建场景物体-准备工作(2)
·[娱乐]优秀员工
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net