Software Testing: A Research Travelogue

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

1 Automating the Generation of Mutation Tests Mike Papadakis and Nicos Malevris Department of Informatics Athens University of Economics and Business.
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Testing Coverage Test case
Local Search Algorithms Chapter 4. Outline Hill-climbing search Simulated annealing search Local beam search Genetic algorithms Ant Colony Optimization.
Symbolic Execution with Mixed Concrete-Symbolic Solving
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.
Gizem ALAGÖZ. Simulation optimization has received considerable attention from both simulation researchers and practitioners. Both continuous and discrete.
Spie98-1 Evolutionary Algorithms, Simulated Annealing, and Tabu Search: A Comparative Study H. Youssef, S. M. Sait, H. Adiche
A GENETIC ALGORITHM APPROACH TO SPACE LAYOUT PLANNING OPTIMIZATION Hoda Homayouni.
Fuzzing Dan Fleck CS 469: Security Engineering Sources:
Design Space Exploration using Time and Resource Duality with the Ant Colony Optimization Gang Wang, Wenrui Gong, Brian DeRenzi and Ryan Kastner Dept.
Applications of Evolutionary Computation in the Analysis of Factors Influencing the Evolution of Human Language Alex Decker.
Artificial Intelligence Genetic Algorithms and Applications of Genetic Algorithms in Compilers Prasad A. Kulkarni.
Improving Network Applications Security: a New Heuristic to Generate Stress Testing Data Presented by Conrad Pack Del Grosso et al.
D Nagesh Kumar, IIScOptimization Methods: M1L4 1 Introduction and Basic Concepts Classical and Advanced Techniques for Optimization.
Revolutionizing the Field of Grey-box Attack Surface Testing with Evolutionary Fuzzing Department of Computer Science & Engineering College of Engineering.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Platform Support for Developing Analysis and Testing Plugins Shauvik Roy Choudhary with Jeremy Duvall, Wei Jin, Dan Zhao, Alessandro Orso School of Computer.
Approaches of Digital design part 2 Digital Architecture AE 461 course
Cristian Urs and Ben Riveira. Introduction The article we chose focuses on improving the performance of Genetic Algorithms by: Use of predictive models.
TestFul: Automatic Unit-Test Generation for Java Classes Matteo Miraz, Pier Luca Lanzi DEI – Politecnico di Milano (Italy)
1 Software Reliability Assurance for Real-time Systems Joel Henry, Ph.D. University of Montana NASA Software Assurance Symposium September 4, 2002.
Fuzzy Genetic Algorithm
AUSTIN: A TOOL FOR SEARCH BASED SOFTWARE TESTING And its Evaluation on Deployed Automotive Systems Kiran Lakhotia, Mark Harman and Hamilton Gross in.
CSV 889: Concurrent Software Verification Subodh Sharma Indian Institute of Technology Delhi Symbolic Execution.
1 EECS 6083 Compiler Theory Based on slides from text web site: Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved.
For Wednesday Read chapter 6, sections 1-3 Homework: –Chapter 4, exercise 1.
For Wednesday Read chapter 5, sections 1-4 Homework: –Chapter 3, exercise 23. Then do the exercise again, but use greedy heuristic search instead of A*
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T.
Optimization Problems
Software Engineering Saeed Akhtar The University of Lahore.
Improving Structural Testing of Object-Oriented Programs via Integrating Evolutionary Testing and Symbolic Execution Kobi Inkumsah Tao Xie Dept. of Computer.
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Week 6 MondayTuesdayWednesdayThursdayFriday Testing III Reading due Group meetings Testing IVSection ZFR due ZFR demos Progress report due Readings out.
Resource Optimization for Publisher/Subscriber-based Avionics Systems Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee.
Wishnu Prasetya Software Testing URL:
1 Genetic Algorithms Contents 1. Basic Concepts 2. Algorithm 3. Practical considerations.
Optimization Problems
Evolutionary Algorithms Jim Whitehead
Extending wireless Ad-Hoc
Meta-heuristics Introduction - Fabien Tricoire
Using Execution Feedback in Test Case Generation
MultiRefactor: Automated Refactoring To Improve Software Quality
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
A Model Based Path Selection Testing on Mobile Apps using TABU Monitored Hybrid Local Search Optimizations Main Paper Akhil Yendluri.
CSCI1600: Embedded and Real Time Software
Embedded Software Quality Integration and Testing Techniques
Sherri Sparks, Shawn Embleton, Ryan Cunningham, and Cliff Zou
Optimization Problems
Metaheuristic methods and their applications. Optimization Problems Strategies for Solving NP-hard Optimization Problems What is a Metaheuristic Method?
Multi-Objective Optimization
“Hard” Optimization Problems
Sherri Sparks, Shawn Embleton, Ryan Cunningham, and Cliff Zou
Software Verification and Validation
Software Verification and Validation
Aiman H. El-Maleh Sadiq M. Sait Syed Z. Shazli
Sherri Sparks, Shawn Embleton, Ryan Cunningham, and Cliff Zou
SASS: Self-Adaptation using Stochastic Search
Realizing Closed-loop, Online Tuning and Control for Configurable-Cache Embedded Systems: Progress and Challenges Islam S. Badreldin*, Ann Gordon-Ross*,
Software Verification and Validation
Sherri Sparks, Shawn Embleton, Ryan Cunningham, and Cliff Zou
Lecture 4. Niching and Speciation (1)
Modeling and Analysis Tutorial
FOT: A Versatile, Configurable, Extensible Fuzzing Framework
CSCI1600: Embedded and Real Time Software
Area Coverage Problem Optimization by (local) Search
Presentation transcript:

