Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.

Slides:



Advertisements
Similar presentations
Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes
Advertisements

KAIS T The Vision of Autonomic Computing Jeffrey O. Kephart, David M Chess IBM Watson research Center IEEE Computer, Jan 발표자 : 이승학.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
A Self-Configuring Test Harness for Web Applications Jairo Pava School of Computing and Information Sciences Florida International University Courtney.
A Self-Configuring Test Harness for Web Applications Jairo Pava School of Computing and Information Sciences Florida International University Courtney.
Software Testing and Quality Assurance
*An Integrated Self-Testing Framework for Autonomic Computing Systems
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
N ORTH D AKOTA S TATE U NIVERSITY D EPARTMENT OF C OMPUTER S CIENCE © NDSU S OFTWARE T ESTING R ESEARCH G ROUP Engineering Self-Testable Autonomic Software.
Overview of Software Requirements
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Parameterizing Random Test Data According to Equivalence Classes Chris Murphy, Gail Kaiser, Marta Arias Columbia University.
N ORTH D AKOTA S TATE U NIVERSITY D EPARTMENT OF C OMPUTER S CIENCE © NDSU S OFTWARE T ESTING R ESEARCH G ROUP Safe Runtime Validation of Behavioral Adaptations.
Outline Types of errors Component Testing Testing Strategy
Introduction to Software Testing
Software Testing & Strategies
Software Test Automation and Tools Speaker: Jerry Gao Ph.D. San Jose State University URL:
[ §4 : 1 ] 4. Requirements Processes II Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Software Requirements Specification.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Test Design Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
JAAF+T: A Framework to Implement Self- Adaptive Agents that Apply Self-Test Andrew Diniz da Costa
System/Software Testing
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
1 Autonomic Computing An Introduction Guenter Kickinger.
Model Driven Development reduces the problem-implementation gap by redefining the role of models and using platforms for translating and realizing the.
An Approach to Test Autonomic Containers Ronald Stevens (IEEE Computer Society & ACM Student Member) August 1, 2006 REU Sponsored by NSF.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CPIS 357 Software Quality & Testing
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Software Testing.
Software System Engineering: A tutorial
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Lecture 7: Requirements Engineering
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Adaptive Web Caching CS411 Dynamic Web-Based Systems Flying Pig Fei Teng/Long Zhao/Pallavi Shinde Computer Science Department.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Using Learning Objects (LOs) in WRESTT. Outline  Background of LOs  Steps of Creating LOs in WRESTT tool (interactive)
A Self-Configuring Test Harness for Web Applications Jairo Pava School of Computing and Information Sciences Florida International University Courtney.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
Project Design Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University Bárbara Morales-Quiñones Department of.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
SSQSA present and future Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
The Vision of Autonomic Computing Self-Management Unit 7-2 Managing the Digital Enterprise Kephart, and Chess.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Dynamic Testing.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Defect testing Testing programs to establish the presence of system defects.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
1 Visual Computing Institute | Prof. Dr. Torsten W. Kuhlen Virtual Reality & Immersive Visualization Till Petersen-Krauß | GUI Testing | GUI.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
Testing Tutorial 7.
Introduction to Software Testing
The Vision of Autonomic Computing
Jigar.B.Katariya (08291A0531) E.Mahesh (08291A0542)
Autonomic Request Scheduling Container
CSE 1020:Software Development
Presentation transcript:

Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida International University Ronald Stevens Department of Computing and Information Sciences Florida A & M University 03/21/2007 ISADS ‘07

2 Introduction  Continual growth in size and complexity of computing systems has led to a need for support tasks to be shifted from people to technology.  Movement towards self-managing systems that automatically configure, heal, protect, and optimize themselves – Autonomic Computing.  There is however a lack of techniques to dynamically validate such systems.  How can we be sure that AC systems behave correctly after a change is made at runtime?

3 Introduction (cont’d)  This work presents a methodology that supports automatic runtime validation of change requests resulting from self-management in AC systems.  Our methodology evaluates test adequacy through the use of a validation policy file.  We extend the current architecture of AC systems by applying concept of autonomic managers to testing activities.  We provide two strategies for dynamic validation based on system constraints.

4 Outline  Background  Challenges  Overview of Testing Approach  Architecture of Test Managers  Prototype  Related Work  Conclusion & Future Work

5 Background – AC Systems Source: IBM Autonomic Computing Architecture Team. An architectural blueprint for autonomic computing. IBM, Hawthorne, NY, June 2006.

6 Background – Software Testing  Two broad categories:  Blackbox – specification-based, focuses on functionality, i.e., inputs → expected outputs.  Whitebox – implementation-based, focuses on whether or not the program has been thoroughly (adequately) exercised.  Regression Testing – determines whether or not modifications to software have introduced new errors into previously tested code.  Retest-all – retest the entire test suite  Selective – only retest a strict subset

7 Background – Safe Adaptation Zhang et al. (WADS 2004) Source: J. Zhang, B. H. C. Cheng, Z. Yang, and P. K. McKinley. Enabling safe dynamic component-based software adaptation. In WADS, pages 194–211, 2004.

8 Testing Approach  Idea: Develop an implicit autonomic characteristic – Self-Testing.  Incorporate self-test activities into Autonomic Managers (AMs) via test interfaces.  Test interfaces will allow interactions between AMs and Test Managers (TMs).  Two strategies:  Safe Adaptation with Validation  Replication with Validation  Select based on cost, and feasibility.

9 Testing Approach (cont’d) A High-Level Test Model for AC Systems

10 Test Managers (TMs)  Extend the concept of autonomic managers to testing activities, i.e., self-testing.  Responsible for:  Performing regression testing  Dynamically generating test cases  Executing test cases and recording test results  Evaluating test results and coverage  Maintaining the test repository, i.e., test cases, test logs and validation policy.

11 TMs – Component Interactions

12 Prototype  Autonomic Container – Data structure with autonomic capabilities and implicit self-test.  Focused on self-configuration – 80% full, reconfigure by increasing capacity.  Implemented Replication with Validation strategy.  Validation policy requires 100% pass rate for test cases, and at least 75% for both branch and statement coverage.  Initial test suite created using boundary, random, and equivalence partitioning.

13 Prototype (cont’d)  Simulated faulty change requests using a mutation technique – GoodStack, BadStack.  Support Tools: JUnit, Cobertura.  Consists of three main packages:  ACApplication – External application that uses container  AutonomicContainer – Self-managing and self-testing container  SystemController – Coordinates overall activity.

14 Prototype – Top-Level Design

15 Prototype – Self-Test Manager

16 Related Work  Making components self-testable, Le Troan et al., TOOLS ’99.  Include test cases and oracles in implementation.  Synthesizing assertions from observed behavior, Denaro et al., ACC ’05.  Embeds assertions into the communication infrastructure.  Assertions are checked at runtime.  Formalizing behavior of adaptive programs, Zhang et al., WADS 04.  Models adaptive and non-adaptive programs

17 Conclusion and Future Work  Proposed a framework that dynamically validate change requests in AC systems.  Approach extends the current structure of AC systems to include self-testing.  Supports two validation strategies.  Developed a prototype to show their feasibility.  Future work calls for:  Extending the capabilities of the prototype  Implementing safe adaptation with validation  Evaluating efficiency of the two approaches

18 Thank You Questions? This work has been supported in part by the National Science Foundation under grant IIS