Results 1 - 10
of
17
Evolutionary testing of classes
- In: ISSTA ’04: Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
, 2004
"... Object oriented programming promotes reuse of classes in multiple contexts. Thus, a class is designed and imple-mented with several usage scenarios in mind, some of which possibly open and generic. Correspondingly, the unit test-ing of classes cannot make too strict assumptions on the actual method ..."
Abstract
-
Cited by 146 (2 self)
- Add to MetaCart
(Show Context)
Object oriented programming promotes reuse of classes in multiple contexts. Thus, a class is designed and imple-mented with several usage scenarios in mind, some of which possibly open and generic. Correspondingly, the unit test-ing of classes cannot make too strict assumptions on the actual method invocation sequences, since these vary from application to application. In this paper, a genetic algorithm is exploited to automat-ically produce test cases for the unit testing of classes in a generic usage scenario. Test cases are described by chromo-somes, which include information on which objects to create, which methods to invoke and which values to use as inputs. The proposed algorithm mutates them with the aim of max-imizing a given coverage measure. The implementation of the algorithm and its application to classes from the Java standard library are described.
A Survey on Automatic Test Data Generation
, 1999
"... In order to reduce the high cost of manual software testing and at the same time to increase the reliability of the testing processes researchers and practitioners have tried to automate it. One of the most important components in a testing environment is an automatic test data generator --- a syste ..."
Abstract
-
Cited by 57 (1 self)
- Add to MetaCart
In order to reduce the high cost of manual software testing and at the same time to increase the reliability of the testing processes researchers and practitioners have tried to automate it. One of the most important components in a testing environment is an automatic test data generator --- a system that automatically generates test data for a given program. Through the years several attempts in automatic test data generations have been made. The focus of this article is program-based generation, where the generation starts from the actual programs. Thus, techniques such as GUI-based and syntax-based test data generation are not an issue in this article.
PathCrawler: automatic generation of path tests by combining static and dynamic analysis
- In: Proc. European Dependable Computing Conference. Volume 3463 of LNCS (2005) 281–292
, 2005
"... Abstract. We present the PathCrawler prototype tool for the automatic generation of test-cases satisfying the rigorous all-paths criterion, with a user-defined limit on the number of loop iterations in the covered paths. The prototype treats C code and we illustrate the test-case generation process ..."
Abstract
-
Cited by 52 (4 self)
- Add to MetaCart
(Show Context)
Abstract. We present the PathCrawler prototype tool for the automatic generation of test-cases satisfying the rigorous all-paths criterion, with a user-defined limit on the number of loop iterations in the covered paths. The prototype treats C code and we illustrate the test-case generation process on a representative example of a C function containing data-structures of variable dimensions, loops with variable numbers of iterations and many infeasible paths. PathCrawler is based on a novel combination of code instrumentation and constraint solving which makes it both efficient and open to extension. It suffers neither from the approximations and complexity of static analysis, nor from the number of executions demanded by the use of heuristic algorithms in function minimisation and the possibility that they fail to find a solution. We believe that it demonstrates the feasibility of rigorous and systematic testing of sequential programs coded in imperative languages. 1
On-the-fly generation of k-path tests for C functions
- In Proceedings of the 19th IEEE International Conference on Automated Software Engineering
, 2004
"... We present a method for the automatic generation of tests satisfying the all-paths criterion, with a user-defined limit, k, on the number of loop iterations in the covered paths. We have implemented a prototype for C code. We illustrate our approach on a representative example of a C function contai ..."
Abstract
-
Cited by 16 (2 self)
- Add to MetaCart
(Show Context)
We present a method for the automatic generation of tests satisfying the all-paths criterion, with a user-defined limit, k, on the number of loop iterations in the covered paths. We have implemented a prototype for C code. We illustrate our approach on a representative example of a C function containing data-structures of variable dimensions, loops with variable numbers of iterations and many infeasible paths. We explain why our method is efficient enough to scale up to the unit testing of realistic programs. It is flexible enough to take into account certain specifications of the tested code. This is why we believe that it could become the cornerstone of a fully automatic grey-box testing process, based on the novel combination of code instrumentation and constraint solving described here. 1.
Generation of All-Paths Unit Test with Function Calls
- Software Testing, Verification, and Validation, 2008 1st International Conference, Digital Object Identifier: 10.1109/ICST.2008.35, Page(s): 32 – 41, 2008. IJCA TM : www.ijcaonline.org
"... Structural testing is usually restricted to unit tests and based on some clear definition of source code coverage. In particular, the all-paths criterion, which requires at least one test-case per feasible path of the function under test, is recognised as offering a high level of software reliabil-i ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
(Show Context)
Structural testing is usually restricted to unit tests and based on some clear definition of source code coverage. In particular, the all-paths criterion, which requires at least one test-case per feasible path of the function under test, is recognised as offering a high level of software reliabil-ity. This paper deals with the difficulties of using structural unit testing to test functions which call other functions. To limit the resulting combinatorial explosion in the number of paths, we choose to abstract the called functions by their specification. We incorporate the functional information on the called functions within the structural information on the function under test, given as a control flow graph (CFG). This representation combining functional and structural de-scriptions may be viewed as an extension of the classic CFG and allows us to characterise test selection criteria ensur-ing the coverage of the source code of the function under test. Two new criteria will be proposed. The first criterion corresponds to the coverage of all the paths of this new rep-resentation, including all the paths arising from the func-tional description of the called functions. The second cri-terion covers all the feasible paths of the function under test only. We describe how we automate test-data genera-tion with respect to such grey-box (combinations of black-box and white-box) test selection strategies, and we apply the resulting extension of our PathCrawler tool to examples coded in the C language. 1
Search-based software testing and complex test data generation in a dynamic programming language
, 2008
"... Manually creating test cases is time consuming and error prone. Search-based software testing (SBST) can help automate this process and thus to reduce time and effort and increase quality by automatically generating relevant test cases. Previous research have mainly focused on static programming lan ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Manually creating test cases is time consuming and error prone. Search-based software testing (SBST) can help automate this process and thus to reduce time and effort and increase quality by automatically generating relevant test cases. Previous research have mainly focused on static programming languages with simple test data inputs such as numbers. In this work we present an approach for search-based software testing for dynamic programming languages that can generate test scenarios and both simple and more complex test data. This approach is implemented as a tool in and for the dynamic programming language Ruby. It uses an evolutionary algorithm to search for tests that gives structural code coverage. We have evaluated the system in an experiment on a number of code examples that differ in complexity and the type of input data they require. We compare our system with the results obtained by a random test case generator. The experiment shows, that the presented approach can compete with random testing and, for many situations, quicker finds tests and data that gives a higher structural code coverage.
Heuristic search-based approach for automated test data generation: a survey
- International Journal of Bio-Inspired Computation
, 2013
"... automated test data generation: A survey ..."
(Show Context)
EVOLUTIONARY COMPUTING DRIVEN SEARCH BASED SOFTWARE TESTING AND CORRECTION
, 2012
"... Evolutionary computing driven search based software testing and correction ..."
Abstract
- Add to MetaCart
(Show Context)
Evolutionary computing driven search based software testing and correction