Abstract

This paper investigates the problem of prime and test paths generation, which is an important problem in ensuring path coverage in software testing. Most existing methods for prime/test paths generation have little success in generating the set of all prime/test paths of structurally complex programs with high Npath complexity. This paper puts forward two novel methods for the generation of prime and test paths of highly complex programs, namely a vertex-based algorithm and a compositional method. The proposed vertex-based method enables a time-efficient approach for the generation of all prime paths, and the compositional method provides a highly time and space-efficient method for the generation of prime and test paths in cyclic control flow graphs with extremely large Npath complexity. We also implement the proposed algorithms as a software toolset for the generation of prime and test paths. Our experimental results on a set of complex programs indicate that the proposed approaches significantly outperform existing methods, especially for large and structurally complex programs.

Highlights

  • Prime Paths (PPs) generation is an important problem in software testing as PPs subsume other structural testing criteria such as edge and branch coverage as well as enabling test data generation through generating Test Paths (TPs)

  • In PPs generation, researchers [3], [4], [9] consider the Control Flow Graph (CFG) of the Program Under Test (PUT), where each node/vertex captures a block of assignments often ending in a conditional statement, and each arc (b1, b2) represents the transfer of control from a block b1 to another block b2

  • This paper presents a compositional method for PPs/TPs generation in a highly time and space-efficient fashion that significantly outperforms existing methods

Read more

Summary

INTRODUCTION

Prime Paths (PPs) generation is an important problem in software testing as PPs subsume other structural testing criteria such as edge and branch coverage as well as enabling test data generation through generating Test Paths (TPs). Most existing methods for PPs/TPs generation have had little success in developing algorithms and tools that can generate PPs/TPs in a highly time/space efficient fashion for complex and large programs. This paper presents a compositional method for PPs/TPs generation in a highly time and space-efficient fashion that significantly outperforms existing methods. The proposed vertex-based algorithm is more time-efficient than Ammann and Offutt’s algorithm [3], it is less space efficient due to the cumulative propagation of partial paths in the lists associated to vertices To manage this space inefficiency, we prune the vertex lists after each update, and in a modular fashion, apply our vertex-based algorithm on individual SCCs. For each SCC, we generate different types of PPs (e.g., PPs ending in exit vertices of an SCC), which we use in the merging phase of the proposed method.

PRELIMINARIES
A COMPOSITIONAL METHOD FOR PRIME PATHS GENERATION
TEST PATHS GENERATION
Findings
VIII. CONCLUSION AND FUTURE WORK
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call