Fault Generation Tool (FGT) of Error-Space Model (ESM) for the generation of test cases and estimation of software reliability Hong Zhang May 06, 2003.

Slides:



Advertisements
Similar presentations
Operators and Arithmetic Operations. Operators An operator is a symbol that instructs the code to perform some operations or actions on one or more operands.
Advertisements

SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
Chapter 14: Overloading and Templates C++ Programming: Program Design Including Data Structures, Fifth Edition.
COSC 120 Computer Programming
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
Chapter 3: System design. System design Creating system components Three primary components – designing data structure and content – create software –
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming Expressions and Operators Program Style.
C programming an Introduction. Types There are only a few basic data types in C. char a character int an integer, in the range -32,767 to 32,767 long.
Chapter 15: Operator Overloading
Principles of Procedural Programming
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
Program A computer program (also software, or just a program) is a sequence of instructions written in a sequence to perform a specified task with a computer.
Introduction to programming Language C, Data Types, Variables, Constants. Basics of C –Every program consists of one or more functions and must have main.
Computer Science 101 Introduction to Programming.
Shell Scripting Awk (part1) Awk Programming Language standard unix language that is geared for text processing and creating formatted reports but it.
EG280 - CS for Engineers Chapter 2, Introduction to C Part I Topics: Program structure Constants and variables Assignment Statements Standard input and.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CIS Computer Programming Logic
Multi-agent Research Tool (MART) A proposal for MSE project Madhukar Kumar.
Operator Precedence First the contents of all parentheses are evaluated beginning with the innermost set of parenthesis. Second all multiplications, divisions,
Chapter 13: Implementation Phase 13.3 Good Programming Practice 13.6 Module Test Case Selection 13.7 Black-Box Module-Testing Techniques 13.8 Glass-Box.
INTRODUCTION TO ALGORITHMS PROGRAMMING. Objectives Give a definition of the term algorithm Describe the various parts of the pseudocode algorithm or algorithm.
 Input and Output Functions Input and Output Functions  OperatorsOperators Arithmetic Operators Assignment Operators Relational Operators Logical Operators.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
2440: 211 Interactive Web Programming Expressions & Operators.
MSE Presentation (Phase III) Pesticide Safety Consultant System (PSCS) Fengyou Jia Oct. 20, 2003.
Program A computer program (also software, or just a program) is a sequence of instructions written in a sequence to perform a specified task with a computer.
LESSON 6 – Arithmetic Operators
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 2: Basic Elements of C++
Student Curriculum Planning System MSE Project Presentation I Kevin Sung.
1 INTRODUCTION TO PROBLEM SOLVING AND PROGRAMMING.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
Programming Fundamental Slides1 Data Types, Identifiers, and Expressions Topics to cover here: Data types Variables and Identifiers Arithmetic and Logical.
Data Structures Using C++ 2E1 Inheritance An “is-a” relationship –Example: “every employee is a person” Allows new class creation from existing classes.
Lecture #6 OPERATORS AND ITS TYPES By Shahid Naseem (Lecturer)
Lesson - 5. Introduction While programming, we usually need to decide the path of the program flow according to the parameters and conditions. Actually.
Chapter 10 Function Block Diagram
CPS 506 Comparative Programming Languages Syntax Specification.
Database Java Bean Feng Chen. Outline Tools and approaches Project overview Major contribution Project plan Cost estimate References Acknowledgment.
Control Structures (B) Topics to cover here: Sequencing in C++ language.
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
Program Development C# Programming January 30, 2007 Professor J. Sciame.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
Software Testing Part II March, Fault-based Testing Methodology (white-box) 2 Mutation Testing.
Recap……Last Time [Variables, Data Types and Constants]
Operators & Expressions
Mutation Testing Breaking the application to test it.
Operators A binary operator combines two values to get one result: x OP y where OP is any binary operators such as +, -, *, /, ==, !=, >, &&, or even =.
Dr. Sajib Datta Jan 21,  Declare a variable ◦ int height; [note that no value is still assigned]  Assign a variable a value ◦ height =
Introduction to Algorithmic Processes CMPSC 201C Fall 2000.
Dr. Rob Hasker Dr. Brad Dennis. Coverage  Exercise: Each participant: write down 4 instructions Input to procedure: value given by someone, which person.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
OPERATORS IN C CHAPTER 3. Expressions can be built up from literals, variables and operators. The operators define how the variables and literals in the.
UMBC CMSC 104 – Section 01, Fall 2016
Chapter 6 JavaScript: Introduction to Scripting
Computer Programming BCT 1113
Data Types, Identifiers, and Expressions
Arithmetic operations & assignment statement
PRG 410 Competitive Success-- snaptutorial.com
PRG 410 Education for Service-- snaptutorial.com
PRG 410 Teaching Effectively-- snaptutorial.com
PRG 410 knowledge is divine-- snaptutorial.com. PRG 410 All Assignments For more classes visit PRG 410 Week 1 Individual Math Tutor.
Introduction to C++ Programming
Introduction to Programming – 4 Operators
Expressions.
Primitive Types and Expressions
Operator and Expression
DATA TYPES There are four basic data types associated with variables:
Presentation transcript:

