99,511 research outputs found
Delayed failure of software components using stochastic testing
The present research investigates the delayed failure of software components and addresses the problem that the conventional approach to software testing is unlikely to reveal this type of failure. Delayed failure is defined as a failure that occurs some time after the condition that causes the failure, and is a consequence of long-latency error propagation. This research seeks to close a perceived gap between academic research into software testing and industrial software testing practice by showing that stochastic testing can reveal delayed failure, and supporting this conclusion by a model of error propagation and failure that has been validated by experiment. The focus of the present research is on software components described by a request-response model. Within this conceptual framework, a Markov chain model of error propagation and failure is used to derive the expected delayed failure behaviour of software components. Results from an experimental study of delayed failure of DBMS software components MySQL and Oracle XE using stochastic testing with random generation of SQL are consistent with expected behaviour based on the Markov chain model. Metrics for failure delay and reliability are shown to depend on the characteristics of the chosen experimental profile. SQL mutation is used to generate negative as well as positive test profiles. There appear to be few systematic studies of delayed failure in the software engineering literature, and no studies of stochastic testing related to delayed failure of software components, or specifically to delayed failure of DBMS. Stochastic testing is shown to be an effective technique for revealing delayed failure of software components, as well as a suitable technique for reliability and robustness testing of software components. These results provide a deeper insight into the testing technique and should lead to further research. Stochastic testing could provide a dependability benchmark for component-based software engineering
Towards the detection and analysis of performance regression introducing code changes
In contemporary software development, developers commonly conduct regression testing to ensure that code changes do not affect software quality. Performance regression testing is an emerging research area from the regression testing domain in software engineering. Performance regression testing aims to maintain the system\u27s performance. Conducting performance regression testing is known to be expensive. It is also complex, considering the increase of committed code and developing team members working simultaneously. Many automated regression testing techniques have been proposed in prior research. However, challenges in the practice of locating and resolving performance regression still exist. Directing regression testing to the commit level provides solutions to locate the root cause, yet it hinders the development process. This thesis outlines motivations and solutions to address locating performance regression root causes. First, we challenge a deterministic state-of-art approach by expanding the testing data to find improvement areas. The deterministic approach was found to be limited in searching for the best regression-locating rule. Thus, we presented two stochastic approaches to develop models that can learn from historical commits. The goal of the first stochastic approach is to view the research problem as a search-based optimization problem seeking to reach the highest detection rate. We are applying different multi-objective evolutionary algorithms and conducting a comparison between them. This thesis also investigates whether simplifying the search space by combining objectives would achieve comparative results. The second stochastic approach addresses the severity of class imbalance any system could have since code changes introducing regression are rare but costly. We formulate the identification of problematic commits that introduce performance regression as a binary classification problem that handles class imbalance. Further, the thesis provides an exploratory study on the challenges developers face in resolving performance regression. The study is based on the questions posted on a technical form directed to performance regression. We collected around 2k questions discussing the regression of software execution time, and all were manually analyzed. The study resulted in a categorization of the challenges. We also discussed the difficulty level of performance regression issues within the development community. This study provides insights to help developers during the software design and implementation to avoid regression causes
TROM: A Testing-based Method for Finding Transcriptomic Similarity of Biological Samples
Comparative transcriptomics has gained increasing popularity in genomic
research thanks to the development of high-throughput technologies including
microarray and next-generation RNA sequencing that have generated numerous
transcriptomic data. An important question is to understand the conservation
and differentiation of biological processes in different species. We propose a
testing-based method TROM (Transcriptome Overlap Measure) for comparing
transcriptomes within or between different species, and provide a different
perspective to interpret transcriptomic similarity in contrast to traditional
correlation analyses. Specifically, the TROM method focuses on identifying
associated genes that capture molecular characteristics of biological samples,
and subsequently comparing the biological samples by testing the overlap of
their associated genes. We use simulation and real data studies to demonstrate
that TROM is more powerful in identifying similar transcriptomes and more
robust to stochastic gene expression noise than Pearson and Spearman
correlations. We apply TROM to compare the developmental stages of six
Drosophila species, C. elegans, S. purpuratus, D. rerio and mouse liver, and
find interesting correspondence patterns that imply conserved gene expression
programs in the development of these species. The TROM method is available as
an R package on CRAN (http://cran.r-project.org/) with manuals and source codes
available at http://www.stat.ucla.edu/ jingyi.li/software-and-data/trom.html
- …