何时为何及如何进行单元测试.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
何时、为何以及如何进行单元测试 Adam Kolawa 博士访谈 Parasoft delivers quality as a continuous process 0 本文是对 Parasoft CEO 也即《自动缺陷预防:软件管理中的最优实践》 (Wiley-IEEE,2007 )一书的共同作者 Adam Kolawa 系列采访的一部分,在这个部分中, Adam 论述了何时,为何以及如何引入基础软件验证。同时,这个部分还谈到了静态代码分 析、代码走查、内存错误检测、消息/协议测试、功能测试以及负荷测试等。 在本访谈中,Kolawa 驳斥了单元测试即将淘汰的说法,解释了单元测试是如何为用户 在“早期测试”中实现价值的,并且指出代码覆盖率并不是评估测试套件完整性的最佳方法。 通读本文能帮助读者明确如何迅速可靠地修改代码,以及如何方便地开始。 目前,单元测试在理论界是一个热门,而在实际使用中却是少有问津。请问你对此有 什么看法呢? 单元测试需要设置实际且有效的测试套件,这是相当复杂的。开发者往往对应用程序的 外部表现很清楚,比如应用程序将怎样响应用户的操作等,但是对应用程序内部本身的运作 情况却知之甚少。而这对编写单元测试套件而言确实是相当关键的。 当使用单元测试时,开发者需要创建相应的初始化条件,这能使得应用程序像一个完整 的系统那样工作。如果初始化条件设置不正确,那么单元测试的结果将不能反映程序在实际 中的运行情况,这样的结果对开发者而言也不会非常有用。除非能模拟程序运行的真实情况, 否则你不能确保某些模块正确无误。这一点是相当关键的。比如,某个模块可能要求支持很 多条件…但当你在创建它的时候,你就需要知道其相应代码是否能够维持该要求。除非你能 在相应的环境中进行验证,否则你不能确保这些模块的正确性。 创建初始化条件是相当困难的,但又是绝对必须的。我认为试图严格地创建初始化条件 的开发者可能会为其所需的工作量而感到气馁,相反,其他的开发者可能会为单元测试报告 的无价值的结果而感到失望。 现在关于单元测试是否有存在的必要性有很多的争论。你怎么看呢? 我认为单元测试在现在比以往任何时候都更加有用。但我认为我们应该有较人们普遍关 注的单元测试所不同的测试,也即早期测试。下面解释一下。 今天我们所构建的系统,如 SOA 及 RIA 等,无论从大小还是复杂度上都是以往所不能 同日而语的,再加上较以前更短的开发周期。一般而言,我们对哪些功能需要测试都有一个 清楚的了解,因为在需求中对测试用例已经有了很好的定义。尽管如此,由于其复杂性,例 如很多系统往往与外部世界相连,分期系统难以建立和维护,每次测试均需要大量的设置等 等诸多困难,所以作为整体测试的时候仍然是很困难的。也许对每个用例测试一次是可行的, 但是你必须得进行日常的测试以保证破坏性的修改能够被即时发现。 这也是单元测试的产生原因吧? 是的。单元测试在帮助开发者测试模块的同时省去了处理复杂系统的烦恼。使用类似 Parasoft Tracer 的技术,开发者可以创建单元测试用例来捕捉其中的功能。使用应用程序 的图形用户界面(GUI),SOA 或者网络测试客户端,开发者只需要在打开 Tracer 功能的时 候运行测试用例。在测试用例执行的同时,Tracer 能够监视所有被创建的对象以及输入输 1 出数据,随后为开发者创建一个能模拟这些操作的单元测试套件甚至设置好相应初始化条 件。 这些生成的单元测试套件可以在其它机器上独立使用。这就意味着开发者可以只使用一 台机器,甚至是一个标准桌面开发环境,以在验证过程中复制一个复杂系统的行为。将这些 测试套件加入到回归测试套件中,并且持续地运行能使开发者迅速地发现代码的修改是否影 响了功能。 根本地讲,这能从两个方面解决今天的复杂系统中包含的问题: 1. 帮助开发者设置耗时且繁琐的实际测试条件。 2. 帮助开发者创建能独立运行

文档评论(0)

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

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

1亿VIP精品文档

相关文档