Font Size: a A A

Research On Application Of Mutation Testing

Posted on:2011-08-30Degree:MasterType:Thesis
Country:ChinaCandidate:L L MaoFull Text:PDF
GTID:2178360308955376Subject:Computer applications
Abstract/Summary:PDF Full Text Request
With the rapid development and universal application of computer technology, the demand for high quality software is on the increase. How to develop high quality software needs to be urgently resovled by people engaged in software industry.Software testing is an important mean and method to ensure software quality. Software testing could be simply classified into two categories, one is static testing, the other is dynamic testing. Static testing is to analyze the program statically according to some special syntax and sematics but not running the program. Dynamic testing checks the dynamic behaviors and running results of program.Mutation testing is a kind of dynamic testing, it could simulate the defects of the program to be tested, and could find out the test data that detect the faults. Mutants closely resemble real faults, but differ with hand-seeded faults. Hand-seeded faults are harder to detect than real faults. Mutation testing not only could be used to reveal the faults of software, but also assess the adequacy of software testing.We focus on two issues in this paper, one is detecting integer overflow vulnerability based on mutation, the other is utilizing mutation to assess test suite reduction based on dynamic invariant.Integer overflow vulnerability is a kind of common software vulnerabilities, there has been no effective way to detect integer overflow vulnerabilities. Because of lack of dynamic execution, static analysis can not determine the run-time distribution of memory, and may miss the detection of possible security issues; source code auditing is an expensive and time consuming process. In this paper, we propose some new mutation operators to force the generation of adequate test data set for integer overflow vulnerabilities. The results indicate that the proposed operators are effective for detecting integer overflow vulnerabilities. Test suite reduction is one of the key issues in software testing field. With the deepening of the software development process, it needs frequent regression testing, the size of test suite grows rapidly, but there is large number of redundant test cases in it. In this paper, we make use of mutation testing to assess test suite reduction based on dynamic invariant, prove its effectiveness. Meanwhile, according to Greedy Algorithm(GA), we also propose a new reduction algorithm to reduce its execution time. Experimental results show that test suite reduction base on dynamic invariant has a high reduction rate. Compared to Mutation Score(MS) before test suite reduction, MS after reduction has a very low decrease or even unchanged. Compared to basic algorithm, the Algorithm based on GA makes the execution time of reduction program has about 40% decrease, although size of test suite increases a few.
Keywords/Search Tags:Software Testing, Mutation Testing, Mutant, Integer Overflow Vulnerability, Test Suite Reduction, Dynamic Invariant, Regression Testing, Greedy Algorithm, Mutation Score
PDF Full Text Request
Related items