写点什么

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

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

关注

评论

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

AI重塑千行百业 华为云发布盘古大模型3.0和昇腾AI云服务

华为云开发者联盟

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

C++实现读写ini配置文件

芯动大师

阿里云通义大模型家族迎来新成员,通义万相已开启定向邀测~

新云力量

AI 2023人工智能大会 科技改变生活

软件测试 | 性能分析的基本原则

测吧(北京)科技有限公司

测试

软件测试 | Analysis使用基础

测吧(北京)科技有限公司

测试

给大模型持久记忆!GitHub 2万星向量数据库云服务升级,国内云产品下周上线

Zilliz

云服务 Zilliz 向量数据库 zillizcloud

跨功能需求(CFR)/ 非功能性需求(NFR)的目标设定

码猿外

技术管理 非功能性需求 跨功能需求

阿里云AI绘画创作大模型通义万相亮相,已开启定向邀测!

新云力量

AI 2023人工智能大会 科技改变生活

QEMU之CPU虚拟化(一):CPU虚拟化介绍

Linux内核拾遗

虚拟化 qemu kvm

华为云Astro出品《低代码开发者101问》电子书上线

云计算 低代码 华为云

数智之潮下的移动生态: AI与低代码平台的完美交融!

不在线第一只蜗牛

移动应用 低代码 数智化 AI赋能

低代码开发,改变数字化游戏规则

伤感汤姆布利柏

华为云CodeArts Build-云端化的编译构建平台

华为云 华为开发者大会2023

OpsGPT 智能运维大语言模型业界首发

乘云数字DataBuff

APM 可观测性 AIOPS Dynatrace Datadog

做大模型不要沉迷有趣,要解决企业问题

新云力量

AI 2023人工智能大会 科技改变生活

机器学习洞察 | 降本增效,无服务器推理是怎么做到的?

亚马逊云科技 (Amazon Web Services)

机器学习

测试技术的重要性与应用:现状、方法和未来展望

天翼云开发者社区

软件测试 数据测试

软件测试 | 如何看Analysis分析图

测吧(北京)科技有限公司

测试

🎉号外号外!OpenTiny 将在HDC华为开发者大会正式发布!

Kagol

开源 前端 OpenTiny UI组件库

一文囊括Ceph所有利器(工具)

hs_wu

云计算 分布式存储 Ceph

GeaFlow图计算快速上手之PageRank算法

TuGraphAnalytics

PageRank 图算法 图计算 图论 GeaFlow

2023-07-07:给出两个字符串 str1 和 str2。 返回同时以 str1 和 str2 作为子序列的最短字符串。 如果答案不止一个,则可以返回满足条件的任意一个答案。 输入:str1 =

福大大架构师每日一题

Go 算法 rust 福大大架构师每日一题

代码随想录Day10 - 栈与队列(上)

jjn0703

天谋科技物联网原生时序数据库管理系统 IoTDB 获“可信数据库”双份权威认可!

Apache IoTDB

IoTDB Apache IoTDB 可信数据库大会

千万级规模微服务稳定性技术揭秘:隔离策略

中原银行

微服务 云原生 稳定性治理

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