Title: An Approach to Test Autonomic Containers
1An Approach to Test Autonomic Containers
- Ronald Stevens
- (IEEE Computer Society
- ACM Student Member)
- August 1, 2006
- REU Sponsored by NSF
2Overview
- Introduction
- Research Objectives
- Review of previous work
- Autonomic Container
- Testing Framework
- Tools Used
- Autonomic Container Package
- Prototype
- Conclusion
- Future Work
31. Introduction
- The growing complexity of computing systems has
motivated a need for self-managing systems. - A key feature of the human body is
self-management Autonomic Nervous System. - Self-management involves self-healing,
self-configuring, self-optimizing, and
self-protecting. - An implicit component in self-management is the
ability to self-test.
42. Research Objectives
- Review existing work on testing autonomic
systems. - Extend current knowledge on testing autonomic
systems. - Create a prototype to validate the extended
knowledge. - Document the research activities.
53. Review of Previous Work
- Literature review Testing Autonomic
Systems - Phase 1 Survey
- Phase 2 Testing Framework
63.1 Literature Review
- Several projects were reviewed including
- Impala
- OceanStore
- Model-Driven Autonomic Manager
- Bison
- Little or no work has been done in testing
Autonomic Computing Systems.
73.2 Phase 1 - Survey
- Survey on different projects in Autonomic
Systems. - Systems were compared based on criteria in the
areas of - QoS, Cost, Adaptivity, Fault Tolerance, Fault
Avoidance, Fault Detection, Degree of Autonomy ,
Granularity, Availability of Source Code - Documentation
- Presentation 1 Survey of Validation Methods in
Autonomic Computing Systems and Survey Paper
83.3 Phase 2 Testing Framework
- Introduction of Autonomic Testing Framework
- Introduction of Autonomic Container
- Presentation of a High Level Architectural
Framework - Documentation Presentation 2 A Framework to
Test Autonomic Containers
94. Autonomic Container
- Container a housing for a group of items that
allows storage, organization, and efficient
access - Autonomic Container can
- self-heal
- self-protect
- self-optimize
- self configure
- It is an autonomic data structure
- This container will also possess the implicit
ability to self-test
10Use of Autonomic Container
11Autonomic Container Architecture
125. Testing Framework
13Structure of Touchpoint Test Manager
1.0 Load Validation Policy 1.1 Retrieve New
Structure Information 1.2 Perform Test
Suite Analysis 1.3 Create Test Plan
1.3.1 TestPlanCreated Event 1.3.2
Finalize Test Plan 1.4 Execute Test Plan 1.5 Run
Test Cases
14Structure of Touchpoint Test Manager
2.1 Retrieve Test Results and Profiling
Info 2.2 Perform Test Log Analysis 2.2.1a
TestsPassed Event (or TestsFailed
Event) 2.2.2a Completed Success (or
Terminated) OR 2.2.1b Inadequate TC Event 2.2.2b
Re-analyze TS 2.3 2.5 Same as 1.3 1.5
156. Tools Used
- Cobertura
- Code profiler
- Branch coverage
- Line coverage
- Generates reports
- JUnit
- Unit testing framework
- Part of xUnit family of testing frameworks
16Cobertura
- Cobertura is used to profile the Stack class
code. - Cobertura will instrument the Stack class, then
the JUnit tests will be run on Stack Test. - When the tests are complete, we will see the
branch and line coverage handled by the Stack
Cover.
17JUnit
- We have created several JUnit test cases to run
on the Stack class. - The purpose of the test cases is to ensure the
correctness of the Stack class. - Approaches used to develop test cases
- Boundary
- Equivalence Partitioning
- Following the completion of the JUnit test cases,
the output of results will be placed in a text
file entitled Test Log.
187. Autonomic Container Package
- The Autonomic Container Package consists of
- The Stack class
- The Stack Exceptions (Empty Stack, Full Stack,
and Stack Change) - The Self Test Manager (Stack Test, Stack Cover,
Test Runner Batch File, and Test Exec) - The JUnit and Cobertura folders are also housed
in this directory.
19AC Package Layout
208. Demonstration of Prototype
- Design of Autonomic Container using UML
- Implementation of the prototype
- Execution of the prototype
- Good Stack
- Bad Stack
219. Results
- Extended the concept of an autonomic element to
allow self-testing. - Developed an architecture for the self-test
management component of Autonomic Container. - Validated our approach of self-testing by
creating a prototype consistent with the proposed
architecture.
22Documentation of Research Activities
- Technical Report
- Survey of Validation in Autonomic Systems
- Positional Paper
- An Approach to Testing Autonomic Computing
Systems - To be submitted to the 3rd Workshop on Software
Quality Assurance (SOQUA 2006), FSE/ACM. - Technical Paper Ronald Stevens and Brittany
Parsons - A Self-Testing Autonomic Container
- To be submitted to the 45th ACM Southeast
Conference
2310. Future Work
- Currently we have been able to implement only the
Self Test aspect of the Autonomic Container. - The next step is to add in the Self Healing, Self
Optimizing, Self Protecting, and Self Configuring
characteristics to the Autonomic Container. - Work will continue to be done on the idea of
Self-test in Autonomic Computing.
24Acknowledgements
- Brittany Parsons
- Tariq M. King Ph.D. Student
- Software Testing Research Group at FIU
- Dr. Peter Clarke
- Dr. Masoud Milani and the FIU School of Computing
and Information Sciences - National Science Foundation
25Sources
IBM05 IBM Corporation. IBM, 2005. An architectural blueprint for autonomic computing. June 2005.
KC03 J. Kephart and D. Chess. The vision of autonomic computing. Computer, vol. 36, no.1, pp. 41-50, January 2003.
JUN Junit, Testing Resources for Extreme Programming. www.junit.org. July 2006
COB Cobertura. cobertura.sourceforge.net/. July 2006
26Thank You and Questions