Fault Generation Tool (FGT) of Error-Space Model (ESM) for the generation of test cases and estimation of software reliability Hong Zhang May 06, 2003

MSE Presentation 1 Major Professor: Dr. David A. Gustafson Committee Members: Dr. Maria Zamfir Bleyberg Dr. Scott A. DeLoach

Overview  Introduction of project  Requirements  Data Flow Diagram  Cost Estimation  Milestones

Purpose of the Project  To gain some experience with software testing  To study mutation testing  To provide mutation operators for C++ programs  To implement a fault generation tool with C++

Potential Risks Lack of existing mutation operators references Lack of experiences of using mutation operators

Introduction of the project  This fault generation tool will build a set of possible faults by the ESM tool. The faults will be based on program mutation testing. The output of FGT will be a file of possible faults.

Mutation testing  For a program P, mutation testing produces a set of alternate programs. Each alternate program, P i, known as a mutant of P, is formed by modifying a single statement of P according to some predefined modification rule. These modification rules are called mutation operators. The syntactic change itself is called the mutation, and the resulting program is the mutant program, or simply mutant.

Mutation Operators for C++  Operand Replacement Operators (18)  Operators Insertion Operators (2)  Arithmetic Operator Replacement Operators (1)  Operators within these groups have reasonably uniform semantics and rules for applications

Mutation Operators - Operand  Operand Replacement Operators (18) Variables: OVV, OVC, OVA, OVP Constants: OCV, OCC, OCA, OCP Array References: OAV, OAC, OAA, OAP, OAN Pointers: OPV, OPC, OPA, OPP, OPN

Mutation Operators – Operators  Operators Insertion Operators IBO: Binary Operators Insertion  Multiplicative operators: Multiplication (*), Division (/), Modulus (%).  Additive operators: Addition (+), subtraction (-).  IBO1

Mutation Operators – Operators (cont.)  Operators Insertion Operators IBO: Binary Operators Insertion  Relational and equality operators: Less than ( ), Less than or  equal to ( =), Equal to (= =), Not equal to (!=).  IBO2

Mutation Operators – Operators (cont.)  Operators Insertion Operators IBO: Binary Operators Insertion  Logical operators: Logical AND (&&). Logical OR (||)  IBO3  Assignment operators: Assignment (=), Addition assignment (+=), Subtraction  assignment (- =), Multiplication assignment (*=), Division assignment (/=)  IBO4

Mutation Operators – Operators  IUO: Unary operator insertion Unary operator includes: ‘!’, ‘&’, ‘~’, ‘*’, ‘+’, ‘++’, ‘-‘, ‘- -‘.

Mutation Operators – Arithmetic  Arithmetic Operator Replacement Operators (1) AOR: Arithmetic operator replacement Each occurrence of one of the operators +, -, *, and / is replaced by each of the other operators.

Restrictions for input and output  Input: Any C++ files (C++ programs only)  Output: A set of possible faults generated by the program ( a faults file) The format of the output is going to be: Fault ID: Line Number: Column Number: Original expression: Change E.g. 1:35:25:<:+1< Which means that fault 1 is located at line 35, 25th column, original character is “<”, and should be changed to “+1<”.

Data Flow Diagram SRC Input Replace Operands Replace Arithmetic Operators Replace Relational Operators Replace Operators Output File (Faults File) Scan for Keywords Internal File Build Faults File

Project Requirements  Programming Language: C++  Ability to Read C++ Program  Keywords Search  Applying Mutation Operators  Recording Faults  Generating Faults File

Project Plan

Breakdown of the project  Keywords Scanning:P1  Operands replacement: P2  Operators replacement:P3  Arithmetic operators replacement: P4  Relational operators replacement: P5  Faults File generation:P6  Main method and others: P7

Subpiece Size Estimate (in LOC) PartMax SizeBest GuessMin Size

Estimates for the project  The estimates for each section:  P1 = 450  P2 = 350  P3 = 165  P4 = 165  P5 = 165  P6 = 450  P7 = 300  The estimate for the whole project:  Whole = 2050

Cost Estimation - Productivity  KDSI(Kilo Delivered Source Instruction)= 2.05 KLOC  PM = 3.0 * (2.05) 1.12 = 7 Person-Month  TDEV = 2.5 * (7) 0.38 = 2.5*1.69 = 3.56 Month  2050 LOC / 3.56 Month = 570 LOC/ Month = 19 LOC / Day  My Productivity: 19 LOC / Hour => 38 LOC / Day => I will finish this project in about 2 months if I work 2 hours a day, 30 days a month.

Milestones 05/06/03: First Presentation Introduction of project, Project Plan project requirements 06/10/03:Second Presentation Object Model, SQA Plan, Test Plan 07/16/03: Third Presentation Coding, Testing, Documentation, Final Report

Thank you! Comments? Questions?