写点什么

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

  • 2008 年 7 月 20 日
  • 本文字数:642 字

    阅读完需:约 2 分钟

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

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

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

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

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

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

2008 年 7 月 20 日 21:021189

评论

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

TcaplusDB祝大家劳动节快乐

数据人er

分布式 TcaplusDB Tcaplus NoSQL数据库

golang单元测试踩坑系列(一)

geange

单元测试 Go 语言

一房地产数据服务初创公司的面经

HoneyMoose

seata-golang 一周年回顾

阿里巴巴云原生

Java 数据库 微服务 云原生 Go 语言

话题讨论|三大运营商Q1业绩大增,5G开始收割?

程序员架构进阶

5G 话题讨论 28天写作 4月日更 通信运营商

Dubbo 注册中心

青年IT男

dubbo

客服中心简单分析

zzz

大数据技术发展的过程

菜菜

如果你不知道从哪本书开始阅读,那就从这本开始吧

小天同学

读书 好书推荐 读后感 4月日更

弱网下的极限实时视频通信

疯狂的驸马

音视频 编码 极限视频通信

认识流媒体协议,从RTSP协议解析开始!

明儿

c c++ 协议 Wireshark rtp

漫游语音识别技术——带你走进语音识别技术的世界

攻城先森

深度学习 学习 音视频 nlp 语音识别

WebAssembly + Dapr = 下一代云原生运行时?

阿里巴巴云原生

云计算 容器 开发者 运维 云原生

接纳不完美的自己,才能拥有完整的人生|靠谱点评

无量靠谱

你必须明白的新生代垃圾回收:YoungGC

小Q

Java 架构 面试 JVM GC

北美一工作搜索引擎公司技术岗面经

HoneyMoose

精选8道Java集合最常见面试题,进大厂99%都会被问到,限时送!

飞飞JAva

JAVA集合

【一定要看哦】转瞬之间的成长,传播知识的梦想(赠予极客邦【1周年】)

浩宇天尚

程序人生 1 周年盛典 InfoQ 写作平台 1 周年 InfoQ 的朋友们

弱网下的极限视频通信学习感悟!

txp

音视频

写作平台一周年-感谢曾经的自己

数据社

InfoQ 写作平台 1 周年 人气作者 TOP10

002 ES NGram 分词 + suggest

小林-1025

ES es7

“Windows找不到文件...”,怎么处理?

Emotion

Windows 10 系统 找不到系统文件 错误弹窗 windows找不到文件

关于企业数字化转型的一些思考

石云升

数字化转型 28天写作 4月日更

Spring 实战:自定义 Filter 优雅获取请求参数和响应结果

看山

Spring实战

【翻译】JVM-技术专题-ZGC学习手册(1)概念定义

浩宇天尚

翻译 ZGC JVM 基本概念

笔记分享--弱网下的极限实时视频通信

攻城先森

音视频 端到端 #弱网 极限视频通信

奋力前行,感谢有你

IT蜗壳-Tango

IT蜗壳 人气作者 TOP10

太简单了!这套java内部类和异常的总结,只学了2个小时就学会了

牛哄哄的java大师

Java

技术向上,雪坡向下:拼多多的“新帅”与新路

脑极体

菩萨心肠 霹雳手段|靠谱点评

无量靠谱

First Unique Character in a String 的变种问题返回第一个找到符合条件的字符

HoneyMoose

如何行之有效地参与开源?

如何行之有效地参与开源?

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