Toward Dependable Software: Cyberinfrastructure Support for Controlled Experimentation with Testing and Analysis Techniques Gregg Rothermel and Matt Dwyer.

Slides:



Advertisements
Similar presentations
Pattern Matching against Distributed Datasets within DAME Andy Pasley University of York.
Advertisements

© University of Reading David Spence 20 April 2014 e-Research: Activities and Needs.
DELOS Highlights COSTANTINO THANOS ITALIAN NATIONAL RESEARCH COUNCIL.
Pulling it all together… with thanks to Sheila Anderson.
Maines Sustainability Solutions Initiative (SSI) Focuses on research of the coupled dynamics of social- ecological systems (SES) and the translation of.
Joint CASC/CCI Workshop Report Strategic and Tactical Recommendations EDUCAUSE Campus Cyberinfrastructure Working Group Coalition for Academic Scientific.
Carnegie Mellon University Java PathFinder and Model Checking of Programs Guillaume Brat, Dimitra Giannakopoulou, Klaus Havelund, Mike Lowry, Phil Oh,
4.1.5 System Management Background What is in System Management Resource control and scheduling Booting, reconfiguration, defining limits for resource.
Bug Isolation via Remote Program Sampling Ben Liblit, Alex Aiken, Alice X.Zheng, Michael I.Jordan Presented by: Xia Cheng.
Software Model Checking for Embedded Systems PIs: Matthew Dwyer 1, John Hatcliff 1, and George Avrunin 2 Post-docs: Steven Seigel 2, Radu Iosif 1 Students:
Secure and Trustworthy Cyberspace (SaTC) Program Sam Weber Program Director March 2012.
/ department of mathematics and computer science TU/e eindhoven university of technology CEDEFOP workshop: Policy, Practice, Partnership: Getting to Work.
Empirically Assessing End User Software Engineering Techniques Gregg Rothermel Department of Computer Science and Engineering University of Nebraska --
What Went Wrong? Alex Groce Carnegie Mellon University Willem Visser NASA Ames Research Center.
Synthesis of Interface Specifications for Java Classes Rajeev Alur University of Pennsylvania Joint work with P. Cerny, G. Gupta, P. Madhusudan, W. Nam,
National Science Foundation: Transforming Undergraduate Education in Science, Technology, Engineering, and Mathematics (TUES)
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages C++ Programming:
Department of Computer Science & Engineering College of Engineering Dr. Betty H.C. Cheng, Laura A. Campbell, Sascha Konrad The demand for distributed real-time.
NEES, NEES2, and OSG Thomas Hacker Purdue University.
OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御.
Crowdsourcing Predictors of Behavioral Outcomes. Abstract Generating models from large data sets—and deter¬mining which subsets of data to mine—is becoming.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Scaling to New Heights Retrospective IEEE/ACM SC2002 Conference Baltimore, MD.
Human Resource Management Lecture 27 MGT 350. Last Lecture What is change. why do we require change. You have to be comfortable with the change before.
Chapter 6 : Software Metrics
Computer Science Open Research Questions Adversary models –Define/Formalize adversary models Need to incorporate characteristics of new technologies and.
Sponsored by the National Science Foundation Design of an Information Substrate for Measurement, Monitoring and Inference Spiral 2 Year-end Project Review.
Improving Network I/O Virtualization for Cloud Computing.
Future role of DMR in Cyber Infrastructure D. Ceperley NCSA, University of Illinois Urbana-Champaign N.B. All views expressed are my own.
10/6/2015 ©2007 Scott Miller, University of Victoria 1 2a) Systems Introduction to Systems Introduction to Software Systems Rev. 2.0.
Ohio State University Department of Computer Science and Engineering 1 Cyberinfrastructure for Coastal Forecasting and Change Analysis Gagan Agrawal Hakan.
CSED Computational Science & Engineering Department CHEMICAL DATABASE SERVICE The Current Service is Well Regarded The CDS has a long and distinguished.
Event Management & ITIL V3
What is Cyberinfrastructure? Russ Hobby, Internet2 Clemson University CI Days 20 May 2008.
WERST – Infrastructure Group Summary Notes July 2004
1 A Heuristic Approach Towards Solving the Software Clustering Problem ICSM03 Brian S. Mitchell /
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 9, 2010.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
DAME: A Distributed Diagnostics Environment for Maintenance Duncan Russell University of Leeds.
1 Computing Challenges for the Square Kilometre Array Mathai Joseph & Harrick Vin Tata Research Development & Design Centre Pune, India CHEP Mumbai 16.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
CIS 842: Specification and Verification of Reactive Systems Lecture 1: Course Overview Copyright 2001, Matt Dwyer, John Hatcliff, and Radu Iosif. The.
The Geosciences are a discipline that is strongly data driven, and large data sets are often developed by researchers and government agencies. The complexity.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
Ruth Pordes November 2004TeraGrid GIG Site Review1 TeraGrid and Open Science Grid Ruth Pordes, Fermilab representing the Open Science.
Grid User Interface for ATLAS & LHCb A more recent UK mini production used input data stored on RAL’s tape server, the requirements in JDL and the IC Resource.
Breakout # 1 – Data Collecting and Making It Available Data definition “ Any information that [environmental] researchers need to accomplish their tasks”
Enabling e-Research in Combustion Research Community T.V Pham 1, P.M. Dew 1, L.M.S. Lau 1 and M.J. Pilling 2 1 School of Computing 2 School of Chemistry.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Three Critical Matters in Big Data Projects for e- Science Kerk F. Kee, Ph.D. Assistant Professor, Chapman University Orange, California
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Science Department Draft of Goals, Objectives and Concerns 2010.
Cyberinfrastructure Overview Russ Hobby, Internet2 ECSU CI Days 4 January 2008.
Cyberinfrastructure: Many Things to Many People Russ Hobby Program Manager Internet2.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
Università di Perugia Enabling Grids for E-sciencE Status of and requirements for Computational Chemistry NA4 – SA1 Meeting – 6 th April.
Preliminary Findings Baseline Assessment of Scientists’ Data Sharing Practices Carol Tenopir, University of Tennessee
D4Science and ETICS Building and Testing gCube and gCore Pedro Andrade CERN EGEE’08 Conference 25 September 2008 Istanbul (Turkey)
ARO Workshop Wendy Roll - May 2004 Topic 4: Effects of software certification on the current balance between software/system modeling, analysis and testing.
PEER 2003 Meeting 03/08/031 Interdisciplinary Framework Major focus areas Structural Representation Fault Systems Earthquake Source Physics Ground Motions.
Resource Optimization for Publisher/Subscriber-based Avionics Systems Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee.
Building PetaScale Applications and Tools on the TeraGrid Workshop December 11-12, 2007 Scott Lathrop and Sergiu Sanielevici.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
CLA 2013 LORRAINE BUSBY MEMORIAL UNIVERSITY OF NEWFOUNDLAND.
Component and Deployment Diagrams
Clouds , Grids and Clusters
Chapter 1: An Overview of Computers and Programming Languages
Dynamic Program Analysis
By Hyunsook Do, Sebastian Elbaum, Gregg Rothermel
Presentation transcript:

