写点什么

Flex、AIR、AS3 Flex 拥有代码覆盖率工具

  • 2008-05-08
  • 本文字数:1256 字

    阅读完需:约 4 分钟

上个月, Allurent 的 Joe Berkovitz 宣布了 Flexcover 初始试验版的发布,Flexcover 是一个针对 Flex、AIR 和 AS3 的开源代码覆盖率工具套件。

参与测试驱动开发(TDD)过程的Java 开发人员利用代码覆盖率已经有一段时间了,以此来度量程序源码有多少进行了测试。但对Flex 来说,这种功能还不可用。

Java 使用的代码覆盖率工具包括 Clover EMMA Cobertura NoUnit 。Windows.Net 开发人员则使用 Ncover Cover for .Net PartCover

为了对 Flexcover 试验版有更多的了解,InfoQ 对 Berkovtz 进行了采访,Berkovtz 解释道:

Flexcover 包含 AS3 编译器的修改版本,该修改版本在 SWF 或 SWC 输出文件的代码中插入了额外的函数调用。运行时,这些函数调用把应用代码覆盖率的相关信息发送给一个单独的工具。修改后的编译器也生成一个单独的覆盖率元数据文件,该文件描述所有可接受的包、类、函数、代码块和代码行,以及与之关联的源码文件的名称。

Berkovitz 回顾了 Flexcover 的发展历史,说:

我认为测试是软件开发的一个基本方面,代码覆盖率则是衡量一个人测试质量的关键工具。代码覆盖率回答了一个更要的问题:“在测试时,我们的代码有多少被执行到了?”

对于其它语言,我都用代码覆盖率工具得到了很好的效果,但还没有 Flex 可用的工具,对此我感到很沮丧。有一天早晨我醒来,意识到由于 Flex 编译器已经开源,对其进行修改、给它产生的 SWF 字节码添加覆盖率测量功能会行得通。果不其然,这并不是很困难,因为我过去从事过编译器和代码生成器的工作。

据 Berkovitz 所说,Flexcover 的设计主要出于以下目的:

  • 实时获取和查看 AS3 应用程序的覆盖率信息
  • 容易、迅速地识别出低覆盖率区域
  • 保存覆盖率信息报告
  • 查看保存的覆盖率报告
  • 既能从自动测试、又能从手动测试收集覆盖率数据
  • 逐项进行分析

在开发 Flexcover 的过程中,Berkovitz 仔细地研究了用于其它语言的现存代码覆盖率工具。他特别提到:“我查看了大量 Java 的开源覆盖率工具,包括 Emma Covertura ,以及这些工具显示信息的方式。接着,我试着去超越它们,并添加了相关的覆盖率功能,所以你在测试应用的时候能根据覆盖率观察到源码修正。”

Berkovitz 表明 Flexcover 的结构由三部分组成:

  1. 一组用 Java 编写的 ActionScript 编译器的修改。结果是一组修改过的 Java 库,支持 mxmlc 和 compc,带有代码覆盖率的附加选项。
  2. 一个运行时 ActionScript 库,用于测试时收集应用中的数据并输出。
  3. 一个 AIR 应用,用来读取被测试应用输出的数据。

Berkovitz 并不是孤军奋战。Adobe 咨询公司的 Alex Uhlmann 也一直致力于一组关于代码覆盖率的想法,他将合作参与到 Flexcover 以后的版本中。Berkovitz 和 Uhlmann 目前正一起处理一些新的用户体验意见。

当被问及 Adobe 的参与情况时,Berkovitz 告诉 InfoQ 的读者:“我不能对 Adobe 进行的任何事情加以评论,但我知道他们对代码覆盖率很感兴趣,Flex 技术的团队成员也正在积极思考如何去支持它。他们对 Flexcover 的进展也大有帮助。我很感谢他们!”

查看英文原文: Flex, AIR and AS3 Flex Gain Code Coverage Utilities

2008-05-08 12:111501
用户头像

发布了 151 篇内容, 共 68.7 次阅读, 收获喜欢 18 次。

关注

评论

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

CWE 4.3:强化你的数据自我保护能力

华为云开发者联盟

网络安全 安全 数据保护 cwe gdpr

Python实用代码-无限级分类树状结构生成算法

穿甲兵

Python 算法

DDD分层架构最佳实践

Barry的异想世界

Spring Boot DDD 架构设计 领域驱动设计DDD

Materialize MySQL引擎:MySQL到Click House的高速公路

华为云开发者联盟

MySQL 数据 Clickhouse 存储 materialize

从Gartner 最新“客户之选”报告,看国内外RPA的差异化竞争

王吉伟频道

RPA SaaS 机器人流程自动化 Gartner

突破开源Redis的内存限制,存算分离的GaussDB到底有多能“装”?

华为云开发者联盟

redis 存储 华为云 GaussDB 存算分离

合约交易软件系统APP开发案例

系统开发

Apay矿机系统开发

v16629866266

Docker 容器健康检查

K8sCat

Docker Dockerfile HEALTHCHECK

17家国产数据库厂商的2020年度事件大盘点:项目签约与验收、新版本发布等

墨天轮

数据库 国产化

架构师week9 作业

Geek_xq

六步带你完成博流wifi模组对接华为云流程

华为云开发者联盟

网络 华为云 sdk 博流 wifi模组

JavaScript对象

hao-kuai

JavaScript 继承 原型 原型链

远程探视正在取代亲自探视

anyRTC开发者

ios android 音视频 WebRTC 直播

借朋友钱后,对方不还怎么办?

石云升

28天写作 借钱

云课堂开发实践:白板教程

拍乐云Pano

音视频 在线教育 RTC 互动白板 在线白板

全网最全!彻底弄透Java处理GMT/UTC日期时间

YourBatman

GMT UTC JSR310 TimeZone ZoneId

JavaScript函数

hao-kuai

JavaScript 闭包 Function 箭头函数

存币生息钱包APP系统开发|存币生息钱包软件开发

系统开发

突破存储瓶颈,打通高性能计算的“最后一公里“

高性能 存储

盘点12个Python数据可视化库,通吃任何领域

博文视点Broadview

创造高效能源管理方案,3D 可视化技术成为进展新思路

一只数据鲸鱼

物联网 数据可视化 3D可视化 绿色能源 智慧能源

Soul 源码阅读 01|数据同步

哼干嘛

Java Soul网关

响应号召,开始14天的居家隔离 | 视频号 28 天 (14)

赵新龙

28天写作

春节无法线下社交聚会,来线上“一起X”共享体验

ZEGO即构

数据库周刊56丨17家数据库厂商2020大事件盘点;第十届PG中国技术大会圆满举办;pg wal目录膨胀异常分析;Oracle RAC等待事件总结;云和恩墨技术通讯2020年刊特辑……

墨天轮

MySQL 数据库 oracle postgre

【小菜学网络】交换机与MAC地址学习

fasionchan

网络编程 网络协议 TCP/IP 交换机

SpringCloud 从入门到精通14---OpenFeign服务调用

Felix

架构师week9 总结

Geek_xq

一个不兼容的 JS 方法,让你的网站发生崩溃

老魚

JavaScript 网站 程序猿 移动端

2021年国产数据库名录和产品信息一览

墨天轮

数据库 大数据 程序员 运维 SQL优化

Flex、AIR、AS3 Flex拥有代码覆盖率工具_Java_Moxie Zhang_InfoQ精选文章