zoukankan      html  css  js  c++  java
  • [ZZ].NET自动探索式测试工具——Pex

    作者 Al Tenhundfeld译者 霍泰稳 发布于 2008年7月20日 下午9时2分

    社区
    .NET
    主题
    单元测试
    标签
    测试驱动开发,
    MbUnit,
    MSTest,
    xUnit.Net
    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还基于扩展反射可管理子协议APIExtended Reflection managed profiling API)对监测应用程序的集成提供了支持。

    需要提醒的是,Pex目前还只是微软研究院的一个试验项目,不会像微软正式产品一样获得支持。不建议将Pex作为写单元测试的首要选择,但是它的自动测试生成能有效覆盖边缘的用例。
     
  • 相关阅读:
    洛谷P1120-小木棍
    flask之注册功能
    python数据库操作-mysql数据库
    flask之数据库的交互
    flask之显示当地时间
    flask之url_for函数
    flask之Twitter Bootstrap
    flask之模板之继承
    flask之表单
    flask之jinjia2模板
  • 原文地址:https://www.cnblogs.com/oscarxie/p/1249937.html
Copyright © 2011-2022 走看看