Distributed In Vivo Testing of Software Applications Matt Chu, Christian Murphy, Gail Kaiser Columbia University.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

© 2007 Open Grid Forum Grids in the IT Data Center OGF 21 - Seattle Nick Werstiuk October 16, 2007.
SLA-Oriented Resource Provisioning for Cloud Computing
Apache Struts Technology
Managing Your Network Environment © 2004 Cisco Systems, Inc. All rights reserved. Managing Cisco IOS Devices INTRO v2.0—9-1.
Prioritizing User-session-based Test Cases for Web Applications Testing Sreedevi Sampath, Renne C. Bryce, Gokulanand Viswanath, Vani Kandimalla, A.Gunes.
NUMA Tuning for Java Server Applications Mustafa M. Tikir.
© Copyright Lumension Security Lumension Security PatchLink Enterprise Reporting™ 6.4 Overview and What’s New.
1 genSpace: Community- Driven Knowledge Sharing for Biological Scientists Gail Kaiser’s Programming Systems Lab Columbia University Computer Science.
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University of.
GenSpace: Exploring Social Networking Metaphors for Knowledge Sharing and Scientific Collaborative Work Chris Murphy, Swapneel Sheth, Gail Kaiser, Lauren.
The In Vivo Testing Approach Christian Murphy, Gail Kaiser, Ian Vo, Matt Chu Columbia University.
Improving Robustness in Distributed Systems Jeremy Russell Software Engineering Honours Project.
1 Software Testing and Quality Assurance Lecture 24 – Testing Interactions (Chapter 6)
GenSpace: Exploring Social Networking Metaphors for Scientific Collaborative Work Gail Kaiser, Swapneel Sheth, Chris Murphy {kaiser, swapneel, cmurphy}
Automatic Detection of Previously-Unseen Application States for Deployment Environment Testing and Analysis Chris Murphy, Moses Vaughan, Waseem Ilahi,
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Using Runtime Testing to Detect Defects in Applications without Test Oracles Chris Murphy Columbia University November 10, 2008.
Presented by Sujit Tilak. Evolution of Client/Server Architecture Clients & Server on different computer systems Local Area Network for Server and Client.
Load Sharing and Balancing - Saravanan Mathialagan Masters in Computer Science Georgia State University.
Plan Introduction What is Cloud Computing?
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Distributed Data Stores – Facebook Presented by Ben Gooding University of Arkansas – April 21, 2015.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Management of Source Code Integrity Presented by O/o the Accountant General (A&E), Jammu and Kashmir.
Using Runtime Information for Adapting Enterprise Java Beans Application Servers Mircea Trofin *, John Murphy ** Performance Engineering Laboratory * DCU,
Network Administration. What is a Systems Administrator?  Person responsible for:  Setting up servers  Configuring the environment for web and other.
1 Distributed Systems : Server Load Balancing Dr. Sunny Jeong. Mr. Colin Zhang With Thanks to Prof. G. Coulouris,
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
Network Aware Resource Allocation in Distributed Clouds.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Master Thesis Defense Jan Fiedler 04/17/98
20 October 2006Workflow Optimization in Distributed Environments Dynamic Workflow Management Using Performance Data David W. Walker, Yan Huang, Omer F.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Chapter 8 Evaluating Alternatives for Requirements, Environment, and Implementation.
A performance evaluation approach openModeller: A Framework for species distribution Modelling.
Smita Vijayakumar Qian Zhu Gagan Agrawal 1.  Background  Data Streams  Virtualization  Dynamic Resource Allocation  Accuracy Adaptation  Research.
Plan  Introduction  What is Cloud Computing?  Why is it called ‘’Cloud Computing’’?  Characteristics of Cloud Computing  Advantages of Cloud Computing.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Client Server Network Model:
1 Integrating security in a quality aware multimedia delivery platform Paul Koster 21 november 2001.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
I Copyright © 2007, Oracle. All rights reserved. Module i: Siebel 8.0 Essentials Training Siebel 8.0 Essentials.
WebObjects Matt Aguirre Lally Singh. What Is It? A Java based development platform specifically designed for database-backed web applications.
1/11/2016Lecturer : Trần Thị Ngọc Hoa1 ISA Array  Introduction  Deployment.
Communications & Networks National 4 & 5 Computing Science.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
03/03/051 Performance Engineering of Software and Distributed Systems Research Activities at IIT Bombay Varsha Apte March 3 rd, 2005.
Creating competitive advantage Copyright © 2003 Enterprise Java Beans Presenter: Wickramanayake HMKSK Version:0.1 Last Updated:
5 Copyright © Oracle Corporation, All rights reserved. Usage and Configuration of the Oracle Shared Server.
Usage and Configuration of the Oracle Shared Server Supinfo Oracle Lab. 5.
Enabling Control over Adaptive Program Transformation for Dynamically Evolving Mobile Software Validation Mike Jochen, Anteneh Anteneh, Lori Pollock University.
Apache Struts Technology A MVC Framework for Java Web Applications.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
18 May 2006CCGrid2006 Dynamic Workflow Management Using Performance Data Lican Huang, David W. Walker, Yan Huang, and Omer F. Rana Cardiff School of Computer.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
© 2002, Cisco Systems, Inc. All rights reserved.
Configuration Fuzzing for Software Vulnerability Detection
Self Healing and Dynamic Construction Framework:
Design and Implementation
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
COTS testing Tor Stålhane.
Page Replacement.
Gail Kaiser, Swapneel Sheth, Chris Murphy
Prof. Leonardo Mostarda University of Camerino
Dynamic Program Analysis
Presentation transcript:

