写点什么

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

评论

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

探索GaussDB(DWS)的过程化SQL语言能力

华为云开发者联盟

数据库 GaussDB(DWS) SQL语言 PLSQL语言 索引表达式

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

iProcess

架构实战营

python 高级函数补充

若尘

Python编程 高级函数 5月日更

Spring cloud 之熔断机制

Damon

5月日更 熔灾

聊聊dubbo协议2

捉虫大师

dubbo 协议

网络攻防学习笔记 Day24

穿过生命散发芬芳

5月日更 网络攻防

架构实战营 模块四作业

夏日

架构实战营

云计算下半场:打法已变,谁主沉浮

ToB行业头条

云计算

身份认证

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

架构实战营 模块四作业

Dylan

架构实战营

架构实战营模块四作业

冷大大

作业 架构实战营 模块四

设计千万级学生管理系统的考试试卷存储方案

thewangzl

集成学习案例二 (蒸汽量预测)

容光

Rust从0到1-错误处理-panic!还是Result

rust 错误处理 result panic!

【Flutter 专题】122 图解自定义半遮挡头像 SeriesCircleProfile & CircleAvatar

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

重命名表,应该怎么做?

Simon

MySQL

mongodb 修改字段类型

xiaolu

mongodb

千万级学生管理系统的考试试卷存储方案

王瑞强

架构实战营

架构师训练营模块4作业

歲月鎏金😈

第四课作业

杰语

华仔架构训练营作业(模块四)

不听不听王八念晶

“三次握手,四次挥手”这么讲,保证你忘不了

三分恶

计算机网络

架构实战营模块 4 作业

梦寻解语花

架构实战营

思考题太难了

Nydia

架构实战营 模块4 作业

CR

架构营作业-模块4

大师兄

腾讯云CLS日志服务初体验

三掌柜

5月日更

懂得取舍才是缓存设计的真谛

万俊峰Kevin

缓存 cache 分布式缓存 Go 语言

如何实现一个简易版的 Spring - 如何实现 AOP(上)

mghio

Java 技术 后端 基础知识 spring aop

NumPy之:ndarray中的函数

程序那些事

Python Numpy

《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取

小傅哥

Java spring 设计模式 小傅哥 抽象类

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