An Approach to Test Autonomic Containers Ronald Stevens (IEEE Computer Society & ACM Student Member) August 1, 2006 REU Sponsored by NSF
Overview • Introduction • Research Objectives • Review of previous work • Autonomic Container • Testing Framework • Tools Used • Autonomic Container Package • Prototype • Conclusion • Future Work
1. 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.
2. 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.
3. Review of Previous Work • Literature review – Testing Autonomic Systems • Phase 1 – Survey • Phase 2 – Testing Framework
3.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.
3.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
3.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”
4. 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
Structure 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
Structure 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
6. Tools Used • Cobertura • Code profiler • Branch coverage • Line coverage • Generates reports • JUnit • Unit testing framework • Part of xUnit family of testing frameworks
Cobertura • 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.
JUnit • 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.
7. 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.
8. Demonstration of Prototype • Design of Autonomic Container using UML • Implementation of the prototype • Execution of the prototype • Good Stack • Bad Stack
9. 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.
Documentation 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
10. 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.
Acknowledgements • 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