SIGSOFT Outstanding Doctoral Dissertation Award

2021 ◽  
Vol 46 (3) ◽  
pp. 17-18
Author(s):  
August Shi

As software becomes more important and ubiquitous, high quality software also becomes crucial. We depend on software developers who write the software to also maintain and improve its quality. When developers make changes to software, they rely on continuous integration [6] and regression testing [15] to check that changes do not break existing functionality. Continuous integration (CI) automates the process of building and testing software after every change. The process of running tests on the code after every change is known as regression testing. The goal of regression testing is to allow developers to detect and fix faults early on, ideally the moment the faults are introduced. Regression testing is widely used in both industry and open source, but regression testing suffers from two main challenges: (1) regression testing is costly, and (2) regression test suites often contain flaky tests.

2017 ◽  
Vol 7 (1.1) ◽  
pp. 133
Author(s):  
K. Hema Shankari ◽  
R. Thirumalai Selvi

The paper describes our methodology for optimizing regression testing that forms a major part of software maintenance. It necessitates the use of an automated testing tool, and we have selected Selenium, an open source tool. For simple projects, a formula is proposed that has been derived through data mining with Selenium. A genetic algorithm is added to this methodology for industry based projects, where the test cases are so large that they have to be grouped as Test Suites; this algorithm reconfigures Test suites in each cycle of regression testing. Commonly used APFD metric ignores fault severity but is included in our formula; this severity is determined by professional testers. The use of ANN to amend severity without manual intervention enhances the genetic algorithm. Tables presented in the paper are from both simple and industry projects. Comparison is made with IBM’S RFT, a proprietary tool for automated testing.


2017 ◽  
Author(s):  
Mujeeb A Basit ◽  
Krystal L Baldwin ◽  
Vaishnavi Kannan ◽  
Emily L Flahaven ◽  
Cassandra J Parks ◽  
...  

BACKGROUND Moving to electronic health records (EHRs) confers substantial benefits but risks unintended consequences. Modern EHRs consist of complex software code with extensive local configurability options, which can introduce defects. Defects in clinical decision support (CDS) tools are surprisingly common. Feasible approaches to prevent and detect defects in EHR configuration, including CDS tools, are needed. In complex software systems, use of test–driven development and automated regression testing promotes reliability. Test–driven development encourages modular, testable design and expanding regression test coverage. Automated regression test suites improve software quality, providing a “safety net” for future software modifications. Each automated acceptance test serves multiple purposes, as requirements (prior to build), acceptance testing (on completion of build), regression testing (once live), and “living” design documentation. Rapid-cycle development or “agile” methods are being successfully applied to CDS development. The agile practice of automated test–driven development is not widely adopted, perhaps because most EHR software code is vendor-developed. However, key CDS advisory configuration design decisions and rules stored in the EHR may prove amenable to automated testing as “executable requirements.” OBJECTIVE We aimed to establish feasibility of acceptance test–driven development of clinical decision support advisories in a commonly used EHR, using an open source automated acceptance testing framework (FitNesse). METHODS Acceptance tests were initially constructed as spreadsheet tables to facilitate clinical review. Each table specified one aspect of the CDS advisory’s expected behavior. Table contents were then imported into a test suite in FitNesse, which queried the EHR database to automate testing. Tests and corresponding CDS configuration were migrated together from the development environment to production, with tests becoming part of the production regression test suite. RESULTS We used test–driven development to construct a new CDS tool advising Emergency Department nurses to perform a swallowing assessment prior to administering oral medication to a patient with suspected stroke. Test tables specified desired behavior for (1) applicable clinical settings, (2) triggering action, (3) rule logic, (4) user interface, and (5) system actions in response to user input. Automated test suite results for the “executable requirements” are shown prior to building the CDS alert, during build, and after successful build. CONCLUSIONS Automated acceptance test–driven development and continuous regression testing of CDS configuration in a commercial EHR proves feasible with open source software. Automated test–driven development offers one potential contribution to achieving high-reliability EHR configuration. Vetting acceptance tests with clinicians elicits their input on crucial configuration details early during initial CDS design and iteratively during rapid-cycle optimization.


