SlideShare a Scribd company logo
1 of 24
Malinga Thennakoon
Damith Liyanaarachchi
 Finding suitable framework to capture flash
objects in web browser automation testing.
 Configuring them with the existing
framework.
 Analyzing major drawbacks of the existing
tools and finding better tools for flash object
capturing.
 Flash objects communicate with the browser
with its platform dependant native methods.
 Flash objects are implemented using Adobe
Action Script as Flash applications or MXML
and Action Script as Flex Applications.
 Flash UI Components do not have XPATHs.
 Flash Objects communicate with both client
side and server side simultaneously ,
therefore difficult to identify parsing
parameters.
 For the Millennium BBO application ,it’s Flash
components dynamically communicate with
the server to retrieve information using
external JavaScript files.
 HierarchyViewer.swf uses adfHierarchyViewer.js to retrieve
data from the MIT server.
 HierarchyViewer.swf is created dynamically at the run time by
the ADF faces technology and also created using JDeveloper
tool at the development time.
 No API is published.
 Flash objects on a webpage are accessible by
some JavaScript functions. Such as
◦ GetVariable(varName)
◦ SetVariable(varName, varValue)
◦ TCallLabel(target, label)
 Flash API consists of a class called External
Interface in order to interact with the
JavaScript functions.
 Two main functions are used
 Call method()
 AddCallBack method()
public function ColoredSquare() {
currentColor = COLOR_HEX_VALUES[currentColorIndex % 3];
updateButtonLabel(); drawButton();
addEventListener(MouseEvent.CLICK, buttonClicked);
// functions available for JavaSript calls
ExternalInterface.addCallback("getColor", getColor);
ExternalInterface.addCallback("click", changeColor);
ExternalInterface.addCallback("getSquareLabel", getSquareLabel);
ExternalInterface.addCallback("setSquareLabel", setSquareLabel);
}
 ExternalInterface.Call method
 This is used to call JavaScript functions from
the ActionScript code.
 Eg:- ExternalInterface.Call (“callToJS”);
 ExternalInterface.AddCallBack method
 This is used to call relevant ActionScript
method as a response to JavaScrirpt method
calling
 Eg:- ExternalInterface.AddCallBack
(“callFromJS”,”Actual ActionScript Function”);
 In order to test flash objects in web
applications a middle ware is needed to
provide this inter communication.
 To send testing parameters to Flash objects
and retrieve the results.
 Finding out such tools and configure them
with the existing framework is essential to
flash testing
 Flash Selenium API
 Flex UI Selenium API
 FlexSelenium.swc
 Adobe Flex SDK
 Adobe Flex Builder
 Sothinnk Flash De-compiler
 Genie Framework (newest addition )
 White box testing. we need to know about the
internal coding of the Flash application in
order to perform the test.
 Compatible with the Selenium RC and Web
Driver.
 Selenium IDE cannot be used.
 Flash UI components are identified by specific
id called Flash Object ID which is equivalent
to the XPATH of the HTML elements.
Steps
Obtain Flash object as .swf file or .mxml file.
If the file is in .swf format decompile using a De-
compiler.
Obtain the Action Script code or the mxml code and
analyze it using Adobe Flex Builder.
Add External interface class to the project and define
functions which wraps the internal functions which
should be tested.
 These functions should map the external Java Script
calling methods with the Action Script internal methods.
public function ColoredSquare() {
currentColor = COLOR_HEX_VALUES[currentColorIndex % 3];
updateButtonLabel(); drawButton();
addEventListener(MouseEvent.CLICK, buttonClicked);
// functions available for JavaSript calls
ExternalInterface.addCallback("getColor", getColor);
ExternalInterface.addCallback("click", changeColor);
ExternalInterface.addCallback("getSquareLabel",
getSquareLabel);
ExternalInterface.addCallback("setSquareLabel",
setSquareLabel);
} Java Script Calling
Action Script Calling
 Recompile the file to obtain the swf file test the Flash
object using Selenium RC as follows.
public void testColorTransition() {
assertEquals("Clicking Colors", browser.getTitle());
assertEquals(GREEN, flashseleneium.call("getColor"));
flashseleneium.call("click");
assertEquals(BLUE, flashseleneium.call("getColor"));
flashseleneium.call("click");
assertEquals(RED, flashseleneium.call("getColor"));
flashseleneium.call("click");
assertEquals(GREEN, flashseleneium.call("getColor"));
}
 Flex UI selenium can be used to test Flash UI
