Semantic Mutation Testing John A. Clark, Haitao Dan, Robert M Hierons.

Slides:



Advertisements
Similar presentations
--- IT Acumens. COMIT Acumens. COM SNMP Project. AIM The aim of our project is to monitor and manage the performance of a network. The aim of our project.
Advertisements

Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
DWebSpec Why dWebSpec? It could be asked,with all the web application alternatives.
Personalized Navigation in the Semantic Web: An Enhanced Faceted Browser Michal Tvarožek FIIT STU BA.
Timeline Editor Tommi Karhela, Antti Villberg VTT.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. The WSML Editor Plugin to the Web Services Modeling Toolkit Mick.
Lecture 1 Introduction to the ABAP Workbench
Verification/Simulati on –GUI for simulation and formal verification –Simulator: Exploration of dynamic behavior Checking.
REES: Reasoning Engines Evaluation Shell version 3.0 Automated Reasoning Lab University of California, Irvine.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Eclipse as a Teaching Platform for Kenya Student: Thomas Timbul (MEng 4) Supervised by: Robert Chatley.
Copyright © Soyatec. Licensed under the Eclipse Public License 1.0 Yves YANG & Philippe Ombredanne.
Introduction to High-Level Language Programming
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
GUI for development of REMES models REMES GUI group.
CS 355 – Programming Languages
Xactium xDSLs Run Models Not Code Tony Clark
Presented by Davide Magni Versioning in. Topics  phi-Technology Definition  phi-Designer short overview  phi-Solution step-by-step  phi-Technology.
Bogor-Java Environment for Eclipse MSE Presentation II Yong Peng.
University of Maryland parseThat: A Robust Arbitrary-Binary Tester for Dyninst Ray Chen.
1 Design, construction, & unit testing Software Engineering Semester Project Chih-Hong Jeng & Farn Wang fall 2006.
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University DCCFinder: A Very- Large Scale Code Clone Analysis.
Mihir Daptardar Software Engineering 577b Center for Systems and Software Engineering (CSSE) Viterbi School of Engineering 1.
1 Abstracting the Content of System Call Traces Waseem Fadel Abdelwahab Hamou-Lhadj Department of Electrical and Computer Engineering Concordia University.
S T A T I S T I C S A U S T R I A June Frederick Rennert June 2009 © STATISTICS AUSTRIA i n f o r m a t i o n Moving „e-Quest-New“
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
DEV-05: Ratcheting up your OpenEdge™ Development Productivity Sunil S Belgaonkar Principal Software Engineer.
Selected Topics in Software Engineering - Distributed Software Development.
Presented by Davide Magni and Andrea Ceiner ?. The proposal = A complete suite of tools open source & open standard for Model-Design-Generate healthcare.
Accada – Open Source EPC Network Prototyping Platform Christian Floerkemeier Christof Roduner SAP October 2006.
1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for.
Treasure Hunt - project development overall status - November 2011.
Introduction to JUnit 3.8 SEG 3203 Winter ‘07 Prepared By Samia Niamatullah.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Graphene So what’s the most efficient way to spam all your Facebook friends? Team Adith Tekur (System Architect/Tester) Neha Rastogi (System Integrator)
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
With Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
ESMF Code Generation with Cupid Update and Demo October 2009 Rocky Dunlap Spencer Rugaber Leo Mark Georgia Tech College of Computing.
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
1 Bogor – Software Model Checking Framework Presented by: Arpita Gandhi.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
New Random Test Strategies for Automated Discovery of Faults & Fault Domains Mian Asbat Ahmad
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
The Spoofax Language Workbench Rules for Declarative specification of language and IDEs Lennart C. L. Kats and Eelco Visser Delft University of Technology.
Cross Language Clone Analysis Team 2 February 3, 2011.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
John Foushee Andrew Hulbert Brian Louden. What is the Hawking Toolbar?  Short Description  Project Goal Allow Users to Access Web Content and Browser.
Psychophysics Software Suite Yearly project for Dr. Karen Banai.
Activiti Dima Ionut Daniel. Contents What is Activiti? Activiti Basics Activiti Explorer Activiti Modeler Activiti Designer BPMN 2.0 Activiti Process.
Bogor-Java Environment for Eclipse MSE Presentation III Yong Peng.
SOMA Service-Oriented Mobile learning Architecture Fabian Kromer Andreas Kuntner
MUTACINIS TESTAVIMAS Benediktas Knispelis, IFM-2/2 Mutation testing.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
Team 8: SAE AADL Simulation and Modeling Tools. Members Chaz Beck Software Engineering Shaun Brockhoff Software Engineering Jason Lackore Software Engineering.
Project Help CSU 670 Fall 2004 Karl Lieberherr. New Book on AUTHOR = "Erich Gamma and Kent Beck", TITLE = "Contributing.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
SWE 434 SOFTWARE TESTING AND VALIDATION LAB2 – INTRODUCTION TO JUNIT 1 SWE 434 Lab.
Framework Curation and Loading for tranSMART v1.0 - FC&L4tranSMART
System Concept Simulation for Concurrent Engineering
Programming Languages 2nd edition Tucker and Noonan
Java & Testing.
Presentation transcript:

