`

[转] Flex框架下的RIA开发现场--第6回 Flex测试和质量改善的5个工具

    博客分类:
  • FLEX
阅读更多
http://bbs.9ria.com/thread-76622-1-1.html

  一直以来,在Flex应用程序开发中主要是采用手动测试,而不是利用工具做自动测试。原因是没有这样的工具。 因此,即使想实施ActionScript类的单体测试或是强制编码规范等,却因Flex开发工具上没有这个环境而只得作罢。
    在常用于Flex应用程序服务端开发的Java中,积累着各种各样的测试工具。在Eclipse开发工具中原本就整合了单体测试用的JUnit和代码格式化等工具。开发者在开发阶段能够实施多种改善质量的策略。
    打破这种状况的是,最新的Flex开发工具Flash Builder 4。从版本4开始在工具中集成了最新的单体测试工具FlexUnit4。在本连载的第2回《让Flex开发更轻松的FB4的11个功能》中叶介绍了FlexUnit。另外,Flash Builder还具备了性能分析功能。
    更值得一提的是,在Flash Builder 4发布前后,还有一个测试工具也发布了。那就是HP QuickTest Professional(QTP)。比起以往基于WinForms、HTML网页应用程序等技术的自动结合测试来说,QTP可谓是个终极武器,它支持Flex。下面会介绍这个QTP。
    本文将向大家介绍在Flex开发,特别是大规模业务应用程序开发中,对测试和质量改善非常有用的5个必备工具。并简单说明一下它们的使用方法。 (按以下顺序说明)
    1. 单体测试工具「FlexUnit」
    2. 遵循编码规范「Flex Formatter」
    3. 静态分析代码「FlexPMD」
    4. 自动执行基于用例的测试「QTP」
    5. Flash Builder的の「性能分析」 功能

【1】单体测试工具「FlexUnit」

    首先登场的是动态单体测试工具FlexUnit。因为是动态的,所以能用于测试运行中的ActionScript类。



FlexUnit via kwout


    基本上Flash Builder已经内置了FlexUnit,不需要从别处下载。

□ 特点
Flex中使用的基于ActionScript 3的类的单体测试工具
继承了Java的JUnit思想,从建立测试用例到自由使用工具,几乎一模一样
Test Runner中熟悉的绿色状态条
Flash Builder内置




图1 测试用例的建立和运行




图2 FlexUnit结果视图中熟悉的绿色状态条

□单体测试的步骤

    类单体测试的步骤如下,和Java完全相同。
建立测试用的Flex工程
建立测试用例
建立测试套件
测试套件:测试用例的集合
运行测试
□ 测试类的例子
    在Flex工程中,以与待测类1对1的形式建立测试用例。由于不需要继承TestCase等特定类,因此能方便地建立测试用例。测试用例的类名如下:
テストされるクラス:jp.atmarkit.sample.HelloWorld.as
テストケースクラス:jp.atmarkit.sample.HelloWorldTest.as

    在建立测试用例方面,还能沿用以前做JUnit单体测试方面的知识。
    下面是一个简单的测试方法的例子。这里对自己编写的HelloUtil做1+2的加法测试。
/**
* 测试用例01:1+2
*/
[Test]
public function testAdd01():void {
// 准备测试用例和预期值
a = 1;
b = 2;
expected = 3;
// 运行测试用例
actual = HelloUtil.add(a, b)
// 断言
assertEquals(expected, actual);
}
复制代码


    单体测试类的方法可任意取名,不过建议以test开头简单易懂为好。在测试方法上打上[Test]的元数据标签,使它成为测试对象。
    接下来,可以同样方便地建立包含测试用例类的测试套件。本例代码如下:
package jp.bizria.flex4.flexunit4.hello {

import jp.bizria.flex4.flexunit4.hello.HelloUtilTest;

/**
* HelloUtil测试套件。
*/
[Suite]
[RunWith("org.flexunit.runners.Suite")]
public class HelloUtilTestSuite {
//--------------------------------------
// Test Cases
//--------------------------------------

public var test1:HelloUtilTest;
}
}
复制代码


    编写测试套件十分简单,只要在这个类中读入待测的测试用例类就OK了。如上面的代码中,给测试用例类取个简单易懂的变量名,就能对它进行控制了不是吗?
    剩下的就只需在测试套件上右击鼠标选择运行就行了。
□ 注意点

    使用FlexUnit时要注意的是,在测试类库工程时,不能直接在类库工程里面建立测试用例和测试套件类。必须要建立Flex工程,然后在其中建立测试类和测试套件类。
    Flash Builder会在测试套件运行时,自动生成并运行测试用的应用程序。

【2】遵循编码规范「Flex Formatter」
    Flex Formatter用来格式化ActionScript和MXML文件,是遵循编码规范用的工具。




Flex Formatter | Download Flex Formatter software for free at SourceForge.net via kwout

    在大规模项目中,交付符合编码规范格式的代码是理所当然的事情。但是在先前的Flex应用程序开发中,即使建立了适用于Flex的编码规范,也只能通过肉眼来进行代码审查。
    由此,演变成了完全不做严格的代码审查,不遵守编码规范,开发人员之间的代码格式变得参差不齐。
    而Flex Formatter让这些格式化代码成为可能。它是在SourceForge.net上发布的插件工具。将它安装在Flash Builder上就可以方便地进行代码格式化。
□ 特点
通过丰富的设置实现超详细的格式化策略
通过快捷方式([Ctrl]+[Shift]+[F])格式化(和Eclipse中Java格式化一样)
通过提高代码可读性带来生产率的提高

□ 格式化的设定
    下图是格式化设定界面。



图3 Flex Formatter的设定界面

具体设定类别如下:
General(一般)
ActionScript
Blank lines/spaces(空行、空格)
Newlines/wrapping(换行)
Tweaks(微调)
AS Rearranging(ActionScript重新排版)
Modifiers(修饰符)
Elements(元素)
Span/Headers(代码内分段)
Copyright
MXML

    各类别都有详尽的设定,根据需要灵活应用吧。
【3】静态分析代码「FlexPMD」
    FlexPMD是静态分析代码的工具,它静态地检查代码本身的质量。在Java领域,以FindBugs和PMD最为有名。
    FlexPMD在提高代码质量上效果显著。通过使用FlexPMD,开发者本人、或其他开发者、甚至是其他公司的质量管理者也能方便地进行代码检查。在收到交付的代码时,也能进行检查。
□ 特点
全部82种规则实现彻底检查
可发现潜在Bug
可发现不推荐的编码方式
可发现可能影响性能的代码
可发现性能低下的代码
可通过Ant运行

    不仅能检查编码规范和发现潜在的Bug,也能在一定程度上查出可能影响性能的代码。

□ 导入方法
 下面介绍一下FlexPMD工具的导入步骤:
从更新站点安装插件
FlexPMD工具的下载(JAR文件)
FlexPMD的设定
注册PMD和CPD的command-line-1.0.jar
路径中不能有半角空格
WorkSpace中不能有半角空格
□ 使用方法
    导入FlexPMD后,从以下站点下载FlexPMD用的配置文件。



图4 FlexPMD设定站点

    在上面的站点,可设置优先级(Error、Warning、Info),也可设置“忽略设置”。而且可导出XML格式的配置文件,因此也可以用文本编辑器修改默认的配置文件。另外,错误消息默认是英语的,也可通过修改配置文件修改成其他语言。
    在包资源管理器中,右击项目,选择“Run FlexPMD”便能运行FlexPMD了。在FlexPMD视图中会显示检查到的错误信息。



图5 FlexPMD的运行

 下图为FlexPMD的运行情况。



图 6 FlexPMD(结果)视图

    通过查看这个运行结果不难发现FlexPMD的特点之一,即在FlexPMD配置中设定了“违反规则则报Error错误”的时候,会出现红色的Error警告,表明应用程序不能运行。这也意味着不修正这个警告,程序便不能进行测试。由此可见,通过FlexPMD达到了让开发者强制进行静态分析的要求。

□ 注意点
    基本上若从项目开始阶段便导入FlexPMD,由于警告数量不多,开发者可以从容应付。但若从收尾阶段导入,则需要对所有现存的代码做静态分析,会出现大量的警告,这点需要注意。

【4】自动执行基于用例的测试「QTP」
   
    基于用例动态地测试应用程序的实际行为是测试阶段最重要的任务。QTP就是这么一个能自动执行基于用例测试的工具。



日本HP HP Software HP QuickTest Professional 10.0 software via kwout


 “用例测试的自动化”是其特点之一。在测试中最费时费力的就是用例测试。对于应用程序来说,不管服务端和客户端进行了多大程度的单体测试和静态测试,页面之间不能正确转移就是毫无意义的。QTP能让用例测试自动化。



图7 QTP的运行界面

□ 注意点
    实际上QTP在Flex2时便支持了Flex的自动化测试,但却未受到注意。其中最大的原因是QTP的License费用。但若考虑到大规模项目的测试工时,就并非那么高价了。
     虽有FlexMonkey等免费用例测试工具,但真正要用于基干业务应用程序开发项目等时,在功能上稍显不足。在实际中几乎不怎么使用它们。
    在使用QTP时需要做些准备工作。在开发自定义组件时,需要做QTP对应。这点很重要,有必要在项目计划阶段就将开发工时增加10%~20%。当然,开发工时虽然增加了,测试工时却获得了大幅消减,这是使用QTP的好处。
 下面是使用QTP测试Flex时,非常有参考价值的URL:
使用QuickTest Professional测试ADOBE FLEX 4应用程序
Flex 4测试自动化插件

    在开发Flex时,请务必参考Adobe公司提供的开发指南。(由于非常重要,这里再次强调)
□ 使用方法
    一旦完成自定义组件的QTP对应之后,就能非常简单的用QTP做自动化测试了。
启动QTP,点击录制按钮。
像往常一样,使用鼠标键盘操作应用程序
结束一个用例后,点击QTP的结束按钮
根据需要在QTP上添加检查点
修改测试用例以检查画面上的值等

    由此,以后只要运行所建立的脚本,就能随心所欲地进行多遍用例测试(回归测试)了。


【5】Flash Builder的「性能分析」功能

 Flash Builder具有性能分析功能。可以对Flex应用程序进行性能和内存泄露检查。



内存使用量视图

    请注意只有Premium Edition版本的Flash Builder才具有性能分析功能。
  • 大小: 16 KB
  • 大小: 54.9 KB
  • 大小: 19.2 KB
  • 大小: 25.8 KB
  • 大小: 28.3 KB
  • 大小: 35.8 KB
  • 大小: 50.8 KB
  • 大小: 26.3 KB
  • 大小: 33.5 KB
  • 大小: 51 KB
  • 大小: 21.2 KB
分享到:
评论

相关推荐

    [转] [Flash/Flex] Flex框架下的RIA开发现场--第3回 Adobe AIR 2的15项新功能

    Flex框架是Adobe开发的一种用于构建富互联网应用(RIA)的开源开发工具,它基于ActionScript 3编程语言和Flex SDK。在RIA开发领域,Flex以其强大的组件库、数据绑定和MXML标记语言著称,使得开发者能够创建具有交互...

    flex框架 JAVA-FLEX

    Flex框架是一种基于Adobe Flash Player和Adobe AIR运行时的开源应用程序框架,主要应用于创建富互联网应用程序(Rich Internet Applications,简称RIA)。在Java-FLEX的结合中,Flex提供了前端用户界面的构建能力,...

    flex3ria开发

    在Flex3ria开发中,开发者可以利用Flex SDK,这是一个包含编译器和库的工具包,用于创建和部署跨平台的Flash内容。Flex Builder,现在被称为Flash Builder,是一个集成开发环境(IDE),它为Flex开发提供了便利,...

    Flex第一步--基于ActionScript 3.0的Flex 2应用开发 第2、 6、 13章

    第六章:Flex组件和MXML Flex提供了一系列预先构建的用户界面组件,如Button、TextInput、ComboBox等,这些组件大大简化了UI开发。MXML是一种声明式语言,可以用来布局组件和绑定数据。在这一章,我们将学习如何创建...

    Flex3.0RIA开发详解电子教程6

    Flex3.0是Adobe公司推出的一种富互联网应用(Rich Internet Application, RIA)开发框架,它基于ActionScript编程语言和MXML标记语言,为开发者提供了构建动态、交互性丰富的Web应用程序的强大工具。本教程“Flex3.0...

    Flex3.0RIA开发详解电子教程5

    Flex3.0是一款由Adobe公司推出的富互联网应用(RIA)开发框架,主要用于构建具有高度交互性和动态用户体验的Web应用程序。RIA技术旨在提供媲美桌面应用的用户体验,通过丰富的图形、动画和数据集成功能,使Web应用...

    Flex3学习电子书--RIA开发详解与精深实践+AIR Adobe 新手培训教材

    Flex3是Adobe公司推出的一种富互联网应用程序(Rich Internet Application,简称RIA)开发框架,它基于ActionScript编程语言和MXML标记语言,为开发者提供了构建交互性强、视觉效果丰富的Web应用的强大工具。...

    Flex3.0RIA开发详解电子教程14

    Flex3.0是Adobe公司推出的一种富互联网应用(RIA,Rich Internet Application)开发框架,它基于ActionScript3.0和MXML,为开发者提供了构建交互性强、视觉效果丰富的Web应用程序的强大工具。本教程“Flex3.0 RIA...

    跟我StepByStep学FLEX教程------王一松.pdf

    《跟我StepByStep学FLEX教程》是由王一松编写的,这本教程旨在通过实践性的DEMO,从初级到高级逐步介绍Adobe Flex这一富互联网应用程序(RIA)开发框架。Flex是基于ActionScript 3.0和MXML,用于构建交互式、图形...

    Flex3.0RIA开发详解电子教程12

    Flex3.0是Adobe公司推出的一款强大的富互联网应用程序(Rich Internet Application, RIA)开发框架,主要用于构建交互性强、用户体验良好的Web应用。本教程“Flex3.0 RIA开发详解电子教程12”旨在深入讲解Flex3.0的...

    flex 3 RIA 开发详解与精深实践 Source

    Flex 3 RIA 开发详解与精深实践是关于创建富互联网应用(Rich Internet Applications,简称RIA)的专业指南,尤其侧重于使用Adobe Flex 3框架。这个资源包含第1章到第6章的源代码,这为我们提供了深入理解Flex编程...

    Flex3.0RIA开发详解电子教程18

    综上所述,“Flex3.0 RIA开发详解电子教程18”将深入剖析上述知识点,帮助开发者掌握Flex3.0的核心技术和实践应用,从而更好地利用这一工具创建出高质量的RIA应用。通过学习和实践,开发者将能够提升自己的技能,为...

    Flex3.0RIA开发详解电子教程16

    Flex3.0是Adobe公司推出的一款强大的富互联网应用程序(RIA)开发框架,它基于ActionScript编程语言和MXML标记语言,使得开发者能够构建交互性强、功能丰富的Web应用。本教程"Flex3.0 RIA开发详解电子教程16"应该是...

    flex-iframe-1.4.6

    在Flex框架中,开发者通常使用ActionScript来创建富互联网应用程序(RIA)。然而,有时需要在Flex应用内部展示来自其他源的内容,比如嵌入网页或视频,这时iframe就显得非常有用。flex-iframe-1.4.6就是为此目的而...

    Flex3.0RIA开发详解电子教程8

    Flex3.0是Adobe公司推出的一种富互联网应用(Rich Internet Application, RIA)开发框架,主要用于构建具有交互性、动态性和高性能的Web应用程序。本教程“Flex3.0 RIA开发详解电子教程8”显然是系列教程的一部分,...

    测试flex应用程序

    在IT行业中,Flex是一种用于构建富互联网应用程序(RIA)的框架,它基于ActionScript和Flash Player或Adobe AIR运行时。Flex应用程序通常具有丰富的用户界面,能够提供动态交互体验。而当我们需要对这些Flex应用程序...

    Flex3.0RIA开发详解电子教程19

    Flex3.0是Adobe公司推出的一款强大的富互联网应用程序(RIA)开发框架,它基于ActionScript3.0语言和FlashPlayer运行环境,为开发者提供了构建交互性强、视觉效果丰富的Web应用的平台。本教程"Flex3.0RIA开发详解...

    flex测试总结

    综上所述,Flex测试涉及多种技术和策略,涵盖单元测试、集成测试、自动化测试等多个方面,并需要关注性能、兼容性、安全性和源码质量。在实际测试过程中,选择合适的工具和框架,结合有效的测试策略,可以提高Flex...

    Flex框架的基本原理.docx

    Flex框架是Adobe开发的一种用于构建富互联网应用程序(RIA)的框架,主要应用于Flash平台上。它允许开发者使用ActionScript(AS)编程语言和MXML标记语言来创建交互式的、基于浏览器的应用程序。Flex框架的核心在于...

Global site tag (gtag.js) - Google Analytics