Contact Information | Research
Contact Information

Yoonki Song hangul

Research

Projects

Publications

  • 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.
Visited Countries