24
NORTH DAKOTA STATE UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE © NDSU SOFTWARE TESTING RESEARCH GROUP Engineering Self-Testable Autonomic Software Presenter: Tariq M. King EASe 2011 April 27-29, Las Vegas, NV, USA A COMPARATIVE CASE STUDY

Engineering Self-Testable Autonomic Software

  • Upload
    roscoe

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

Engineering Self-Testable Autonomic Software. A COMPARATIVE CASE STUDY. Presenter: T ariq M . King. EASe 2011. April 27-29, Las Vegas, NV, USA. Outline. Motivation Background Applications Experiments Lessons Learned Related Work Conclusion. Motivation. - PowerPoint PPT Presentation

Citation preview

Page 1: Engineering Self-Testable Autonomic Software

NORTH DAKOTA STATE UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE

© NDSU SOFTWARE TESTING RESEARCH GROUP

Engineering Self-Testable Autonomic Software

Presenter: Tariq M. King

EASe 2011April 27-29, Las Vegas, NV, USA

A COMPARATIVE CASE STUDY

Page 2: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 2

Outline Motivation Background Applications Experiments Lessons Learned Related Work Conclusion

Page 3: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP

Motivation Self-* features in autonomic computing

systems may incorporate dynamic software adaptation System adds, removes, replaces its own

components @ runtime

Raises reliability concerns asnew faults may be introduced due to dynamic adaptation

Most research neglects that self-test should be an integral part of these types of systems

3

A NEGLECTED SELF-* CHARACTERISTIC

Self-Configure

Self-Optimize

Self-Heal

Self-Protect

Self-Test

FAULTS? FAILURES?

Page 4: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 4

King (2009) describes an approach that seeks to seamlessly integrate runtime testing into the workflow of Autonomic Managers (AMs) Idea: Instantiate new

AMs that are tailoredfor testing activities

Test Managers (TMs)monitor, intercept & validate the change requests generated byAMs to realize AST

Managed Resource

Background AUTONOMIC SELF-TESTING (AST)

Monitor

Analyze Plan

ExecuteKnowledge

EffectorSensorAutonomic Manager

Monitor

Analyze Plan

ExecuteKnowledge

Autonomic ManagerTest Manager

Page 5: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 5

Under AST, test managers can operate according to two different validation strategies: Replication with Validation (RV) – tests

changes using separate copies of managed resources

Safe Adaptation with Validation (SAV) – tests changes in-place, directly on managed resources

Supported by an OO framework for implementing prototypes of self-testable autonomic software Java, Reflection, Threads, XML-Based Policies Interfaces with Automated Software Testing

Tools

Background AST STRATEGIES & TOOL SUPPORT

Page 6: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 6

During preliminary investigations, we sought to locate freely available autonomic software that could be used to demonstrate our ideas on AST

When no such applications could be found, focus shifted to development through our own avenues: REU on Autonomic Computing

http://www.cis.fiu.edu/reu/

CVM Research Projecthttp://cvm.cs.fiu.edu/

Applications PRELUDE

Page 7: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 7

Stevens (2007) developed a self-configuring data structure to demonstrate ideas on AST

Applications AUTONOMIC CONTAINER

ACTLightweight

StructuralAdaptations

RV Strategy

Page 8: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 8

Ramirez (2008) extended the ACT prototype by applying it in the context of short-term scheduling A pool of agents service jobs according to a

high-level scheduling algorithm, and self-configure at runtime, e.g., InteractiveFCFS, Batch SJN

Job requests stored in an autonomic container

Self-Optimization is achieved by adding or removing agents in proportion to the workload

A subsequent point release introduced Self-Protection by monitoring exception throwing

Applications AUTONOMIC JOB SCHEDULER

Page 9: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 9

Applications AUTONOMIC JOB SCHEDULER

Structural &Behavioral Adaptations

AJSLightweight(More Complex

than ACT)

RV Strategy

Page 10: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 10

CVM is a model-driven platform for realizing communication services Collaboration: FIU & Miami Children’s

Hospital

Separates concerns of modeling, synthesis, coordination, and delivery of user communication Users specify their communication

