- Yoonki Song, Xiaoyin Wang, Tao Xie, Lu Zhang, and Hong Mei. JDF: Detecting Duplicate Bug Reports in Jazz.
In Proceedings of the 32nd International Conference on Software Engineering (ICSE 2010), Informal Demonstration, Cape Town, South Africa, May 2010.
Download: [Poster][BibTeX]
Abstract: Many open source software projects incorporate open bug repositories during development and maintenance so that both developers and users can report bugs that they have encountered, and call for more useful features or make suggestions for revision. Due to a project's reliance on a large number of users acting as testers, this form of testing is asynchronous and loosely organized. Also, the cost of users' searching the repository (to determine if their problem has been reported) is higher than the cost of creating a new bug report. As a result, some reported bugs are not new ones but actually duplicates of existing bugs. To avoid the same bug being addressed by multiple bug fixers, it is necessary for a triager to examine each submitted bug report to determine whether it is a duplicate. However, due to the large number of existing bug reports, it is challenging for the triager to examine all existing bug reports to detect duplication. This project is developing new techniques and tools to help detecting duplicate bug reports.
|
- Kyuyong Shin, Douglas S. Reeves, Injong Rhee, Yoonki Song.
WINNOWING : Protecting P2P Systems Against Pollution By Cooperative Index Filtering.
Technical Report #TR-2009-2, Department of Computer Science, North Carolina State University, 2009
Download: [PDF]
Abstract: Pollution (i.e., sharing corrupted files, or contaminating index information with bogus index records) is a de facto
problem in many file sharing Peer-to-Peer (P2P) systems. Since
pollution squanders network resources and frustrates users with
unprofitable downloads (due to polluted files) and unproductive
download requests (due to bogus index records), the future
success of file sharing based P2P systems is questionable unless
properly addressed.
In this paper, we propose a novel anti-pollution scheme called
winnowing. Winnowing aims to purify the index records (i.e. the
information on files or the publishers) held by each index node
in the system, so that download attempts based on these index
records are more likely to yield satisfactory results. To attain this
goal, index nodes block bogus publish messages by verifying the
publisher and the contents of the publish message upon receipt
of a keyword or content publish message. Second, index nodes
collect feedback from the users who have downloaded files via
their index records. The collected feedback is then processed and
reflected in the matching index record in a novel way. Careful
consideration is given to reducing the impact of false feedback,
and malicious index nodes.
Publish message verification has been implemented on top of
the latest eMule client and extensive data has been collected from
the Kad network, using this modified client. The measurement
results are summarized in this paper. The the findings from the
measurement study are incorporated into our analytical model,
which is used to investigate the performance of user feedback
mediation. The model demonstrates the effectiveness of user feedback mediation: fast convergence to near-optimal performance
and insensitivity to various pollution attacks including the attacks
which attempt to bypass winnowing.
|
- Yoonki Song, Suresh Thummalapenta, and Tao Xie.
UnitPlus: Assisting Developer Testing in Eclipse.
In Proceedings of the Eclipse Technology eXchange Workshop at OOPSLA 2007
(ETX 2007), Montreal, Canada, October 2007. (Best Student Paper Award)
Download: [PDF][BibTeX]
Abstract: In the software development life cycle, unit testing is an important phase that helps in early detection of bugs.
A unit test case consists of two parts: a test input, which is often a sequence of method calls,
and a test oracle, which is often in the form of assertions.
The effectiveness of a unit test case depends on its test input as well as its test oracle because the test oracle helps
in exposing bugs during the execution of the test input.
The task of writing effective test oracles is not trivial as this task requires domain or application knowledge and
also needs knowledge of the intricate details of the class under test. In addition, when developers write new unit test cases,
much test code (including code in test inputs or oracles) such as method argument values is the same as some previously written test code.
To assist developers in writing test code in unit test cases more efficiently, we have developed an Eclipse plugin for JUnit test cases,
called UnitPlus, that runs in the background and recommends test-code pieces for developers to choose (and revise when needed)
to put in test oracles or test inputs. The recommendation is based on static analysis of the class under test and already written unit test cases.
We have conducted a feasibility study for our UnitPlus plugin with four Java libraries to demonstrate its potential utility.
|