components instead of its functions.
 Every UI component is identified by its Flash
object ID.
 Flex UI selenium library should be added to
the build path of the Flash/Flex File in order
to communicate with the Flex UI and Flash
Selenium Libraries.
Obtain Flash object as .swf file or .mxml file.
If the file is in .swf format decompile using a De-
compiler.
Obtain the Action Script code or the mxml code and
analyze it using Adobe Flex Builder.
Extract and analyze the Flash object ids of UI
components of the application.
Add FlexSelenium.swc to the build path and
recompile the file using Adobe Flex SDK.
Write test cases against the UI components and
their Functionalities using selenium RC.
 public void testFlashCal(){
 try {
 Thread.sleep(4000);
 //---------- Following part is for test using the Flex UI Selenium part
 flexUi.type("50").at("num");
 flexUi.type("2").at("factor");
 //flexUi.type("2").at("factor");
 Thread.sleep(500);
 assertEquals("The result is 100",flexUi.readFrom("result"));
 for (int i = 1; i <=10 ; i++) {
 flexUi.click("button");
 Thread.sleep(500);
 if(i ==1){
 assertEquals("pushed "+i+" time" ,flexUi.readFrom("buttonClicks"));
 }
 else{
 assertEquals("pushed "+i+" times" ,flexUi.readFrom("buttonClicks"));
 }
 Thread.sleep(500);
 }
 flexUi.click("comboQuote");
 assertEquals("" ,flexUi.readFrom("buttonClicks"));
 No single IDE to configure all of above
configurations. Because of the multiple software
components and multiple versions.
 Time consuming
 Flex –UI selenium is still in its development
stage and not compatible with eclipse higher
versions.
 Internal Action Script / Flex codes should be
understood by the tester.
 For the MIT BBO application, they are using ADF
faces technology where the flash application
independently connected with the server to
obtain data.
 Newest addition to the Flash UI testing.
 Equivalent to the Selenium Framework.
 Compatible with Eclipse Higher versions
(3.5.0 etc).
 Support UI component testing using inbuilt
IDE.
 UI components are captured by the accessing
internal ActionScript code of the Flash object.
 Every component is uniquely identified by an
Id called Genie ID.
 Completely written in Java. Therefore can be
integrated with the existing Testing
Framework.
 Provide in-built functions to capture Flash UI
components.
 Available as a plug-in for Eclipse.
 Test scripts can be generated using Java.
 Complete API is available.
 No instrumentation or application manipulation
is required.
 Automate pure ActionScript 3.0 SWF.
 No source code access required.
 No need to run inside any wrapper.
 Works on web based apps and standalone SWF.
 Performs native automation (no image
dependency) thus making scripts reliable and
lowering down maintenance cost.
 Application can even be running in background.
 Dynamic and static content can be tested.
 Each and every Flash component is uniquely
identified using the Genie id.
 http://code.google.com/p/sfapi/
 http://code.google.com/p/flex-ui-selenium/
 http://wiki.openqa.org/display/SRC/Testing+Flash+with+Sel
enium+RC
 http://www.senocular.com/flash/tutorials/as3withmxmlc/
 http://sourceforge.net/adobe/genie/wiki/Home/

More Related Content

What's hot

PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterKHALID C
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using SeleniumNaresh Chintalcheru
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Seleniumvivek_prahlad
 
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debuggingATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debuggingAgile Testing Alliance
 
CodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comCodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comChristopher Cubos
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and SeleniumKarapet Sarkisyan
 
Selenium training eduxfactor
Selenium training   eduxfactorSelenium training   eduxfactor
Selenium training eduxfactorKapilSai3
 
Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)Mehdi Khalili
 
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QAFest
 
Selenium interview Q&A
Selenium interview Q&ASelenium interview Q&A
Selenium interview Q&APavan Kumar
 
Test Automation Using Python | Edureka
Test Automation Using Python | EdurekaTest Automation Using Python | Edureka
Test Automation Using Python | EdurekaEdureka!
 
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Edureka!
 
Yii Framework Security
Yii Framework SecurityYii Framework Security
Yii Framework SecurityIlko Kacharov
 
Introduction to JSF
Introduction toJSFIntroduction toJSF
Introduction to JSFSoftServe
 

What's hot (20)

Codeigniter
CodeigniterCodeigniter
Codeigniter
 
PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniter
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
 
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debuggingATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
CodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comCodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.com
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 
Selenium training eduxfactor
Selenium training   eduxfactorSelenium training   eduxfactor
Selenium training eduxfactor
 
Selenium WebDriver training
Selenium WebDriver trainingSelenium WebDriver training
Selenium WebDriver training
 
Yii framework
Yii frameworkYii framework
Yii framework
 
Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)
 
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
 
