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.
Refactoring is widely used technique to enhance overall quality of an existing software system by changing its internal structure without modifying its external behavior. Although, it is difficult to implement the refactoring manually, it helps to reduce the defects in the existing software. Three main types of design defects are investigated in the current study namely blob, Spaghetti Code (SC) and...
Test case maintainability is an important concern, especially in open source and distributed development environments where projects typically have high contributor turn-over with varying backgrounds and experience, and where code ownership changes often. Similar to design patterns, patterns for unit testing promote maintainability quality attributes such as ease of diagnoses, modifiability, and comprehension...
We describe ongoing work to increase trust in resilient software systems. Automated software repair techniques promise to increase system resiliency, allowing missions to continue in the face of software defects. While anumber of program repair approaches have been proposed, the most scalableand applicable of those techniques can be the most difficult to trust. Using approximate solutions to the oracle...
Traditional reliability analysis and prediction are performed by utilizing observed failure or degradation data of test units or field observations. Reliability testing is usually performed to predict reliability or performed as acceptance testing or reliability demonstration test. Moreover, in many cases, reliability tests are performed repeatedly during the entire life of the system by testing different...
Software changes are inevitable during maintenance, Object-oriented software (OOS) in particular. For change not to be performed in the “dark”, software change impact analysis (SCIA) is used. However, due to the exponential growth in the size and complexity of OOS, classes are not without faults and the existing SCIA techniques only predict change impact set. This means that a change implemented on...
In the literature, most of Verification and Validation (V&V) papers deal with the design of a prognostics function and the verification and validation process necessary to put this function into service. Nevertheless, from an industrial point of view, even if this V&V procedure is successfully performed during the design and testing phase, it only considers data and knowledge available at...
Dependence clusters are (maximal) collections of mutually dependent source code entities according to some dependence relation. Their presence in software complicates many maintenance activities including testing, refactoring, and feature extraction. Despite several studies finding them common in production code, their formation, identification, and overall structure are not well understood, partly...
Software code review is a well-established software quality practice. Recently, Modern Code Review (MCR) has been widely adopted in both open source and proprietary projects. To evaluate the impact that characteristics of MCR practices have on software quality, this paper comparatively studies MCR practices in defective and clean source code files. We investigate defective files along two perspectives:...
Functional testing requires executing particular sequences of user actions. Test automation tools enable scripting user actions such that they can be repeated more easily. SELENIUM, for instance, enables testing web applications through scripts that interact with a web browser and assert properties about its observable state. However, little is known about how common such tests are in practice. We...
Testing the inherited features is clearly essential, however, the testing process can easily become very complex if features in the child classes are unnecessarily tested. In this paper, an object-oriented testing technique "Inheritance Testing in Classes" (ITC) is proposed that facilitates the testing of object-oriented code by incorporating procedures to support inheritance testing. ITC...
In this paper, we present a tool supported approach to perform efficient regression testing of web services. Functional and non-functional web service testing is done with the help of WSDL parsing and regression testing is performed by identifying the changes made thereafter. We identify, categorize, and capture the web service regression testing needs into three different categories, namely, changes...
Web applications evolve at a very fast rate, to accommodate new functionalities, presentation styles and interaction modes. The test artefacts developed during web testing must be evolved accordingly. Among the other causes, one critical reason why test cases need maintenance during web evolution is that the locators used to uniquely identify the page elements under test may fail or may behave incorrectly...
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...
Tests are central artifacts of software systems and play a crucial role for software quality. In system testing, a lot of test execution is performed manually using tests in natural language. However, those test cases are often poorly written without best practices in mind. This leads to tests which are not maintainable, hard to understand and inefficient to execute. For source code and unit tests,...
Designing automated tests is a challenging task. One important concern is how to design test fixtures, i.e. code that initializes and configures the system under test so that it is in an appropriate state for running particular automated tests. Test designers may have to choose between writing in-line fixture code for each test or refactor fixture code so that it can be reused for other tests. Deciding...
Maintaining traceability links between unit tests and tested classes is an important factor for effectively managing the development and evolution of software systems. Exploiting traceability links helps in program comprehension and maintenance by ensuring consistency between unit tests and tested classes during maintenance activities. Unfortunately, it is often the case that such links are not explicitly...
Building large software systems is difficult. Maintaining large systems is equally hard. Making post-release changes requires not only thorough understanding of the architecture of a software component about to be changed but also its dependencies and interactions with other components in the system. Testing such changes in reasonable time and at a reasonable cost is a difficult problem as infinitely...
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...
Testing is sometimes a forgotten component of system management, but it becomes very important in the realm of High Performance Computing (HPC) clusters. Many large-scale HPC cluster installations are one of a kind, with unknown issues and unexpected behaviors. First, the initial installation may uncover complex configuration interactions that are only apparent at scale; Stability becomes a critical...
Complex arguments need to be made regarding the benefit case for the sensor and algorithms available for health monitoring systems. A methodology to support these discussions is introduced based on functional failure information for the system. For the failures captured, incipient faults and their identifying effects are recorded. A corresponding algorithm and sensor input cost can be compared to...
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.