requirements, which are represented as schemas

Schemas are then transformed into executable control scripts, which are used to configure the underlying network devices and protocols

Applications COMMUNICATION VIRTUAL MACHINE

Page 11: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 11

Allen (2009) leverage AC and open-platform APIs for integrating communication services into CVM

Applications COMMUNICATION VIRTUAL MACHINE

CVMReal-World

BehavioralAdaptations

SAV Strategy

NCB LAYER

Page 12: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 12

Conducted three sets of experiments as part of the case study: Development Experiments – compared

the relative effort required to build the autonomic and self-test infrastructures, and various prototypes

Performance Experiments – compared the runtime performance of different versions and variants of the prototypes

Test Quality Experiments – compared the effectiveness of test sets in revealing faults and exercising the program code of the prototypes

Experiments OVERVIEW

Page 13: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 13

Experiments were performed on windows-based Intel® Core 2 Duo 2.4GHz PCs with 2–4 GB RAM

Several tools were used to support automatically collecting results: Eclipse Metrics – source code size and

other complexity metrics for development experiments

Eclipse TPTP – thread and memory analysis for performance experiments

JUnit, Cobertura, MuJava – test failures, code coverage, and mutation analysis for test experiments

Experiments SETUP ENVIRONMENT

Page 14: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 14

Experiments DEVELOPMENT

COMPARISON OF AUTONOMIC & TEST INFRASTRUCTURES

Page 15: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 15

Experiments DEVELOPMENT (CONT.)

COMPARISON OF PROTOTYPE DEVELOPMENT

Page 16: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 16

Non-Self-Test vs. High Transparency Self-Test Used Java RMI to develop a self-test version

of AJS with a distributed RV self-testing process

Performed identical sets of user actions on both systems and compared memory and thread usage

Results: Less than 1% difference

Naive vs. “Enhanced” Interleaving Self-Test Introduced timeout into TM threads of CVM Purpose: Seek to achieve better interleaving

in favor of core system over self-test during SAV self-testing

Experiments PERFORMANCE

Page 17: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 17

Experiments PERFORMANCE (CONT.)

SKYPE TWO-WAY

TOSMACK

THREE-WAY

COMPARISON OF SELF-TEST VARIANTS CVM

Page 18: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 18

Experiments TEST QUALITY

MUTATIONSETUP

Page 19: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 19

Experiments TEST QUALITY (CONT.)

MUTATION RESULTS

CODE COVERAGE RESULTS

Page 20: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 20

RV can be used to provide a transparent self-testing process, while SAV requires optimizations.

Using TMs as a test harness was convenient but problematic: Complexity, Synchronization Safety mechanisms (locks) were instrumental

Selecting and tailoring open-source testing tools presented unnecessary difficulties

Benefits: Prevention of Runtime Faults Testing Aligned with Development

Lessons Learned

Page 21: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 21

“Testing and assurance are probably the least focused phases in engineering self-adaptive software…” – Salehie (2009), ACM Trans… King et al. (2007), and Zhang et al. (2007)

Da Costa et al. (2010) JAAF+T: Java Self-Adaptive Framework +

Test Modify MAPE structure to include a self-test

activity

Munoz & Baudry (2009) Artificial Table Testing of Adaptive Software

Related Work

Page 22: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 22

Presented a case study on the engineering of autonomic software with self-testing features

Reached a level of “enablement”, still many open research issues: Dynamic regression test case selection and

scheduling based on runtime testing goals Runtime test case maintenance Reducing overhead of runtime testing

Current Directions: Cloud, Virtualized RV.

Conclusion

Page 23: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 23

Acknowledgements Dr. Masoud Milani, FIU

Dr. S. M. Sadjadi, FIU

Participants of the REU Summer 2006 and 2007 Programs on Autonomic Computing at FIU

Students and collaborators on CVM project

This work has been supported in part by the NSF under grants IIS-0552555, and HRD-0833093

Page 24: Engineering Self-Testable Autonomic Software

© NDSU SOFTWARE TESTING RESEARCH GROUP 24

Thank You!Questions?

¿Preguntas?問題Sawwalвопросы質問domandeερωτήσεις