Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage

Size: px
Start display at page:

Download "Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage"

Transcription

1 Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage Paul Ammann & Jeff Offutt waretest/

2 Ch. 3 : Logic Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Applied to Applied to Source FSMs Applied to Specs DNF Source Specs Source Models Design Use cases Integ Input Introduction to Software Testing (Ch 3) Ammann & Offutt 2

3 Covering Logic Expressions (3.1) Logic expressions show up in many situations Covering logic expressions is required by the US Federal Aviation Administration for safety critical software (FAA) Logical expressions can come from many sources Decisions in programs FSMs and statecharts Requirements Tests are intended to choose some subset of the total number of truth assignments to the expressions Introduction to Software Testing (Ch 3) Ammann & Offutt 3

4 Logic Predicates and Clauses A predicate is an expression that evaluates to a boolean value Predicates can contain boolean variables non-boolean variables that contain >, <, ==, >=, <=,!= boolean function calls Internal structure is created by logical operators : the negation operator : the and operator : the or operator : the implication operator : the exclusive or operator : the equivalence operator A clause is a predicate with no logical operators ((a < b) C) ((a >= b) p(x)) Introduction to Software Testing (Ch 3) Ammann & Offutt 4

5 Review: Truth Table for Logical Operators p q p q p q p q p q p q T T T T F T T T F F T T F F F T F T T T F F F F F F T T Introduction to Software Testing (Ch 3) Ammann & Offutt 5

6 Review: the Laws of Logic 1. Commutative Laws p q q p p q q p 2. Associative Laws (p q) r p (q r) (p q) r p (q r) 3. Distributive Laws p (q r) (p q) (p r) p (q r) (p q) ( p r) 4. Idempotent Laws p p p p p p 5. Identity Laws p F F p F p p T p p T T 6. Involution Law ( p) p 7. De Morgan s Laws (p q) ( p) ( q) (sometimes written p NOR q) (p q) ( p) ( q) (sometimes written p NAND q) 8. Complement Laws p p F p p T T F F T Introduction to Software Testing (Ch 3) Ammann & Offutt 6

7 Examples P = (a < b) f (z) D (m >= n*o) P is a predicate P has four clauses: 1. (a < b) relational expression 2. f (z) boolean-valued function 3. D boolean variable 4. (m >= n*o) relational expression Most predicates have few clauses It would be nice to quantify that claim!!! Sources of predicates Decisions in programs Guards in finite state machines Decisions in UML activity graphs Requirements, both formal and informal SQL queries (i.e where conditions) Introduction to Software Testing (Ch 3) Ammann & Offutt 7

8 Translating from English I am interested in SWE 637 and CS 652 course = swe637 OR course = cs652 Humans have trouble translating from English to Logic If you leave before 6:30 AM, take Braddock to 495, if you leave after 7:00 AM, take Prosperity to 50, then 50 to 495 time < 6:30 path = Braddock time > 7:00 path = Prosperity Hmm this is incomplete! time < 6:30 path = Braddock time >= 6:30 path = Prosperity Introduction to Software Testing (Ch 3) Ammann & Offutt 8

9 Source Code if ((gear == 5 gear == 6) && speed >= 100) print( highway ) else print( some other road ); P : (g = 5 g = 6) s >= 100 Introduction to Software Testing (Ch 3) Ammann & Offutt 9

10 Testing and Covering Predicates (3.2) We use predicates in testing as follows : Developing a model of the software as one or more predicates Requiring tests to satisfy some combination of clauses Abbreviations: P is the set of predicates p is a single predicate in P C is the set of clauses in P C p is the set of clauses in predicate p c is a single clause in C Introduction to Software Testing (Ch 3) Ammann & Offutt 10

11 Predicate and Clause Coverage The first (and simplest) two criteria require that each predicate and each clause be evaluated to both true and false Predicate Coverage (PC) : For each p in P, TR contains two requirements: p evaluates to true, and p evaluates to false. When predicates come from conditions on edges, this is equivalent to edge coverage PC does not evaluate all the clauses, so Clause Coverage (CC) : For each c in C, TR contains two requirements: c evaluates to true, and c evaluates to false. Introduction to Software Testing (Ch 3) Ammann & Offutt 11

12 Predicate Coverage Example ((a < b) D) (m >= n*o) predicate coverage Predicate = true a = 5, b = 10, D = true, m = 1, n = 1, o = 1 = (5 < 10) true (1 >= 1*1) = true true TRUE = true Predicate = false a = 10, b = 5, D = false, m = 1, n = 1, o = 1 =(10< 5) false (1>=1*1) = false false TRUE = false Introduction to Software Testing (Ch 3) Ammann & Offutt 12

13 Clause Coverage Example ((a < b) D) (m >= n*o) Clause coverage (a < b) = true (a < b) = false D = true D = false a = 5, b = 10 a = 10, b = 5 D = true D = false m >= n*o = true m = 1, n = 1, o = 1 m >= n*o = false m = 1, n = 2, o = 2 false cases true cases Two tests 1) a = 5, b = 10, D = true, m = 1, n = 1, o = 1 2) a = 10, b = 5, D = false, m = 1, n = 2, o = 2 Introduction to Software Testing (Ch 3) Ammann & Offutt 13

14 Problems with PC and CC a b p = a b 1 T T T 2 T F T 3 F T T 4 F F F Examples: T 23 : Satisfies CC but not PC, because p is never false T 24 : Satisfies PC but not CC, because b is never true T 14 : Satisfies both CC and PC coverage So, neither PC nor CC subsumes the other in all cases. PC does not fully exercise all the clauses, especially in the presence of short circuit evaluation CC does not always ensure PC That is, we can satisfy CC without causing the predicate to be both true and false This is definitely not what we want! The simplest solution is to test all combinations Introduction to Software Testing (Ch 3) Ammann & Offutt 14

