
SummaryModern software systems accommodate complex configurations and execution conditions that depend on the environment where the software is run. While in house testing can exercise only a fraction of such execution contexts, in vivo testing can take advantage of the execution state observed in the field to conduct further testing activities. In this paper, we present the Groucho approach to in vivo testing. Groucho can suspend the execution, run some in vivo tests, rollback the side effects introduced by such tests, and eventually resume normal execution. The approach can be transparently applied to the original application, even if only available as compiled code, and it is fully automated. Our empirical studies of the performance overhead introduced by Groucho under various configurations showed that this may be kept to a negligible level by activating in vivo testing with low probability. Our empirical studies about the effectiveness of the approach confirm previous findings on the existence of faults that are unlikely exposed in house and become easy to expose in the field. Moreover, we include the first study to quantify the coverage increase gained when in vivo testing is added to complement in house testing.
Coverage, Computer Networks and Communications, Empirical research, Epistemology, Biochemistry, Gene, Reliability engineering, Isolation, Engineering, Computer engineering, info:eu-repo/classification/udc/004, Field (mathematics), FOS: Mathematics, Complement (music), Java platform, Software engineering, Automated Software Testing Techniques, Complementation, Pure mathematics, Computer science, In vivo testing, FOS: Philosophy, ethics and religion, Overhead (engineering), Operating system, Philosophy, Chemistry, Phenotype, Log Analysis and System Performance Diagnosis, Field failures, Computer Science, Physical Sciences, Empirical results, Software Reliability Modeling, Software Reliability Assessment and Prediction, Software, Java, Mathematics
Coverage, Computer Networks and Communications, Empirical research, Epistemology, Biochemistry, Gene, Reliability engineering, Isolation, Engineering, Computer engineering, info:eu-repo/classification/udc/004, Field (mathematics), FOS: Mathematics, Complement (music), Java platform, Software engineering, Automated Software Testing Techniques, Complementation, Pure mathematics, Computer science, In vivo testing, FOS: Philosophy, ethics and religion, Overhead (engineering), Operating system, Philosophy, Chemistry, Phenotype, Log Analysis and System Performance Diagnosis, Field failures, Computer Science, Physical Sciences, Empirical results, Software Reliability Modeling, Software Reliability Assessment and Prediction, Software, Java, Mathematics
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 3 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Top 10% | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
