


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试的重要性前言:软件迅猛发展凸现软件测试问题随着软件业蓬勃发展,各种软件需求纷繁而来,在潮起潮落的 IT 洪流中,软件项目越来越 凸现大型化、复杂化的发展趋势。几十人上百人的开发团队、 成千上万的模块与接口、 跨地 域、跨系统的使用用户等情况早已屡见不鲜,所有这些,对项目质量管理提出了更高要求, 如何满足各方需求,做出更好的软件系统?测试管理逐渐成了大家目光的焦点。软件的质量靠什么, 靠管理、靠各个软件过程的严密配合。但勿庸置疑,质量的守护是靠测 试。它就象一只看门狗,认真守护着软件质量这个“家 ”。软件测试的重要性测试是什么?测试就是对项目开发过程的产品 (编码、文档等)进行差错审查,
2、保证其质量 的一种过程。软件业的迅猛发展也就是近几十年的过程, 时间虽短, 但许多误解似乎已根深蒂固, 对测试 的偏见也是如此。 “软件的重点在于需求、在于分析、在于设计、在于开发,而测试,容易, 没什么技术含量, 找一些用户,对照需求尽力去测就行了; 有时间多测点, 没时间就少测点。 这种看法在许多项目经理、软件负责人的心中固守着,难以改变。这种观念的结果有目共睹,是什么?很简单,是大量软件BUG缺陷的 流失”从测试人员手中悄然而过, 流失到用户手中,流失进项目维护阶段。 随之而来的, 便是用户无休止的抱 怨、维护人员无休止的 “救火 ”、维护成本无休止的增加。这是软件人员的梦魇!恶梦总有醒
3、来时, 经过无数教训的重击, 在不堪回首而不得回首的经历中, 软件业的管理者 发现:是他们错了,软件测试是不可忽视的。所有这些问题,假如在项目中测试到的话, 便不会有造成不可收拾的结果了。” 一一们终 于意识到测试简单而纯真的真谛。软件测试软件测试从直观上来讲是对测试对象进行检查、验证,似乎很简单,但实际不然,它是由许多处理环节构成的。根据测试目标、质量控制的要求,它被划分为以下各类环节 (如下图) 并被设置了不同的准入、准出标准。剧虫沆林厦乩括胡内寒测试的主要过程及活动如上图所示,内容一目了然,在此就不一一详述了, 只希望通过对测 试重点问题、关注热点的介绍,帮助大家对测试管理有一个总体的把
4、握。 测试方式中普遍存在的问题与点评谈到测试,我们无法回避的是当前软件过程普遍存在的测试问题:1、手工过多,缺少测试工具,自动化测试方式缺失。传统的项目测试还是以手工为主, 测试人员根据需求规格说明书的要求, 与测试对象进行 “人 机对话 ”。随着软件业的不断发展及软件规模的扩大,这种测试的弊端日益明显:大量的手工使项目人力成本、沟通成本居高不下;人工操作的低效率使项目耗时增加,带来进度风险;人员素质及其他不确定因素会影响手工测试的结果,导致差错率的增加。在测试过程中,需要对测试案例库进行统一配置管理,项目规模的激增使手工管理案例库 的难度日益加大,尤其是在需求变更、回归测试频繁发生的时候。从
5、古到今, 当生产率阻碍了生产力的发展的时候, 必然会引入更高级的生产工具及方式。 项 目测试也是这个道理,引入工具,引入自动化测试及管理,是项目测试的一大趋势。2、缺乏文档测试、检查。文档是项目的重要产品之一,产品需求、功能分析、架构设计、详细设计、用户手册、维护 手册等等,对于项目的测试、上线、维护等过程起到至关重要的参考、指导作用,所以它们 的质量应该是项目重点关注点之一。 令人遗憾的是, 许多软件项目对于文档的重视只停留在 口头上, “编码第一 ”的观念似乎根深蒂固。随着需求不断变更、 补充,业务、技术人员忙于应付,无法腾出精力来进行文档内容的修改 及完善, 往往是将包含需求变更内容的工
6、作联系单往需求文档后一附了事,而不去更新需求与其他相关文档;另一方面,项目变更管理还不够完善,管理重点往往集中于开发,而轻视文档质量管理, 未留出充分的文档更新时间, 导致文档更新严重滞后于编码进度。 为保证文 档质量,必须定期进行文档测试,但测试要花成本,项目高层不愿意付此代价。文档若可读性低,便会影响用户的理解; 若与编码不一致,便起不到参考作用,编码测试就 没有可靠的测试依据。路都看不清楚,怎么往前走呀?所以,强烈建议进行文档测试, 并将其置于测试管理的首位。当前文档测试的方法没有什么特别的形式,还缺乏测试工具支持,通常是通过静态审查方 式“走查 ”来进行的,主要查看文档的可读性,内容真
7、实性、可靠性、全面性。另外,在 项目里程碑时期召集相关领域专家对重要文档进行集中审核,也是一种检查方式。3、单元测试应引入交叉测试方法;单元测试是对软件基本组成单元进行的测试, 测试对象是软件模块。 通常, 单元测试是由开 发人员来完成,而且往往是各人测各人的。这存在问题隐患。为什么呢, 技术人员是软件模块的制造者, 自己来测自己的软件的话, 角色便从制造者变成 了审查者, 而前一个角色的目的是为了保证软件正确, 后一个角色的目的是为了发现更多的 缺陷, 让一个人同时来扮演两种目的不同的角色, 好比让他既当裁判员又当运动员, 怎么能 做好呢?解决方法通常有两种, 一种是: 由测试人员来进行单元
8、测试, 这种方式要求测试人员要有较 高的软件技术知识; 另一种是: 将软件人员分组, 在模块开发告一段落时进行交叉测试,这 种方法只需要测试者了解被测方的软件需求, 不需要另外的知识培训, 而且测试出发点较为 客观,所以被较普遍的推广使用。4、测试在开发基本完成才启动;在传统的瀑布型开发模式中, 软件测试位于编码阶段之后, 是作为一个独立阶段存在的, 许 多人便一刀切地认为应该将所有的测试工作在编码完成后再开始。 这个观点要不得, 原因有首先,若将测试工作细分, 有许多工作是可以提前先期执行的, 如:需求书与设计书的学习、 测试计划的制定、测试人员的培训、测试脚本的建立、测试资源的搭建、测试模
9、板的创建、 测试工具的选择等等, 都是可以与其他阶段并行处理的, 这将大大缩短项目开发时间, 为测 试提供充分的时间保障,提高测试质量。其次,软件缺陷发现的越晚,修改、补救所耗费的成本越高。引用Boehm在SoftwareEngin eeri ng Econ omics一书中的话“平均而言,如果在需求阶段修证一个错误的代价是 1,那么,在设计阶段就是它的36 倍,在编程阶段是它的 10倍,在内部测试阶段是它的 2040倍,在外部测试阶段是它的3070 倍,而到了产品发布出去时,这个数字就是40 1000 倍。 ”由此可见,测试目标的最佳定位应该是:在错误第一次出现的时候就捕捉到 它。所以,在尽
10、可能的情况下,测试越早展开越好。在项目的各个进行阶段, 都有不同的项目产品产生, 他们质量的好坏,对后续开发影响重大,所以,现在国际上比较流行的做法是:将测试融合到各个开发环节中去,尽早测试。5、测试案例、测试方案的重用率低下。传统的测试过程,测试管理不严密,测试人员未建立完整的测试库,未将测试案例、测试程序、测试方案进行有效保存,等到回归测试时,相关测试程序等往往已不知所终,无处可寻了;即使能找到这些程序、案例,可往往因为回归测试过于频繁、项目期限日益迫近,已经没有时间余量来修改、完善这些程序及案例,只能凭借经验、记忆及技术人员的口述对程序 修改过的地方草草重测一遍而已,缺乏正规化的测试过程
11、,造成测试的虎头蛇尾。碉试皐例俺用圈正常的测试案例使用方式如上图,测试设计阶段,相关测试设计人员会对测试对象进行了解、 分析,为保证测试顺利进行, 保证测试覆盖尽量多的测试对象,会设计测试案例、测试方案,在测试期间进行使用;测试发现错误时,软件技术人员会根据测试的缺陷反馈结果及技术人 员的软件修改信息对测试程序进行修改,完毕后再进行回归测试。6、测试人员素质低,缺乏相关知识培训。 项目管理人员对测试存有偏见,对于测试的重要性认识不足,导致其严重忽略测试 人员的选拔和知识培训。 许多软件项目让软件用户或新招收的技术人员来完成测试工作, 他 们认为测试人员的工作很简单, 就是技术人员让测什么就测什
12、么, 它基本是一个动手不动脑 的工作。这样做的后果进一步导致了测试工作的无序和混乱, 测试过程缺乏计划性, 测试人员缺乏技 术能力, 缺乏对架构的了解, 相关素质的缺失使他们成为技术人员的附庸。 测试对于他们来 说,是一种枯燥的 “手眼 ”式的工作,他们唯一渴望的,是将无聊的测试尽快完成,从而远 远的逃离。这样的测试结果可想而知。其实, 软件工程对测试人员的素质要求是很严格的,比如:要有相关计算机知识背景、 具备 软件工程基本知识、 熟悉项目编程语言、 熟悉项目技术架构及需求内容、工作有责任感、独 立分析能力及团队精神等等。 真正规范的软件项目对于测试人员的要求是不会低于技术人员 的,而且会为
13、测试人员提供进一步的知识培训机会,以应对各种项目的复杂情况。7、测试进度的错误估算。 在项目开发中,领导为督促测试的进程,往往会让项目组汇报工作进度,了解已经 完成的工作占比, 从而对工作进度做出判断。 我对这种工作方式完全拥护, 只是觉得这种方 式还有不足。测试进程不是简单的 1 1过程,不能武断地认为 “我用 8天干完了 80的工作,那么,剩 余工作便能在 2 天内干完 ”。著名的 Pareto80/20 规律告诉我们:测试发现的所有错误中的 80很可能集中在 20的程序模块中,另外 20很可能集中在 80的程序模块中。 所以,没有对测试对象认真分析的基础, 单凭工作完成数量而对工作进度做
14、出的的判断往往 是错误的。我认为,工作实际进度=工作完成量占比+测试对象的错误占比分析”才是一个较合理的测试进度估算方式。测试新思路:项目的开发风险来自于对需求的误解, 来自于设计与开发过程及产品的缺陷, 只有尽早发现 这些缺陷, 才能降低并控制项目风险。基于这种思想,软件业出现了一些新的测试思路,主 要有二:1测试驱动开发(Test-Driven Development,简称TDD。这种测试思想被最近流行的XP(Extreme Programming )极限编程方式所大力提倡。它的基本思想是,通过测试来为编程 做指导,在某个要开发的需求对象明确之后, 在编码之前,先进行相关测试代码(测试代码
15、 的内容和需求规格说明书描述是相同的,有人把它称为 “可执行的需求规格说明书 ”)的编写工作, 完成之后针对测试代码进行编程,然后再用测试程序对开发代码进行测试,验证其正确性, 若程序通过了测试,就说明它是符合需求规格说明书要求的。周而复始,通过这样的 过程,开发进程得以层层深入,直到开发完成。而这时单元测试也基本完成了。 这种测试方式的最大的好处是, 尽早地发现设计、 开发中存在的问题, 避免传统开发模式中 的“测试过程中发现代码不能满足需求而导致的大量返工 ”。降低项目风险; 同时可以尽早地 将“半成品 ”展示给客户, 使客户对需求进行验证、 补充及完善, 另外测试代码的表达方式相 对准确
16、、无二义性,可以降低因需求理解错误而导致的项目风险。2、迭代测试。这种测试是 IBM 所推崇测试方式之一,它从迭代式开发模式演变而来。在迭 代开发模式中,每个迭代都包含需求、设计、编码、集成、测试等过程。在每一次迭代完成 之后,便会开始新的迭代过程。通过一次次迭代的累进,系统会增量式集成一些新的功能, 直至整个系统功能的完成。其中,每个迭代周期的测试工作由两方面内容构成:对当前迭代周期产品的增量测试。对前迭代周期已完成功能的回归测试。随着迭代周期的累进,测试工作内容随之不断变化。早期迭代测试重点在于新功能的测试, 后期迭代测试重点在于累积功能的回归测试。有的人不喜欢XP编程的开发方式,认为其没
17、有明确的阶段性划分,不利于计划管理,模式 过于灵活, 不好掌握。 迭代式开发模式为这些人提供了新的选择。 这种开发方式继承了瀑布 式开发模式的优点一一全面、严谨、有计划性、易管理,更重要的是,这种模式将测试工作 分布到每个迭代周期中, 使测试工作提前进行, 从而使将发现软件缺陷的周期提前, 大大降 低软件风险及开发成本。测试过程的衡量测试过程在不断地改进,但效果如何,如何来衡量测试的效果呢?我们需要引入一把尺子, 一个度量标准, 这样才能把握测试过程的改进方向。那么,怎样来收集数据, 如何来度量? 这是我们长久以来一直困惑的地方。我们不妨借助他山之石”来想想办法,CMM是当今国际流行的软件过程
18、衡量模型,它在这 方面是有自己的独到之处的:1、面向全局。CMMI的测试度量面向的不仅仅是测试过程的改进,测试效果的加强,它面向的是整个开发过程, 并始终将质量监督放在工作首位。 比如,它度量工作产品规 模(例如代码行数),度量工作量和成本(例如人工小时数)。我们从中搜集的数据对整个 开发过程的改进都有指导作用。更高的起点可使我们避免项目管理改进过程中常见的“头痛医头、脚痛医脚 ”毛病。2、建立度量数据库,从而对搜集的数据、分析的方式及结果进行完整、规范的保存。 这个数据库面向的是软件开发过程的持续改进, 它的数据是可复用的, 可供多个项目 参考使用, 不随当前项目的结束而消失, 而是会作为历史信息持续保存, 从而为测试及其他 软件过程的改进提供更客观、更全面的度量数据。3、关注度量、分析过程的改进。度量过程是为了对测试及其他软件过程的改进提供参考依据,它自身运作方式的合理性直接会影响度量结果的准确性。CMMI避免了灯下黑”现象的出现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借款投资协议书范本合同
- 合同取消协议说明书模板
- 健身俱乐部加盟合同范本
- 友好合作城市协议或合同
- 厂房场地借用协议书范本
- 保安夜班补助协议书模板
- 企业中心出售股份协议书
- 俱乐部线上合同协议模板
- 办理典当行收购合同范本
- 医院医师进修培训协议书
- 中医治疗腰间盘突出课件
- 古诗三首《书湖阴先生壁》(说课课件)部编版语文六年级上册
- 啤酒代理转让合同范本
- GB/T 9869.1-2025橡胶用硫化仪测定硫化特性第1部分:介绍
- 初级出版专业技术人员职业资格必考题含答案2025年
- 土地秸秆粉碎合同协议
- 茶叶加工工职业技能竞赛参考试题(附答案)
- 上门按摩加盟合同协议
- 统编版道德与法治四年级上册全册大单元整体教学设计
- 2025年全国大学生百科知识竞赛题库及答案(370题)
- 矿物加工工程专业英语词汇
评论
0/150
提交评论