15 Combinatorial Coverage CoC requires every possible combination Sometimes called Multiple Condition Coverage Combinatorial Coverage (CoC) : For each p in P, TR has test requirements for the clauses in C p to evaluate to each possible combination of truth values. a < b D m >= n*o P = ((a < b) D) (m >= n*o) 1 T T T T 2 T T F F 3 T F T T 4 T F F F 5 F T T T 6 F T F F 7 F F T F 8 F F F F Introduction to Software Testing (Ch 3) Ammann & Offutt 15

16 Combinatorial Coverage This is simple, neat, clean, and comprehensive But quite expensive! Requires 2 N tests, where N is the number of clauses Impractical for predicates with more than 3 or 4 clauses The literature has lots of suggestions The general idea is simple: Test each clause independently from the other clauses Getting the details right is hard What exactly does independently mean? The book presents this idea as making clauses active Introduction to Software Testing (Ch 3) Ammann & Offutt 16

17 Active Clauses Clause Coverage has a weakness : The values do not always make a difference Consider the first test for clause coverage, which caused each clause to be true: (5 < 10) true (1 >= 1*1) Only the last clause counts! To really test the results of a clause, the clause should be the determining factor in the value of the predicate Determination : A clause c i in predicate p, called the major clause that determines p iff the values of the remaining minor clauses c j are such that changing c i changes the value of p This is considered to make the clause active Introduction to Software Testing (Ch 3) Ammann & Offutt 17

18 Determining Predicates Determination, the conditions under which a clause influences the outcome of a predicate If you flip the clause, and the predicate changes value, then the clause determines the predicate. The major clause, c i, is the clause on which we are focusing. All of the other clauses c j, j!= i, are minor clauses. Typically, to satisfy a given criterion, each clause is treated in turn (One at a time, One by one) as a major clause. From the testing perspective, we would like to test each clause under circumstances where the clause determines the predicate Introduction to Software Testing (Ch 3) Ammann & Offutt 18

19 Determining Predicates p = a b if b = true, p is always true. So, if b = false, a determines p. if a = false, b determines p. p = a b if b = false, p is always false. So, if b = true, a determines p. if a = true, b determines p. Note: if we do not vary B under circumstances where B determines P, then we have no evidence that B is used correctly. Goal : Find tests for each clause when the clause determines the value of the predicate This is formalized in several criteria that have subtle, but very important, differences Introduction to Software Testing (Ch 3) Ammann & Offutt 19

20 Making Clauses Determine a Predicate Finding values for minor clauses c j is easy for simple predicates But how to find values for more complicated predicates? Definitional approach: p c=true is predicate p with every occurrence of c replaced by true p c=false is predicate p with every occurrence of c replaced by false To find values for the minor clauses, connect p c=true and p c=false with Exclusive OR p c = p c=true p c=false After solving, p c describes exactly the values needed for c to determine p Introduction to Software Testing (Ch 3) Ammann & Offutt 20

21 Examples p = a b p a = p a=true p a=false = (true b) (false b) = true b = b p = a b p a = p a=true p a=false = (true b) (false b) = b false = b p = a (b c) p a = p a=true p a=false = (true (b c)) (false (b c)) = true (b c) = (b c) = b c NOT b NOT c means either b or c can be false RACC requires the same choice for both values of a, CACC does not Introduction to Software Testing (Ch 3) Ammann & Offutt 21

22 A More Subtle Example p = ( a b ) ( a b) p a = p a =true p a=false = ((true b) (true b)) ((false b) (false b)) = (b b) false = true false = true p = ( a b ) ( a b) p b = p b =true p b=false = ((a true) (a true)) ((a false) (a false)) = (a false) (false a) = a a = false a always determines the value of this predicate b never determines the value b is irrelevant! Introduction to Software Testing (Ch 3) Ammann & Offutt 22

23 Repeated Variables The definitions in this chapter yield the same tests no matter how the predicate is expressed (a b) (c b) == (a c) b (a b) (b c) (a c) Only has 8 possible tests, not 64 Use the simplest form of the predicate, and ignore contradictory truth table assignments Introduction to Software Testing (Ch 3) Ammann & Offutt 23

24 Active Clause Coverage Active Clause Coverage (ACC) : For each p in P and each major clause c i in C p, choose minor clauses c j, j!= i, so that c i determines p. TR has two requirements for each c i : c i evaluates to true and c i evaluates to false. p = a b 1) a = true, b = false 2) a = false, b = false 3) a = false, b = true 4) a = false, b = false a is major clause; c i = a Duplicate b is major clause; c i = b This is a form of MCDC (Modified Condition/Decision Coverage), which is required by the FAA for safety critical software Ambiguity : Do the minor clauses have to have the same values when the major clause is true and false? Introduction to Software Testing (Ch 3) Ammann & Offutt 24

25 Resolving the Ambiguity p = a ( b c ) Major clause : a (or c i = a) a = true, b = false, c = true Is this allowed? a = false, b = false, c = false c = false Is the minor clauses c j need to have the same values when the major clause c i is true as when c i is false??? This question caused confusion among testers for years Considering this carefully leads to three separate criteria : 1. Minor clauses do not need to be the same (GACC) 2. Minor clauses do need to be (must be) the same (RACC) 3. Minor clauses force the predicate to become both true and false (CACC) Introduction to Software Testing (Ch 3) Ammann & Offutt 25

