软件测试:代码检查、走查与评审.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件测试:代码检查、走查与评审

代码检查、走查与评审 多年以来,软件界的大多数人都持有一个想法,即编写程序仅仅是为了提供给 机器执行,并不是供人们阅读的,软件测试的惟一方法就是在计算机上执行它。20 世纪 70 年代早期,一些程序员最先意识到阅读代码对于构成完善的软件测试和调 试手段的价值,通过他们的努力,原有的观念开始发生变化。 今天,并不是所有的软件测试人员都要阅读代码,但是研读程序代码作为测试 工作的一部分,这个观念已经得到了广泛认同。以下几个因素会影响到特定的测试 和调试工作需要人工实际阅读代码的可能性:软件的规模和复杂度、软件开发团队 的规模、软件开发的时限(例如时间安排表是松散还是紧密)等,当然还有编程小 组的技术背景和文化。 基于这些原因,在深入研究较为传统的基于计算机的测试技术之前.我们首先 讨论非基于计算机测试的过程(即“人工测试”)。人工测试技术在查找错误方面非 常有效,以至于任何编程项目都应该使用其中的一种或多种技术。应该在程序开始 编码之后、基于计算机的测试开始之前使用这些方法。同样,也可以在编程过程的 更早阶段就开始设计和应用类似的方法(例如在每个设计阶段的末尾),但是这些 内容超出了本书讨论的范围。 在开始讨论人工测试技术之前,有一条重要的注意事项:由于包含了人为因素 在内,导致很多方法的正规性要差于由计算机执行的数学证明,人们可能会怀疑某 些如此简单和不正规的东西是否有用。反之亦然。这些不正规的方法并没有妨碍测 试取得成功;相反,它们从以下两个方面显著地提高了测试的功效和可靠性。 首先,人们普遍认识到错误发现得越早,改正错误的成本越低,正确改正错误 的可能性也越大。其次,程序员在开始基于计算机的测试时似乎要经历一个心理上 的转变。从内部产生的压力似乎会急剧增长,并产生一个趋势,要“尽可能快地修 正这个缺陷”。由于这些压力的存在.程序员在改正某个由基于计算机测试发现的 错误时所犯的失误,要比改正早期发现的问题时所犯的失误更多一些。 3.1 检查与走查(Inspections And Walkthroughs) 代码检查与走查是两种主要的人工测试方法。由于这两种方法具有很多的共同 之处,在这里我们将一起讨论它们的相似点,而它们的不同之处将在后续章节中进 行介绍。 代码检查与走查都要求人们组成一个小组来阅读或直观检查特定的程序。无论 采用哪种方法,参加者都需要完成一些准备工作。准备工作的高潮是在参加者会议 上进行的所谓“头脑风暴会”。“头脑风暴会”的目标是找出错误来,但不必找出改 正错误的方法。换句话说,是测试,而不是调试。 代码检查与走查已经广泛运用了很长时间。我们认为,它们的成功与本文 第 2章所述的那些原则有关。 在代码走查中,一组开发人员(三至四人为最佳)对代码进行审核。参加者当中只有一人是程序编写者。因此,软件测试的主要工作是由其他人,而不是软件编写者本人来完成.这符合“软件编写者往往不能有效地测试自己编写的软件”的测 试原则。 代码检查与走查是对过去桌面检查过程(在提交测试前由程序员阅读自己程序 的过程)的改进。与原方法相比,代码检查与走查更为有效,同样是因为在实施过 程中,除了软件编写者本人,还有其他人参与进来。 代码走查的另一个优点在于,一旦发现错误,通常就能在代码中对其进行精确 定位,这就降低了调试(错误修正)的成本。另外,这个过程通常发现成批的错误。 这样错误就可以一同得到修正。而基于计算机的测试通常只能暴露出错误的某个表 症(程序不能停止,或打印出一个无意义的结果),错误通常是逐个地被发现并得 到纠正的。 在典型的程序中,这些方法通常会有效地查找出 30%~70%的逻辑设计和编码 错误。但是,这些方法不能有效地查找出高层次的设计错误,例如在软件需求分析 阶段的错误。请注意,所谓 30%~70%的错误发现率,并不是说所有错误中多达70%可能会被找出来,而是讲这些方法在测试过程结束时可以有效地查找出多达 70%的已知错误。请记住,第 2 章告诉我们,程序中的错误总数始终是未知的。 当然,可能存在对这统计数字的批评,即人工方法只能发现“简单”的错误(即 与基于计算机的测试方法相比,所发现的问题显得微不足道),而困难的、不明显 的或微妙的错误只能用基于计算机的测试方法才能找到。然而,一些测试人员在使 用了人工方法之后发现,对于某些特定类型的错误,人工方法比基于计算机的方法 更有效,而对于其他错误类型,基于计算机的方法更有效。这就意味着,代码检查 /走查与基于计算机的测试是互补的。缺少其中任何一种,错误检查的效率都会降低。 最后,不但这些测试过程对于测试新开发的程序有着不可估量的作用,而且对 于测试更改后的程序,这些测试过程具有相同的作用,甚至更大。根据我们的经验, 修改一个现存的程序比编写一个新程序更容易产生错误(以每写

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档