The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Rounding errors are introduced pervasively when using floating-point arithmetic to approximate real arithmetic. The accumulation or catastrophic cancellation of rounding errors in numerical programs may produce high inaccuracy results, which can cause serious software failures once being triggered. High inaccuracies are known hard to debug and fix manually for developers. Hence, the automated techniques...
Developers write unit tests together with programcode, and then maintain these tests as the program evolves. Sincewriting good tests can be difficult and tedious, unit tests canalso be generated automatically. However, maintaining these tests(e.g., when APIs change, or, when tests represent outdated andchanged behavior), is still a manual task. Because automaticallygenerated tests may have no clear...
Current automatic program repair techniques often produce overfitting patches. Such a patch passes the test suite but does not actually repair the bug. In this paper, we propose two techniques to address the patch overfitting problem. First, we propose an automatic repair technique that performs syntactic code search to leverage bug-related code from a code database to produce patches that are likely...
Since debugging is a time-consuming activity, automated program repair tools such as GenProg have garnered interest. A recent study revealed that the majority of GenProg repairs avoid bugs simply by deleting functionality. We found that SPR, a state-of-the-art repair tool proposed in 2015, still deletes functionality in their many "plausible" repairs. Unlike generate-and-validate systems...
Good compiler diagnostic warnings facilitate software development as they indicate likely programming mistakes or code smells. However, due to compiler bugs, the warnings may be erroneous, superfluous or missing, even for mature production compilers like GCC and Clang. In this paper, we (1) propose the first randomized differential testing technique to detect compiler warning defects and (2) describe...
Passive Optical Networks (PONs) are widely regarded as the best suited technology for deploying broadband access networks. As new services emerge, the dependability of PONs has become critical as end users expect access networks to be highly reliable. Although PONs dependability regarding hardware failures has been extensively studied, very little attention has been drawn to software failures in PONs...
Refactoring legacy code can be a major impediment for teams transforming to agile due to the high cost of manual regression testing of frequent (typically 2-week) releases. Also, attempts to implement automated tests may involve technical and cost issues. In this report we present a new and more systematic approach to refactoring we have found to be successful for refactoring legacy code that has...
Modern integrated development environments (IDEs) support one live codebase at a given moment, which imposes limitations to software development. For example, with only one codebase, the developer must pause development while running tests, or a static analysis, as any edit could invalidate the ongoing computation. Were the IDEs supported a copy of developer's codebase, the analyses could have run...
Short release duration -- the time from starting development until it delivers measurable value (i.e., paying customers adopt an upgrade) -- is an implied goal of agile methods. Release duration incorporates the expensive parts of the value chain: build, test, deploy and sell (but not exploratory design, for example). Release duration correlates with technical debt. Attempting to reduce release duration...
Many of the problems found in the uses of exception handling are caused by the lack of testing and a priori design of the exceptional behavior. As a consequence, exceptions flow in unforeseen ways during the execution of a software system, causing a negative impact on reliability. This paper presents a new agile approach to test the exceptional behavior of a system. It supports developers in checking...
Software ships with known bugs because it is expensive to pinpoint and fix the bug exposed by a failing test. To reduce the cost of bug identification, we locate expressions that are likely causes of bugs and thus candidates for repair. Our symbolic method approximates an ideal approach to fixing bugs mechanically, which is to search the space of all edits to the program for one that repairs the failing...
Billions of dollars are spent every year for building and maintaining software. To reduce these costs we must identify the key factors that lead to better software and more productive development. One such key factor, and the focus of our paper, is the choice of programming language. Existing studies that analyze the impact of choice of programming language suffer from several deficiencies with respect...
Unfortunately, the stereotype of a software engineer or computer scientist is one who spends his whole day in a cubicle programming. Other aspects of software engineering, such as holding meetings with the customer and users to gather requirements, documenting requirements, design, and testing are not talked about. Many middle and high school students believe this stereotype and become disinterested...
Software maintenance is a complex and life long process due to unstructured code, team morale, poor visibility of the project, lack of communication techniques and lack of proper test suite. On the other hand extreme programming is an existing process of software development with its challenges practices. In this paper, we propose an iterative maintenance life cycle using extreme programming practices...
This paper describes a methodology for building a reliable internet core router that considers the vulnerability of its electronic components to single event upset (SEU). It begins with a set of meaningful system level metrics that can be related to product reliability requirements. A specification is then defined that can be effectively used during the system architecture, silicon and software design...
An organizational level test strategy needs to incorporate metrics to make the testing activities visible and available to process improvements. The majority of testing measurements that are done are based on faults found in the test execution phase. In contrast, this paper investigates metrics to support software test planning and test design processes. We have assembled metrics in these two process...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.