Distributed In Vivo Testing of Software Applications Matt Chu, Christian Murphy, Gail Kaiser Columbia University

2 Chris Murphy, Columbia University Introduction It is infeasible to fully test a large system prior to deployment considering:  different runtime environments  different configuration options  different patterns of usage Extending testing into the deployment environment can help reveal faults

3 Chris Murphy, Columbia University In Vivo Testing We have developed an approach called in vivo testing  Unit tests from the development environment (in vitro) are executed at run- time in the deployment environment (in vivo)  Done without affecting the state of the application However, this approach can incur a large performance overhead

4 Chris Murphy, Columbia University Distributed In Vivo Testing In this work we present a distributed approach that takes advantage of networked “application communities” Members of the community each run fewer tests (thus less overhead) and results are aggregated centrally

5 Chris Murphy, Columbia University Benefits of Distributed In Vivo Testing Amortizing the workload over many instances tackles the high performance cost without sacrificing the quantity of tests being conducted globally Having a community of applications collaboratively working together increases the possibility that an instance will find these erroneous permutations of state

6 Chris Murphy, Columbia University Overview Related work In vivo testing & the Invite framework The distributed Invite framework Experimental results Conclusions and future work

7 Chris Murphy, Columbia University Related Work Perpetual testing [Clarke SAS’00] Skoll [Memon ICSE’04] Gamma [Orso ISSTA’02] CBI [Liblit PLDI’03] MORABIT [Merdes SEM’06]

8 Chris Murphy, Columbia University In Vivo Testing Unit tests are executed in the deployment environment, in the context of the running application, as opposed to a controlled development environment Tests are run continuously as the application runs, at selected points in the program execution Tests are run in a separate process (which has been created as an exact copy of the original), so as not to affect the state of the original process

9 Chris Murphy, Columbia University In Vivo Testing: Defects Targeted 1. Unit tests make incorrect assumptions about the state of objects in the application 2. Possible field configurations were not tested in the lab 3. A legal user action puts the system in an unexpected state 4. An sequence of unanticipated user actions breaks the system 5. Defects that only appear intermittently

10 Chris Murphy, Columbia University Invite: The in vivo testing framework Implemented in Java Uses AspectJ to “weave in” the instrumentation at compile-time Configuration performed by software developer  Frequency of test execution (per method)  Reaction policy Software deployed as usual, with no requirements on end user

11 Chris Murphy, Columbia University Invite: Running a test Run a test?... Method foo is about to be executed Run the test in a separate process Execute testFoo Execute foo no yes Record success/failure

12 Chris Murphy, Columbia University Distributed in vivo testing approach Amortize the cost of test execution by distributing the workload over a number of instances Cover a variety of different platforms, usage patterns, etc. Client/Server architecture Server can distribute tests according to targeting or sampling policies

13 Chris Murphy, Columbia University Distributed Invite framework Invite Server

14 Chris Murphy, Columbia University Experiment Setup Goal: ensure that evenly distributing testing load improves performance by decreasing the number of tests each individual member in the community has to run. Subject: Jetty WebServer 5000 dynamic & static web pages requested from each instance

15 Chris Murphy, Columbia University Experimental Results community size % overhead

16 Chris Murphy, Columbia University Summary Overhead declines as the number of members in the community grows Analytical results:  18 members: 25%  45 members: 10%  90 members: 5% Optimal minimum overhead (from instrumentation) was 2.4%

17 Chris Murphy, Columbia University Limitations & Future Work Ensure that the test does not affect the external system state Improve distribution of tests Adjust frequency of test execution based on context or resource availability Include support for capture/replay, fault localization, etc.

18 Chris Murphy, Columbia University Conclusion Distributed in vivo testing addresses one of the biggest problems of the in vivo testing approach (extremely high performance penalties) by distributing the number of tests that need to be run onto the entire community of applications The approach maintains the same number of tests globally, and also encompasses more diverse environments

Distributed In Vivo Testing of Software Applications Matt Chu, Christian Murphy, Gail Kaiser Columbia University