Object-oriented mutation applied in Common ... - Semantic Scholar
Recommend Documents
Jul 20, 2011 - ... Arie Struyk2,{, Ekaterina Mokhonova1, Stephen C. Cannon2 and ..... Horn, E.J., Albor, A., Liu, Y., El-Hizawi, S., Vanderbeek, G.E., Babcock,.
Common Missense Mutation G1528C in Long-Chain 3-Hydroxyacyl-CoA .... ter lactate, 0.67 grams/liter Yeast Nitrogen Base without amino acids.
Email: [email protected]. Computer software is increasingly applied to processing data that are not only in large volumes but also in high ... then applied to testing an automated modelling tool. Experiment data clearly demonstrate that test ...
Dec 5, 2017 - Wiley: Testing Object-Oriented Software - David C. Kung, Pei Hsia, Jerry Gao ... Object-oriented programming increases software reusability, extensibility, ... Beginning Object · Oriented Programming · with C# by Jack Purdum.
E. Susan Slechta,* Jing Liu,*,1 Dan I. Anderssonâ and John R. Roth*,2. *Department of Biology, University of Utah, Salt Lake City, Utah 84112 and. â Swedish ...
Nov 13, 2003 - frequent in Japanese patients with van der Knaap disease, and ..... Arts WFM, Hoogenraad F, Valk J (1995) Leukoencephalopa- thy with ...
1991 ITSEC: Information Technology Security Evaluation Criteria v 1.2 ... ST: Security Target â A set of security requirements and specifications to be used .... and partly safety, the solution was to build up quality criteria checklist based on th
dynamic programming algorithm to calculate this number in polynomial .... The longest common subsequence, as a computer
Mohammad Soleyman Soltanpour, MSc, PhD,1 Zahra Soheili, MSc, PhD,2 ... Faculty of Medicine, Medical Sciences, Tarbiat Modarres University, Tehran, Iran;.
Polygenic Mutation in Drosophila melanogaster: Mapping Spontaneous. Mutations Affecting Sensory Bristle Number. Trudy F. C. Mackay,1 Richard F. Lyman ...
Selection Lines and Candidate Quantitative Trait Loci. Trudy F. C. Mackay and ..... selection line Y chromosomes to bb was tested by crossing males from the ...
Oct 4, 2016 - (BES), 20 mM ethylene glycol tetra-acetic acid (EGTA), 6.29 ... pCa 9.0 (in mM): 50 BES, 5 NaN3, 10 phosphoenol pyruvate. (PEP), 10 EGTA ...
low but not high abdominal bristle number, but the interpretation is confounded by variation in ...... tations are practically additive ( CROW and SIMMONS. 1983) ...
(1) Stenson, P. D., Mort, M.,Ball, E. V., et al.: The Human Gene Mutation Database: 2008 update. Genome Med. 13, 1 (2009). (2) Johan, T. D., Stylianos, E. A.: ...
and Hans-Jochen Krause are with FZJ, 52425 Juelich, Germany. Rizwan Akram is with ... Meinhard Schilling, and Holger Burkhardt are with the Applied Physics.
10 Myers, Norman, Russ Mittermeier, Cristina G. Mittermeier, Gustavo A. B. da Fonseca, and .... 58 Mercado, Agustin, Jr., Marco Stark, and Dennis P. Garrity.
Jul 2, 2012 - Hecht, E. Optics, 4th ed.; Fundação Calouste Gulbenkian: San .... Benshun, Y.; Andrew, C.; Madden, I.; MacDonald, J.R.; Andonovic, I. A Novel ...
consider to be two basic elements of any cooperation activity (delegation and help) and ... formalise these forms of delegation and help, in GOLEM, a multiagent ...
hypochondriasis.6 It is very important for the child that family members accept the psychiatric nature of this skin disease and undertake psychiatric treatment.
However, de Blois and coauthors (de Blois & Novak, 1994; de. Blois et al., 1998) remained cautious about adopting a dichoto- mous view of the distribution of ...
We're OKâ. As shown here and in the previous ..... Susan Garvin and Martha Charepoo for valuable research assistance. We have benefitted from discussions ...
b) The total sale in a city during a period is inferred from the totals of the sales in the ... Temporal abstraction involves operations on the infinite temporal domain. .... Shahar uses the name âvertical abstractionâ to emphasize the move from
in congenital and acquired thrombotic thrombocytopenic purpura. (TTP). The human VWF-CP has recently been purified. Cloning of the corresponding cDNA ...
Object-oriented mutation applied in Common ... - Semantic Scholar
Object-oriented mutation applied in Common Intermediate Language programs originated from C# Anna Derezińska, Karol Kowalski Institute of Computer Science Warsaw University of Technology www.ii.pw.edu.pl/~adr/
Outline y y y y y y
Object-oriented mutations Common Intermediate Language O-O mutations on CIL level ILMutator system Experiments Conclusions
Object-oriented mutations y y y y y
OO – misusing of class and object interrelations Locally interpreted or distributed over a whole program, e.g. class hierarchy Single instruction at high-level language Several instructions at low-level language, e.g. Common Intermediate Language Advanced operators – more languagerelated than standard (traditional) mutation operators
Advanced operators for C# C# 1.1 Specified 40 mutation operators including: -analogous to Java adopted for C# - with different specifications - with different application scope
-for specific features of C#: delegates, properties, indexers, override modifier C# 2.0, 3.0,.. many new features not suitable for mutation: sealed modifier, generics, partial classes and methods, extension, anonymous methods, .. (Many not applicable in the CIL)
Mutation tools for C# y y y
y
Nester – simple mutation by use of regular expressions PexMutator – standard mutation operators CREAM – parser based, 18 object-oriented, 8 standard mutation operators (v3) ILMutator – mutation operators in the Intermediate Language of .NET originated from C# code
Common Intermediate Language y
y y
y y
Common Language Runtime (CLR) – runtime environment of Microsoft .NET Framework Assembly = metadata + managed code Managed code = Common Intermediate Language (CIL) Machine level language exploiting all capabilities of CLR Programs translated from C# use only subset of these capabilities
Common Language Runtime C# source file(s) C# compiler Managed module (CIL and metadata) Common Language Runtime Operating System
O-O mutations on CIL level PNC – new method call with child class type
OMR operator (Overloading method contents change)
Pre: - Avoiding recursive call of methods - At least one consistent combination of parameters
OMR operator – in CIL .method private hidebysig instance void count(int32 a, int32 b) cil managed { { .maxstack 8 .maxstack 8 IL_0000: nop IL_0000: nop IL_0001: ret IL_0001: ldarg.0 } IL_0002: ldarg.1 IL_0003: call instance void Operators.ClassA::count(int32) IL_0008: nop IL_0009: ret }
Class constructor - 3 sections in CIL //C# public class ClassB { private int a; private int b = 1; public ClassB() { a = 2; } }
…. .ctor() …. { // initialization of fields defined in ClassB e.g. a=0; b=1; //constructor of the base class or another constructor of this class is called //constructor body e.g. a = 2; }
Constructors changed by operators JDC – C#-supported default constructor create Pre: A non-parametric constructor is the only class constructor This constructor is deleted CIL – 3rd section of the constructor is deleted (= constructor without its body) JID – member variable initialization deletion private int a =5; private int a; Initializations deleted from the 1st section of all constructors Restriction: only primitive types
O-O mutations on CIL level JID – member variable initialization deletion
IPC operator (Explicit call of parent's constructor deletion) Original C# code:
Mutated C# code:
public class Vehicle { private int x; public Vehicle() {...} public Vehicle(int x) { this.x = x; } } public class Car:Vehicle { public Car(int y) :base(y) {...} }
public class Vehicle { private int x; public Vehicle() {...} public Vehicle(int x) { this.x = x; } } public class Car:Vehicle { public Car(int y) {...} }
Pre: Base class defines its non-parametric constructor
IPC operator (Explicit call of parent's constructor deletion) Original CIL code:
Intermediate Language Mutator supports mutation of programs in .NET environment Introduces standard and object-oriented mutations in the intermediate code derived from compiled C# programs using Mono.Cecil library User can view the original intermediate code and the mutated code with highlighted differences
ILMutator system y y
y
Execution of tests on the original and mutated assemblies (NUnit) Verification of mutated assemblies with PEVerify tool (delivered with .NET Framework) Implements 4 standard and selected object-oriented operators
ILMutator system - architecture Assembly visualisation Operator management Mono Cecil
DiffEngine
Assembly management
PEVerify
Test management
NUnit
Test result visualisation
ILMutator system – during work
ILMutator system – test runner
Experiments – mutation operators EOC – reference comparison and content comparison replacement IPC – explicit call of a parent’s constructor deletion JDC – C# supported default constructor create JID – member variable initialization deletion OMR – overloading method contents change PNC - new method call with child class type 0 mutants
Parser based CREAtor of Mutants Applies standard and object-oriented operators Uses compilation and reflection mechanisms Tests mutants with unit test frameworks
Comparison with CREAM 2.0 Generated and killed mutants 250 200 Mutants' number
Comparison with CREAM 2.0 Average mutant's generation time (including compilation time for CREAM) 14 12 10 seconds
8 6 4 2 0
CREAM 2.0 ILMutator
EOC
IPC
JID
13 0,27
13,45 0,3
12,68 0,22
Conclusions y y y y
Introducing mutations on the intermediate language level – more efficient, faster Mutated program doesn’t have to be compiled Identification of mutation locations - more effort to implement Lack of compilation - necessity of correctness checking
Future work y y y y
y y
More mutation operators Other ways of generating and storing mutants (e.g. metamutant) Other methods of testing (not only unit tests) New versions of libraries (Mono.Cecil 0.9) or other libraries (Microsoft.CCI) for mutation injection Better visualization of mutated code (CILC#) Identification of equivalent mutants