26 General Active Clause Coverage General Active Clause Coverage (GACC) : For each p in P and each major clause c i in C p, choose minor clauses c j, j!= i, so that c i determines p. TR has two requirements for each c i : c i evaluates to true and c i evaluates to false. Condition: The values chosen for the minor clauses c j do not need to be the same when c i is true as when c i is false, that is, c j (c i = true) = c j (c i = false) for all c j OR c j (c i = true)!= c j (c i = false) for all c j This is complicated! It is possible to satisfy GACC without satisfying predicate coverage (PC). i.e. p = a b We really want to cause predicates to be both true and false! Introduction to Software Testing (Ch 3) Ammann & Offutt 26

27 Restricted Active Clause Coverage Restricted Active Clause Coverage (RACC) : For each p in P and each major clause c i in C p, choose minor clauses c j, j!= i, so that c i determines p. TR has two requirements for each c i : c i evaluates to true and c i evaluates to false. Condition: The values chosen for the minor clauses c j must be the same when c i is true as when c i is false, that is, it is required that c j (c i = true) = c j (c i = false) for all c j. This has been a common interpretation by aviation developers RACC often leads to infeasible test requirements There is no logical reason for such a restriction Introduction to Software Testing (Ch 3) Ammann & Offutt 27

28 Correlated Active Clause Coverage Correlated Active Clause Coverage (CACC) : For each p in P and each major clause c i in C p, choose minor clauses c j, j!= i, so that c i determines p. TR has two requirements for each c i : c i evaluates to true and c i evaluates to false. Condition: The values chosen for the minor clauses c j must cause p to be true for one value of the major clause c i and false for the other, that is, it is required that p(c i = true)!= p(c i = false). A more recent interpretation Implicitly allows minor clauses to have different values Explicitly satisfies (subsumes) predicate coverage (PC) Introduction to Software Testing (Ch 3) Ammann & Offutt 28

29 Simple Example #1: GACC, RACC, CACC a b p = a b 1 T T T 2 T F F 3 F T F 4 F F T GACC: Remember: The values chosen for the minor clauses c j do not need to be the same when c i is true as when c i is false GACC for c i = a : T 14 = {TT, FF}; GACC for c i = b : T 14 = {TT, FF}, GACC = T 14 T 14 = {TT, FF}; This satisfies CC but not PC NOTE: For simple predicates, RACC and CACC might be the same. But, they sure differ for complex (bigger) predicates RACC: Remember: The values chosen for the minor clauses c j must be the same when c i is true as when c i is false RACC for c i = a : T 13 = {TT, FT} RACC for c i = b : T 12 = {TT, TF} RACC = T 13 T 12 = {TT, FT, TF}; This satisfies CC & PC CACC: Remember: The values chosen for the minor clauses c j must cause p to be true for one value of the major clause c i and false for the other CACC for c i = a : T 13 = {TT, FT}; CACC for c i = b : T 12 = {TT, TF} CACC = T 13 T 12 = {TT, FT, TF}; This satisfies CC & PC Introduction to Software Testing (Ch 3) Ammann & Offutt 29

30 Example #2 : CACC vs. RACC a b c p = a (b c) a b c p = a (b c) 1 T T T T 1 T T T T 2 T T F T 5 F T T F 3 T F T T 2 T T F T 5 F T T F 6 F T F F 6 F T F F 3 T F T T 7 F F T F 7 F F T F major clause major clause CACC can be satisfied by choosing any of rows 1, 2, 3 AND any of rows 5, 6, 7 a total of nine pairs TR = any pair of {1,2,3} X {5,6,7} RACC can only be satisfied by one of the three pairs above TR = any pair of { (1,5), (2,6), (3,7) } Introduction to Software Testing (Ch 3) Ammann & Offutt 30

31 Inactive Clause Coverage The active clause coverage (ACC) criteria ensures that major clauses do affect the predicates Inactive clause coverage (ICC) takes the opposite approach major clauses do not affect the predicates Inactive Clause Coverage (ICC) : For each p in P and each major clause c i in C p, choose minor clauses c j, j!= i, so that c i does not determine p. TR has four requirements for each c i : (1) c i evaluates to true with p true, (2) c i evaluates to false with p true, (3) c i evaluates to true with p false, and (4) c i evaluates to false with p false. Introduction to Software Testing (Ch 3) Ammann & Offutt 31

32 General and Restricted ICC ICC is unlike ACC, the notion of correlation is not relevant c i does not determine p, so cannot correlate with p, So there is no CICC Predicate coverage is always guaranteed General Inactive Clause Coverage (GICC) : For each p in P and each major clause c i in C p, choose minor clauses c j, j!= i, so that c i does not determine p. Condition: The values chosen for the minor clauses c j do not need to be the same when c i is true as when c i is false. In other words, The values chosen for the minor clauses c j may vary amongst the four cases. Restricted Inactive Clause Coverage (RICC) : For each p in P and each major clause c i in C p, choose minor clauses c j, j!= i, so that c i does not determine p. Condition: The values chosen for the minor clauses c j must be the same in cases (1) and (2), and the values chosen for the minor clauses c j must also be the same in cases (3) and (4). Introduction to Software Testing (Ch 3) Ammann & Offutt 32

33 Logic Coverage Criteria Subsumption Combinatorial Clause Coverage CoC Restricted Active Clause Coverage RACC Restricted Inactive Clause Coverage RICC Correlated Active Clause Coverage CACC General Inactive Clause Coverage GICC General Active Clause Coverage GACC Clause Coverage CC Predicate Coverage PC Introduction to Software Testing (Ch 3) Ammann & Offutt 33