Semantic Mutation Testing John A. Clark, Haitao Dan, Robert M Hierons

An example: cruise control

Question What happens in no_vehicle_in_front if brake and level=increase?

Another question What happens in no_vehicle_in_front if a vehicle is detected and level=increase?

The problem Traditional mutation operators introduce changes similar to ‘slips’. Sometimes a developer/user will make semantic mistakes: – They will misunderstand the semantics of part of the language they are using

A scenario A developer has been using language X with semantics L and moves to X with semantics L’. How do we find test data to find resultant faults?

An alternative: switching between programming languages Developer moves between two languages at the same level of abstraction that have different semantics for a common construct. Example: – Logical connectives in C and Ada. C uses short-circuit evaluation; Ada has alternatives (with and without short-circuit evaluation)

Scenario: refinement/retrenchment Similar constructs can have different semantics. Examples: – integer division in Z and Ada – retrenching infinite types (issues with precision, bounds on the types)

A simple framework We have a syntactic entity N in a language with semantics L. Traditional mutation operators transform (N,L) to some (N’,L) Semantic mutation operators transform (N,L) to some (N,L’) [or maybe even (N’,L’)] They aim to find a different type of mistake.

Current status and future work Prototype tool being developed for C Will soon start experiments to explore nature of semantic mutants: – How many are produced? – How do they relate to traditional syntactic mutants? – What are good operators? – Are there many trivial or equivalent mutants?

Tool Intro and Demo Architecture, GUI, mutant generation and test runner

Implementation Overview The tool is developed using Java and based on Eclipse platform. Currently, it is developed as a rich client application of Eclipse and it also can be published as an eclipse plug-in in the future. For now, TXL is used to drive the semantic mutation and Check is used as test runner.

Tool Architecture We had a version of mutation module Now, working on testing module

Eclipse Architecture and RCP

TXL – as a prototyping mutation engine It is a generalized source-to-source translation system. It takes as input an piece of source code, and a set of transformation. It produces as output the transformed source code. Example: – txl source1.c tranform_rule.txl

Check A unit testing framework for C. Check is based on Autoconf, Automake, and friends (collectively known as Autotools). It has many advanced features: run in fork mode (allow signal and early exit), test fixture, multiple suites in one runner, test timeouts, determining test coverage, xml logging etc.

Editor and Views of SMT-C*

Mutant generation* Support three different scopes Generate different Semantic mutants for different scopes

Test runner (under construction)* A clone of JUnit GUI; Running results of test suites and testcases: statistics and the result for each test suite and testcase with graphic highlight; Progress bar; Test error traces; Open testcases from the test result view.

Future work of SMT-C Implement more semantic mutation operators. Testing runner for mutants. Enhance mutant generation function: mutant generation statistics, better mutant management, function scope mutation and efficiency. Integrate with CDT to provide better project navigator, integrated toolchain management and launcher for better C development / semantic mutation testing experience. Reuse compare plug-in in eclipse to enhance the mutant viewer. Accelerate the mutation generation and testing processes.

Questions?