Selenium
SeleniumSelenium
Selenium
 
Selenium interview Q&A
Selenium interview Q&ASelenium interview Q&A
Selenium interview Q&A
 
Test Automation Using Python | Edureka
Test Automation Using Python | EdurekaTest Automation Using Python | Edureka
Test Automation Using Python | Edureka
 
Selenium ide made easy
Selenium ide made easySelenium ide made easy
Selenium ide made easy
 
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
 
Yii Framework Security
Yii Framework SecurityYii Framework Security
Yii Framework Security
 
Introduction to JSF
Introduction toJSFIntroduction toJSF
Introduction to JSF
 

Similar to Flash Testing with Selenium RC

Using HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaUsing HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaSandeep Tol
 
Selenium Automation in Java Using HttpWatch Plug-in
 Selenium Automation in Java Using HttpWatch Plug-in  Selenium Automation in Java Using HttpWatch Plug-in
Selenium Automation in Java Using HttpWatch Plug-in Sandeep Tol
 
Rits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce LightningRits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce LightningRight IT Services
 
Steps to write Selenium
Steps to write Selenium  Steps to write Selenium
Steps to write Selenium Rohit Thakur
 
Flex In Portal Final
Flex In Portal   FinalFlex In Portal   Final
Flex In Portal FinalSunil Patil
 
Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullySpringPeople
 
2013 10-10 selenium presentation to ocjug
2013 10-10 selenium presentation to ocjug2013 10-10 selenium presentation to ocjug
2013 10-10 selenium presentation to ocjugPhilip Schlesinger
 
automation framework
automation frameworkautomation framework
automation frameworkANSHU GOYAL
 
Developing for Xoom with Flash and AIR
Developing for Xoom with Flash and AIRDeveloping for Xoom with Flash and AIR
Developing for Xoom with Flash and AIRTerry Ryan
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRfunkatron
 
Web UI Tests: Introduce UI tests using Selenium
Web UI Tests: Introduce UI tests using Selenium Web UI Tests: Introduce UI tests using Selenium
Web UI Tests: Introduce UI tests using Selenium Peyman Fakharian
 
Parallel minds silverlight
Parallel minds silverlightParallel minds silverlight
Parallel minds silverlightparallelminder
 
Flex And Ria
Flex And RiaFlex And Ria
Flex And Riaravinxg
 
Flex Custom Component Lifecycle Practice
Flex Custom Component Lifecycle PracticeFlex Custom Component Lifecycle Practice
Flex Custom Component Lifecycle Practicejexchan
 

Similar to Flash Testing with Selenium RC (20)

Using HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaUsing HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in Java
 
DIY Flex
DIY FlexDIY Flex
DIY Flex
 
DIY Flex
DIY FlexDIY Flex
DIY Flex
 
Selenium Automation in Java Using HttpWatch Plug-in
 Selenium Automation in Java Using HttpWatch Plug-in  Selenium Automation in Java Using HttpWatch Plug-in
Selenium Automation in Java Using HttpWatch Plug-in
 
Codeception
CodeceptionCodeception
Codeception
 
Rits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce LightningRits Brown Bag - Salesforce Lightning
Rits Brown Bag - Salesforce Lightning
 
Steps to write Selenium
Steps to write Selenium  Steps to write Selenium
Steps to write Selenium
 
Flex In Portal Final
Flex In Portal   FinalFlex In Portal   Final
Flex In Portal Final
 
Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium Successfully
 
2013 10-10 selenium presentation to ocjug
2013 10-10 selenium presentation to ocjug2013 10-10 selenium presentation to ocjug
2013 10-10 selenium presentation to ocjug
 
