写点什么

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:111150
用户头像

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

关注

评论

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

Apache IoTDB v1.2.0/v1.2.1 发布|增加流处理框架、动态模板等新功能

Apache IoTDB

ByConity 0.2.0 版本发布

字节跳动开源

数据库 大数据 开源 开源社区 数仓

私有化部署企业即时通讯(企业im)除了钉钉还有这些

BeeWorks

WorkPlus局域网聊天软件,打造高效沟通与协作的完美选择

BeeWorks

低代码平台:解决开发中的重复“造轮子”

树上有只程序猿

低代码 造轮子

深势科技基于 Serverless 容器为科研人员打造高效的开发平台

阿里巴巴云原生

阿里云 Serverless Kubernetes 容器 云原生

国内低代码开发平台有哪些?低代码真的好用吗?

高端章鱼哥

低代码 低代码开发平台 JNPF

加入华为云AIGC实战营,一起探索AI前沿技术!

科技热闻

BIM对电脑配置要求高 云电脑了解一下

青椒云云电脑

云电脑

私有云公有云二选一?混合云了解一下

青椒云云电脑

公有云 私有云 云桌面

Text2Cypher:大语言模型驱动的图查询生成

NebulaGraph

LLM

云桌面如何助力校园云办公 老师这么说

青椒云云电脑

云桌面

科技快讯丨浪潮海岳PaaS平台重磅升级,筑牢企业数字化创新底座

inBuilder低代码平台

新老用户看过来~最实用的 Milvus 迁移手册来啦!

Zilliz

数据迁移 Milvus Zilliz 向量数据库

Keka for Mac(压缩解压工具) v1.3.4中文激活版

mac

苹果mac Windows软件 Keka 文件压缩工具

企业用户需要什么样的私有云

青椒云云电脑

云桌面

英特尔FPGA系列再扩容,打造完美产品矩阵

E科讯

便捷、高并发、高可用 揭秘搭建校园云平台的理由

青椒云云电脑

云平台

融云受邀参加 Web3.0 顶级峰会「Meta Era Summit 2023」

融云 RongCloud

科技 融云 DAO Web3.0 Meta Era Summit

私有云的优缺点是什么?与公有云的区别

青椒云云电脑

云桌面

WorkPlus打造企业移动门户,实现高效协作与便捷访问

BeeWorks

数字矿山:智慧煤矿可视化2D组态系统

2D3D前端可视化开发

组态软件 智慧矿山 2D组态 智慧煤矿 智慧矿井

Arrays.asList():使用指南

越长大越悲伤

Java

哪些类型的企业应该选择混合云

青椒云云电脑

云桌面 私有云云桌面 公有云云桌面

几分钟搞定Java程序CPU飙升场景

HelloGeek

Java Docker 容器 解决方案

征服数据宇宙,新华三存储护卫队早有准备?

脑极体

存储

低代码开发平台的优点和缺点

互联网工科生

低代码 可视化开发 JNPF

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