Please use this identifier to cite or link to this item:
|Title:||RegressionMaple: regression coverage of concurrent testing on validating bug-fixing|
|Department:||Department of Computer Science|
|Supervisor:||Supervisor: Dr. Chan, Wing Kwong Ricky; First Reader: Dr. Wang, Jiying; Second Reader: Dr. Yu, Yuen Tak|
|Abstract:||Multicore hardware makes performance faster. With the pervasiveness of software and hardware support, concurrent computing is widely applied. While enjoying its benefits, there is also a new challenge – concurrent bug. Concurrent bug is a fault caused by thread interleavings. In concurrent computing, threads are interleaved with each other to simulate as executing in parallel. But, in fact, threads are executed one by one in a small time slice, and communicate with each other (for example, by shared memory). Maple is one of several automatic concurrent bugs’ detection software successfully applying dynamic analysis to reveal bugs such as data race and deadlock. In addition, it generates histories of tested and failed-to-test interleaving schedules. It gives a progressive method for developer to test their software. While Maple is good at detecting concurrent bugs in an input, it is not without its flaws. This project has observed two situations of Maple that are possible to be improved. The two situations are lack of accurate coverage across version and inability to va lidating concurrent bug-fixing. First, Maple treats versions of a program as totally different programs. It requires a full set of retest processes on every version. It is clearly a time consuming process, as developers and testers often under stress of new version release. Second, once a concurrent bug is exposed by Maple, developers will try to resolve it. However, after suspicious codes were modified, the developers have no information to determine whether the bug is actually fixed. In the current approach, they can only retest all possible interleaving schedules. To this end, this project proposes a new regression coverage driven testing tool – RegressionMaple. It apply the concept of regression testing (with assumption of similar execution context) to linkage testing information from two versions of a program, thus improve Maple with respect to the above two problems.|
|Appears in Collections:||Computer Science - Undergraduate Final Year Projects |
Items in Digital CityU Collections are protected by copyright, with all rights reserved, unless otherwise indicated.