Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

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

  • 2008-07-20
  • 本文字数:642 字

    阅读完需:约 2 分钟

Pex 是微软研究院的一个白盒测试生成工具。不像我们平时在给定的方法中为每个执行路径手写独立测试,Pex 允许开发人员编写单独的参数化测试方法。这样 Pex 就能生成一套标准的单元测试,在目标方法里测试执行路径。Pex 一个指令一个指令地分析.NET 代码,解释代码执行时的动作,然后“以一种完全自动的方式,计算出那些能触发边角代码的相关测试输入。”

给定一个手写的参数化单元测试,Pex 完全自动地分析代码,来决定相关的测试输入。其结果就是生成一个有着高度代码覆盖的传统单元测试,另外,Pex 还会建议程序员如何去修复所发现的 Bug。

Pex 实际上并没有减少开发人员多少工作量,他们依然需要手写那些定义和覆盖了方法基本行为的单元测试,来确保 API 和函数符合必要用例和用户故事的需求。但是,Pex 可被用作一个附加的方法来确保

测试充分地覆盖这些实现的代码。在方法中识别不确定的行为和错误时,这个自动探索式测试工具尤其有用。

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

需要提醒的是,Pex 目前还只是微软研究院的一个试验项目,不会像微软正式产品一样获得支持。不建议将 Pex 作为写单元测试的首要选择,但是它的自动测试生成能有效覆盖边缘的用例。

2008-07-20 21:021851

评论

发布
暂无评论
发现更多内容

架构实战营模块二作业

Morphling

#架构实战营

Spark SQL和DataSet(六)

Databri_AI

sql spark RDD

趣说开源|为什么要参与到开源社区中?

SphereEx

作业2-微信朋友圈高性能分析

Nullrable

架构实战课

Java单例模式一文通

喵叔

7月日更

实时数据湖:Flink CDC流式写入Hudi

王知无

到底什么时候要分库分表?

卢卡多多

分库分表 7月日更

架构实战营模块二作业

子豪sirius

架构实战营

标签体系下的用户画像建设小指南

王知无

架构实战营模块二 作业

酷飞不会飞

设计消息队列存储消息数据的 MySQL 表格——架构实战营作业八

开拓纪

架构师实战营 作业八

架构训练营模块 2 作业 - 听闻

听闻

一篇并不起眼的数据仓库面试题

王知无

架构实战营作业 M02

Shawn Liu

架构实战营

架构模块2

慕溶枫

#架构实战营

架构实战营作业七——王者荣耀商城异地多活架构设计

开拓纪

架构实战营 模块七

架构训练营-模块二

小卷儿

当我们在学习Hive的时候在学习什么?「硬刚Hive续集」

王知无

争议不断的动力电池暗战,究竟改变了什么?

脑极体

作业二朋友圈高性能架构设计

王小森

模块二-微信朋友圈高性能复杂度分析

kk

架构实战营

架构实战营 - 模块二

绝影

架构训练营

模块二作业

晨晨

网络攻防学习笔记 Day78

穿过生命散发芬芳

网络攻防 7月日更

ApacheCon 首次亚洲大会火热来袭,SphereEx 邀您共赴年度盛会

SphereEx

架构实战营第一期--模块二作业

clay

架构实战营

架构实战营 模块二 作业

三叔叔_拖延症晚期

架构实战营

模块二作业

seawolflin

架构实战营

推荐一个软件--IObit Uninstaller

IT蜗壳-Tango

7月日更

微信朋友圈的高性能复杂度

伏波

架构实战营

架构训练营模块二作业

河马先生

架构实战营

.NET自动探索式测试工具——Pex_.NET_Al Tenhundfeld_InfoQ精选文章