写点什么

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

评论

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

移动端1px解决方案

CRMEB

GitHub 上优质项目整理,推荐一个GitHub项目

android 程序员 移动开发

GitHub标星3,Android面试

android 程序员 移动开发

Glide源码学习五:回调与监听,Android快速转战Kotlin教程

android 程序员 移动开发

Framework掌握不熟?字节跳动大牛带你系统化学习,小白以及计算机类学生的福音

android 程序员 移动开发

GitHub标星3-5K+【Android校招面试指南,flutter中文本框的长度

android 程序员 移动开发

恒源云(GPUSHARE)_云GPU服务器如何使用Tmux?

恒源云

深度学习

GitHub标星9K的Google官方MVP+Rxjava项目详解,靠这份资料我从6K变成了40K

android 程序员 移动开发

FrameWork内核解析之PackageMS启动(一)下篇,android开发电子书

android 程序员 移动开发

GitHub标星3(1),腾讯Android开发面试记录

android 程序员 移动开发

HashMap 源码解析二、put 相关函数,android原生开发教程

android 程序员 移动开发

Fragment极度懒加载-+-Layout子线程预加载,奇妙的APP启动速度优化思路

android 程序员 移动开发

Framework学习(七)AMS家族,kotlin开发思维

android 程序员 移动开发

Fresco实践总结,阿里P7大牛亲自教你

android 程序员 移动开发

GDP大跳水,“溢价阶层,kotlinandroid开发教程

android 程序员 移动开发

Google禁止Android-11-自定义-Toast-了?,android开发实战数据

android 程序员 移动开发

Gson 解析 Json 容错才是关键,举几个常用的实例!,android开发视频百度网盘

android 程序员 移动开发

Fragment中调用startActivityForResult的那些坑,安卓面试题目2019

android 程序员 移动开发

Framework学习(十一)WindowManager体系,学习指南

android 程序员 移动开发

Framework学习(十)Content Provider启动过程,android快速开发

android 程序员 移动开发

Git各指令的本质,真是通俗易懂啊,h5移动端开发进行定位

android 程序员 移动开发

Hook 技术初探,【2021Android最新学习路线

android 程序员 移动开发

模块二

侠客行

架构实战营 「架构实战营」

如何实现高效运维?来谈谈性能优化那些事(含直播回顾 Q&A)

墨天轮

oracle 性能优化

🍃【Spring专题】「实战系列」重新回顾一下Spring框架的异步执行调用的原理和实战

码界西柚

spring 异步编程 异步调度 11月日更

HTTPS详解,谈谈我认为的高级Android开发到底应该是怎样的

android 程序员 移动开发

Gbox开源:比RN和WebView更轻的高性能动态化业务容器,解决首页动态化的痛点

android 程序员 移动开发

Kubernetes + 焱融 SaaS 数据服务平台,个性化需求支持就没输过

焱融科技

云计算 分布式 高性能 公有云 文件存储

Gradle多维度使用,h5开发移动端

android 程序员 移动开发

Groovy脚本基础全攻略,重磅

android 程序员 移动开发

Handler源码分析之二 异步消息的处理,2021金三银四面试季

android 程序员 移动开发

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