TestFul: Automatic Unit-Test Generation for Java Classes Matteo Miraz, Pier Luca Lanzi DEI – Politecnico di Milano (Italy)

Slides:



Advertisements
Similar presentations
Testing Coverage Test case
Advertisements

Automated Evaluation of Runtime Object States Against Model-Level States for State-Based Test Execution Frank(Weifeng) Xu, Gannon University Dianxiang.
1 An Adaptive GA for Multi Objective Flexible Manufacturing Systems A. Younes, H. Ghenniwa, S. Areibi uoguelph.ca.
Test-Driven Development. Why Testing is Important? “If you don’t have tests, how do you know your code is doing the thing right and doing the right thing?”
Computer Science Automated Test Data Generation for Aspect-Oriented Programs Mark Harman (King’s College London, UK) Fayezin Islam (T-Zero Processing Services,
Early Effort Estimation of Business Data-processing Enhancements CS 689 November 30, 2000 By Kurt Detamore.
Alternate Software Development Methodologies
Automated Fitness Guided Fault Localization Josh Wilkerson, Ph.D. candidate Natural Computation Laboratory.
Introduction to Evolutionary Computation. Questions to consider during this lesson:  - How is digital evolution similar to biological evolution? How.
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
Unit Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 27, 2007.
WISTPC-09 : Session A Tariq M. King PhD Candidate Florida International University Workshop on Integrating Software Testing into Programming.
TEMPLATE DESIGN © Genetic Algorithm and Poker Rule Induction Wendy Wenjie Xu Supervised by Professor David Aldous, UC.
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Experimental Evaluation in Computer Science: A Quantitative Study Paul Lukowicz, Ernst A. Heinz, Lutz Prechelt and Walter F. Tichy Journal of Systems and.
Object Recognition Using Genetic Algorithms CS773C Advanced Machine Intelligence Applications Spring 2008: Object Recognition.
Software Testing and Quality Assurance
A CONTROL INSTRUMENTS COMPANY The Effectiveness of T-way Test Data Generation or Data Driven Testing Michael Ellims.
Fast Evolutionary Optimisation Temi avanzati di Intelligenza Artificiale - Lecture 6 Prof. Vincenzo Cutello Department of Mathematics and Computer Science.
The CONVERSE Project: Tough on Change, Tough on the Causes of Change. Improving Software in Engine Controllers University of York John McDermid, John Clark.
Improving Network Applications Security: a New Heuristic to Generate Stress Testing Data Presented by Conrad Pack Del Grosso et al.
Analysis of Simulation Input.. Simulation Machine n Simulation can be considered as an Engine with input and output as follows: Simulation Engine Input.
Overview of Forecasting. Two Approaches to Forecasting Forecasting Methods Model Based Judgmental (NB: Ch. 11) Using Survey Data (QMETH520) Using Past.
Experimental Evaluation in Computer Science: A Quantitative Study Paul Lukowicz, Ernst A. Heinz, Lutz Prechelt and Walter F. Tichy Journal of Systems and.
TOOLS OF POSITIVE ANALYSIS
Intro to AI Genetic Algorithm Ruth Bergman Fall 2004.
Olli Kulkki Markus Lappalainen Ville Lehtinen Reijo Lindroos Ilari Pulkkinen Helsinki University of Technology S Acceptability and Quality.
Composing a Framework to Automate Testing of Operational Web-Based Software Reham Alhejiali, Chris Cederstrom, Ranjitha Kashyap.
State coverage: an empirical analysis based on a user study Dries Vanoverberghe, Emma Eyckmans, and Frank Piessens.
By: Taylor Helsper.  Introduction  Test Driven Development  JUnit  Testing Private Methods  TDD Example  Conclusion.
Exceptions and Mistakes CSE788 John Eisenlohr. Big Question How can we improve the quality of concurrent software?
Genetic Programming.
Revolutionizing the Field of Grey-box Attack Surface Testing with Evolutionary Fuzzing Department of Computer Science & Engineering College of Engineering.
1SAS 03/ GSFC/SATC- NSWC-DD System and Software Reliability Dolores R. Wallace SRS Technologies Software Assurance Technology Center
Volunteer Angler Data Collection and Methods of Inference Kristen Olson University of Nebraska-Lincoln February 2,
©2008 Srikanth Kallurkar, Quantum Leap Innovations, Inc. All rights reserved. Apollo – Automated Content Management System Srikanth Kallurkar Quantum Leap.
Automatic Test-Data Generation: An Immunological Approach Kostas Liaskos Marc Roper {Konstantinos.Liaskos, TAIC PART 2007.
1 Design and Analysis of Engineering Experiments Chapter 1: Introduction.
Most Important Tests (MITs) Most Important Tests is just a method which focuses on the risky and important areas of the system to test –Based on statistical.
Dr. Tucker Balch Associate Professor School of Interactive Computing Computational Investing, Part I 211: More complete back testing Find out how modern.
Massive Stochastic Testing of SQL Don Slutz Microsoft Research Presented By Manan Shah.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
Genetic Programming Lab For Chess Hadar Rottenberg & Nizan Freedman.
Dag Sjøberg Simula Research Laboratory Basic Research in Computing and Communication Sciences!
REPRESENTATIONS AND OPERATORS FOR IMPROVING EVOLUTIONARY SOFTWARE REPAIR Claire Le Goues Westley Weimer Stephanie Forrest
Xusheng Xiao North Carolina State University CSC 720 Project Presentation 1.
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Finding Errors in.NET with Feedback-Directed Random Testing Carlos Pacheco (MIT) Shuvendu Lahiri (Microsoft) Thomas Ball (Microsoft) July 22, 2008.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Automated Fingertip Detection
WERST – Methodology Group
Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T.
Software Engineering Saeed Akhtar The University of Lahore.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION SYMBOLIC TESTING Autumn 2011.
A PRELIMINARY EMPIRICAL ASSESSMENT OF SIMILARITY FOR COMBINATORIAL INTERACTION TESTING OF SOFTWARE PRODUCT LINES Stefan Fischer Roberto E. Lopez-Herrejon.
1 Visual Computing Institute | Prof. Dr. Torsten W. Kuhlen Virtual Reality & Immersive Visualization Till Petersen-Krauß | GUI Testing | GUI.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Static Software Metrics Tool
White-Box Testing Techniques IV
Deriving Test Data for Web Applications from User Session Logs
White-Box Testing Techniques IV
MultiRefactor: Automated Refactoring To Improve Software Quality
: Clone Refactoring Davood Mazinanian Nikolaos Tsantalis Raphael Stein
Software Engineering Experimentation
Automated Fitness Guided Fault Localization
Software Testing: A Research Travelogue
Positive analysis in public finance
UNIT TESTING TOOLS Workshop on Integrating Software
RHEA Enhancements for GVGP
Presentation transcript:

TestFul: Automatic Unit-Test Generation for Java Classes Matteo Miraz, Pier Luca Lanzi DEI – Politecnico di Milano (Italy)

Automated Test Generation Software systems permeate (almost) every aspect of our life Software is buggy In 2002 the costs related to software errors in the U.S. are estimated in 60 Billion USD An adequate testing campaign might require up to half of the software development effort Several approaches to automatically generate tests: Symbolic Execution Random Testing Evolutionary Testing

Our Approach: TestFul Focuses on Java Classes Features may be state-dependent Fitness Function: Designed to maximize the number of features exercised Composed by Statement, Branch & DU pairs coverage Efficiency Enhancements: Local search to tackle difficult branches Seeding to start from a better initial population Fitness Inheritance to reduce the test execution costs

Design of the Experiment We compare TestFul against test generated by our SE students Software Engineering course, after lessons on Testing Students were given 40 minutes to test a short, non-naive class

Design of the Experiment We compare TestFul against test generated by our SE students Software Engineering course, after lessons on Testing Students were given 40 minutes to test a short, non-naive class Students were facilitated in writing the tests

Design of the Experiment We compare TestFul against test generated by our SE students Software Engineering course, after lessons on Testing Students were given 40 minutes to test a short, non-naive class Students were facilitated in writing the tests Automated approaches run on the same class for 10 minutes The comparison was made on the test quality Measured with mutation score We used the Mann–Whitney–Wilcoxon U statistical test The experiment was inspired to: S. Mouchawrab et. al., Assessing, Comparing, and Combining State Machine-Based Testing and Structural Testing: A Series of Experiments, IEEE Transactions on Software Engineering, 2010

Empirical Results

Comparing to the Mouchawrab’s TSE

Empirical Results (2) «container classes are the de facto benchmark for testing software with internal state» [ Arcuri 2010 ] Bug #

Why We Are Human Competitive B) The result is equal to or better than a result that was accepted as a new scientific result […] We compare TestFul with the TSE of Mouchawrab et. Al. C) The result is equal to or better than a result that was placed into a database […] TestFul found a bug in the Java Collections Framework H) The result holds its own or wins a regulated competition involving human contestants […] TestFul produces better results than human being Reference: Matteo Miraz; 2010; Evolutionary Testing of Stateful Systems: a Holistic Approach; Ph.D. thesis; Politecnico di Milano