最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

.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:021498

评论

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

Redis 集群

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

元数据管理—动态表单设计器在crudapi系统中完整实现

crudapi

API crud crudapi 动态表单 表单设计

喂~ 办章吗?Python OpenCV 互联网+ 项目,图像处理取经之旅第 18 天

梦想橡皮擦

Python OpenCV 4月日更

与JVM做朋友系列(2)再见类加载器

洛神灬殇

JVM ClassLoader 类加载器

「架构师训练营 4 期」 第十三周 - 001&2

凯迪

架构师训练营 4 期

如何在Deno中使用 Node 模块?

Sakura

4月日更

架构师实战营 模块一作业(微信业务架构和学生管理系统架构备选方案)

代廉洁

架构实战营

Vue3源码 | 读懂keep-alive组件以及缓存机制

梁龙先森

源码分析 大前端 Vue3

博客主题用腻了?来试试赛博朋克 2077 主题吧!

清秋

CMS Hexo 博客 4月日更

区块链走红 江苏多行业应用迈入"可信时代"

CECBC

农产品

如何做决策?

石云升

决策 28天写作 职场经验 管理经验 4月日更

区块链:颠覆其外,守旧其中

CECBC

互联网

区块链开发主流语言和核心优势

CECBC

区块链

JavaScript 图片转文字,文字转语音

空城机

JavaScript 大前端 4月日更 tesseract 图片转文字

Hadoop 3.x 版本相对于 Hadoop 2.x的新特性

五分钟学大数据

hadoop 4月日更

大数据计算生态之数据计算(二)

小舰

4月日更

去面试,公司问我生辰八字。

yes

面试

与JVM做朋友系列(3)又见Class字节码

洛神灬殇

JVM X86 stack register

回归本我还是追逐名利,技术人在中年危机下的抉择?

刘华Kenneth

管理 职场 中年危机

架构实战营 模块一:学习总结

👈

架构实战营

3.4 Go语言从入门到精通:包管理工具之Go module

xcbeyond

go modules Go 语言 4月日更

外网访问Ubuntu下的Tomcat

U2647

tomcat ubuntu 4月日更

架构实战营 模块 1 课后作业

eoeoeo

架构实战营

第13周课后练习-数据应用(二)

潘涛

架构师训练营 4 期

Netty 核心源码解读 —— EventLoop 篇

松然聊技术

【LeetCode】森林中的兔子Java题解

Albert

算法 LeetCode 4月日更

「Android渲染」为什么alpha渲染性能低?

李小四

Android渲染 Alpha 渲染

架构实战营 模块一:课后作业

👈

架构实战营

华仔架构实战营 - 作业 - 模块1

曲元洪

架构实战营

没有lrzsz,怎么传文件到服务器?

运维研习社

运维 工具

【极客大学】模块一作业

冬天的树

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