34 Infeasibility Infeasibility is often a problem because clauses are sometimes related to one another. choosing the truth value for one clause may affect the truth value for another clause while ( i < n && a[i]!= 0 ) { do something to a[i] } Solution: simply ignore infeasible requirements, which usually does not affect the quality of the tests A butter solution: whenever it is possible, consider the counterparts of the requirements in a subsumed coverage criterion For example, if RACC coverage with respect to clause a in predicate p is infeasible (due to additional constraints between the clauses), but CACC coverage is feasible, then it makes sense to replace the infeasible RACC test requirements with the feasible CACC test requirements. Introduction to Software Testing (Ch 3) Ammann & Offutt 34

35 Infeasible Test Requirements Consider the predicate: (a > b b > c) c > a (a > b) = true, (b > c) = true, (c > a) = true is infeasible As with graph-based criteria, infeasible test requirements have to be recognized and ignored Recognizing infeasible test requirements is hard, and in general, undecidable Software testing is inexact (roughly) engineering, not science Introduction to Software Testing (Ch 3) Ammann & Offutt 35

36 Logic Coverage Summary Predicates are often very simple in practice, most have less than 3 clauses In fact, most predicates only have one clause! With only clause, PC is enough With 2 or 3 clauses, CoC is practical Advantages of ACC and ICC criteria significant for large predicates CoC is impractical for predicates with many clauses Control software often has many complicated predicates, with lots of clauses Question, why don t complexity metrics count the number of clauses in predicates?? Introduction to Software Testing (Ch 3) Ammann & Offutt 36

Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt

Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwaretest/ Ch. 3 : Logic Coverage Four Structures for Modeling Software Graphs

More information

Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt

Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt Introduction to Software Testing Chapter 3.1, 3.2 Logic Coverage Paul Ammann & Jeff Offutt www.introsoftwaretesting.com Ch. 3 : Logic Coverage Four Structures for Modeling Software Graphs Logic Input Space

More information

Combinatorial Clause Coverage CoC

Combinatorial Clause Coverage CoC Introduction to Software Testing Chapter 3.2 Logic Coverage Paul Ammann & Jeff Offutt Covering Logic Expressions Logic expressions show up in many situations Covering logic expressions is required by the

More information

Logic Coverage. Moonzoo Kim School of Computing KAIST. The original slides are taken from Chap. 8 of Intro. to SW Testing 2 nd ed by Ammann and Offutt

Logic Coverage. Moonzoo Kim School of Computing KAIST. The original slides are taken from Chap. 8 of Intro. to SW Testing 2 nd ed by Ammann and Offutt Logic Coverage Moonzoo Kim School of Computing KAIST The original slides are taken from Chap. 8 of Intro. to SW Testing 2 nd ed by Ammann and Offutt Covering Logic Expressions Logic expressions show up

More information

Agenda. Predicate Testing. CSE 5321/4321, Ali Sharifara, UTA

Agenda. Predicate Testing. CSE 5321/4321, Ali Sharifara, UTA Agenda Predicate Testing CSE 5321/4321, Ali Sharifara, UTA 1 Predicate Testing Introduction Basic Concepts Predicate Coverage Summary CSE 5321/4321, Ali Sharifara, UTA 2 Motivation Predicates are expressions

More information