Software Testing: A Research Travelogue Alessandro Orso, Gregg Rothermel

Automated Test Input Generation Symbolic Execution Search-based testing Random and fuzzing testing Combinations

Symbolic Execution Static Symbolic Execution General Formula 1970 by King General Formula …

Symbolic Execution Reason of success Increase in computational power Z3 , Yices , SAT4J Different variants of symbolic execution KLEE DART CUTE Pex

Symbolic Execution Dynamic Symbolic Execution 2000 DART/CUTE/Pex Idea of performing symbolic execution that follows a specific path

Symbolic Execution Unclear for lasting practical impact Inherent limitations in the presence of highly structured inputs Interact with external libraries Large complex programs Need for an oracle

Symbolic Execution White-box fuzzing Sage

Search-based Testing Surveys on use of SBST focusing on Software engineering Comprehensive analysis and review of trends Trends, techniques and applications

Search-based Testing Search-based techniques target optimization problems finding the smallest set of test cases that cover all the branches Using meta-heuristic search-based optimization techniques

Search-based Testing Large range to which it has been applied Structural testing, model-based testing, mutation testing, temporal testing, exception testing, configuration and interaction testing, stress testing, integration testing etc. Comprehensive analysis and review of trends

Search-based Testing Come in many forms Genetic algorithms Simulated annealing Hill climbing Scatter search Partical swarm optimization Tabu search

Search-based Testing Challenges and opportunities for SBST Challenges An orchestrated survey of methodologies for automated software test case generation Challenges Oracle Combining SBST with SE Opportunities Co-evolutionary computation, involving multiple populations, possibly under different fitness functions. Predator-prey relationships Hyper-heuristic software testing, unite different software activities that utilize SBST

Search-based Testing Empirical studies Shortcoming Search-Based Test Case Generation Shortcoming Focusing on unit testing and structural coverage Limited evidence of applicability for other testing phases and types of coverage

Random Testing Improve the random input generation process Proprotional sampling strategy JCrasher Manage the often overwhelmingly large number of test inputs generated Taming Compiler fuzzers

Random Testing One example ART Studies to show the advantages High overhead and not yet been extended to handle complex input formats To address problem, techniques are proposed based on mirroring, forgetting, and Voronoi tessellation

Random Testing Representative and well-known examples Jcrasher Randoop Follow up that combines test input generation and static analysis[1][2] Randoop Incorporating feedback into the process De-facto random-testing tool for Java

Random Testing Additional approaches Swarm testing Swarm Attempts to increase the diversity of randomly-generated test inputs

Random Testing Combination with DSE to generate input that can be used to seed symbolic analysis

Combined Techniques Combination of static verification and dynamic verification(i.e., testing) Yogi project Testing, under-approximates program behaviors Static verification, complete but over-approximates program behavior

Combined Techniques Combining SE and SBST Complementary nature of SE and SBST Using SE as an additional genetic operator[1][2] Alternating between SE and SBST Using fitness to select which path to explore in SE Using symbolic execution to compute fitness values in SBST