Using Execution Feedback in Test Case Generation

Slides:



Advertisements
Similar presentations
Author: Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, Thomas Ball MIT CSAIL.
Advertisements

Testing Coverage Test case
Saumya Debray The University of Arizona Tucson, AZ
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
Experiments We measured the times(s) and number of expanded nodes to previous heuristic using BFBnB. Dynamic Programming Intuition. All DAGs must have.
Hybrid Concolic Testing Rupak Majumdar Koushik Sen UC Los Angeles UC Berkeley.
Experimental Evaluation in Computer Science: A Quantitative Study Paul Lukowicz, Ernst A. Heinz, Lutz Prechelt and Walter F. Tichy Journal of Systems and.
A CONTROL INSTRUMENTS COMPANY The Effectiveness of T-way Test Data Generation or Data Driven Testing Michael Ellims.
Hierarchical GUI Test Case Generation Using Automated Planning Atif M. Memon, Student Member, IEEE, Martha E. Pollack, and Mary Lou Soffa, Member, IEEE.
1 State-Based Testing of Ajax Web Applications A. Marchetto, P. Tonella and F. Ricca CMSC737 Spring 2008 Shashvat A Thakor.
© 2005 Prentice Hall, Decision Support Systems and Intelligent Systems, 7th Edition, Turban, Aronson, and Liang 4-1 Chapter 4 Modeling and Analysis Turban,
AUTOMATIC CONCOLIC TEST GENERATION WITH VIRTUAL PROTOTYPES FOR POST-SILICON VALIDATION Reviewer: Shin-Yann Ho Instructor: Jie-Hong Jiang.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
1 IDI, NTNU Programvarekvalitet og prosessforbedring vår 2000, Forrest Shull et al., Univ. Maryland and Reidar Conradi, NTNU (p.t. Univ.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Test Drivers and Stubs More Unit Testing Test Drivers and Stubs CEN 5076 Class 11 – 11/14.
Speculative Region-based Memory Management for Big Data Systems Khanh Nguyen, Lu Fang, Harry Xu, Brian Demsky Donald Bren School of Information and Computer.
Xusheng Xiao North Carolina State University CSC 720 Project Presentation 1.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Investigate Plan Design Create Evaluate (Test it to objective evaluation at each stage of the design cycle) state – describe - explain the problem some.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
1 Visual Computing Institute | Prof. Dr. Torsten W. Kuhlen Virtual Reality & Immersive Visualization Till Petersen-Krauß | GUI Testing | GUI.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
Optimizing Distributed Actor Systems for Dynamic Interactive Services
A Review of Software Testing - P. David Coward
School of Computer Science & Engineering
Testing Tutorial 7.
Lazy Preemption to Enable Path-Based Analysis of Interrupt-Driven Code
Generating Automated Tests from Behavior Models
Software Testing.
Hydra: Leveraging Functional Slicing for Efficient Distributed SDN Controllers Yiyang Chang, Ashkan Rezaei, Balajee Vamanan, Jahangir Hasan, Sanjay Rao.
Software Engineering (CSI 321)
Input Space Partition Testing CS 4501 / 6501 Software Testing
CS5123 Software Validation and Quality Assurance
Automated Pattern Based Mobile Testing
Log20: Fully Automated Optimal Placement of Log Printing Statements under Specified Overhead Threshold Xu Zhao*, Kirk Rodrigues*, Yu Luo*, Michael Stumm*,
White-Box Testing.
Software engineering USER INTERFACE DESIGN.
Ask the Mutants: Mutating Faulty Programs for Fault Localization
Business Rule Based Configuration Management and Software System Implementation Using Decision Tables Olegas Vasilecas, Aidas Smaizys VGTU, Vilnius, Lithuania.
COTS testing Tor Stålhane.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Mark Weiser University of Maryland, College Park IEEE CHI, 1981
It is great that we automate our tests, but why are they so bad?
Data Integration with Dependent Sources
Software Testing (Lecture 11-a)
A test technique is a recipe these tasks that will reveal something
White-Box Testing.
Taxonomy of Test Oracles
CS240: Advanced Programming Concepts
Software Testing: A Research Travelogue
Sudipto Ghosh CS 406 Fall 99 November 16, 1999
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Introduction to Pattern Oriented Analysis and Design (POAD)
Aiman H. El-Maleh Sadiq M. Sait Syed Z. Shazli
CSE403 Software Engineering Autumn 2000 More Testing
Scriptless Test Automation through Graphical User Interface
More on HW 2 (due Jan 26) Again, it must be in Python 2.7.
More on HW 2 (due Jan 26) Again, it must be in Python 2.7.
Modeling and Analysis Tutorial
Chapter 7 Software Testing.
By Hyunsook Do, Sebastian Elbaum, Gregg Rothermel
Modeling IDS using hybrid intelligent systems
Area Coverage Problem Optimization by (local) Search
UNIT-4 BLACKBOX AND WHITEBOX TESTING
By: Lecturer Raoof Talal
Yingze Wang and Shi-Kuo Chang University of Pittsburgh
Simulation-driven Enterprise Modelling: WHY ?
Presentation transcript:

Using Execution Feedback in Test Case Generation CMSC 737 – Presentation Bao Nguyen baonn@cs.umd.edu

Two Strategies Static plan Dynamic plan Category Partition Data flow analysis (path, branch, def-use, etc) Predicate based: BOR – BRO => Try to guess ahead!!! Dynamic plan Execution information as feedback Generating test cases on the fly

What’s next… Test case generation based on execution feedback Case study: two recent papers in ICSE’07 What I’m looking at Conclusion

What’s next… Test case generation based on execution feedback Case study: two recent papers in ICSE’07 What I’m looking at Conclusion

Why Static Plans Are Not Enough? Software is so complex: Empirical products => Difficult to formalize Subjective solutions => Difficult to use Human actuators => Difficult to manage Intelligent products => Difficult to predict Dynamic environments => Difficult to address Hard to predict ahead !!! Hard to exhaustedly test !!!

General Framework - f(e) Specifications Required Quality Program Test case Engine Program Execution Observed Quality f(e) Feedback (Adapted from “Software Cybernetics: Progress and Challenges” - Aditya P. Mathur )

General Framework - f(e) Specifications Required Quality Program Test case Engine Program Execution Observed Quality - f(e) Feedback (Adapted from “Software Cybernetics: Progress and Challenges” - Aditya P. Mathur )

General Framework - f(e) Specifications Required Quality Program Test case Engine Program Execution Observed Quality f(e) Feedback (Adapted from “Software Cybernetics: Progress and Challenges” - Aditya P. Mathur )

What’s next… Execution feedback based test case generation Case study: two recent papers in ICSE’07 OOP Testing: Pacheco, et al. “Feedback-Directed Random Test Generation” GUI Testing: Yuan and Memon. “Using GUI Run-Time State as Feedback to Generate Test Cases” What I’m looking at Conclusion

What’s next… Execution feedback based test case generation Case study: two recent papers in ICSE’07 OOP Testing: Pacheco, et al. “Feedback-Directed Random Test Generation” GUI Testing: Yuan and Memon. “Using GUI Run-Time State as Feedback to Generate Test Cases” What I’m looking at Conclusion

Using GUI Run-Time State as Feedback to Generate Test Cases Xun Yuan and Atif Memon ICSE’07

Motivations of the paper Previous work 1-way: Crash Test 2-way: Smoke Test Longer test cases detected additional faults Unable to run multi-way test coverage 2-way run for months [TSE’05] Try to prune edge

Key idea Use GUI states as feedback to identify “important” edges Called Event Semantic Interaction Edges Generate new longer test cases covering those edges

Key idea Use GUI states as feedback to identify “important” edges Called Event Semantic Interaction Edges Generate new longer test cases covering those edges ESI ESI ESI ESI ESI

Event Semantic Interaction Heuristic: Two events executed together results differently than executed in isolation => semantic interaction <e1> Select Eclipse <e2> Drag <e1; e2>

Six predicates for modeless windows Predicate 1: w  W; p  P; v  V; v’ V; s.t: ((v  v’)  ((w, p, v)  {S0  e1(S0)  e2(S0)})  ((w, p, v’)  e2(e1(S0)))); Predicate 2: w  W; p  P; v  V; v’ V; v’’ V; s.t: ((v  v’)  (v’  v’’) ((w, p, v)  {S0  e2(S0)})  ((w, p, v’)  e1(S0))  ((w, p, v’’)  e2(e1(S0)))); Predicate 3: s.t: ((v  v’)  (v’  v’’) ((w, p, v)  {S0  e1(S0)})  ((w, p, v’)  e2(S0))  ((w, p, v’’)  e2(e1(S0)))); Predicate 4: w  W; p  P; v  V; v’ V; v’’ V; v V; s.t: ((v  v’)  (v  v’’)  (v’’  v ) ((w, p, v)  S0) ((w, p, v’)  e1(S0)})  ((w, p, v’’)  e2(S0)}) ((w, p, v)  e2(e1(S0)))); Predicate 5: w  W; p  P; v  V; v’ V; v’’ V; s.t: ((v’  v’’) (((w, *, *)  S0)  (((w, p, v)  e1(S0))  ((w, p, v’)  e2(S0)))  ((w, p, v’’)  e2(e1(S0)))); Predicate 6: w  W; ENABLED  P; TRUE  V; FALSE V; s.t: (((w, ENABLED, FALSE)  S0 )  ((w, ENABLED, TRUE)  e1(S0))  EXEC(e2, w)); (More details refer to “A comprehensive framework for testing graphical user interfaces” Atif M. Memon.Ph.D. dissertation, 2001)

Three contexts for events wrt windows Context 1 : events in modeless window Context 2 : events in same modal window ex(S): the GUI state after executing <ex; TERM>, x= 1, 2 e2(e1(S)): the GUI state after executing sequence <e1; e2; TERM> Context 3 : events in parent and child modal window e1(S): the GUI state after executing <e1; TERM> e2(e1(S)): the GUI state after executing sequence <e1; TERM; e2>

Experiments Subject applications: three OSS Test oracle CrosswordSage 0.3.5 FreeMind 0.8.0 GanttProject 2.0.1 JMSN 0.9.9b2 Test oracle Program crashes

Result - Test case reduction 2-way 3-way 4-way 5-way 99.78% 99.97% 99.99% Table 1: Percentages of test case reduction

Result - Faults detection

Lessons learned Event handlers are implemented in multiple classes A large input space is needed Crash because the permutations of events => Need longer test cases???

Conclusion of this paper Contributions A new GUI model for test-case generation A new relationships among GUI events (i.e. context) A utilization of GUI state as feedback A fully automatic end-to-end GUI testing process A demonstration Future work Simplify 6 predicates and 3 contexts Identify and classify events dominating ESI Minimize number of test cases Apply feedback technique to objects outside GUI

What’s next… Test case generation based on execution feedback Case study: two recent papers in ICSE’07 What I’m looking at Conclusion

What I’m looking at Push test case generation and test case execution closer Generate new test cases during the execution Utilize the feedback immediately

A case study Adaptive test oracles: the QoS idea e1 e2 … en-1 en FIND_NEXT en-1 en Test Case = S0 S1 S2 Si-1 Si Sn-1 Sn Oracle Information = “Using Transient/Persistent Errors to develop Automated Test Oracles for Event-Driven Software” Atif M. Memon and Qing Xie. – ASE’04

Conclusion Drawback: Like hill climbing => local optimization Software is dynamic so we need a dynamic approach Using feedback in software testing is feasible Somewhat related to control theories (i.e. software cybernetic) Drawback: Like hill climbing => local optimization Can mutants (like in GA) overcome this? Systematically vs. Randomly

Questions What does “Event Semantic Interaction” in section 4 mean? What are the threats to validity and what are the weaknesses in Xun’s experiments?