Author(s):  
Mahadevan Subramaniam ◽  
Parvathi Chundi

Retrieving relevant test cases is a recurring theme in software validation. We present an approach for cluster-based retrieval of test cases for software validation. The approach uses a probabilistic notion of coverage among line-based test profiles and can potentially discover groups of test cases executing a small number of unique lines. The distribution of lines across test profiles are analyzed to determine the number of clusters and generate a clustering structure without any additional user input. We also propose a novel and simple approach to identify test cases that are affected by software changes based on test profiles. It is shown that the clustering structures generated can be used to select affected tests economically to produce high quality regression test suites. The approach is applied to four unix utility programs from a popular testing benchmark. Our results show that the generated number of clusters and their average sizes closely track their estimates based on test profiles. The retrieval of affected tests using the clustering structure is economical and produces a good quality regression test suite.


Author(s):  
Vincent M. Lizzi

Schematron is a powerful, flexible, and user-friendly tool for validating and reporting on XML content. Developing a Schematron schema can involve a lot of testing to ensure that each Schematron rule works as expected. A robust test suite may contain multiple XML samples for every Schematron rule in order to test both passing and failing conditions. XSpec — an open source unit test and behavior-driven development framework for XSLT and XQuery — now has the ability to test Schematron. Tests for a Schematron can be described using XSpec test scenarios, and the tests can be run automatically by XSpec. The end result is a report showing which tests passed and which tests failed. The new support for Schematron testing in XSpec enables test-driven development for Schematron and automated regression testing for Schematron in a continuous integration environment.


Author(s):  
Varun Gupta ◽  
D. S. Chauhan ◽  
Kamlesh Dutta

Mobile software application development process must be matured enough to handle the challenges (especially market related) associated with the development of high quality mobile software development. Ever increasing number of both mobile users and mobile applications had presented software engineers with the challenge of satisfying billions of users with high quality software applications to be delivered within deadline and budgets. Always there had been a lot of pressure to develop complex software categorized by thousands of requirements, under resource constrained environment. Requirement prioritization is one of the activities undertaken by software engineer to deliver partial software product to its customers such that most important requirements are implemented in the earliest releases. During next releases some changed and pending requirements are implemented, an activity that generates ripple effects. Such ripple effects need to be tested by executing modified source code against test cases of previous releases (regression testing). Regression testing is a very effortful activity that requires a software tester to select test cases that have high fault detection capability, execute the modified code against selected test cases and performing debugging. This regression testing activity can be lowered to the maximum extend by considering dependencies between requirements during the time of requirement prioritization. Thus requirement prioritization will be carried out not only against aspects like cost, time, risks, business values etc but against dependencies also. The aim is to implement almost all dependent highest priority requirements in current release so that implementation of new requirements is unlikely to have ripple effects. Changes in requirements might not be related to variable usage and definition and might not involve a change in functionality. In such cases there is no need to select already executed test cases of previous versions. Module dependencies can lead to test case selections of previous versions if changes of requirement lead to ripple effects. This paper aims to implement highest priority requirements such that regression testing is performed to minimum thereby improving development process of mobile applications. The proposed technique had been successfully evaluated on Android based notification software application that meets the specification of Aakash tablets.


2005 ◽  
Vol 70 (5) ◽  
pp. 823-842 ◽  
Author(s):  
Daniel Stewart

Despite a fair amount of conjecture regarding the circumstances that lead to the generation of status orders, most of the previous literature in this area typically has studied the effects of social cues within a laboratory setting. This article analyzes the evolution of the status hierarchy within a large-scale, natural setting. The results of empirical analyses assessing a large online community of software developers show that in the process of status attainment, community members tend to evaluate a focal actor's reputation according to publicly available social references. Ironically, these same social references also work to constrain an actor's status mobility.


