Open Access. Powered by Scholars. Published by Universities.®

Computer Engineering Commons

Open Access. Powered by Scholars. Published by Universities.®

Computer Science and Engineering: Theses, Dissertations, and Student Research

Software Engineering

Articles 1 - 4 of 4

Full-Text Articles in Computer Engineering

A Comprehensive Framework To Replicate Process-Level Concurrency Faults, Supat Rattanasuksun Nov 2018

A Comprehensive Framework To Replicate Process-Level Concurrency Faults, Supat Rattanasuksun

Computer Science and Engineering: Theses, Dissertations, and Student Research

Concurrency faults are one of the most damaging types of faults that can affect the dependability of today’s computer systems. Currently, concurrency faults such as process-level races, order violations, and atomicity violations represent the largest class of faults that has been reported to various Linux bug repositories. Clearly, existing approaches for testing such faults during software development processes are not adequate as these faults escape in-house testing efforts and are discovered during deployment and must be debugged.

The main reason concurrency faults are hard to test is because the conditions that allow these to occur can be difficult to ...


Assessing The Quality And Stability Of Recommender Systems, David Shriver May 2018

Assessing The Quality And Stability Of Recommender Systems, David Shriver

Computer Science and Engineering: Theses, Dissertations, and Student Research

Recommender systems help users to find products they may like when lacking personal experience or facing an overwhelmingly large set of items. However, assessing the quality and stability of recommender systems can present challenges for developers. First, traditional accuracy metrics, such as precision and recall, for validating the quality of recommendations, offer only a coarse, one-dimensional view of the system performance. Second, assessing the stability of a recommender systems requires generating new data and retraining a system, which is expensive. In this work, we present two new approaches for assessing the quality and stability of recommender systems to address these ...


Improving The Efficiency Of Ci With Uber-Commits, Matias Waterloo Aug 2016

Improving The Efficiency Of Ci With Uber-Commits, Matias Waterloo

Computer Science and Engineering: Theses, Dissertations, and Student Research

Continuous Integration (CI) is a software engineering practice where developers break their coding tasks into small changes that can be integrated with the shared code repository on a frequent basis. The primary objectives of CI are to avoid integration problems caused by large change sets and to provide prompt developer feedback so that if a problem is detected, it can be easily and quickly resolved. In this thesis, we argue that while keeping changes small and integrating often is a wise approach for developers, the CI server may be more efficient operating on a different scale. In our approach, the ...


Directed Test Suite Augmentation, Zhihong Xu Jan 2013

Directed Test Suite Augmentation, Zhihong Xu

Computer Science and Engineering: Theses, Dissertations, and Student Research

Test suite augmentation techniques are used in regression testing to identify code elements affected by changes and to generate test cases to cover those elements. Whereas methods and techniques to find affected elements have been extensively researched in regression testing, the problem of generating new test cases to cover these elements cost-effectively has rarely been studied. We believe that reusing existing test cases will help us achieve this task. This research develops test suite augmentation techniques that reuse existing test cases to automatically generate new test cases to cost-effectively cover affected elements. We begin by using two dynamic test case ...