振奋起来,发奋涂墙哈

项目测试计划制定及变更的相关问题

上一篇 / 下一篇  2012-11-09 17:25:12 / 个人分类:交流讨论

软件测试计划作为软件项目计划的子计划,在项目启动初期是必须规划的。测试过程也从一个相对独立的步骤越来越紧密嵌套在软件整个生命周期中,这样,如何规划整个项目周期的测试工作;如何将测试工作上升到测试管理的高度都依赖于测试计划的制定。测试计划因此也成为测试工作的赖于展开的基础。

测试计划应有的作用:

  1. 避免测试的事件驱动

  2. 使测试工作和整个开发工作融合起来

  3. 资源和变更事先作为一个可控制的风险

 制定测试计划过程中应该注意的问题:

问题一:测试阶段划分

就通常软件项目而言,基本上采用瀑布型开发方式,这种开发方式下,各个项目主要活动比较清晰,易于操作。整个项目生命周期为需求-设计-编码-测试-发布-实施-维护。然而,在制定测试计划时候,有些测试经理对测试的阶段划分还不是十分明晰,经常性遇到的问题是把测试单纯理解成系统测试,或者把把各类型测试设计(测试用例的编写和测试数据准备)全部放入生命周期的测试阶段,这样造成的问题是浪费了开发阶段可以并行的项目日程,另一方面造成测试不足。

可参考的测试阶段划分方法:

    

照上图所述,相应阶段可以同步进行相应的测试计划编制,而测试设计也可以结合在开发过程中实现并行,测试的实施即执行测试的活动即可连贯在开发之后。值得注意的是:单元测试和集成测试往往由开发人员承担,因此这部分的阶段划分可能会安排在开发计划而不是测试计划中。

问题二:系统测试阶段日程安排

划分阶段清楚了,随之而来的问题是测试执行需要多长的时间?标准的工程方法或CMM方式是对工作量进行估算,然后得出具体的估算值。但是这种方法过于复杂,可以另辟专题讨论。一个可操作的简单方法是:根据测试执行上一阶段的活动时间进行换算,换算方法是与上一阶段活动时间111~15左右。举个例子,对测试经理来说,因为开发计划可能包含了单元测试和集成测试,系统测试的时间大概是编码阶段(包含单元测试和集成测试)115倍。这种方法的优点是简单,依赖于项目计划的日程安排,缺点是水分太多,难于量化。那么,可以采用的另一个简单方法是经验评估。评估方法如下:

1. 计算需求文档的页数,得出系统测试用例的页数

     需求页数:系统测试用例页数 ≈ 11

2. 由系统测试用例页数计算编写系统测试用例时间

编写系统测试用例时间 ≈ 系统测试用例页数×1小时

3. 计算执行系统测试用例时间

4. 编写系统用例用时:执行系统测试用时 ≈ 12

5. 计算回归测试包含的时间

6. 系统测试用时:回归测试用时≈ 21

基于以上方法优点是需求为已知的,可以利用已知来推算未知,适用于需求是已知且相对稳定的情况下;缺点是处于研发状态的项目,需求不清晰的时候比较难计算。现套用一个例子加于说明:需求文档页数为500,系统测试用例页数推算为500,则编写系统测试用例时间为500小时,执行系统测试用例时间为1000小时,回归测试需要500小时,加起来总共为2000小时,按一天8小时计算,共计250个工作日/人;假如一个月为22个工作日,则共计约11/月,即投入4个人需要3个月左右时间工作量完成。当然,这是系统测试需要的全部时间。根据测试阶段划分原则,设计用例时间可以和开发同步进行,只需在测试阶段中安排的时间为1500小时即42个月工作量。

问题三:测试计划的变更

测试计划改变了已往根据任务进行测试的方式,因此,为使测试计划得到贯彻和落实,测试组人员必须及时跟踪软件开发的过程,对产品提交测试做准备,测试计划的目的,本身就是强调按规划的测试战略进行测试,淘汰以往以任务为主的临时性。在这种情况下,测试计划中强调对变更的控制显得尤为重要。

变更来源于以下几个方面

  1. 项目计划的变更

  2. 需求的变更

  3. 测试产品版本的变更

  4. 测试资源的变更

  测试阶段的风险主要是对上述变更所造成的不确定性,有效的应对这些变更就能降低风险发生的几率。要想计划本身不成为空谈和空白无用的纸质文档,对不确定因素的预见和事先防范必须做到心中有数。

  对于项目计划的变更,除了测试人员及时跟进项目以外,项目经理必须认识到测试组也是项目成员,因此必须把这些变更信息及时通知到项目组,使得整个项目得到顺延。项目计划变更一般涉及都是日程变更,令人遗憾的是,往往为了进度的原因,交付期限是既定的,项目经理不得不减少测试的时间,这样,执行测试的时间就被压缩了。在这种情况下,测试经理常常固执的认为进度缩减的唯一的方法就是向上级通报并主观认为产品质量一定会下降,这种做法和想法不一定是正确的。由于时间不足,不能完美的执行所有测试,为了保证质量,第一种办法是调整测试计划中的测试策略和测试范围,实践中测试经理常常忽略测试计划的这个章节。调整的目的是重新检查不重要的测试部分,调换测试的次序和减少测试规模,对测试类型重新组合择优,力求在限定时间内做最重要部分的测试,可以把忽略部分留给确认测试或现场测试。其他应对办法包括减少进入测试的阻力,例如降低测试计划中系统测试准入准则;分步提交测试,例如改成迭代方式增量测试;减少回归测试的要求,例如开发人员实时修改,在测试计划中对缺陷修复响应时间和过程进行约定;和公司QA商量进行简化配置管理,跳过正式发布环节;缺陷进行局部回归而不是重新全部测试等等。

项目进行过程中最不可避免的就是需求的变更。那么测试计划就进行相应的变更和控制。假使面临一个需求动态的项目,必须在计划中对需求变更造成的测试(设计)方式变化进行说明,例如采用用例和数据分离、流程和界面分离、字典项和数据元素分离的设计方式,然后等到最终需求确定后细化测试设计;另一个方面是最好制定一个变更周期的约定――尤其在执行测试阶段发现需求的变更――定义变更的最大频度和重新测试的界限,计划从一定程度上能够降低不可预期需求变化造成的投入损失。

测试资源的变更是源自测试组内部的风险而非开发组风险,当测试资源不足或者冲突,测试部门不可能安排如此多的人手和足够时间参与测试时,在测试计划中的控制方法与测试时间不足相类似。为了排除这种风险,除了象时间不足、测试计划变更时那样缩减测试规模等等方法以外,在测试计划中应明确需要保证的资源,否则,必须将这个问题作为风险记录。规避风险的办法可能有:

一, 项目组的需求和实施人员参与系统测试;

二, 抽调不同模块开发者进行交叉系统测试或借用其他项目开发人员;

三, 组织客户方进行确认测试或发布β版本。 

  

综上,要做好一份好的项目测试计划应该做到:

1. 坚持“5W”规则,明确内容与过程

        规则指的是“What(做什么)“Why(为什么做)“When(何时做)“Where(在哪里)“How(如何做)。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where

        为了使“5W”规则更具体化,需要准确理解被测软件的功能特征、应用行业的知识和软件测试技术,在需要测试的内容里面突出关键部分明确风险内容、属性或者测试技术。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-16  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 10191
  • 日志数: 10
  • 建立时间: 2012-07-17
  • 更新时间: 2012-11-12

RSS订阅

Open Toolbar