写点什么

.NET 自动探索式测试工具——Pex

  • 2008-07-20
  • 本文字数:642 字

    阅读完需:约 2 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

Pex 是微软研究院的一个白盒测试生成工具。不像我们平时在给定的方法中为每个执行路径手写独立测试,Pex 允许开发人员编写单独的参数化测试方法。这样 Pex 就能生成一套标准的单元测试,在目标方法里测试执行路径。Pex 一个指令一个指令地分析.NET 代码,解释代码执行时的动作,然后“以一种完全自动的方式,计算出那些能触发边角代码的相关测试输入。”

给定一个手写的参数化单元测试,Pex 完全自动地分析代码,来决定相关的测试输入。其结果就是生成一个有着高度代码覆盖的传统单元测试,另外,Pex 还会建议程序员如何去修复所发现的 Bug。

Pex 实际上并没有减少开发人员多少工作量,他们依然需要手写那些定义和覆盖了方法基本行为的单元测试,来确保 API 和函数符合必要用例和用户故事的需求。但是,Pex 可被用作一个附加的方法来确保

测试充分地覆盖这些实现的代码。在方法中识别不确定的行为和错误时,这个自动探索式测试工具尤其有用。

和其他大多数生成工具一样,Pex 在确定的环境下使用效果很好。单元测试驱动(TDD)的设计原则是保持方法简短和可测试,这个原则也让 Pex 生成的测试更为可读。在实现符合 TDD 的设计目标时,Pex 也是很不错的工具,比如如果 Pex 为某方法生成了许多复杂的测试,那么这个方法很有可能需要重构。在方法是以基础类型做参数,而不是自定义的对象时,Pex 的效果也不错。

需要提醒的是,Pex 目前还只是微软研究院的一个试验项目,不会像微软正式产品一样获得支持。不建议将 Pex 作为写单元测试的首要选择,但是它的自动测试生成能有效覆盖边缘的用例。

2008-07-20 21:021532

评论

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

KaiwuDB CTO 魏可伟:多模架构 —“化繁为简”加速器

KaiwuDB

数据库 AIOT KaiwuDB 多模架构

IoT 场景下 TDengine 与老牌时序数据库怎么选?看看这份TSBS报告

爱倒腾的程序员

数据库·

RisingWave 1.0 版本正式发布!

吴英骏

数据库 rust 云原生 数据架构 流处理

无代码落地进企业,轻流不断扩大交友圈

ToB行业头条

AIGC:新AI时代,推动数字人进化的引擎

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 7 月 PK 榜

错过直播?快收藏详实回顾!Get「研发效能管理」7 步实践指南与案例剖析

极狐GitLab

gitlab DevSecOps 效能管理 GDAI 蔚来案例

同城双中心 DR Auto-Sync 主中心意外故障恢复

TiDB 社区干货传送门

数据库架构设计 7.x 实践

CentOS7系统服务器密码忘记的解决办法?

百度搜索:蓝易云

云计算 Linux centos7 运维 云服务器

软件测试/测试开发丨Selenium 安装教程

测试人

Python 程序员 软件测试 selenium

2023年iOS App Store上架流程详解(上)

雪奈椰子

Nautilus Chain 更换全新测试网,主网即将在不久上线

大瞿科技

DevOps in China:15年来,DevOps在中国经历了什么?

DevOps和数字孪生

嵌入式DevOps

低代码技术:提高效率降低成本的全新选择

互联网工科生

软件开发 低代码 应用程序

开发者的秘密武器:人工智能与开发工具的完美结合

知者如C

2023最新发布:Java 面试突击大全 带你摸熟 20+ 互联网公司面试考点

架构师之道

编程 程序员 java面试

初窥低代码 | 社区征文

神木鼎

低代码 年中技术盘点

继长白山历史文化园三园一区后,鼎益丰再造龙狮谷新项目

Geek_2d6073

大咖直播专场 | 数据库集群方案简介

KaiwuDB

KaiwuDB 数据库集群方案介绍

一文读透,FreeSWITCH的originate命令解析及示例

快乐非自愿限量之名

教程 freesql

高效运营新纪元:智能化华为云Astro低代码重塑组装式交付

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

与 AI 同行,利用 ChatGLM 构建知识图谱

NebulaGraph

人工智能 知识图谱 LLM

官宣!菁英实习生计划启动,百度大模型团队诚邀你的加入

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

学到就是赚到!NodeJS 实战系列:个人开发者应该如何选购云服务

不在线第一只蜗牛

node.js 实战开发

当AGI遇上能源寡头,会碰撞出什么样的火花?

TE智库

特斯联

【分久必合】构建下一代前端组件 | 社区征文

小鑫同学

年中技术盘点

极限抵御DDoS攻击!高防主机守护您的网站安全!

一只扑棱蛾子

高防主机

智能合约编写高级篇(一)获取区块时间

BSN研习社

GitLab 入选 Forrester Wave™️ 集成软件交付平台,并获评唯一「领导者」!

极狐GitLab

领导力 gitlab Forrester Wave 领导者 创新能力

新增华为高阶智驾+大五座版本!全新问界M7工信部曝光

Geek_2d6073

Linux系统开启或关闭SELinux。

百度搜索:蓝易云

Linux 运维 Mac 云服务器 SELinux

IT安全运维管理系统哪个好?适合中小企业的哪款好?

行云管家

云计算 IT运维 云管理 安全运维

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