Wednesday, July 14, 2010

Functional/integration testing tool/frameworks for Flex/Flash based Rich Internet Applications.

Wednesday, July 14, 2010
Given the emergence of Web 2.0, developers are pushing the limits of what browsers can do.  The original intent of a web browser was to deliver documents to end-users, not applications and thus, protocols and standards to meet this need where designed as such.  Request-Response patterns have moved from full-up page refresh models to incremental interactions similar to thick-client applications.  As users begin to demand more and more functionality delivered via web browsers, new challenges are emerging for developers.  To add further complexity, there is a lack of commonality between different browser vendors and browsers are being used in a manner in which they not originally intended to do.  Because of this, building browser-based applications with Flex is becoming a popular option for Rich Internet Application Development.

Rich Internet Applications (RIA) are web applications that run in web browsers but bypass the page refresh model just as AJAX does but require a Flash runtime.  Given the market penetration of the Flash Player in market-share leading browsers, this is highly available foundation to build solid RIA, especially in intranet applications which are commonly deployed within NASA.  The benefits of using Flex is that a developer can write and test code for one platform, the flash runtime, as opposed to a plethora of browsers/platforms which increase complexity, implementation time and drive up cost.

As with most software development, testing applications is very important to ensure software quality and user acceptance.  For Flex based applications, there are tools/frameworks readily available to do unit testing, but there are limited options for doing integration and functional testing.  For AJAX based RIA applications, released an excellent open source project called Selenium.  Selenium allows QA engineers to test modules written with AJAX technologies.  Given the popularity of the Flex application development, a good open source product to perform a similar function is lacking.

One COTS product that exists to do unctional/application testing is Mercury QuickTest Pro.  This is a valuable tool but very expensive.  Also, this tool only works in Internet Explorer as it is implemented as an ActiveX plug-in.

Another COTS product is iMacro from iOpus.  This is another available option that is far less expensive than Mercury QTP, but is not as robust.

Because of the widespread adoption of Flex based RIA development and the increasing importance of testing for applications, what is needed is a quality integration/functional testing framework such as Selenium for Flex RIA that is open-source and not tied to proprietary standards and protocols.

Relevant domain(s): Any Flex/Flash based RIA development effort within the agency.  Potentially the solution could address testing of Java and ActiveX applets as well but this is not as critical. 

Project(s) that would use the proposed tool/solution: Any Constellation project doing Flex web application development.  Currently, there are efforts underway within Constellation that are using Flex RIA approaches.

Current tool/solution in use and its shortcomings: Available tools to test Flash/Flex based apps are COTS, and tend to be very expensive such as Mercury QuickTest Pro.  Lesser expensive tools, such as iMacros tend to use non-robust techniques such as Image Recognition and XY coordinates to locate GUI elements.  Also, available tools tend to be proprietary.

Constraints that might influence the research work plan:
Timeline that the proposed tool/solution must support:
Language requirement: Flash, Flex, AIR

Size or scale requirements: Typically small to medium sized client applications

Required deliverables: A toolkit/framework similar to Selenium for recording macros to perform functional testing of Flex/Flash based applications

Other useful information: Flex Development and Programming services, Hire Flex Developers, Flex Programmers, Mobile Apps Programmer using Flex

Below is a selection of FLEX Test Point videos.

Test #1 - Droplet diameter of 4 mm, with no support fiber. Droplet deployment was successful with a brief burn before radiative extinction. An afterglow from condensing vapor cloud and scattered backlight occurred approximately 30 sec after extinction. This afterglow phenomena typically occurs following radiative extinction.

Test #2 - Droplet diameter of 4 mm, with support fiber and translation. Tethered deployment was successful with a brief burn before radiative extinction. Extinction occurred at “trailing surface ”after translation ceased.

Test #3 - Droplet diameter of 4 mm, with no support fiber. Droplet deployment was successful with very little droplet drift. The burn was very brief before radiative extinction. The afterglow phenomena occurred again similar to Test #1.

Test #4 - Droplet diameter of 4 mm, with support fiber and translation. Tethered deployment was successful with a brief burn before radiative extinction. A small amount of residual fuel from previous test was still on the fiber, which caused a brief secondary “ignition flash” that lasted less than 1 sec. Extinction occurred (similar to Test #2) at “trailing surface.”


Post a Comment