Introduc)on to So,ware Tes)ng (2nd edi(on) Overview Graph Coverage Criteria. Paul Ammann & Jeff OffuA. hap:// so,waretest/

Introduc)on to So,ware Tes)ng (2nd edi(on) Overview Graph Coverage Criteria. Paul Ammann & Jeff OffuA. hap://  so,waretest/ Tes)ng (2nd edi(on) Overview Graph Coverage Criteria Paul Ammann & Jeff OffuA hap://www.cs.gmu.edu/~offua/ so,waretest/ First version, 23 September 2013 Graph Coverage Four Structures for Modeling Software

More information

Logic Coverage for Source Code

Logic Coverage for Source Code Logic Coverage for Source Code CS 4501 / 6501 Software Testing [Ammann and Offutt, Introduction to Software Testing, Ch. 8] 1 Structural Logic Coverage for Source Code Aim: to identify test requirements

More information

COMP 3705 Advanced Software Engineering: Software Testing

COMP 3705 Advanced Software Engineering: Software Testing COMP 3705 Advanced Software Engineering: Software Testing Prof. Matt Rutherford For Next Week Readings For Midterm: Chapter 1 and Sections 2.1-2.6, 3.1 3.5 New material: Chapter 4 Homework #5 http://mjrutherford.org/teaching/2009/winter/comp3705/homeworks

More information

Logic-based test coverage

Logic-based test coverage Eduardo Marques, Vasco Thudichum Vasconcelos Logic-based test coverage Basic approach Clauses and predicates Basic coverage criteria: CC, PC, CoC Structural logic coverage of source code Logic coverage

More information

Introduction to Software Testing Chapter 2, Sections: 2.1 & 2.2 Overview Graph Coverage Criteria

Introduction to Software Testing Chapter 2, Sections: 2.1 & 2.2 Overview Graph Coverage Criteria Introduction to Software Testing Chapter 2, Sections: 2.1 & 2.2 Overview Graph Coverage Criteria Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwa retest/ Ch. 2 : Graph Coverage Four Structures

More information

Logic-based test coverage

Logic-based test coverage Logic-based test coverage!!! Basic approach Clauses and predicates Basic coverage criteria: CC, PC, CoC Structural logic coverage of source code Logic coverage of specifications Active clause coverage

More information

Introduction to Software Testing Chapter 3, Sec# 3.3 Logic Coverage for Source Code

Introduction to Software Testing Chapter 3, Sec# 3.3 Logic Coverage for Source Code Introduction to Software Testing Chapter 3, Sec# 3.3 Logic Coverage for Source Code Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/soft waretest/ Logic Expressions from Source Predicates are derived

More information

Introduction to Software Testing Chapter 2.1, 2.2 Overview Graph Coverage Criteria Paul Ammann & Jeff Offutt

Introduction to Software Testing Chapter 2.1, 2.2 Overview Graph Coverage Criteria Paul Ammann & Jeff Offutt Introduction to Software Testing Chapter 2.1, 2.2 Overview Graph Coverage Criteria Paul Ammann & Jeff Offutt www.introsoftwaretesting.com Ch. 2 : Graph Coverage Four Structures for Modeling Software Graphs

More information

Introduction to Software Testing Chapter 4 Input Space Partition Testing

Introduction to Software Testing Chapter 4 Input Space Partition Testing Introduction to Software Testing Chapter 4 Input Space Partition Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 4 : Input Space Coverage Four Structures for Modeling

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

Testing: (A Little) Logic Coverage

Testing: (A Little) Logic Coverage Testing: (A Little) Logic Coverage Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel Why Logic Coverage? MC/DC (Modified condition/decision coverage) MC/DC is required by the

More information

Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications

Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications Introduction to Software Testing Chapter 2, Sec#: 2.5 Graph Coverage for Specifications Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwa retest/ Design Specifications A design specification

More information

Logic Coverage from Source Code

Logic Coverage from Source Code Logic Coverage from Source Code Moonzoo Kim School of Computing KAIST The original slides are taken from Chap. 8 of Intro. to SW Testing 2 nd ed by Ammann and Offutt Logic Expressions from Source Predicates

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

Advanced Software Testing Understanding Code Coverage

Advanced Software Testing Understanding Code Coverage Advanced Software Testing Understanding Code Coverage Advanced Software Testing A series of webinars, this one excerpted from Advanced Software Testing: V3, a book for technical test analysts, programmers,

More information

Model Transformation Impact on Test Artifacts: An Empirical Study

Model Transformation Impact on Test Artifacts: An Empirical Study Model Transformation Impact on Test Artifacts: An Empirical Study Anders Eriksson Informatics Research Center University of Skövde, Sweden anders.eriksson@his.se Birgitta Lindström Sten F. Andler Informatics

More information

EVALUATING THE EFFECTIVENESS OF TEST COVERAGE CRITERIA USING MUTATION ANALYSIS. An evaluation of test coverage criteria in C#

EVALUATING THE EFFECTIVENESS OF TEST COVERAGE CRITERIA USING MUTATION ANALYSIS. An evaluation of test coverage criteria in C# EVALUATING THE EFFECTIVENESS OF TEST COVERAGE CRITERIA USING MUTATION ANALYSIS An evaluation of test coverage criteria in C# Examensarbete inom huvudområdet Informationsteknologi Grundnivå 30 Högskolepoäng

More information

Introduction to Software Testing Chapter 5.1 Syntax-based Testing

Introduction to Software Testing Chapter 5.1 Syntax-based Testing Introduction to Software Testing Chapter 5.1 Syntax-based Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 5 : Syntax Coverage Four Structures for Modeling Software Graphs

More information

Overview Graph Coverage Criteria

Overview Graph Coverage Criteria Overview Graph Coverage Criteria Graph Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Applied to Applied to Source FSMs Applied to Specs DNF Source Specs Source Models Design

More information

CSC Discrete Math I, Spring Sets

CSC Discrete Math I, Spring Sets CSC 125 - Discrete Math I, Spring 2017 Sets Sets A set is well-defined, unordered collection of objects The objects in a set are called the elements, or members, of the set A set is said to contain its

More information

To prove something about all Boolean expressions, we will need the following induction principle: Axiom 7.1 (Induction over Boolean expressions):

To prove something about all Boolean expressions, we will need the following induction principle: Axiom 7.1 (Induction over Boolean expressions): CS 70 Discrete Mathematics for CS Fall 2003 Wagner Lecture 7 This lecture returns to the topic of propositional logic. Whereas in Lecture 1 we studied this topic as a way of understanding proper reasoning

More information

Black-Box, Functional Testing

Black-Box, Functional Testing Black-Box, Functional Testing 1 Introduction Based on the definition of what a program s specification, as opposed to its structure Does the implementation correctly implement the functionality as per

More information

CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F

CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F 1 Logical Operations 1.1 And The and operator is a binary operator, denoted as, &,, or sometimes by just concatenating symbols, is true only if both parameters are true. A B A B F T F F F F The expression

More information

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Structural Testing (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Learning objectives Understand rationale for structural testing How structural (code-based or glass-box) testing complements functional

More information

To prove something about all Boolean expressions, we will need the following induction principle: Axiom 7.1 (Induction over Boolean expressions):

To prove something about all Boolean expressions, we will need the following induction principle: Axiom 7.1 (Induction over Boolean expressions): CS 70 Discrete Mathematics for CS Spring 2005 Clancy/Wagner Notes 7 This lecture returns to the topic of propositional logic. Whereas in Lecture Notes 1 we studied this topic as a way of understanding

More information

CS 115 Lecture. Boolean logic Taken from notes by Dr. Neil Moore

CS 115 Lecture. Boolean logic Taken from notes by Dr. Neil Moore CS 115 Lecture Boolean logic Taken from notes by Dr. Neil Moore Boolean logic and logical operators There are three logical operators that let us combine Boolean expressions. They have lower precedence

More information

DRAFT: Prepublication draft, Fall 2014, George Mason University Redistribution is forbidden without the express permission of the authors

DRAFT: Prepublication draft, Fall 2014, George Mason University Redistribution is forbidden without the express permission of the authors Chapter 9 Syntax-based Testing Date last generated: September 29, 2014. DRAFT: Prepublication draft, Fall 2014, George Mason University Redistribution is forbidden without the express permission of the

More information

Subject Software Testing Structural Testing

Subject Software Testing Structural Testing Subject Software Testing Structural Testing Objective: 1. Understand Concept of structural testing 2. How structural (code-based or glass-box) testing complements functional (black-box) testing 3. Recognize

More information

Propositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus: Boolean Algebra and Simplification CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Topics Motivation: Simplifying Conditional Expressions

More information

Set and Set Operations

Set and Set Operations Set and Set Operations Introduction A set is a collection of objects. The objects in a set are called elements of the set. A well defined set is a set in which we know for sure if an element belongs to

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Dietmar Pfahl Spring 2017 email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

MITOCW watch?v=kz7jjltq9r4

MITOCW watch?v=kz7jjltq9r4 MITOCW watch?v=kz7jjltq9r4 PROFESSOR: We're going to look at the most fundamental of all mathematical data types, namely sets, and let's begin with the definitions. So informally, a set is a collection

More information

COMP combinational logic 1 Jan. 18, 2016

COMP combinational logic 1 Jan. 18, 2016 In lectures 1 and 2, we looked at representations of numbers. For the case of integers, we saw that we could perform addition of two numbers using a binary representation and using the same algorithm that

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Spring 2013 Dietmar Pfahl email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

Propositional Logic:

Propositional Logic: CS2209A 2017 Applied Logic for Computer Science Lecture 2 Propositional Logic: Syntax, semantics, truth table Instructor: Yu Zhen Xie Language of logic: building blocks Proposition: A sentence that can

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Dietmar Pfahl Spring 2016 email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

Introduction to Software Testing Chapter 2.3 Graph Coverage for Source Code. Paul Ammann & Jeff Offutt

Introduction to Software Testing Chapter 2.3 Graph Coverage for Source Code. Paul Ammann & Jeff Offutt Introduction to Software Testing Chapter 2.3 Graph Coverage for Source Code Paul Ammann & Jeff Offutt Overview The most common application of graph criteria is to program source Graph : Usually the control

More information

Formal Approach in Software Testing

Formal Approach in Software Testing Formal Approach in Software Testing #Abhishek Dixit, #Shivani Goel 1 csed, TIET biodatadixit@yahoo.co.in 2 csed, TIET shivani@tiet.ac.in Abstract Testing is an important activity for checking the correctness

More information

CMPSCI 250: Introduction to Computation. Lecture #7: Quantifiers and Languages 6 February 2012

CMPSCI 250: Introduction to Computation. Lecture #7: Quantifiers and Languages 6 February 2012 CMPSCI 250: Introduction to Computation Lecture #7: Quantifiers and Languages 6 February 2012 Quantifiers and Languages Quantifier Definitions Translating Quantifiers Types and the Universe of Discourse

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

Introduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt

Introduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt Introduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt www.introsoftwaretesting.com OO Software and Designs Emphasis on modularity and reuse puts complexity

More information

Recursively Enumerable Languages, Turing Machines, and Decidability

Recursively Enumerable Languages, Turing Machines, and Decidability Recursively Enumerable Languages, Turing Machines, and Decidability 1 Problem Reduction: Basic Concepts and Analogies The concept of problem reduction is simple at a high level. You simply take an algorithm

More information

CS40-S13: Functional Completeness

CS40-S13: Functional Completeness CS40-S13: Functional Completeness Victor Amelkin victor@cs.ucsb.edu April 12, 2013 In class, we have briefly discussed what functional completeness means and how to prove that a certain system (a set)

More information

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 9 Normal Forms

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 9 Normal Forms Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras Lecture - 9 Normal Forms In the last class we have seen some consequences and some equivalences,

More information

Program Verification & Testing; Review of Propositional Logic

Program Verification & Testing; Review of Propositional Logic 8/24: p.1, solved; 9/20: p.5 Program Verification & Testing; Review of Propositional Logic CS 536: Science of Programming, Fall 2018 A. Why Course guidelines are important. Active learning is the style

More information

Detecting Logical Errors in SQL Queries

Detecting Logical Errors in SQL Queries Detecting Logical Errors in SQL Queries Stefan Brass Christian Goldberg Martin-Luther-Universität Halle-Wittenberg, Institut für Informatik, Von-Seckendorff-Platz 1, D-06099 Halle (Saale), Germany (brass

More information

Chapter 3. Set Theory. 3.1 What is a Set?

Chapter 3. Set Theory. 3.1 What is a Set? Chapter 3 Set Theory 3.1 What is a Set? A set is a well-defined collection of objects called elements or members of the set. Here, well-defined means accurately and unambiguously stated or described. Any

More information

Advanced Test Coverage Criteria: Specify and Measure, Cover and Unmask

Advanced Test Coverage Criteria: Specify and Measure, Cover and Unmask Advanced Test Coverage Criteria: Specify and Measure, Cover and Unmask Sébastien Bardin & Nikolai Kosmatov joint work with Omar Chebaro, Robin David, Mickaël Delahaye, Michaël Marcozzi, Mike Papadakis,

More information

Foundations of AI. 9. Predicate Logic. Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution

Foundations of AI. 9. Predicate Logic. Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution Foundations of AI 9. Predicate Logic Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution Wolfram Burgard, Andreas Karwath, Bernhard Nebel, and Martin Riedmiller 09/1 Contents Motivation

More information

Propositional Calculus. Math Foundations of Computer Science

Propositional Calculus. Math Foundations of Computer Science Propositional Calculus Math Foundations of Computer Science Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they can use it to

More information

Lecture Notes on Binary Decision Diagrams

Lecture Notes on Binary Decision Diagrams Lecture Notes on Binary Decision Diagrams 15-122: Principles of Imperative Computation William Lovas Notes by Frank Pfenning Lecture 25 April 21, 2011 1 Introduction In this lecture we revisit the important

More information

The Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraints

The Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraints The Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraints PHIL MCMINN and CHRIS J. WRIGHT, University of Sheffield GREGORY M. KAPFHAMMER, Allegheny College Despite

More information

CS 520 Theory and Practice of Software Engineering Fall 2018

CS 520 Theory and Practice of Software Engineering Fall 2018 Today CS 52 Theory and Practice of Software Engineering Fall 218 Software testing October 11, 218 Introduction to software testing Blackbox vs. whitebox testing Unit testing (vs. integration vs. system

More information

Relational Databases

Relational Databases Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 49 Plan of the course 1 Relational databases 2 Relational database design 3 Conceptual database design 4

More information

Computation Club: Gödel s theorem

Computation Club: Gödel s theorem Computation Club: Gödel s theorem The big picture mathematicians do a lot of reasoning and write a lot of proofs formal systems try to capture the ideas of reasoning and proof in a purely mechanical set

More information

CS 512, Spring 2017: Take-Home End-of-Term Examination

CS 512, Spring 2017: Take-Home End-of-Term Examination CS 512, Spring 2017: Take-Home End-of-Term Examination Out: Tuesday, 9 May 2017, 12:00 noon Due: Wednesday, 10 May 2017, by 11:59 am Turn in your solutions electronically, as a single PDF file, by placing

More information

L05 - Negating Statements

L05 - Negating Statements L05 - Negating Statements CSci/Math 2112 15 May 2015 1 / 14 Assignment 1 Assignment 1 is now posted Due May 22 at the beginning of class Can work on it in groups, but separate write-up Don t forget your

More information

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003 Control Flow COMS W1007 Introduction to Computer Science Christopher Conway 3 June 2003 Overflow from Last Time: Why Types? Assembly code is typeless. You can take any 32 bits in memory, say this is an

More information

1.4 Normal Forms. We define conjunctions of formulas as follows: and analogously disjunctions: Literals and Clauses

1.4 Normal Forms. We define conjunctions of formulas as follows: and analogously disjunctions: Literals and Clauses 1.4 Normal Forms We define conjunctions of formulas as follows: 0 i=1 F i =. 1 i=1 F i = F 1. n+1 i=1 F i = n i=1 F i F n+1. and analogously disjunctions: 0 i=1 F i =. 1 i=1 F i = F 1. n+1 i=1 F i = n

More information

Logic Design: Part 2

Logic Design: Part 2 Orange Coast College Business Division Computer Science Department CS 6- Computer Architecture Logic Design: Part 2 Where are we? Number systems Decimal Binary (and related Octal and Hexadecimal) Binary

More information

COMS 1003 Fall Introduction to Computer Programming in C. Bits, Boolean Logic & Discrete Math. September 13 th

COMS 1003 Fall Introduction to Computer Programming in C. Bits, Boolean Logic & Discrete Math. September 13 th COMS 1003 Fall 2005 Introduction to Computer Programming in C Bits, Boolean Logic & Discrete Math September 13 th Hello World! Logistics See the website: http://www.cs.columbia.edu/~locasto/ Course Web

More information

CS1 Lecture 2 Jan. 16, 2019

CS1 Lecture 2 Jan. 16, 2019 CS1 Lecture 2 Jan. 16, 2019 Contacting me/tas by email You may send questions/comments to me/tas by email. For discussion section issues, sent to TA and me For homework or other issues send to me (your

More information

CSE 20 DISCRETE MATH. Fall

CSE 20 DISCRETE MATH. Fall CSE 20 DISCRETE MATH Fall 2017 http://cseweb.ucsd.edu/classes/fa17/cse20-ab/ Final exam The final exam is Saturday December 16 11:30am-2:30pm. Lecture A will take the exam in Lecture B will take the exam

More information

2.1 Sets 2.2 Set Operations

2.1 Sets 2.2 Set Operations CSC2510 Theoretical Foundations of Computer Science 2.1 Sets 2.2 Set Operations Introduction to Set Theory A set is a structure, representing an unordered collection (group, plurality) of zero or more

More information

Summary of Course Coverage

Summary of Course Coverage CS-227, Discrete Structures I Spring 2006 Semester Summary of Course Coverage 1) Propositional Calculus a) Negation (logical NOT) b) Conjunction (logical AND) c) Disjunction (logical inclusive-or) d) Inequalities

