Pedro Reales Mateo University of Castilla-La Mancha Alarcos Research Group University of Castilla-La Mancha Macario Polo Usaola University of Castilla-La.

Slides:



Advertisements
Similar presentations
Chapter 6 Server-side Programming: Java Servlets
Advertisements

Threads, SMP, and Microkernels
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Programming Paradigms and languages
Giving a formal meaning to “Specialization” In these note we try to give a formal meaning to specifications, implementations, their comparisons. We define.
Introduction to Software Testing Chapter 9.2 Challenges in Testing Software – Software Testability Paul Ammann & Jeff Offutt
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
T-FLEX DOCs PLM, Document and Workflow Management.
Computer Systems/Operating Systems - Class 8
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Introduction to Software Testing
Object-Oriented Analysis and Design
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
1 The Google File System Reporter: You-Wei Zhang.
Introduction to Software Testing Chapter 5.2 Program-based Grammars Paul Ammann & Jeff Offutt
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
© SERG Dependable Software Systems (Mutation) Dependable Software Systems Topics in Mutation Testing and Program Perturbation Material drawn from [Offutt.
Software Engineering General architecture. Architectural components:  Program organisation overview Major building blocks in a system Definition of each.
Introduction To System Analysis and Design
Part 3 Managing for Quality and Competitiveness © 2015 McGraw-Hill Education.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Graduate Student Department Of CSE 1.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Content The system development life cycle
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
1 Context-dependent Product Line Practice for Constructing Reliable Embedded Systems Naoyasu UbayashiKyushu University, Japan Shin NakajimaNational Institute.
The development of common partnership and interuniversitary scientific research according to the principle of sustainable development TRAINING COURSE Romania,
DEVS Based Modeling and Simulation of the CORBA POA F. Bernardi, E. de Gentili, Pr. J.F. Santucci {bernardi, gentili, University.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
Modeling and Analysis of Printer Data Paths using Synchronous Data Flow Graphs in Octopus Ashwini Moily Under the supervision of Dr. Lou Somers, Prof.
Celluloid An interactive media sequencing language.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Mutation Testing Breaking the application to test it.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
IHP Im Technologiepark Frankfurt (Oder) Germany IHP Im Technologiepark Frankfurt (Oder) Germany ©
MUTACINIS TESTAVIMAS Benediktas Knispelis, IFM-2/2 Mutation testing.
VIEWS b.ppt-1 Managing Intelligent Decision Support Networks in Biosurveillance PHIN 2008, Session G1, August 27, 2008 Mohammad Hashemian, MS, Zaruhi.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Software Testing and Quality Assurance Syntax-Based Testing (2) 1.
Programming Logic and Design Seventh Edition Chapter 1 An Overview of Computers and Programming.
ISQB Software Testing Section Meeting 10 Dec 2012.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Generating Automated Tests from Behavior Models
PLM, Document and Workflow Management
Coupling and Cohesion 1.
Mutation testing Julius Purvinis IFM-0/2.
Introduction to Software Testing Chapter 2 Model-Driven Test Design
Threads, SMP, and Microkernels
Paul Ammann & Jeff Offutt
Introduction to Software Testing
Introduction to Software Testing Chapter 5.2 Program-based Grammars
Unit 1: Introduction to Operating System
Functions of an operating system
Presentation transcript:

Pedro Reales Mateo University of Castilla-La Mancha Alarcos Research Group University of Castilla-La Mancha Macario Polo Usaola University of Castilla-La Mancha Jeff Offutt George Mason University

Outline Introduction. Mutation at the Multi-Class and System Levels. Implications of Mutation at Multi-Class and System Levels. Flexible Weak Mutation. A Tool for Mutation at System Level: Bacterio. Conclusions and Future Work. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 2

Introduction Mutation has been applied at different levels: Unit level – Individual functions or methods. Integration level - Communications between two functions. Class level- Multiple functions in a single class. This research is applying mutation at the multi-class and system level: Design test inputs that target two kinds of faults: Faults in how classes interoperate in OO technologies. Faults that are not presented in lower levels of abstraction. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 3

Introduction Mutation at multi-class and system levels has new technical problems: New mutation operators. Manage mutants as entire system. Detect equivalent mutant at this level. Execute complete functionalities can have high cost. Weak mutation can control costs Redefine what “program output” is. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 4

Introduction What is a “program output”? Program output at unit level. Return values of the functions and printed variables: Mothra, Proteum. Program output at class level. State of a class: muJava. Program output at multi-class and system levels. Files, data bases – geographic information systems. Sent messages to other systems or users – video games. Object in memory or elements in user interfaces - word processors. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 5

Introduction Mutation execution techniques: Strong mutation. Weak mutation, which uses values of internal variables. Stops the execution just after the mutated statement. No propagation. Less effectiveness. Firm mutation. In between weak and strong mutation. Mutation tools: Mothra, Proteum, muJava, Jumble and Certitude. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 6

Mutation at the Multi-Class and System Levels 1. Traditional mutation analysis (Mothra) A A C C D D B B M1() M2() M3() M1() M2() M3() 2. Class mutation analysis (muJava) 4. System mutation analysis (Bacterio) 3. Integration mutation analysis (Proteum) Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 7

Mutation at the Multi-Class and System Levels Check interaction between all the elements of the system. Check features that are difficult to check in lower abstraction levels. Concrete sequence of relation between units. Establish the base to check non-functional features through mutation. Performance. Security. … This new abstraction level complements the test tasks. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 8

Implications of Mutation at the System level 1. What to compare: what is a state or what is an output? 2. How manage a entire system. 3. New mutation operators. 4. When to compare. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 9

1-What to compare We must find anomalous states. In weak mutation, a state is represented by internal values. At system level, these values can be distributed. Multiple objects, global variables, static variables and local variables in methods. In strong mutation, a state is represented by outputs. At system level, the outputs of the system are complex. Files or databases. Sent messages to other systems or uses. Objects that keep in memory after the test. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 10

1-What to compare The notion of masking is different. In unit, integration and class levels, masking can happen in two ways: A variable with a incorrect value get another correct value before infect another part of the system. A variable with a incorrect value can go out of scope. In system level there is another way more: An object with an incorrect value is destroyed. Deciding what to compare is a crucial decision. Flexible Weak Mutation Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 11

2-Managing a entire system A mutant is a complete system. To replace mutants, there are two possibilities: Replace the whole system. Many copies of the system – high space requirements. Simple. Replace the mutated part of the system. Low space requirement. Complex. To accelerate execution traditional techniques can be adapted. Mutant schemata, compiler-integration and bytecode transformations. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 12

3-Mutation operators New mutation operators are needed to target errors at system level. Errors related with configuration. CPDV: Configuration Parameter Default Value. Errors related sequences of interactions. COI: Calls Order Interchange. Errors related with graphical user interfaces. GCD: Graphical component deletion. Currently we are identifying more typical errors at the system level and developing more mutation operators. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 13

4- When to compare At system level, weak mutation can be very important to reduce costs. Complete functionalities can involve remote connections, user interactions, file access... Problem of weak mutation at system level. A mutated part of the system can lead to an anomalous state in another par of the system. Deciding when to compare is a crucial decision. Flexible Weak Mutation Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 14

Flexible Weak Mutation Flexible Weak Mutation (FWM) is a new mutation execution technique. FWM solves two important issues related with mutation at the multi-class and system levels. When to compare. At the beginning and at the end of each executed method. What to compare. The state of the unit of the method where the comparison is done. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 15

Flexible Weak Mutation FWM compares before to finish the execution like weak mutation, but the execution is not stopped. The “entire” state is never compare, only the state of the unit. The execution is stopped only when an anomalous state is found. A trace of the original execution is stored. There are 2 important differences: The execution is only stopped when an anomalous state is found. So, when to stop the execution is decided dynamically. Partial states are compared different times during the execution. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 16

Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 17 Test Case a:ClassAb:ClassB c:ClassC > aM1(x,y) bM1() > cM2(y) bM2(z) cM1(x) aM2() aM3(y)

Flexible Weak Mutation aM1() bM1() cM1() aM2() bM2() aM2()aM3() cM2() aM3() aM1() Original Original trace execution AAAAABBBBCCACC Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 18

Flexible Weak Mutation Mutant1 AAAAABBBBCCACC Mutation (execution stopped) Different state found aM1() bM1() cM1() aM2() bM2() aM2()aM3() cM2() aM3() aM1() Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 19

Flexible Weak Mutation Mutant2 AAAAABBBBCCACC Mutation (execution stopped) Different state found aM1() bM1() cM1() aM2() bM2() aM2()aM3() cM2() aM3() aM1() Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 20

Flexible Weak Mutation aM1() bM1() cM1() aM2() bM2() aM2()aM3() cM2() aM3() aM1() Mutant3 AAAAABBBBCCACC Mutation Different state not found (execution not stopped) Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 21

A tool for system level mutation: Bacterio System level mutation is being implemented in a tool named Bacterio. For Java programs. Use Flexible Weak Mutation. Instrument java bytecode to create mutants and implements Flexible Weak Mutation. Currently uses traditional and interface mutation operators. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 22

Conclusions and Future Work Conclusions. A new level of abstraction to test complete systems through mutation. The basis to tests emergent properties such as security, usability, etc. Flexible Weak Mutation and a tool: Bacterio. Future work Design and implements more mutation operators at system level. Check the efficiency and effectiveness of these ideas through experiments. Introduction | Mutation at the System Level | Implications | Flexible Weak Mutation | The Tool | Conclusions 23

Questions? Thanks! Pedro Reales Mateo University of Castilla–La Mancha