Please use this identifier to cite or link to this item:
Title: RegressionMaple: regression coverage of concurrent testing on validating bug-fixing
Other Titles: Toward a methodology to expose partially fixed concurrency bugs in modified multithreaded programs
Authors: Tsui, To (徐韜)
Department: Department of Computer Science
Issue Date: 2014
Course: CS4514 Project
Programme: Bachelor of Science (Honours) in Computer Science
Instructor: Dr. Chan, Wing Kwong Ricky
Award: Won the Merit Award in the 11th Final Year Project Competition organised by the IEEE (HK) Computational Intelligence Chapter.
Subjects: Maple (Computer file)
Computer software -- Testing.
Parallel processing (Electronic computers)
Description: Conference paper developed from this OAPS paper: Tsui, T., Wu, S., & Chan, W. K. (2014). Toward a methodology to expose partially fixed concurrency bugs in modified multithreaded programs. In Proceedings of the International Workshop on Innovative Software Development Methodologies and Practices (pp. 49-56). ACM. doi: 10.1145/2666581.2666592.
Citation: Tsui, T. (2014). RegressionMaple: regression coverage of concurrent testing on validating bug-fixing (Outstanding Academic Papers by Students (OAPS)). Retrieved from City University of Hong Kong, CityU Institutional Repository.
Type: Research project
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 - concurrency bug. Concurrency bug is an error caused by incorrect 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, via shared memory). Maple is one of several software of automatic concurrency bugs detection, successfully applying dynamic analysis to reveal concurrency 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 developers to test their concurrent software. While Maple is good at detecting concurrency bugs with respect to the same input, it is not without its flaws. This project has observed two situations, in which Maple is possible to be improved. The two situations are lack of accurate coverage across versions and inability of validation on concurrency 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 are often under stress to release a new version. Second, once a concurrency bug is exposed by Maple, developers will try to resolve it. However, after suspicious codes were modified, the developers have no information to determine if the concurrency bug is completely fixed or not. In the current approach, they can only retest the possible interleaving schedules but without any target in mind. To this end, this project proposes a new regression coverage driven testing tool - RegressionMaple. It applies the concept of regression testing (with assumption of similar execution context) to link testing information across two versions of a program, thus improves Maple with respect to the above two problems.
Appears in Collections:OAPS - Dept. of Computer Science
Student Works With External Awards

Files in This Item:
File Description SizeFormat 
fulltext.html153 BHTMLView/Open
authorpage-Tsui_To.html159 BHTMLView/Open
conference_paper.html156 BHTMLView/Open

Items in Digital CityU Collections are protected by copyright, with all rights reserved, unless otherwise indicated.