上个月,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的结构由三部分组成:
一组用Java编写的ActionScript编译器的修改。结果是一组修改过的Java库,支持mxmlc和compc,带有代码覆盖率的附加选项。
一个运行时ActionScript库,用于测试时收集应用中的数据并输出。
一个AIR应用,用来读取被测试应用输出的数据。
Berkovitz并不是孤军奋战。Adobe咨询公司的Alex Uhlmann也一直致力于一组关于代码覆盖率的想法,他将合作参与到Flexcover以后的版本中。Berkovitz和Uhlmann目前正一起处理一些新的用户体验意见。
当被问及Adobe的参与情况时,Berkovitz告诉InfoQ的读者:“我不能对Adobe进行的任何事情加以评论,但我知道他们对代码覆盖率很感兴趣,Flex技术的团队成员也正在积极思考如何去支持它。他们对Flexcover的进展也大有帮助。我很感谢他们!”
分享到:
相关推荐
文档会介绍如何使用Flex Builder的调试工具定位并解决问题,以及优化代码和资源以提高运行效率。 总的来说,“Flex Air中文官方帮助文档”是开发者掌握Flex Air技术的宝典,从入门到精通,涵盖了所有必要的知识点,...
FlexAir网页截图工具是一款专为用户设计的高效网页捕获软件,它允许用户方便快捷地截取并保存网页内容。这款工具集成了多种实用功能,旨在优化网页截图体验,提高工作效率。 在使用FlexAir网页截图工具时,首先需要...
Flex Air 是Adobe开发的一款用于构建桌面应用程序的框架,它基于ActionScript 3.0和Flash Player,使得开发者能够使用熟悉的Flex技术创建桌面应用。在Flex Air中,有时我们需要将数据导出为Excel格式,以便用户可以...
总之,"Flex Air开发中文教程"是一本全面覆盖Flex和AIR开发的宝典,适合对富媒体软件开发感兴趣的初学者和有一定经验的开发者。通过阅读此书,你将能够熟练掌握使用Flex构建跨平台、桌面级的富互联网应用的技巧。
在Flex AS3应用程序开发中,遮罩(Masking)是一种...总的来说,遮罩是Flex AS3中一个强大的工具,能够提升UI设计的灵活性和视觉吸引力。通过熟练掌握遮罩技术,开发者可以创建出更加丰富和动态的RIA和Adobe AIR应用。
《Flex Air 本地文件管理器:打造Windows系统式的文件操作体验》 在现代软件开发领域,Adobe Flex Air技术提供...无论是对于普通用户还是专业开发者,Flex Air都是一个强大且灵活的工具,推动了桌面应用的创新与发展。
Flex Air调用C代码是跨平台开发中的一个重要技术,它允许使用ActionScript 3的Flex应用程序与本地系统资源进行交互,比如C/C++编写的动态链接库(DLLs)或共享对象(SOs)。这个技术主要依赖于Adobe AIR的Native ...
这个“看图代码示例”是利用 Flex、ActionScript 3(AS3)以及 Adobe Integrated Runtime(AIR)来实现的一个图像查看器应用。下面我们将详细探讨这些技术及其在示例中的应用。 **Flex** Flex 是一个开源框架,主要...
3. **Flex Compiler**:在Air打包过程中,Flex Compiler将MXML和ActionScript代码转换为SWF文件。这个SWF文件包含了应用的所有组件和逻辑,可以被AIR runtime执行。 4. **An AIR Descriptor File (app.xml)**:这是...
在Flex 4.6与Adobe Integrated Runtime (AIR)的开发中,读写文本文件是一项基本操作,对于初学者来说尤其重要。本教程将详细介绍如何在Flex应用中实现这一功能,以便用户可以对本地的文本文件进行读取、修改以及保存...
通常,这些工具会包含代码生成、预览和调试功能,以便于AS3与Flex组件之间的交互。 4. **最佳实践**: - 尽量将业务逻辑和数据处理放在AS3类中,保持MXML文件简洁,只关注UI布局。 - 使用事件驱动编程来解耦组件...
flex air 单机版俄罗斯方块 小游戏 flexbuilder项目文件
3. **Flex SDK**:Flex Software Development Kit (SDK) 是一个免费的开发工具集合,包含编译器、调试器和组件库,用于创建Flex应用。开发者可以使用MXML和ActionScript来编写代码。 4. **MXML**:MXML是一种声明式...
Flex Air音乐播放器源码是基于Adobe Flex Builder 3开发的一款应用程序,主要使用ActionScript编程语言,这使得它能够在Adobe AIR(Adobe Integrated Runtime)平台上运行。Adobe Flex是用于构建富互联网应用程序...
Flex 3是Adobe开发的一个开放源代码框架,用于构建富互联网应用程序(RIA),它使用ActionScript 3(AS3)编程语言和MXML标记语言。这个框架为开发者提供了丰富的组件库,使得创建交互式、高性能的Web应用变得更加...
这个“Flex.3速记表 AS3.Flex.AIR最新版(pdf)”是一个针对Flex 3开发者的重要参考资料,它涵盖了ActionScript 3(AS3)、Flex框架以及Adobe Integrated Runtime(AIR)的基础知识,帮助开发者快速查找和记忆关键概念...
3. **自动更新机制**:在Flex AIR应用中,自动更新功能允许程序在后台检测是否有新的版本可用。这通常通过检查服务器上的更新文件或者版本信息来实现。在本例中,关键在于比较`<version>v4</version>`中的版本号,...
《flash+flex+air移动开发入门经典——适用于android、ios和blackberry》 第1章 flash、flex和air简介 1 1.1 adobe flash 1 1.2 actionscript 3.0 2 1.2.1 ecmascript 2 1.2.2 关键概念 3 1.3 flex框架 11 ...
是一个linux环境下运行的flex air例子,有源码.