TEST CASE GENERATOR Mahmoud, Nidhi, Fernando, Chris, Joe, John, and Thomas present:

Slides:



Advertisements
Similar presentations
IAAnalyzer: Towards a Model-Driven Modeling and Analysis Framework for C ONNECT(ors) Massimo Tivoli, University of L’Aquila (UNIVAQ)
Advertisements

Data-Flow Analysis II CS 671 March 13, CS 671 – Spring Data-Flow Analysis Gather conservative, approximate information about what a program.
Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
Control Flow Analysis (Chapter 7) Mooly Sagiv (with Contributions by Hanne Riis Nielson)
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
VanarSena: Automated App Testing. App Testing Test the app for – performance problems – crashes Testing app in the cloud – Upload app to a service – App.
JAXB Java Architecture for XML Binding Andy Fanton Khalid AlBayat.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION TESTING II Autumn 2011.
JFC-GUI-Ripper. JFC Ripper is a subsystem of the GUITAR suite. The goal of the JFCGUIRipper is to produce an XML file based on the GUI structure.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Data Flow Analysis Compiler Design October 5, 2004 These slides live on the Web. I obtained them from Jeff Foster and he said that he obtained.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 580 Artificial Intelligence Problem Spaces and Search Fall 2008 Jingsong.
Data Structures & Java Collections Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
ModelBuilder In ArcGIS 9.x By Tim Weigel GEOG 407/607 April 3 rd, 2006.
Fall 2007CS 2251 Graphs Chapter 12. Fall 2007CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs To.
CISC220 Fall 2009 James Atlas Nov 13: Graphs, Line Intersections.
Lecture 11 CSE 331 Sep 25, Homeworks Please hand in your HW 2 now HW 3 and graded HW 1 at the end of class.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
2006/09/19AOAsia 21 Towards Locating a Functional Concern Based on a Program Slicing Technique Takashi Ishio 1,2, Ryusuke Niitani 2 and Katsuro Inoue 2.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
GUI For A Virtual Pipeline Simulation Testbed By, Revathi Manni Ranganathan Major Professor: Dr.Virgil Wallentine.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
4. UML. CPSC 333: Foundations of Software EngineeringJ. Denzinger 4.1. Motivation The Unified Modeling Language tries to integrate older approaches Developed.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Verified Network Configuration. Verinec Goals Device independent network configuration Automated testing of configuration Automated distribution of configuration.
1 Representing New Voice Services and Their Features Ken Turner University of Stirling 11th June 2003.
Definition The framework is a library that controls the flow of events and data through well-defined interface points defined by user-written algorithm.
With Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Cross Language Clone Analysis Team 2 February 3, 2011.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
NETWORK FLOWS Shruti Aggrawal Preeti Palkar. Requirements 1.Implement the Ford-Fulkerson algorithm for computing network flow in bipartite graphs. 2.For.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Saint-Petersburg State University ITMO Automata-based Algorithms Visualization Framework Georgiy Korneev Computer Technology Department,
Random Test Generation of Unit Tests: Randoop Experience
AndroidGUITAR Final Design 6/24/ Group Members 6/24/  Matthew Green  Matt Brown  Chris Carmel  Asif Chowdhury  James DeBolt  Matt Orlove.
abstract data types built on other ADTs
ONAP CLI (Command-Line Interface ) Architecture
Open-O CLI (Command-Line Interface ) Architecture
TANGO Harmonization Meeting (Edinburgh)
CMS High Level Trigger Configuration Management
Software Testing and Maintenance 1
An Introduction to Computers and Visual Basic
NVIDIA Profiler’s Guide
An Introduction to Computers and Visual Basic
EE 422C Java FX.
Lecture 10 CSE 331 Sep 21, 2016.
Lecture 10 CSE 331 Sep 20, 2017.
Graph Implementations
Java IO and Testing made simple
Making Change Coins: 2 and
An Introduction to Computers and Visual Basic
Data Flow Analysis Compiler Design
Section 5: HW6 and Interfaces
Lecture 9 CSE 331 Sep 19, 2016.
CSE 1020:Software Development
Some Graph Algorithms.
Presentation transcript:

TEST CASE GENERATOR Mahmoud, Nidhi, Fernando, Chris, Joe, John, and Thomas present:

GUI Testing Background Motivation GUIs are common within consumer software GUI Testing Problem How to test a GUI? Manual Resource intensive Unreliable Automated Systematic method of test case generation

Automated GUI Testing GUITAR a GUI testing framework Contains four parts: The GUIRipper used to extract GUI information from a program. The GUIStructure2Graph uses this output to build a traversable graph representation of the GUI elements. The TestCaseGenerator creates an extensive set of test cases based on the graph. The GUIReplayer runs the program as instructed by these tests.

Test Case Generator Generates test cases given two inputs: Formal model of the GUI in the form of a Graph Graph traversal algorithm to simulate a user’s possible interactions with the GUI Event Flow Graph Bundled plugins Sequence Length Random

TCG Demo Test case generator arguments: Output.dir EFG Plugin Length Max-number These arguments can be changed in the TestCaseGenerator.properties file

Sequence Length Plugin Demo Looking at a sequence generated: e16 false e18 false e39 false

WeightedRandom Plugin Demo Takes as input an EFG representing the graph structure and an EFG representing the weights of edges. Generates shortest path test cases for each potential starting event to every reachable event. Rest of tests generated by picking starting event and rest of path randomly, weighted by out edges.

Example Test Cases

GUITAR Recap JFC Ripper GUI Structure 2 EFG Testcase Generator JFC Replayer

TCG Plugin Structure TestCaseGenerator Core Sequence Length Coverage Random Test Case Custom Plugin

An EFG e0 e1e2 e3 e4

A Graph Traversal (SequenceLengthCoverage) Testcases: e0 → e2 → e4 e0 → e2 → e3

Another Graph Traversal (Random) Testcases: e0 → e1 → e3 e0 → e2 → e4

Plugin Goals TestCaseGenerator uses this plugin mechanism due to different goals in graph traversal: Speed: Complete coverage plugins may be infeasible for larger graphs Completeness: For smaller GUIs, all possible test cases may be preferred Focus: Specific types of test cases, e.g. “All test cases with no cycles”

Plugin Implementation GUITAR TestCaseGenerator plugins are based off the TCPlugin abstract class public abstract class TCPlugin * generate(EFG efg, String outputDir, int nMaxNumber) * getConfiguration() * isValidArgs() * writeToFile(String tCName, LinkedList path) * initialize() * getPathToRoot(EventType event)

Plugin Implementation (ctd) TCG events are broken down into three types: Successors Predecessors Initial Events 1 23

Relevant GUITAR Constants NO_EDGE: There is no relationship between the two events FOLLOW_EDGE: Typical edges in a graph REACHING_EDGE: Edges used to reach an event

initialize() e0 e1e2 e3 e4 FOLLOW_EDGE REACHING_EDGE

initialize() e0 e1e2 e3 e4 initialEvents: {e0} preds:{e0 → Ø} {e1 → Ø} {e2 → e0, e4} {e3 → e2} {e4 → Ø} succs:{e0 → e1, e2} {e1 → e3} {e2 → e3, e4} {e3 → Ø} {e4 → e2}

getPathToRoot(EventType event) e0 e1e2 e3 e4 Paths to Root - e0 : e0 e1 : Ø e2 : e0 → e2 e3 : e0 → e2 → e3 e4 : Ø

Configuration In many cases, additional arguments are needed for a TestCaseGenerator plugin. Plugins can override a “getConfiguration” method in the TCPlugin interface. The configuration specifies which additional arguments are to be parsed from the command line.

Example: Weighted Random Configuration Configuration Class File: Implementation of getConfiguration() in WeightedRandom.java:

Relevant Java Imports org.kohsuke.args4j: useful command line parser that contains an “Option” object, which acts as a field/setter that receives a command line switch value