报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

评论

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

阿那亚:靠客户反馈驱动企业成长

石云升

商业价值 服务 7月日更

并发问题的源头

Java旅程

Java 并发编程

登陆框有多危险,可能你还不知道。。。

网络安全学海

黑客 网络安全 信息安全 渗透测试· 漏洞分析

linux c解决多个第三方so动态库包含不同版本openssl造成的符号冲突

奔着腾讯去

openssl so动态库 动态链接库

如何使用 Kind 快速创建 K8s 集群?

尔达Erda

开源 云原生 k8s PaaS kind

成为Linux大佬的学习之路-规划

学神来啦

Linux 运维 linux运维 linux学习

鉴释课堂丨编译器技术入门知识一网打尽

鉴释

编译器 编译器原理

性能测试误差对比研究(四)

FunTester

性能测试 接口测试 测试框架 测试开发 误差分析

hbase运维故障案例分析

GrowingIO技术专栏

大数据 运维 HBase

阿里培训笔记惨遭泄露,Spring+SpringBoot+SpringCloud

Java架构师迁哥

2021全国人工智能师资培训走进北理工,百度飞桨助力高校教师提升AI能力

百度大脑

人工智能 高校

上架一夜遭全网封杀!阿里大牛熬夜半年手码的Java面试指南太强了

白亦杨

postgresql主从搭建

阿呆

postgresql

ZooKeeper 分布式锁 Curator 源码 03:可重入锁并发加锁

程序员小航

Java zookeeper 源码 分布式锁 zookeeper分布式锁

maven是什么

卢卡多多

7月日更

VSCode 断点调试 electron-vue 主进程

admin

Vue 调试 Electron

【报名】百度EasyDL研讨会:揭秘智能化硬件AI应用的技术难点与行业落地

百度大脑

人工智能 智能化

上架一夜遭全网封杀!阿里大牛熬夜半年手码的Java面试指南太强了

Java 编程 程序员 架构师

gitlab忘记root用户的密码

阿呆

gitlab #GitLab

23w字!Github一夜爆火被各大厂要求直接下架的Java面试题库也太强了

Java架构师迁哥

工程师文化落地的几点思考

baiyutang

敏捷 敏捷开发 精益开发 精益思想 敏捷管理

直播回顾丨鉴释首席架构师刘新铭为您解读“第一性原则”

鉴释

软件开发 代码质量 软件质量与安全

敏捷教练的困境与出路:一个管理者的视角

蔡建斌

管理 技术管理 敏捷教练 引航计划 内容合集

网络协议:TCP可靠传输原理

赖猫

c++ TCP 后端 网络协议

创业邦专访丨兼容国内外市场的代码分析软件,鉴释科技帮助企业减少bug发生率

鉴释

创业公司

BoCloud博云:ESB老旧力不能支,微服务独立自治强势替代

BoCloud博云

微服务

性能测试误差对比研究(三)

FunTester

性能测试 接口测试 测试框架 误差分析

围观|解读新一代企业数字化架构的“三驾马车”

尔达Erda

开源 DevOps 云原生 数字化转型 数字化

没想到专科的我,仅凭阿里这份JDK源码笔记居然拿到了年薪30W的offer

Java架构师迁哥

String、StringBuiler和StringBuffer面试那些事

Java旅程

Java 并发

六种主要服务器管理协议简单概述-行云管家

行云管家

行云管家 服务器协议 服务器管理

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