Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.