• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

  使用 Visual Studio 2005 Team System 进行单元测试

发布: 2009-12-18 10:47 | 作者: 不详 | 来源: 领测国际软件测试网采编 | 查看: 97次 | 进入软件测试论坛讨论

领测软件测试网

  public void DepositMoneyTest() {

  float currentBalance = 500;

  BankAccount target = new BankAccount(currentBalance);

  float depositAmt = 10;

  target.DepositMoney(depositAmt);

  Assert.AreEqual(currentBalance + depositAmt, target.CurrentBalance,

  "Deposit Test: Deposit not applied correctly");

  }

  重新生成单元测试代码

  好消息是,代码生成过程不会让您重写以前生成(和修改)的单元测试。使用 Visual Studio 2005 Team System 的 Beta 2 版本,代码生成选项提供一个启用/禁用创建已存在测试的复选框。如果选择它,而且该过程找到了一个具有相同名称的现有测试,则该过程将忽略该测试方法,并创建后续测试,从而将一个数字附加到该方法名的末尾。这通常在对象中使用重载的方法或构造函数时发生,或者当单击Generate按钮而不取消选定现有测试时发生。

  自动化单元测试建议

  虽然本节可以独立成文,但这里只是一些您在创建单元测试时可以采纳的基本建议。

设计彼此独立的单元测试,其中它们可以独立运行(由于可以通过测试 UI 随意选择或取消选定它们)。

不要只进行正面测试。请确保代码能够响应任何方案,包括发生意外时(资源不可用,数据库只读等)。

把自己当作一个 QA 人员,想象成一个测试人员,而不仅仅是一个开发人员。您花在设计单元测试上的时间将有助于减少日后解决故障所用的时间。请注意对象的几个小细节:数据如何在对象之间传输?谁使用它们?销毁对象容易吗?如果我“进行此操作”,将会发生什么?

跳出您自己的思维模式。尽可能多地对测试进行头脑风暴。当您完成时,回头查看您可能漏掉的内容。来自团队成员的请求反馈 — 例如,他们创建了什么其他类型的测试?其他人可能提供一个对熟悉自己代码的开发人员而言非常困难的观点。

代码覆盖。使用 VSTS 代码覆盖规范提供有关每个测试运行中实际执行多少代码的信息(代码的行数,占所有代码的百分比)。如果编码完成,并且通过了所有测试,但代码覆盖显示只执行了该逻辑的一小部分,那么您的测试真的成功了吗?高代码覆盖不一定意味着您具有一个完整的“测试”集,而未覆盖的代码通常非常适用于一个新的测试用例

当生成单元测试时,要帮助其他人了解您的代码:

使用一个项目结构,该结构映射所测试程序集的结构。

每个程序集有一个相关的测试程序集。

每个类有一个相关的测试类。

在各自的测试方法中包含每个方法名(即,Load()将有PositiveLoadTest()NegativeLoadTest()PositiveScalarLoadTest()等的测试方法)。

使用一致的命名协定,包括对象的属性和方法名。

此外,当其他所有测试都失败时,请进行调试。自动化单元测试应该有助于减少您用在调试器上的时间。但是,如果测试结果和代码覆盖无法提供测试失败的原因,那么您大可不必担心调试单元测试。从 Beta 2 版的 Visual Studio 2005 Team System 开始,开发人员可以使用 Test Manager 中的Debug checked tests选项调试他们的单元测试程序集。

  小结

  自动化单元测试为开发环节提供了一个结构化、自行纪录、高度便携且可重复的过程。如果在搜索现有程序集,或者如果开发环境需要在开始开发之前进行完整的设计,则请考虑使用内置到 Microsoft Visual Studio 2005 Team System 中的代码生成引擎。Visual Studio 2005 Team System 的单元测试代码生成功能可以为您节省宝贵的时间,而且有助于强制团队的开发标准和约定。通过生成用于自动化单元测试的基本内容,包括生成带有对象创建的测试方法、参数变量和基断言类,您应该能够顺利地在您的开发方法论中采用自动化单元测试。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网