写点什么

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

评论

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

图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制

NebulaGraph

图数据库 LDBC

一文让你知道,云计算环境下云管平台的重要性

行云管家

云计算 云服务 云管平台 云资源

Python 初学者容易踩的 5 个坑

不在线第一只蜗牛

Java Python 开发语言

详细教程:如何制作产品介绍二维码(一)

草料二维码

二维码 草料二维码 产品宣传 产品介绍 品牌宣传

mac office 365 商业专业版破解 含Office 365激活工具 兼容M2/M3

Rose

微软 Office

API 性能测试教程:让你的应用运行更加顺畅

Apifox

测试 性能测试 接口测试 测试工具 API 性能测试

ToDesk专属功能全解析:多屏操作与高效协作并重

小喵子

远程办公 远程协作 远程控制 远程桌面 多屏

实例带你了解GaussDB数据库的LOCK TABLE

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

为多渠道销售集成商品API接口

Noah

Databend 开源周报第 135 期

Databend

Python中的代码优化和性能优化

技术冰糖葫芦

API 接口 API 文档 API 策略

上云?!下云?!这难倒了孙悟空!

白洞计划

云计算

KaiwuDB 分布式系统 Range Split & Merge 原理详解

KaiwuDB

数据库 数据分区

新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析

Apache Flink

印刷行业实施MES管理系统有哪些重要的意义

万界星空科技

工业互联网 制造业 mes 印刷行业 万界星空科技

充电桩组装行业生产管理MES系统解决方案

万界星空科技

制造业 生产管理系统 mes 充电桩 汽车充电桩

RDS for MariaDB“智能DBA助手”,让运维效率嗖嗖地!

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

Downie 4 for Mac(最好用的视频下载软件) 4.7.2直装版

Rose

魔法门之英雄无敌3下载,死亡阴影 for Mac中文版 兼容m1

Rose

游戏

Solidity案例详解(五)服务评价合约

BSN研习社

区块链 Solidity

网络安全AI智能体公司「云起无垠」获数千万元天使+轮融资,致力于大模型与网络安全深度融合的技术研究

云起无垠

专业且功能齐全的pdf编辑软件 acrobat pro dc 2023中文版 mac/win

Rose

机器人装行业MES/低代码平台免费使用/低代码MES

万界星空科技

低代码 低代码平台 mes 万界星空科技 机器人组装

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