Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Testing: A Research Travelogue

Similar presentations


Presentation on theme: "Software Testing: A Research Travelogue"— Presentation transcript:

1 Software Testing: A Research Travelogue
Alessandro Orso, Gregg Rothermel

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

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

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

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

6 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

7 Symbolic Execution White-box fuzzing Sage

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

9 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

10 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

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

12 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

13 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

14 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

15 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

16 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

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

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

19 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

20 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


Download ppt "Software Testing: A Research Travelogue"

Similar presentations


Ads by Google