写点什么

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

评论

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

划重点!DWS开发的五大要点

华为云开发者联盟

数据库 sql DWS

基于区块链的区域股权市场创新试点

CECBC

区块链

金融科技带来套利?专家认为监管应关注平台垄断、权力滥用等问题

CECBC

金融科技

1. 揭秘Spring类型转换 - 框架设计的基石

YourBatman

Spring Framework 类型转换 Converter

盘点c++几种常见的设计模式及具体实现

linux大本营

c++ Linux 后台开发

消防物联网,为逆行英雄守住第一道生命线

华为云开发者联盟

物联网 控制 消防

架构师训练营第一期-第十周课后作业

卖猪肉的大叔

极客大学架构师训练营

软件架构指南

码语者

软件架构

Jenkins使用ansible时出现!unreachable错误

Griffenliu

LeetCode题解:455. 分发饼干,贪心for循环,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

阿里技术专家熬夜一个月肛出内部“微服务学习笔记”,太完美了

小Q

Java 学习 编程 面试 微服务

shell脚本的使用该熟练起来了,你说呢?(篇二)

良知犹存

Shell

阿里云在应用扩缩容下遇到的挑战与选型思考

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生

架构训练营 - 第10周课后作业 - 学习总结

Pudding

【经验分享】打破CMDB认知误区,掌握建设关键!

嘉为蓝鲸

运维 运维自动化 数据可视化 CMDB 配置信息

京东11.11大促背后,那些系统架构经历了些什么?

京东科技开发者

数据库 云计算 云服务

anyRTC 11月SDK更新

anyRTC开发者

flutter uni-app WebRTC RTC sdk

小白也能看懂!教你如何快速搭建实用的爬虫管理平台

华为云开发者联盟

Python Docker jenkins

京东成立探索研究院,打造产业数智化首个源头性科技高地; AI 论文:让机器像人类一样感知三维真实世界

京东科技开发者

人工智能 云计算

区块链系统面临哪些风险以及有哪些防范措施

CECBC

区块链

架构师训练营第一期-第十周学习总结

卖猪肉的大叔

极客大学架构师训练营

40 张图带你搞懂 TCP 和 UDP

编程 程序员 大前端 后端 网络

完了!这57道面试题(美团、BAT、携程),我咋一个都不会?

比伯

Java 程序员 架构 面试 计算机

面试官问我:Object o = new Object() 占用了多少个字节?

moon聊技术

JVM Java虚拟机 JVM虚拟机原理

一个神奇的bug:OOM?优雅终止线程?系统内存占用较高?

华为云开发者联盟

sql jdk OOM

架构师训练营 - 第 11 周课后作业(1 期)

Pudding

写在日更之前,持续书写,见证文字的力量

boshi

随笔 随笔杂谈

【Linux开发】编写属于你的第一个Linux内核模块

程序员小灰

c++ Linux 后台开发 架构师 服务器开发

云上看警博会黑科技,得益于华为云打造的“云之盾”

脑极体

优秀商业可视化大屏(BI)设计演示

Marilyn

UI 商业智能

架构师训练营 - 第 10 周课后作业(1 期)

Pudding

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