软件测试的新模型(4)

发表于:2014-09-22来源:uml.org.cn作者:Brian Marick点击数: 标签:模型
3. 对测试设计和执行的周期和成本进行估计。 4. 在项目进度上的特定位置,将计划纳入执行的行动: A. 开始对测试进行设计 B. 同时设计和创建一些支持测

  3. 对测试设计和执行的周期和成本进行估计。

  4. 在项目进度上的特定位置,将计划纳入执行的行动:

  A. 开始对测试进行设计…

  B. … 同时设计和创建一些支持测试的代码…

  C. … 在全部测试完成以前就执行部分的测试,因为可能存在不只一次的交接,在每一次交接的测试规划中,可能存在一些潜在的复杂的相互影响。工作安排不得不进行一些调整以达到相互间的平衡。测试支持代码和工具需要在各项任务中得到共享。你还必须考虑到在什么程度上让那些为早先的交接所设计的测试在以后重新执行,等等。

  这看起来很复杂。看上去似乎有太多的内容需要跟踪,而且太多的内容可能被忽略。也许你认为我是在要求你要对每一次交接来执行IEEE 829 [IEEE98]中关于测试计划的要求,然后把它们合并为一份贯穿整个项目的针对交接进行测试的测试计划。

  是,也不是。思考问题总是要占用时间的。太多的计划可能会减少结果的产出。在有些时候,你需要做的是停止计划并开始行动。例如,你无法思考并描述每一个bug修复,尽管bug修复也是一种交接。

  但是bug修复是实际工作中现实存在的问题。总体项目计划中应该包含bug修复。需要强调的是,你应该有一个默认的bug修改处理的标准过程,该过程应包括运行于每一个提交的bug修复的验证过程。你还需要努力地去思考问题。很多时候,各项验证是被放在一起同时进行并完成的。

  比较现实地来说,一个模型应该允许一些机械式行为,例如,“不管是哪一个X类型的交接,都要执行下列操作”。同时我们鼓励对特定的交接执行刚刚够的检查,对于风险越小的交接,就越可以采用机械式的测试行为。

  一个明确考虑到基本的测试现实的模型肯定会比忽略这些现实或者把你的工作复杂性完全抽象化的模型做得更好。文档则是另一个例子。

  我还没有提到需求及规格说明书,或者设计文档。某个交接中产生的一系列变化会引起很多争议。这些文档所扮演的角色是什么呢?它们常常是这么被使用的:

  (图10:测试中对开发文档的利用)

  文档可以指导你在一个交接变化时如何作出反应。如果你有一份很好的需求文档,它可能是产品所解决的问题的描述,尽管也许不是很直接。它可以帮助你对风险进行分析。一份好的规格说明应对系统的行为进行描述。这将帮助你把测试方法转化为具体的测试。一份好的架构设计则可以帮助你理解变化可能引起的几种不同的情况:系统的其它部分会受到怎样的影响?什么测试需要再次进行?

  我并不是经常能看到好的文档。需求文档常常象是市场销售用的系统特性列表。规格说明书有时就象是在代码完成后提交的用户手册文件。而设计文档经常不存在。

  好了,通过针对交接所引起的变化的集中讨论,我已把测试过程和软件开发过程相对地分离开了。如果文档中关于“XML支持功能加入到COMM”的描述很薄弱的话,我会尽自己所知来进行尽可能好的测试设计。然后,假如在项目后期,XML相关的用户文档出来了,我就可以对后来再次提交的交接增加相关的测试。假如市场需求改变了,她们经常会这么做,我还会在此后增加或者去除一些测试。所有这一切看起来是这样的:

  (图11--在文档不完整的条件下进行测试,并在后期补充测试)

  这样,虽然项目文档总是不到位,而且经常延迟提交,测试的效果也因此常常被降低,我们还是要避免测试受到项目文档的制约。

  头脑灵活的测试人员并不过于相信文档。毕竟,总是人在犯错误。那么,难道不是人在写这些文档吗?

  由于“正式的”文档是很薄弱的,测试模型必须明确地鼓励在测试过程中使用项目文档之外的各种不同信息来源。

  测试人员必须和程序员、用户、市场人员、技术作者以及任何的可能为实现更好测试提供线索的人进行交流。测试人员还应该努力把自己沉浸在某些技术所构建的氛围中。例如,我希望测试人员在做XML测试工作时常去访问W3组织的XML地址(http://www.w3.org/XML/)以及其它XML站点、邮件列表,甚至包括比较特别的 如Dave Winer的DaveNet/脚本新闻(http://www.scripting.com/)。这些资源并不是所谓的“辅助通道”,而是可以被列入计划和进度日程的资源。

原文转自:http://www.uml.org.cn/Test/test47.htm