50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

评论

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

产品 0 期 - 第二周作业

vipyinzhiwei

产品经理训练营

产品经理训练营 - 第二次作业

Jophie

产品经理训练营

项目管理文化建设

Ian哥

28天写作

28天瞎写的第二百二十八天:用 UltraEdit 找优越感的故事

树上

28天写作 UltraEdit

范文写作结构分析之“危险的分工”

JiangX

28天写作

产品质量战略

L3C老司机

spring中那些让你爱不释手的代码技巧(续集)

Java架构师迁哥

CSS(三)——简单的网页制作

程序员的时光

CSS 七日更 28天写作

批判性思维自修课(二)

石君

28天写作 批判性思维

第二周作业-利益相关方

Au revoir

没有女友的建议,不会有这家巨头公司

李忠良

28天写作

微信视频号的长视频和短视频 | 视频号28天(18)

赵新龙

28天写作

CSS(四)——CSS高级特性

程序员的时光

CSS 程序员 七日更 28天写作

第二章作业

Deborah

静下心来

阿萌

程序人生 28天写作 青城

基于Serverless实现静态博客访问统计功能

zFish

Serverless AWS Hugo Pulumi

Flink 中极其重要的 Time 与 Window 详细解析(深度好文,建议收藏)

五分钟学大数据

大数据 flink

同VLAN不同网段能否ping通

2021,你值得看的华为/字节/腾讯/京东/网易/滴滴面经分享

比伯

Java 编程 架构 面试 计算机

Logi-KafkaManager开源之路:一站式Kafka集群指标监控与运维管控平台

张亮

Java 大数据 kafka 开源 消息队列

开发质量提升系列:checklist 投产检查列表(下)

罗小龙

代码质量 28天写作 checklist

Android硬编解码MediaCodec使用笔记

Changing Lin

android 音视频

第四课作业

糯米~

甲方日常 89

句子

工作 随笔杂谈 日常

产品经理训练营-第二周学习总结

月亮 😝

精选算法面试-哈希表III

李孟聊AI

面试 算法

第九周作业&总结

胡益

Serverless应用开发小记

zFish

DevOps AWS IaC #Serverless Terraform

【shell命令】关于mac的open命令

程序员架构进阶

工具 Shell 命令行 28天写作

汽车AI芯片(28天写作 Day18/28)

mtfelix

自动驾驶 28天写作 车规级芯片

产品经理训练营作业 01

KingSwim

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