.NET自动探索式测试工具——Pex

发表于:2008-7-21 17:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Al Tenhundfeld    来源:互联网

  Pex微软研究院的一个白盒测试生成工具。不像我们平时在给定的方法中为每个执行路径手写独立测试,Pex允许开发人员编写单独的参数化测试方法。这样Pex就能生成一套标准的单元测试,在目标方法里测试执行路径。Pex一个指令一个指令地分析.NET代码,解释代码执行时的动作,然后“以一种完全自动的方式,计算出那些能触发边角代码的相关测试输入。”
给定一个手写的参数化单元测试,Pex完全自动地分析代码,来决定相关的测试输入。其结果就是生成一个有着高度代码覆盖的传统单元测试,另外,Pex还会建议程序员如何去修复所发现的Bug。
 
  Pex实际上并没有减少开发人员多少工作量,他们依然需要手写那些定义和覆盖了方法基本行为的单元测试,来确保API和函数符合必要用例和用户故事的需求。但是,Pex可被用作一个附加的方法来确保测试充分地覆盖这些实现的代码。在方法中识别不确定的行为和错误时,这个自动探索式测试工具尤其有用。

  和其他大多数生成工具一样,Pex在确定的环境下使用效果很好。单元测试驱动(TDD)的设计原则是保持方法简短和可测试,这个原则也让Pex生成的测试更为可读。在实现符合TDD的设计目标时,Pex也是很不错的工具,比如如果Pex为某方法生成了许多复杂的测试,那么这个方法很有可能需要重构。在方法是以基础类型做参数,而不是自定义的对象时,Pex的效果也不错。

  Pex默认集成于Visual Studio 2008和MSTest中,但是Pex的扩展允许下载并支持NUnit、MbUnit或者xUnit.Net。另外Pex还基于扩展反射可管理子协议API(Extended Reflection managed profilingAPI)对监测应用程序的集成提供了支持。

  需要提醒的是,Pex目前还只是微软研究院的一个试验项目,不会像微软正式产品一样获得支持。不建议将Pex作为写单元测试的首要选择,但是它的自动测试生成能有效覆盖边缘的用例。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号