Toward Dependable Software: Cyberinfrastructure Support for Controlled Experimentation with Testing and Analysis Techniques Gregg Rothermel and Matt Dwyer Computer Science and Engineering

Software Dependability Dependability: fitness for intended use Avionics GUIs Device Drivers Spreadsheets

Software Testing & Program Analysis Techniques Achieving Dependability Program Supporting Data void add(Object o) { buffer[head] = o; head = (head+1)%size; } Object take() { … tail=(tail+1)%size; return buffer[tail]; } Requirement 1: … Requirement 2: … … Dependability Information Dependability Information

Code Coverage-Based Testing Software Testing Program Testing Requirements void add(Object o) { buffer[head] = o; head = (head+1)%size; } Object take() { … tail=(tail+1)%size; return buffer[tail]; } Test Results Report Test Results Report

Model Checker Model Checking OK Error trace or Finite-state model Temporal logic formula ( ! } )( ! } )

Essential (Empirical) Questions 1.Is a given technique more cost-effective than other techniques? 2.What factors influence the relative cost- effectiveness of techniques? 3.What models best capture the cost- benefits tradeoffs between techniques?

Experimentation Treatment T1 Subject A Subject B Cure & Side-Effects Information Cure & Side-Effects Information Treatment T2 Subject C Subject D Cure & Side-Effects Information Cure & Side-Effects Information

Experimentation with Testing and Analysis Techniques Technique T1 Program A Program B Dependability & Cost Information Dependability & Cost Information Technique T2 Program C Program D Dependability and Cost Information Dependability and Cost Information

