java gui testing with marathon - fbk · testing jabref gui • all the gui components you are...
TRANSCRIPT
Java GUI testing with Marathon
Software Analysis and TestingCu Nguyen Duy (cunduy at fbk dot eu)
Alessandro Marchetto (marchetto at fbk dot eu)Paolo Tonella (tonella at fbk dot eu)
Mariano Ceccato (ceccato at fbk dot eu)
Academic Year 2011-2012
Wednesday, October 12, 11
Marathon
• Capture and playback tool for testing Java/Swing graphical user interfaces. (www.marathontesting.com)
• Uses the “Jython” (Python for Java) and JRuby scripting languages to store test cases.
• Test cases can be captured interactively, or written as Jython, JRuby scripts.
• Allows to insert assertions in the script easily, using a specific GUI
• Shows testing results using JUnit’s control bar
User Guide: http://www.marathontesting.com/Marathon_-_Java_GUI_Testing_files/Marathon%20User%20Guide.pdf
Wednesday, October 12, 11
Getting start with Marathon
A calculator application was developed (Swing)
We want to write tests for the calculator Ex. add two values
Steps: 1. create a new Marathon
project 2. create a new empty test
(a test is a Python script file)
3. build and run the test (recording/replay)
4. generate reports
url: http://selab.fbk.eu/swat/projects/swing-calculator.tgz
Wednesday, October 12, 11
1. Create a new Marathon project
• Launch Marathon
• Click on the New... button to create a new project
• Name the project (e.g. Swing-Calculator-Test)
• Specify Directory (e.g same workspace)
• Set Main Class to the main class of the project (Calculator)
• Set the Class path
• bin (output) folder of eclipse project
• jar libs (if any)
Wednesday, October 12, 11
2. Recording a test
• File > New > Exploratory Test
• Wait for the application to be launched
• Interact with the App to record events
• Insert assertions (Ctl-RightClick or Cmd-RightClick) on controls
Wednesday, October 12, 11
3. Test execution
• Modify, improve recorded test cases if necessary
• You can record more for a test case with recording, recorded code will be inserted at the current position of the cursor
• Click on Play to run a test case
Wednesday, October 12, 11
4. Generate report
• Select Marathon > Generate Reports
• Reports are stored in TestReports
• Open them with a browser or select Marathon > Show Reports
Wednesday, October 12, 11
Exercises1. Record the following test: 123+456
2. Insert assertion to check if the result is 579.0
3. Adding more tests
a. 123*56
b. 213234-1234
c. 1/0
4. Modify the test (a) to 123*$1
Wednesday, October 12, 11
Testing Jabref GUI with Marathon
Wednesday, October 12, 11
Project settings(recommended)
Name the project jabref-gui-test
Directory a subfolder of Eclipse Jabref project
Main Class net.sf.jabref.JabRefMain
Class path - bin folder of Eclipse jabref project- jar: build/lib/Jabref-2.7.jar (*)
(*) if the file does not exist, do one of the followings:- install Apache Ant and run ant (with out any argument) within the jabref project to generate that file- open Ant View of Eclipse, drag-drop the file build.xml into the view, double click on the jars task- replace that jar file with all the jars required by jabref (take a look at the classpath specification in the build.xml file)
Wednesday, October 12, 11
Testing Jabref GUI• All the GUI components you are developing should
be tested
• for fault detection
• for increasing Coverage Score
• Jabref GUI testing with coverage:
1. instrument jabref built code with Coverage Tool
2. run Marathon test cases as normal
Wednesday, October 12, 11
Exercise
• Setup a Marathon project for Jabref
• Record the following events: Open a BibTeX Database > Select an item > Delete that item > Close the Databae
• Modify the recorded code, substitute the previously selected file with another
• Run the test and check the report
Wednesday, October 12, 11