More information

4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C)

4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C) COP 273, Winter 26 Exercises 2 - combinational logic Questions. How many boolean functions can be defined on n input variables? 2. Consider the function: Y = (A B) (A C) B (a) Draw a combinational logic

More information

Syntax of Eiffel: a Brief Overview

Syntax of Eiffel: a Brief Overview Syntax of Eiffel: a Brief Overview EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG Escape Sequences Escape sequences are special characters to be placed in your program text. In Java, an escape sequence

More information

Steven Skiena. skiena

Steven Skiena.   skiena Lecture 22: Introduction to NP-completeness (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Among n people,

More information

Commands, and Queries, and Features. Syntax of Eiffel: a Brief Overview. Escape Sequences. Naming Conventions

Commands, and Queries, and Features. Syntax of Eiffel: a Brief Overview. Escape Sequences. Naming Conventions Commands, and Queries, and Features Syntax of Eiffel: a Brief Overview EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG In a Java class: Attributes: Data Mutators: Methods that change attributes without

More information

Testing: Coverage and Structural Coverage

Testing: Coverage and Structural Coverage Testing: Coverage and Structural Coverage Testing, Quality Assurance, and Maintenance Winter 2017 Prof. Arie Gurfinkel based on slides by Prof. Marsha Chechik and Prof. Lin Tan How would you test this

More information

BOOLEAN ALGEBRA AND CIRCUITS

BOOLEAN ALGEBRA AND CIRCUITS UNIT 3 Structure BOOLEAN ALGEBRA AND CIRCUITS Boolean Algebra and 3. Introduction 3. Objectives 3.2 Boolean Algebras 3.3 Logic 3.4 Boolean Functions 3.5 Summary 3.6 Solutions/ Answers 3. INTRODUCTION This

More information

CMPT 473 Software Quality Assurance. Graph Coverage. Nick Sumner

CMPT 473 Software Quality Assurance. Graph Coverage. Nick Sumner CMPT 473 Software Quality Assurance Graph Coverage Nick Sumner Recall: Coverage/Adequacy Can't look at all possible inputs. Need to determine if a test suite covers / is adequate for our quality objectives.

More information

7. Testing and Debugging Concurrent Programs

7. Testing and Debugging Concurrent Programs 7. Testing and Debugging Concurrent Programs The purpose of testing is to find program failures => A successful test is a test that causes a program to fail. Ideally, tests are designed before the program

More information

Missing Information. We ve assumed every tuple has a value for every attribute. But sometimes information is missing. Two common scenarios:

Missing Information. We ve assumed every tuple has a value for every attribute. But sometimes information is missing. Two common scenarios: NULL values Missing Information We ve assumed every tuple has a value for every attribute. But sometimes information is missing. Two common scenarios: Missing value. E.g., we know a student has some email

More information

(Refer Slide Time 6:48)

(Refer Slide Time 6:48) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about

More information

SFWR ENG 3S03: Software Testing

SFWR ENG 3S03: Software Testing (Slide 1 of 52) Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on [?] Techniques (Slide 2 of 52) 1 2 3 4 Empirical

More information

Programming Embedded Systems

Programming Embedded Systems Programming Embedded Systems Overview of testing techniques Monday March 3, 2014 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/70 Lecture outline Background, testing in general Unit testing

More information

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives Software Testing Fundamentals Software Testing Techniques Peter Lo Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding.

More information

Path Testing + Coverage. Chapter 8

Path Testing + Coverage. Chapter 8 Path Testing + Coverage Chapter 8 Structural Testing n Also known as glass/white/open box testing n A software testing technique whereby explicit knowledge of the internal workings of the item being tested

More information

Lecture 5. Logic I. Statement Logic

Lecture 5. Logic I. Statement Logic Ling 726: Mathematical Linguistics, Logic. Statement Logic V. Borschev and B. Partee, September 27, 2 p. Lecture 5. Logic I. Statement Logic. Statement Logic...... Goals..... Syntax of Statement Logic....2.

More information

CS February 17

CS February 17 Discrete Mathematics CS 26 February 7 Equal Boolean Functions Two Boolean functions F and G of degree n are equal iff for all (x n,..x n ) B, F (x,..x n ) = G (x,..x n ) Example: F(x,y,z) = x(y+z), G(x,y,z)

More information

Algebraic Specifications

Algebraic Specifications Object-Oriented Design Lecture 2 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 11, 2007 Algebraic Specifications Last time I said a word about the abstraction barrier, separating the clients from the implementors.

More information

Sets. Mukulika Ghosh. Fall Based on slides by Dr. Hyunyoung Lee

Sets. Mukulika Ghosh. Fall Based on slides by Dr. Hyunyoung Lee Sets Mukulika Ghosh Fall 2018 Based on slides by Dr. Hyunyoung Lee Sets Sets A set is an unordered collection of objects, called elements, without duplication. We write a A to denote that a is an element

More information

A The Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraints

A The Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraints A The Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraints PHIL MCMINN, University of Sheffield, UK CHRIS J. WRIGHT, University of Sheffield, UK GREGORY M. KAPFHAMMER,

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 02: Basic Black-Box and White-Box Testing Techniques (Textbook Ch. 4 & 5) Spring 2018 Dietmar Pfahl email: dietmar.pfahl@ut.ee Structure of Lecture 2 Black-Box vs.

More information

CS100: DISCRETE STRUCTURES

CS100: DISCRETE STRUCTURES CS: DISCRETE STRUCTURES Computer Science Department Lecture : Set and Sets Operations (Ch2) Lecture Contents 2 Sets Definition. Some Important Sets. Notation used to describe membership in sets. How to

More information

Introduction. Easy to get started, based on description of the inputs

Introduction. Easy to get started, based on description of the inputs Introduction Testing is about choosing elements from input domain. The input domain of a program consists of all possible inputs that could be taken by the program. Easy to get started, based on description

More information

CS 31: Introduction to Computer Systems. 03: Binary Arithmetic January 29

CS 31: Introduction to Computer Systems. 03: Binary Arithmetic January 29 CS 31: Introduction to Computer Systems 03: Binary Arithmetic January 29 WiCS! Swarthmore Women in Computer Science Slide 2 Today Binary Arithmetic Unsigned addition Subtraction Representation Signed magnitude

More information

(Refer Slide Time 3:31)

(Refer Slide Time 3:31) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 02: Basic Black-Box and White-Box Testing Techniques (Textbook Ch. 4 & 5) Spring 2018 Dietmar Pfahl email: dietmar.pfahl@ut.ee Structure of Lecture 2 Black-Box vs.

More information

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER The Bizarre Truth! Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 TABLE OF CONTENTS 1. The context Introduction 2. The approach Know the difference

More information

[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics

[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics 400 lecture note #4 [Ch 6] Set Theory 1. Basic Concepts and Definitions 1) Basics Element: ; A is a set consisting of elements x which is in a/another set S such that P(x) is true. Empty set: notated {

More information

Discrete Mathematics Lecture 4. Harper Langston New York University

Discrete Mathematics Lecture 4. Harper Langston New York University Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a

More information