写点什么

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

评论

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

美团二面:为什么Redis会有哨兵?

Java全栈架构师

Java redis 程序员 面试 后端

天翼云携手华为,强强联合,共创数据存储新生态

天翼云开发者社区

存储 数字化

拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗?

程序员小毕

程序员 程序人生 计算机网络 java面试 TCP协议

【容器篇】Docker实现资源隔离的秘籍

技术小生

Docker 7月月更

KunlunBase的Fullsync高可用机制简介

KunlunBase昆仑数据库

国产数据库

告别缺电焦虑!充电桩装上“智慧大脑”

天翼云开发者社区

云主机 云平台

KunlunBase指导手册(三)数据导入&同步

KunlunBase昆仑数据库

国产数据库

商品管理功能越来越丰富,不愧是 Pro 系统!

CRMEB

大数据ZooKeeper(一):基本知识和集群搭建

Lansonli

大数据 zookeeper 7月月更

为安全而生!云安全漫谈开讲啦

云安全 云计算运维

KunlunBase 指导手册(一)快速安装手册

KunlunBase昆仑数据库

国产数据库

昆仑数据库 MySQL 连接协议简介

KunlunBase昆仑数据库

国产数据库

SVN 修订版本关键字

攻城狮杰森

svn 关键字 7月月更

Kunlun-Storage vs PostgreSQL OLTP 测试

KunlunBase昆仑数据库

国产数据库

KunlunBase功能之insert/update/delete...returning语句

KunlunBase昆仑数据库

国产数据库

KunlunBase 0.9.1版本Sysbench性能测试报告

KunlunBase昆仑数据库

国产数据库

阿里内网GC面试小册,仅7天Github获赞96.9K

程序知音

Java 阿里巴巴 程序员 后端 JVM

火眼金睛,天翼云助力打造城市视觉中枢

天翼云开发者社区

大数据 云平台

A tour of gRPC:04 - gRPC unary call 一元调用

BUG侦探

gRPC RPC protocolBuffer

KunlunBase指导手册(四)从 Oracle 实时同步数据到 KunlunBase

KunlunBase昆仑数据库

国产数据库

KunlunBase对MySQL私有DML语法的支持

KunlunBase昆仑数据库

国产数据库

心寄开源,合规护航!2022 开放原子全球开源峰会开源合规分论坛即将开幕

kk-OSC

开源 开源峰会 开放原子全球开源峰会 开源合规

小数据量用户场景使用KunlunBase的价值

KunlunBase昆仑数据库

什么是“企业级”低代码?成为企业级低代码必须具备的5种能力

优秀

低代码 企业级低代码平台

数据也能进超市

天翼云开发者社区

云计算 大数据 云平台

2022数十位Java架构师汇总产出,最新25个技术栈“Java面经”

程序知音

Java 程序员 面试 后端 八股文

面试官:Linux操作系统里一个进程最多可以创建多少个线程?

Java全栈架构师

程序员 多线程 操作系统 计算机 java面试

KunlunBase指导手册(二)对等部署最佳实践

KunlunBase昆仑数据库

国产数据库

KunlunBase 读写分离方案

KunlunBase昆仑数据库

ORACLE进阶(十四)转义字符讲解

No Silver Bullet

oracle delete 转义字符 7月月更 TRUNCATE

腾讯一面:内存满了,会发生什么?

程序员小毕

程序员 腾讯 面试 程序人生 计算机

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