automation framework
automation frameworkautomation framework
automation framework
 
Developing for Xoom with Flash and AIR
Developing for Xoom with Flash and AIRDeveloping for Xoom with Flash and AIR
Developing for Xoom with Flash and AIR
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
 
Web UI Tests: Introduce UI tests using Selenium
Web UI Tests: Introduce UI tests using Selenium Web UI Tests: Introduce UI tests using Selenium
Web UI Tests: Introduce UI tests using Selenium
 
Selenium
SeleniumSelenium
Selenium
 
Parallel minds silverlight
Parallel minds silverlightParallel minds silverlight
Parallel minds silverlight
 
Flex And Ria
Flex And RiaFlex And Ria
Flex And Ria
 
Flex RIA
Flex RIAFlex RIA
Flex RIA
 
Flex Custom Component Lifecycle Practice
Flex Custom Component Lifecycle PracticeFlex Custom Component Lifecycle Practice
Flex Custom Component Lifecycle Practice
 
Selenium
SeleniumSelenium
Selenium
 

Flash Testing with Selenium RC

  • 2.  Finding suitable framework to capture flash objects in web browser automation testing.  Configuring them with the existing framework.  Analyzing major drawbacks of the existing tools and finding better tools for flash object capturing.
  • 3.  Flash objects communicate with the browser with its platform dependant native methods.  Flash objects are implemented using Adobe Action Script as Flash applications or MXML and Action Script as Flex Applications.  Flash UI Components do not have XPATHs.  Flash Objects communicate with both client side and server side simultaneously , therefore difficult to identify parsing parameters.
  • 4.  For the Millennium BBO application ,it’s Flash components dynamically communicate with the server to retrieve information using external JavaScript files.  HierarchyViewer.swf uses adfHierarchyViewer.js to retrieve data from the MIT server.  HierarchyViewer.swf is created dynamically at the run time by the ADF faces technology and also created using JDeveloper tool at the development time.  No API is published.
  • 5.  Flash objects on a webpage are accessible by some JavaScript functions. Such as ◦ GetVariable(varName) ◦ SetVariable(varName, varValue) ◦ TCallLabel(target, label)  Flash API consists of a class called External Interface in order to interact with the JavaScript functions.
  • 6.
  • 7.  Two main functions are used  Call method()  AddCallBack method() public function ColoredSquare() { currentColor = COLOR_HEX_VALUES[currentColorIndex % 3]; updateButtonLabel(); drawButton(); addEventListener(MouseEvent.CLICK, buttonClicked); // functions available for JavaSript calls ExternalInterface.addCallback("getColor", getColor); ExternalInterface.addCallback("click", changeColor); ExternalInterface.addCallback("getSquareLabel", getSquareLabel); ExternalInterface.addCallback("setSquareLabel", setSquareLabel); }
  • 8.  ExternalInterface.Call method  This is used to call JavaScript functions from the ActionScript code.  Eg:- ExternalInterface.Call (“callToJS”);  ExternalInterface.AddCallBack method  This is used to call relevant ActionScript method as a response to JavaScrirpt method calling  Eg:- ExternalInterface.AddCallBack (“callFromJS”,”Actual ActionScript Function”);
  • 9.  In order to test flash objects in web applications a middle ware is needed to provide this inter communication.  To send testing parameters to Flash objects and retrieve the results.  Finding out such tools and configure them with the existing framework is essential to flash testing
  • 10.  Flash Selenium API  Flex UI Selenium API  FlexSelenium.swc  Adobe Flex SDK  Adobe Flex Builder  Sothinnk Flash De-compiler  Genie Framework (newest addition )
  • 11.  White box testing. we need to know about the internal coding of the Flash application in order to perform the test.  Compatible with the Selenium RC and Web Driver.  Selenium IDE cannot be used.  Flash UI components are identified by specific id called Flash Object ID which is equivalent to the XPATH of the HTML elements.
  • 12.
  • 13. Steps Obtain Flash object as .swf file or .mxml file. If the file is in .swf format decompile using a De- compiler. Obtain the Action Script code or the mxml code and analyze it using Adobe Flex Builder. Add External interface class to the project and define functions which wraps the internal functions which should be tested.  These functions should map the external Java Script calling methods with the Action Script internal methods.
  • 14. public function ColoredSquare() { currentColor = COLOR_HEX_VALUES[currentColorIndex % 3]; updateButtonLabel(); drawButton(); addEventListener(MouseEvent.CLICK, buttonClicked); // functions available for JavaSript calls ExternalInterface.addCallback("getColor", getColor); ExternalInterface.addCallback("click", changeColor); ExternalInterface.addCallback("getSquareLabel", getSquareLabel); ExternalInterface.addCallback("setSquareLabel", setSquareLabel); } Java Script Calling Action Script Calling
  • 15.  Recompile the file to obtain the swf file test the Flash object using Selenium RC as follows. public void testColorTransition() { assertEquals("Clicking Colors", browser.getTitle()); assertEquals(GREEN, flashseleneium.call("getColor")); flashseleneium.call("click"); assertEquals(BLUE, flashseleneium.call("getColor")); flashseleneium.call("click"); assertEquals(RED, flashseleneium.call("getColor")); flashseleneium.call("click"); assertEquals(GREEN, flashseleneium.call("getColor")); }
  • 16.  Flex UI selenium can be used to test Flash UI components instead of its functions.  Every UI component is identified by its Flash object ID.  Flex UI selenium library should be added to the build path of the Flash/Flex File in order to communicate with the Flex UI and Flash Selenium Libraries.
  • 17. Obtain Flash object as .swf file or .mxml file. If the file is in .swf format decompile using a De- compiler. Obtain the Action Script code or the mxml code and analyze it using Adobe Flex Builder. Extract and analyze the Flash object ids of UI components of the application. Add FlexSelenium.swc to the build path and recompile the file using Adobe Flex SDK. Write test cases against the UI components and their Functionalities using selenium RC.
  • 18.  public void testFlashCal(){  try {  Thread.sleep(4000);  //---------- Following part is for test using the Flex UI Selenium part  flexUi.type("50").at("num");  flexUi.type("2").at("factor");  //flexUi.type("2").at("factor");  Thread.sleep(500);  assertEquals("The result is 100",flexUi.readFrom("result"));  for (int i = 1; i <=10 ; i++) {  flexUi.click("button");  Thread.sleep(500);  if(i ==1){  assertEquals("pushed "+i+" time" ,flexUi.readFrom("buttonClicks"));  }  else{  assertEquals("pushed "+i+" times" ,flexUi.readFrom("buttonClicks"));  }  Thread.sleep(500);  }  flexUi.click("comboQuote");  assertEquals("" ,flexUi.readFrom("buttonClicks"));
  • 19.  No single IDE to configure all of above configurations. Because of the multiple software components and multiple versions.  Time consuming  Flex –UI selenium is still in its development stage and not compatible with eclipse higher versions.  Internal Action Script / Flex codes should be understood by the tester.  For the MIT BBO application, they are using ADF faces technology where the flash application independently connected with the server to obtain data.
  • 20.  Newest addition to the Flash UI testing.  Equivalent to the Selenium Framework.  Compatible with Eclipse Higher versions (3.5.0 etc).  Support UI component testing using inbuilt IDE.  UI components are captured by the accessing internal ActionScript code of the Flash object.  Every component is uniquely identified by an Id called Genie ID.
  • 21.  Completely written in Java. Therefore can be integrated with the existing Testing Framework.  Provide in-built functions to capture Flash UI components.  Available as a plug-in for Eclipse.  Test scripts can be generated using Java.  Complete API is available.
  • 22.  No instrumentation or application manipulation is required.  Automate pure ActionScript 3.0 SWF.  No source code access required.  No need to run inside any wrapper.  Works on web based apps and standalone SWF.  Performs native automation (no image dependency) thus making scripts reliable and lowering down maintenance cost.  Application can even be running in background.
  • 23.  Dynamic and static content can be tested.  Each and every Flash component is uniquely identified using the Genie id.
  • 24.  http://code.google.com/p/sfapi/  http://code.google.com/p/flex-ui-selenium/  http://wiki.openqa.org/display/SRC/Testing+Flash+with+Sel enium+RC  http://www.senocular.com/flash/tutorials/as3withmxmlc/  http://sourceforge.net/adobe/genie/wiki/Home/