2021 ◽  
Author(s):  
Jason Hunter ◽  
Mark Thyer ◽  
Dmitri Kavetski ◽  
David McInerney

<p>Probabilistic predictions provide crucial information regarding the uncertainty of hydrological predictions, which are a key input for risk-based decision-making. However, they are often excluded from hydrological modelling applications because suitable probabilistic error models can be both challenging to construct and interpret, and the quality of results are often reliant on the objective function used to calibrate the hydrological model.</p><p>We present an open-source R-package and an online web application that achieves the following two aims. Firstly, these resources are easy-to-use and accessible, so that users need not have specialised knowledge in probabilistic modelling to apply them. Secondly, the probabilistic error model that we describe provides high-quality probabilistic predictions for a wide range of commonly-used hydrological objective functions, which it is only able to do by including a new innovation that resolves a long-standing issue relating to model assumptions that previously prevented this broad application.  </p><p>We demonstrate our methods by comparing our new probabilistic error model with an existing reference error model in an empirical case study that uses 54 perennial Australian catchments, the hydrological model GR4J, 8 common objective functions and 4 performance metrics (reliability, precision, volumetric bias and errors in the flow duration curve). The existing reference error model introduces additional flow dependencies into the residual error structure when it is used with most of the study objective functions, which in turn leads to poor-quality probabilistic predictions. In contrast, the new probabilistic error model achieves high-quality probabilistic predictions for all objective functions used in this case study.</p><p>The new probabilistic error model and the open-source software and web application aims to facilitate the adoption of probabilistic predictions in the hydrological modelling community, and to improve the quality of predictions and decisions that are made using those predictions. In particular, our methods can be used to achieve high-quality probabilistic predictions from hydrological models that are calibrated with a wide range of common objective functions.</p>


2014 ◽  
Vol 2014 ◽  
pp. 1-9 ◽  
Author(s):  
Ali M. Alakeel

Program assertions have been recognized as a supporting tool during software development, testing, and maintenance. Therefore, software developers place assertions within their code in positions that are considered to be error prone or that have the potential to lead to a software crash or failure. Similar to any other software, programs with assertions must be maintained. Depending on the type of modification applied to the modified program, assertions also might have to undergo some modifications. New assertions may also be introduced in the new version of the program, while some assertions can be kept the same. This paper presents a novel approach for test case prioritization during regression testing of programs that have assertions using fuzzy logic. The main objective of this approach is to prioritize the test cases according to their estimated potential in violating a given program assertion. To develop the proposed approach, we utilize fuzzy logic techniques to estimate the effectiveness of a given test case in violating an assertion based on the history of the test cases in previous testing operations. We have conducted a case study in which the proposed approach is applied to various programs, and the results are promising compared to untreated and randomly ordered test cases.


Micromachines ◽  
2021 ◽  
Vol 13 (1) ◽  
pp. 73
Author(s):  
Marina Garcia-Cardosa ◽  
Francisco-Javier Granados-Ortiz ◽  
Joaquín Ortega-Casanova

In recent years, additive manufacturing has gained importance in a wide range of research applications such as medicine, biotechnology, engineering, etc. It has become one of the most innovative and high-performance manufacturing technologies of the moment. This review aims to show and discuss the characteristics of different existing additive manufacturing technologies for the construction of micromixers, which are devices used to mix two or more fluids at microscale. The present manuscript discusses all the choices to be made throughout the printing life cycle of a micromixer in order to achieve a high-quality microdevice. Resolution, precision, materials, and price, amongst other relevant characteristics, are discussed and reviewed in detail for each printing technology. Key information, suggestions, and future prospects are provided for manufacturing of micromixing machines based on the results from this review.


Sign in / Sign up

Export Citation Format

Share Document