CMM标准在测试中的运用
上一篇 / 下一篇 2007-03-30 11:45:08 / 天气: 晴朗 / 心情: 平静 / 精华(1) / 个人分类:测试案例分析
CMM标准在测试中的运用
案例名称:
“CMM标准在测试中的运用”
项目描述:
该项目名为XXX(不便使用用真是项目名称),目的是为提供广告的人(称之为Advertiser)和需要下载广告的人(称之为Affiliates)之间建立一个平台(我们称它为IAPS),一但这样的关系被建立,提供广告的人就要向下载广告的人和该平台IAPS缴费。具体关系如下图所示:(附件图片001)
现在我要讲的主题是在该系统的测试中CMM的标准的体现,也就是IASP系统的测试是否符合相应的CMM规范,我们需要通过CMM的级别来提高我们的测试效率和质量。
客户需求:
这是针对美国方面的客户,对于具体的需求我们只能从需求规格说明书去获取,
这里不做过多的解释(商业软件)
解决方案:
(一)关于CMM标准与测试
关于CMM标准其实是有很多资料上都有介绍的,在这里我只做一个简单描述,这也是我对质量管理的一点体会:
首先,我们要明白几个简单的问题,
1、 什么是CMM?
关于这个问题其实不用做过多的描述,CMM的全称——能力成熟度模型,那什么是CMMI呢?CMMI――Capability Maturity Model Integration(集成能力成熟度模型),也就是考虑了硬件的因素。
公司有发一封邮件《CMM基础知识》对此问题做了详细的解答。
2、 CMM5个成熟度等级的概念是?
关于这5个级别到底有什么区别,说起来其实会很多,也不容易记住。而我们只要把握一个概要,然后通过在以后的项目中逐步去体会和完善这样才能让CMM在实践中体现价值。
关于CMM我画了一个模型,希望可以更简单的介绍CMM等级:(附件图片002)
从图中可以看出级别越高要求也就越高,同时也可以看出级别越高其实也更高效了。
CMM1特点:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是消极式的。
CMM2特点:在以往项目上总结经验,把经验固化下来,后续项目只需遵照同样的选择执行。可以重复以往项目的成功经验。
CMM3特点:通过SEPG(软件工程过程组)把过程进行明确规定,使得整个项目组都是共同一致的标准。
CMM4特点:还没有开始做项目时,就可以根据原始需求预测出最后的结果。
CMM5特点:能够不断进行过程改进,不断改善其项目的过程性能。
再次,通过对CMM的了解,很容易想到一个问题,那就是我们为什么要进行CMM等级的评估?
CMMI是由卡耐基梅隆大学软件工程学院(SEI)制定的,当初的目的是希望企业在投标时有一个评价的依据,就像是其它成熟的硬件行业一样,对软件有一个衡量的技术指标。而要竞标的企业为了拿到项目而不得不依照这样的标准来改变和要求自己,通过实践证明这样的标准确实对企业的软件开发和管理产生了非常积极的影响,从而该标准也在世界各地风行起来,成为软件行业的ISO。
说到ISO又要多说两句了,因为软件行业其实也是在ISO标准下的,CMM2与ISO9001相似,强调管理、过程、规范化和文档化。而不同的地方其实很容易理解CMM严格对准软件,而ISO9001范围较广,包括硬件、软件、流程性材料和服务等。
(二)在XXX项目测试中CMM的体现
通过CMMI相关等级的评估,我们应该做些什么?这才是我们最关心的问题,我们公司已经通过了CMM2,现在正在为CMM3的评审而努力,而EC组正是CMM3等级的试点组,很有幸可以看到CMM2到CMM3的变化,那我们测试人员在这个变化中应该做些什么呢?我没有参加CMM的相关会议,不过就我的理解给大家讲讲CMM3的测试要实现什么样的转变(如果有什么不对的地方欢迎大家给我意见^_^)
1.CMM2我们测试的主要工作:(针对系统测试)
1)参考测试文档模板,写出XXX项目的测试计划,测试用例,测试报告。
比如在VSS中有相关的测试模板可以使用
2)复用已经固化下来的测试用例。
比如在XXX项目中的复用了部分UI界面的用例,如下图所示:
在XXX项目Forum模块的New Topic Layout项引入了<各界面的统一风格美观>的用例.(不便于发布,图片省略)
3)对测试步骤都有相应的评审。
如测试用例的评审工作《测试用例检查表》
4)对于BUG都有专业的记录工具TT,可以很好的把BUG以最快的速度分配到相应的开发人员手中,一旦修改后可以很快的回测。
我们现在的主要工作,而整个流程大概是这样的:
参与需求讨论会->
根据需求填写测试的项目估算表->
制定测试计划->
进行测试需求的确认->
编写测试用例->
进行测试用例检查->
提交BUG并回测->
提交测试报告
2.CMM3我们主要的工作:(针对系统测试)
目前公司还未实现,我的希望是这样的:
1)有非常明确的流程,能够按照标准执行所有的测试工作
2)模块化每个步骤的内容,让所有的计划,用例都有统一的标准。如UI界面有统一的界面设计标准,而测试就依据制定的设计标准进行审查界面的设计;再比如统一的版本提交标准,我们测试就依据标准审查提交的代码。
3)引入SEPG(软件工程过程组)的概念,严格监控项目的执行步骤
4)充分正确使用VSS进行专人的管理
针对我们的主要工作流程希望能够增加几个步骤:
A.在参与需求讨论会前,让测试人员需求的评审工作。
理由很简单,测试人员如果参与需求评审,这样可以更早的发现缺陷,降低项目的风险和成本。(测试的重要性大家都很明白,越早的介入项目越好,这里不做描述。)
B.在测试执行前,加入系统测试预测试项。
至于这个步骤,也是因为XXX项目的开发确实遇见了这样的问题,我们对这个项目的不同版本进行了不下六次的测试工作,而在这些不同的版本之间出现重复的错误或上个版本并不存在的错误。这样加大了测试的工作量,也加大了软件的风险。而系统测试预测试也是CMM5的一种运用,在第(三)部分中我会加以说明。
(三)在测试中体现更高的标准
为什么我会写第三部分?可能大家要疑惑了,那我就解释一下:
举个形象的例子,有两个参加4级英语考试的学生,其中一个按照4级的相关要求去记单词,而另一个按照6级的相关要求去记单词。你们认为结果会如何呢?呵呵,可能结果的区别并不大,也许他们都通过了4级的英文考试(如果按要求去做应该是这样一个结果)。但也有可能按照4级的相关要求去记单词的人没有考过,至于没有考过的原因,是因为存在着风险,也许这次考试的题目出的难了一点,也许出现了不少6级的单词,也许……可能存在这样那样的不定一因素,但是并不影响按照6级的相关要求去记单词的同学,因为他早就做好了准备,对他来说比自己平时做的还简单。
这就是我为什么要告诉大家我们应该以更高的标准来对待我们的测试工作的原因,在这里我就简单说说我的想法:
明确在整个流程中测试在各个阶段的角色与职责
这里有一幅流程图给大家看看(本人画的^_^也是我在上海学习课程的总结)
(附件图片003-1;003-2分成两个图,便于看清楚文字)
这是个很完善的CMM5的标准流程,希望可以给大家一些启示,当然流程不是死的,不是绝对的,灵活的运用到项目中去才是关键中的关键。
1)明确系统测试的流程和方法
对于这一部分说起来也就长了点,流程可以从上图中看出,而方法主要是针对测试用例的设计来说的先简单介绍常用的几种,有空整理出系统测试用例设计方法给大家分享(当然要是有人有总结就拿出来给我分享一下哦!^_^
等价类划分法
1、概念:
等价类——在一个输入域的集合内,任意选取一个数据,和选取其他数据的效果都是一样的。
有效等价类——合理的输入数据
无效等价类——不合理的输入数据
2、设计用例的步骤:
1)确定输入
2)确定输入条件(对输入的约束)
3)对每个输入的输入条件进行等价类划分(得到等价类表)
输入 | 输入条件 | 有效等价类 | 无效等价类 |
4) 考虑边界值
输入 | 有效值 | 无效值 |
加入边界值的测试用例 | 加入边界值的测试用例 |
5)设计原则
A.尽量多的覆盖还没有覆盖的有效等价类(用尽量少的测试用例覆盖有效等价类)
B.设计一个测试用例,只覆盖一个无效等价类,重复这一步骤知道无效等价类被完全覆盖
C.在进行数据组合是,不要完全随机,也要考虑题目中具体的组合时候有意义。
用例编号 | 输入1 | 输入…… | 输出 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
TAG: 测试案例分析 我的栏目标题搜索日历
我的存档数据统计
清空Cookie - 联系我们 - 51Testing软件测试网 - 交流论坛 - 空间列表 - 站点存档 - 升级自己的空间
Powered by 51Testing
© 2003-2021
|