State of the Art In a survey of top journals/conferences: –41% of papers included empirical studies - 17% included controlled experiments –1% involved shared artifacts

State of the Art In a survey of top journals/conferences: –41% of papers included empirical studies - 17% included controlled experiments –1% involved shared artifacts As empiricists, in the testing & analysis sub-field, we have not evolved far.

Requirements for Empirical Research on Testing & Analysis Prepared experiment “subjects” Adequate computational resources Community engagement Knowledge of empirical study design

Requirements for Empirical Research on Testing & Analysis Prepared experiment “subjects” Adequate computational resources Community engagement Knowledge of empirical study design

Experiment “Subjects” Experiments with testing and analysis require various “subjects”, or artifacts Obtaining, preparing, organizing and sharing artifacts is expensive and difficult Until recently, obtaining support for these efforts has been difficult

NSF Support NSF CRI program (Research Resources) $1.1 million, 4 year collaborative grant Investigators: –University of Nebraska – Lincoln: Gregg Rothermel (PI) Sebastian Elbaum Matt Dwyer –Kansas State University: John Hatcliff (PI)

Project Goal Create and disseminate a repository of software-related artifacts sufficient to support rigorous controlled experimentation with testing and analysis techniques across the broad community of software engineering researchers and educators

Proposed Artifacts Code bases for C and Java applications Supporting elements: –e.g., versions, faults, requirements, behavior specifications, models, test inputs Basic static and dynamic data: –e.g., expected outputs, fault-exposure data, coverage patterns Mechanisms for accessing data: –e.g, filters and access routines

Requirements for Empirical Research on Testing & Analysis Prepared experiment “subjects” Adequate computational resources Community engagement Knowledge of empirical study design

Obstacles to Efficient Execution of Empirical Studies Controlled experiments with testing & analysis techniques require significant computational resources Programs and test suites may be long running, e.g., one study took 8 months to collect data Program analysis techniques may require large amounts of memory, e.g., studies run on 32-bit architectures regularly used 4 Gbytes. Archiving analysis data may require significant storage, e.g., run-time trace data for a single study can easily use 100s of Gbytes

ARO and UNL Support to Overcome these Obstacles ARO DURIP program $400,000 equipment grant Investigators: –University of Nebraska – Lincoln: Matt Dwyer (PI) –Kansas State University John Hatcliff (PI) UNL startup funding for Rothermel and Dwyer Dept. staff support for Research Computing

Hardware Infrastructure 2.1 Tbyte disk storage array 45 node dual-Opteron 248 Cluster –32 nodes have 16 Gbytes of RAM –12 nodes have 4 Gbytes of RAM –Running linux, Sun Grid Engine Remote access to 12 node quad-Opteron 246 Cluster at Kansas State

Early Adopters Studies of cost/effectiveness of extracting unit tests from system tests Studies of probe placement for run-time monitoring Studies of heuristic strategies for model checking concurrent programs Studies of heuristic search strategies for test suite generation Trace data collection to characterize server applications to predict “pre-crash” states Experiments on reducing the cost of inferring program specifications

Requirements for Empirical Research on Testing & Analysis Prepared experiment “subjects” Adequate computational resources Community engagement Knowledge of empirical study design

Supporting the Emerging Experimental Community A growing understanding that computing is an experimental discipline –45 experts support our efforts –More education in experimental methods needed Initial repository of subjects –Distributed via web-site –Full-time staff will develop and maintain site –We will populate repository with a wide-range of sample subjects

Repository Lifespan We are planning for the repository to serve the community well-beyond the grant duration Exploring ideas such as –Open-source model for repository contributions and maintenance –Building consensus in community that subject development is valuable –Use of conference/workshop model for review of contributions

Summary Testing and analysis are essential for software dependability – which is essential for everything Progress in testing/analysis has been limited by lack of empirical research Empirical software research is hard and requires –subjects, computational resources, community consensus, and knowledge of empirical methods Our current efforts are focused on supporting researchers on the first three of these

Looking Forward A significant remaining challenge is supporting scientists in the design of experiments –Decision-support for empirical studies –Requires development of knowledge base and tools to query/synthesize that knowledge –Scott Henninger (UNL) is leading work in this area Ultimately, our goal is to see that research on software systems develops into a discipline whose experimental maturity matches its theoretical maturity

Toward Dependable Software: Cyberinfrastructure Support for Controlled Experimentation with Testing and Analysis Techniques Gregg Rothermel and Matt Dwyer Computer Science and Engineering