写点什么

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

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

关注

评论

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

Java更改 PDF 页面大小

在下毛毛雨

DevSecOps | 极狐GitLab 动态应用程序安全测试(DAST)使用指南

极狐GitLab

DevOps gitlab 运维 测试 CI/CD

万物皆可集成系列:低代码释放用友U8+深度价值(3)— 数据融合应用

葡萄城技术团队

李小龙的话道出了移动端“小程序化”的核心——似水无形

FinClip

英特尔CEO帕特·基辛格:以先进计算和封装创新,满足数字时代算力需求

科技之家

追一科技携手华为云助力中小企业数字化,Face虚拟数字人亮相828企业节

sofiya

喜报 | 博睿数据两项发明专利获得国家知识产权局授权,累计发明专利11项

博睿数据

APM 可观测性 博睿数据 智能运维AIOps 发明专利

开发制作数字藏品app原理

开源直播系统源码

NFT 数字藏品 数字藏品开发 数字藏品系统

Kyligence 助力重庆银行获 IDC FinTech 突破奖认可

Kyligence

数据分析 智能多维数据库

探秘苹果、微软、谷歌操作系统视觉设计,原来…

鼎道智联

ios windows UI 操作系统 视觉交互

Python自学笔记6-列表有哪些常用操作

和牛

Python 测试 8月月更

如何用文字让 ta 动心?

图灵教育

4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?

腾源会

开源 腾源会 开源摘星计划

最新首发!这份 Github 星标 8K 的 Redis 高级笔记真是yyds

了不起的程序猿

Java redis JAVA开发 java程序员

Logstash

平凡人生

Flink+ice 实现可视化规则编排与配置(Demo)

waitmoon

flink 规则引擎使用 规则引擎 CEP 编排系统

InfoWorld文章丨将数据编排技术用于AI模型训练

Alluxio

人工智能 机器学习 数据平台 Alluxio 8月月更

招行架构师徐佳航:金融云原生与开源标准的共同生长

阿里巴巴云原生

阿里云 开源 容器 云原生 KubeVela

浅聊一下邮件通知的批量推送

为自己带盐

dotnetcore 8月月更 邮件发送

C#/VB.NET:删除PDF文档中的页面

Geek_249eec

C# VB.NET 删除PDF页面

英特尔联手产业伙伴打造绿色、低碳、智能数据中心

科技之家

“中国建筑业竞争力百强”中化二建如何做知识管理?

sofiya

如果重新学计算机

价投小邱

Linux 计算机网络 操作系统

「Java」本地文件上传下载预览

价投小邱

文件 下载 文件上传 #java

如何用文字让 ta 动心?

图灵社区

一文搞懂 SAE 日志采集架构

阿里巴巴云原生

阿里云 Serverless 云原生

以PostgreSql为例,说明生产级别数据库安装要考虑哪些问题?

字母哥哥

数据库 postgresql Linux

商派oneX新零售系统上架华为云云商店,首次参与“828企业节”

神奇视野

世界人工智能大会阿里巴巴专场论坛《数字时代的技术责任》来了!

阿里技术

【数据结构实践】手把手带你简单实现Python自定义栈

迷彩

数据结构 算法 堆栈 8月月更

“小程序化”如何助力智慧产业园区建设破题?

FinClip

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