Font Size: a A A

Test Case Prioritization For Aspect-Oriented Software

Posted on:2010-04-11Degree:MasterType:Thesis
Country:ChinaCandidate:C K MaFull Text:PDF
GTID:2178360275470222Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
. In order to improve the cost-effectiveness of software test activities, the test case prioritization technique has been proposed. This kind of approach ranks test cases execution order so as to detect fault as early as possible. It is proved by empirical studies that test case prioritization provides a way to find more bugs under resource constraint condition. Because faults are revealed earlier, engineers have more time to fix these bugs and thus improve the reliability of the system quickly.Aspect-Oriented Programming (AOP) is a brand new methodology of programming. By extracting crosscutting concerns and encapsulating them into separate programming module AOP overcomes the problem of code tangling in Object-Oriented Programming (OOP). Benefits from this methodology of programming, software developers can focus on the implementation of business concerns and crosscutting concerns respectively. However, there is not a test case prioritization approach proposed for AOP. Meanwhile, the existing techniques dose not handles the features of AOP and thus cannot be applied to AO software testing. Aiming to improve the cost-effectiveness of AO software testing, in this thesis, we propose an Enhanced Call Graph (ECG) representation for AOP and an algorithm for building the ECG. Based on analysis of ECG, we present a test case prioritization approach for AOP. First, we evaluate the Testing-importance (TIM) for modules by considering from fault proneness and fault severity. And then, we get the coverage information for test cases by control flow analysis. At last, the priority of test case is determined according to the TIM value of modules covered by them. In order to verify the effect of our approach in terms of improving the rate of severe fault detection for AOP, we design and implement a tool called APROS which can be used to prioritize the test cases of AspectJ programs and the test cases of Java programs. Other than traditional prioritization technique, APROS does not rely on the data gained from test cases execution or software evolution. Therefore, APROS can be applied to both regression testing and non-regression testing. The experimental result suggests that APROS effectively improve the rate of severe faults detection and fixing those faults revealed earlier can reduce impact scope of the faults in system at a fast rate.
Keywords/Search Tags:test case prioritization, AOP, call graph, static analysis of program
PDF Full Text Request
Related items