SFWR ENG 3S03: Software Testing

Size: px
Start display at page:

Download "SFWR ENG 3S03: Software Testing"

Transcription

1 (Slide 1 of 52) Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on [?]

2 Techniques (Slide 2 of 52) Empirical Principles Complete Coverage Principle 5 Statement Coverage Edge Coverage Other Testing Criteria

3 Techniques (Slide 3 of 52) In the case of software testing, the usual analogies between traditional engineering fields and software engineering fail to provide useful suggestions You wish to test the bridge s ability to sustain weight If you have verified that the bridge can sustain 1,000 tons it will sustain any weight less than or equal to 1,000 tons (under the same circumstances) The same criterion cannot be applied to software

4 Techniques procedure binary-search key: in element; table: in elementtable; found: out Boolean is begin bottom := tablefirst; top := tablelast; while bottom ă top loop if (bottom + top) rem 2 0 then middle := (bottom + top - 1) / 2; else middle := (bottom + top) / 2; end if; if key ď table (middle) then top := middle; else bottom := middle + 1; end if; end loop; found := key = table (middle); end binary-search; (Slide 4 of 52)

5 Techniques (Slide 5 of 52) The features of most engineering constructions have a continuity property Small differences in operating conditions will not result in dramatically different behaviors Such a continuity property is totally lacking in software In software engineering, testing should be performed as systematically as possible by stating clearly what result one expects to obtain (Need requirements) Often in practice, testing is performed in an unstructured way without applying any criterion

6 Techniques (Slide 6 of 52) if the results delivered by the system are different from the expected ones in just one case, this unequivocally shows that the system is incorrect; by contrast, a correct behavior of the system on a finite number of cases does not guarantee correctness in the general case. Dijkstra (in Dahl et al. [1972]) We could have built a program that behaves properly for even integer numbers but not odd numbers Clearly, any number of tests with even input values will fail to show the error

7 Techniques (Slide 7 of 52) We should simply keep in mind that no absolute certainty can be gained from a pure testing activity Unit testing should be considered only one of the means to analyze the behavior of a system should be integrated with other verification techniques (+ confidence) Unit testing should be based on sound and systematic techniques So that, after testing, we may have a better understanding of the product s reliability

8 Techniques (Slide 8 of 52) A natural approach such as using randomly generated test cases turns out to be inappropriate in many situations Consider the following program fragment: Suppose that the programmer incorrectly wrote z := 2 instead of z:= 22 x y ùñ The error is immediately discovered If we use a random number generator ùñ it is very unlikely that x y will be tested read (x); read (y); if x = y then z := 2; else z := 0; end if; write (z);

9 Techniques (Slide 9 of 52) Testing should help locate errors, not just detect their presence The result of testing should not be viewed as simply providing a Boolean answer to the question of whether the software works properly or not Tests should be organized in a way that helps isolate errors (This information can be used in debugging) Testing should be repeatable (sounds fairly obvious) At sea level, pure water will boil at 100 degrees centigrade (212 degrees Fahrenheit).

10 Techniques (Slide 10 of 52) Hard-to-repeat experiments are not infrequent, and they are responsible for the major difficulties surrounding the debugging activity A typical example is the case of uninitialized variables /* x is not initialized */ if x = 0 then write ( abnormal ); else write ( normal ); end if; The issue of repeatability becomes even more critical with concurrent software

11 Techniques (Slide 11 of 52) Testing should be accurate (increase the reliability of testing) The accuracy of the testing activity depends on the level of precision - and maybe even formality - of the software specifications Requirements 1: As a consequence of input stimulus x, the system should produce output y within t milliseconds. Requirements 2: As a consequence of input stimulus x, the system should produce output y within t milliseconds, no matter which other events happen in the system during this time.

12 Techniques (Slide 12 of 52) If a formula expresses a property of software outputs in a mathematical way, it will be easier to check (possibly 1 ď i ă n : apiq ď api ` 1q q We have an effective way to verify whether the program has produced a valid array a Since it may be unclear whether the result of an execution is indeed correct, verifying it against a formal specification can enhance the reliability of the testing activity

13 Techniques (Slide 13 of 52) we introduce the testing terminology in a precise manner The terminology, however, is not standardized we show the limitations of testing from a mathematical point of view Let P be a program, D def dom P R def ran P

14 Techniques (Slide 14 of 52) We will assume that P behaves as a function - possibly partial - with domain D and range R Let O R denote the requirement on output values of P as stated in P s specification Definition For a given d P D, P is said to be correct for d if Ppdq satisfies O R.

15 Techniques (Slide 15 of 52) Definition P is correct d P D : P correct for d q. The presence of an error or defect is demonstrated by showing that Dpd d P D : P is not correct for d q

16 Techniques (Slide 16 of 52) Definition A test case is an element d of D. A test set T is a finite set of test cases, that is, a finite subset of D. P is correct for T if it is correct for all elements in T. In such a case, we also say that T is successful for P.

17 Techniques (Slide 17 of 52) A test set T is said to be ideal if, whenever P is incorrect, there exists a pd P T q such that P is incorrect for d. P is correct _ Dpd d P T : P is incorrect for d q ùñ T is ideal ùñ T is NOT ideal P is NOT correct d P T : P is correct for d q

18 Techniques (Slide 18 of 52) In other words, an ideal test set always shows the existence of an error in a program, if an error exists. Obviouslly, for a correct program, any test set is ideal. Also, if T is an ideal test set and T is successful for P, then P is correct. Definition A test selection criterion C is a subset of PpDq, where PpDq denotes the set of all finite subsets of D.

19 Techniques (Slide 19 of 52) Example for a program whose D dom P N C could require that test sets contain at least three elements, one of them being negative, one positive, and one T T P C : Dpx, y, z x, y, z P T : x ă 0 ^ y ą 0 ^ z 0 q Definition A test set T satisfies C if it belongs to C.

20 Techniques (Slide 20 of 52) C may be described by a suitable formula that must be satisfied by all elements of any of the subsets of D that belong to it C tt p u where p is the characteristic predicate of C T P C ðñ p Definition A selection criterion C is consistent T 1, T 2 T 1, T 2 P C : T 1 is successful ðñ T 2 is successful

21 Techniques (Slide 21 of 52) If one is provided with a consistent criterion, there is no theoretical reason to make a specific choice of a test set among those satisfying C We will later see, though, that there are practical reasons for preferring one test set over another Definition A criterion C is complete if, whenever P is incorrect, there is an unsuccessful test set that satisfies C. Remark Any test set T satisfying a consistent and complete criterion C could be used to decide P s correctness.

22 Techniques (Slide 22 of 52) Exercise P is a program to sort sequences of integers P works properly only if the length of the sequence to be sorted is even Give a complete and consistent criterion for P Definition We say that a testing criterion C 1 is finer than C 2 if, for any program P, for every test set T 1 satisfying C 1, there exists a subset of T 1, say T 2, that satisfies C 2. Unfortunately, none of the above definitions is effective

23 Techniques (Slide 23 of 52) (1) Consider the correctness of a program P Suppose you may formally specify the functional requirements as a first-order formula FRpd, uq, having d and u as free variables, and let Ppdq be the function associated with the program the correctness of P may be formally stated u d P Domain(P) ^ u P Range(P) : u Ppdq ùñ FRpd, uq q This statement, however, cannot be decided, since doing so would mean we would have to decide the truth of any first-order formula (which is an undecidable problem)

24 Techniques (Slide 24 of 52) (2) In some cases, it could even be impossible to decide whether a value d is in a test set T or not, depending on how T is defined - another well-known undecidable problem Conclusion: a test is ideal, It is impossible to decide whether a criterion is consistent or complete, etc. These are in the long list of major program properties such as correctness, termination, and equivalence that are undecidable We need some practical possible criteria for the selection of test sets

25 Techniques Empirical Principles (Slide 25 of 52) A testing criterion attempts to group elements of the input domain into classes The elements of a given class are expected to behave in exactly the same way This way, we can choose a single test case as representative of each class Definition If the classes D i are such that Ypi : D i q D, we say that the testing criterion satisfies the complete coverage principle. Complete Coverage Principle We will see that many well-known practical testing criteria satisfy this principle

26 Techniques Empirical Principles (Slide 26 of 52) Example n ă 0 n 0 0 ă n ă ď n ď 200 n ą 200 facpnq error 1 n facpn 1q approximatepnq error It is quite natural to divide the input domain into the classes tn ă 0u, tn 0u, t0 ă n ă 20u, t20 ď n ď 200u, and tn ą 200u Complete Coverage Principle Then, use test sets containing one element from each class

27 Techniques Empirical Principles (Slide 27 of 52) Complete Coverage Principle If we divide the input domain into disjoint classes D i such j i j : D i X D j H q then there is no particular reason to choose one element over another as a class representative If the classes are not disjoint, however, we have the possibility of choosing a representative to minimize the number of test cases Complete Coverage Principle If D i X D j H, a test case in D i X D j exercises both D i and D j

28 Techniques Empirical Principles Complete Coverage Principle Example: Consider the following testing criterion: the program must be tested with classes D 1, D 2, and D 3 of values for x, where D 1 td i d i mod 2 0 u Since D 2 td i D 3 td i d i ă 0 u d i mod 2 0 u D 1 X D 2 H and D 2 X D 3 H, We can choose just two test cases to exercise the program and still satisfy the complete coverage principle The test set { x = 48; x = -37 } would be acceptable (Slide 28 of 52) Complete Coverage Principle

29 Techniques Empirical Principles Complete Coverage Principle The complete coverage principle is subject to many interpretations, including several trivial ones We could insist that each class consist of a single element We could group all input data into just one class Thus, we may evaluate how good a testing criterion is based on how significant the representatives of the classes obtained by its decomposition are (Slide 29 of 52) Complete Coverage Principle

30 Techniques Empirical Principles (Slide 30 of 52) Complete Coverage Principle The application of the principle to produce significant tests is quite a challenging task Ideally, the complete coverage principle should help approximate consistent and complete criteria in the following way If the input domain D is decomposed into several subsets D i, Complete Coverage Principle then a test set may be chosen such that it contains at least one representative from each D i

31 Techniques Empirical Principles Complete Coverage Principle Example if x ą y then max := x; else max := x; end if; Any test set that causes the execution of both branches would most likely show the error (Slide 31 of 52) Complete Coverage Principle no matter which data are selected from the classes tpx, yq x ą y u and tpx, yq x ď y u

32 Techniques Empirical Principles (Slide 32 of 52) Complete Coverage Principle A careful selection of test cases, with the goal of satisfying the complete coverage principle, can in some sense approximate consistent and complete criteria We can increase the reliability of such criteria by choosing more than one element from each class If we feel that a particular partition is rather consistent and complete, but that there could be some exceptions, we could improve the method by generating several cases - maybe randomly - from the same class Complete Coverage Principle It turns out that this general principle can be applied in many different - and sometimes complementary - ways

33 Techniques (Slide 33 of 52) Testing in the small addresses the testing of individual modules There are two main approaches: White-box testing Black-box testing Testing a piece of software as a black box means operating the software without relying on any knowledge of the way it has been designed and coded Statement Coverage Edge Coverage Other Testing Criteria Test sets are developed, and their results evaluated, solely on the basis of the specification

34 Techniques (Slide 34 of 52) Testing software as a white box means using information about the internal structure of the software and maybe even ignoring its specification Both strategies are useful and somewhat complementary White-box testing tests what the program does black-box testing tests what it is supposed to do Statement Coverage Edge Coverage Other Testing Criteria They can both increase the level of confidence in the reliability of the component

35 Techniques (Slide 35 of 52) White-box testing is also called unit structural testing Consider the following well-known algorithm of Euclid: begin read (x); read (y); while x y loop if x ą y then x := x - y; else y := y - x; end if; end loop; gcd := x; end; The while condition suggests two possible cases to be exercised by tests: x y and x y Supplying as input data x 3, y 3, and x 4, y 5, we obtain a first kind of completeness with respect to exercising the main loop Statement Coverage Edge Coverage Other Testing Criteria

36 Techniques (Slide 36 of 52) Consider the following well-known algorithm of Euclid: begin read (x); read (y); while x y loop if x ą y then x := x - y; else y := y - x; end if; end loop; gcd := x; end; We could refine the condition x y by exercising both the cases x ą y and x ă y The test set tă x 3, y 3 ą, ă x 4, y 3 ą, ă x 3, y 4 ąu, the statements are executed at least once This is called the statement coverage criterion Statement Coverage Edge Coverage Other Testing Criteria

37 Techniques (Slide 37 of 52) Statement Coverage Intuitively, the statement coverage criterion is based on the observation that an error cannot be discovered if the parts of the program containing the error and generating the failure are not executed; thus, we should strive for complete coverage of statements The criterion, however, has some obvious weaknesses It is clear that executing some statement once and observing that it behaves properly is no guarantee that it is correct In block-structured languages, where statements may be part of more complex statements, it is not even clear what we mean by a statement Statement Coverage Edge Coverage Other Testing Criteria

38 Techniques (Slide 38 of 52) Statement Coverage A natural assumption is to assume as an elementary statement any statement that is derived from the ăstatementą nonterminal without producing any recursive occurrence of the same nonterminal Thus, in a simple, conventional block-structured language, elementary statements are assignment statements, I/O statements, and procedure calls Statement Coverage Edge Coverage Other Testing Criteria

39 Techniques (Slide 39 of 52) Statement Coverage With this assumption, the criterion can be stated as follows Statement coverage criterion: Select a test set T such that, by executing P for each d in T, each elementary statement of P is executed at least once. In general, the same input datum causes the execution of many statements Thus, we are left with the problem of trying to minimize the number of test cases and still ensure the execution of all statements Statement Coverage Edge Coverage Other Testing Criteria

40 Techniques (Slide 40 of 52) Statement Coverage Consider the following program fragment: read (x); read (y); if x ą 0 then /* I 1 */ write ( 1 ); /* W 1 */ else write ( 2 ); /* W 2 */ end if; if y ą 0 then /* I 2 */ write ( 3 ); /* W 3 */ else write ( 4 ); /* W 4 */ end if; Statement Coverage Edge Coverage Other Testing Criteria

41 Techniques (Slide 41 of 52) Statement Coverage Let D i denote the class of input values that cause execution of W i, (1 ď i ď 4) D 1 tx x ą 0 u, D 2 tx x ď 0 u, D 3 ty y ą 0 u, D 4 ty y ď 0 u If a representative is chosen from each of the classes, we are guaranteed that all of W 1, W 2, W 3, and W 4 are executed at least once Therefore, we might choose the following test set: Statement Coverage Edge Coverage Other Testing Criteria tă x 2, y 3 ą, ă x 13, y 51 ą, ă x 97, y 17 ą, ă x 1, y 1 ąu

42 Techniques (Slide 42 of 52) Statement Coverage This test set is not minimal with respect to the criterion, since every input datum belongs to two classes Thus, we may reduce the number of test cases to two For example, we can select the following representatives: t ă x 13, y 51 ą, ă x 2, y 3 ą u Statement Coverage Edge Coverage Other Testing Criteria

43 Techniques Edge Coverage We consider the graphical representation of the program control flow The complete coverage principle may also be applied to the control flow graph For any program fragment P its control flow graph G p is built inductively in the following way: (1) For each I/O, assignment, or procedure call statement, the following graph is built Entry into the statement (Slide 43 of 52) Statement Coverage Edge Coverage Other Testing Criteria Exit from the statement

44 Techniques (Slide 44 of 52) Edge Coverage (2) Let S 1 and S 2 denote two statements, and G 1 and G 2, denote their corresponding graphs. Then with the statement if cond then S 1 ; else S 2 ; end if; we associate the following graph. Statement Coverage Edge Coverage Other Testing Criteria G1 G2

45 Techniques (Slide 45 of 52) Edge Coverage (3) The following graph is associated with the statement if cond then S 1 ; end if; G1 Statement Coverage Edge Coverage Other Testing Criteria

46 Techniques (Slide 46 of 52) Edge Coverage (4) The next graph is associated with the statement while cond loop S 1 ; end loop; G1 Statement Coverage Edge Coverage Other Testing Criteria

47 Techniques (Slide 47 of 52) Edge Coverage (5) The following graph is associated with the statement S 1 ; S 2 ; G1 Once we have associated a control flow graph with a program fragment, we can state the following criterion: G2 Statement Coverage Edge Coverage Other Testing Criteria Edge coverage criterion: Select a test set T such that, by executing P for each d in T, each edge of P s control flow graph is traversed at least once.

48 Techniques (Slide 48 of 52) Other Testing Criteria Condition Coverage The edge coverage criterion can be further strengthened, to make it more likely to expose errors Condition coverage criterion: Select a test set T such that, by executing P for each element in T, each edge of P s control flow graph is traversed, and all possible values of the constituents of compound conditions are exercised at least once. Statement Coverage Edge Coverage Other Testing Criteria

49 Techniques Other Testing Criteria Path coverage criterion The following example, shows that the edge coverage criterion may fail to identify significant test cases. if x 0 then y : 5; else z : z x; end if; if z ą 1 then z : z{x; else z : 0; end if; (Slide 49 of 52) Statement Coverage Edge Coverage Other Testing Criteria

50 Techniques Other Testing Criteria the test set tă x 0, z 1 ą, ă x 1, z 3 ąu causes the execution of all edges but fails to show the risk of a division by zero. Such a risk would become evident by the test set tă x 0, z 3 ą, ă x 1, z 1 ąu, Path coverage criterion: Select a test set T such that, by executing P for each d in T, all paths leading from the initial to the final node of P s control flow graph are traversed. (Slide 50 of 52) Statement Coverage Edge Coverage Other Testing Criteria

51 Techniques (Slide 51 of 52) Other Testing Criteria we could suggest the following empirical guideline for testing loops: Look for conditions that execute loops (1) zero times (or a minimum number of times in special cases such as repeat-until loops) (2) a maximum number of items (3) an average number of times (according to some statistical criterion) when dealing with complex combinations of alternatives (several if or case statements), one should try to combine paths as much as possible Statement Coverage Edge Coverage Other Testing Criteria The major source of complexity is nested loops

52 References I (Slide 52 of 52) Statement Coverage Edge Coverage Other Testing Criteria

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 4. Testing

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 4. Testing 4. vs. Model Checking (usually) means checking the correctness of source code Model Checking means verifying the properties of a model given in some formal (not program code) notation Attention: things

More information

Verification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80

Verification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80 1 / 80 Verification Miaoqing Huang University of Arkansas Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice

More information

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt Verification (See related materials in textbook.) Outline What are the goals of verification? What are the main approaches to verification? What kind of assurance do we get through testing? How can testing

More information

Topics in Software Testing

Topics in Software Testing Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the

More information

An Introduction to Systematic Software Testing. Robert France CSU

An Introduction to Systematic Software Testing. Robert France CSU An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial

More information

Lecture 26: Testing. Software Engineering ITCS 3155 Fall Dr. Jamie Payton

Lecture 26: Testing. Software Engineering ITCS 3155 Fall Dr. Jamie Payton Lecture 26: Testing Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Dec. 9, 2008 Verification vs validation Verification:

More information

Introduction au Génie Logiciel Partie3: Test: Static White-Box Test

Introduction au Génie Logiciel Partie3: Test: Static White-Box Test Licence Mention Informatique L3/S6 2009/10 Introduction au Génie Logiciel Partie3: Test: Static White-Box Test Burkhart Wolff Département Informatique Difficulties with Static Unit Tests so far The generation

More information

SE 3S03 - Tutorial 10. Helen Brown. Week of Mar 23, 2015

SE 3S03 - Tutorial 10. Helen Brown. Week of Mar 23, 2015 SE 3S03 - Tutorial 10 Department of Computing and Software McMaster University Week of Mar 23, 2015 : Acknowledgments: The material of these slides is based on [1] 1/34 Outline Edge : Path : 2/34 Recall

More information

6. Relational Algebra (Part II)

6. Relational Algebra (Part II) 6. Relational Algebra (Part II) 6.1. Introduction In the previous chapter, we introduced relational algebra as a fundamental model of relational database manipulation. In particular, we defined and discussed

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies CODING Good software development organizations normally require their programmers to follow some welldefined and standard style of coding called coding standards. Most software development organizations

More information

One of the most important areas where quantifier logic is used is formal specification of computer programs.

One of the most important areas where quantifier logic is used is formal specification of computer programs. Section 5.2 Formal specification of computer programs One of the most important areas where quantifier logic is used is formal specification of computer programs. Specification takes place on several levels

More information

SE 3S03. Zahra Ali. Week of Feb 22, 2016

SE 3S03. Zahra Ali. Week of Feb 22, 2016 SE 3S03 Department of Computing and Software McMaster University Week of Feb 22, 2016 Coverage Coverage 1/34 Outline Coverage Coverage Coverage Coverage 2/34 Recall that means using the information about

More information

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing. Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great

More information

Génie Logiciel Avancé

Génie Logiciel Avancé L3 Mention Informatique Parcours Informatique et MIAGE Génie Logiciel Avancé Part VII : White-Box Test Burkhart Wolff wolff@lri.fr Idea: % Lets exploit the structure of the program!!! (and not, as before

More information

Darshan Institute of Engineering & Technology Unit : 9

Darshan Institute of Engineering & Technology Unit : 9 1) Explain software testing strategy for conventional software architecture. Draw the spiral diagram showing testing strategies with phases of software development. Software Testing: Once source code has

More information

Outline. Introduction. 2 Proof of Correctness. 3 Final Notes. Precondition P 1 : Inputs include

Outline. Introduction. 2 Proof of Correctness. 3 Final Notes. Precondition P 1 : Inputs include Outline Computer Science 331 Correctness of Algorithms Mike Jacobson Department of Computer Science University of Calgary Lectures #2-4 1 What is a? Applications 2 Recursive Algorithms 3 Final Notes Additional

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

Aerospace Software Engineering

Aerospace Software Engineering 16.35 Aerospace Software Engineering Verification & Validation Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT Would You...... trust a completely-automated nuclear power plant?... trust a completely-automated

More information

Theme 2 Program Design and Testing

Theme 2 Program Design and Testing Theme 2 Program Design and Testing Systematic Testing 1 Learning Objectives to present a few systematic testing techniques that increase the chance of finding defects while keeping the number of test cases

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering (CS350) Lecture 17 Jongmoon Baik Testing Conventional Applications 2 Testability Operability it operates cleanly Observability the results of each test case are readily

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

10. Software Testing Fundamental Concepts

10. Software Testing Fundamental Concepts 10. Software Testing Fundamental Concepts Department of Computer Science and Engineering Hanyang University ERICA Campus 1 st Semester 2016 Testing in Object-Oriented Point of View Error Correction Cost

More information

6.001 Notes: Section 4.1

6.001 Notes: Section 4.1 6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,

More information

Last time. Reasoning about programs. Coming up. Project Final Presentations. This Thursday, Nov 30: 4 th in-class exercise

Last time. Reasoning about programs. Coming up. Project Final Presentations. This Thursday, Nov 30: 4 th in-class exercise Last time Reasoning about programs Coming up This Thursday, Nov 30: 4 th in-class exercise sign up for group on moodle bring laptop to class Final projects: final project presentations: Tue Dec 12, in

More information

Reasoning about programs

Reasoning about programs Reasoning about programs Last time Coming up This Thursday, Nov 30: 4 th in-class exercise sign up for group on moodle bring laptop to class Final projects: final project presentations: Tue Dec 12, in

More information

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

Software Testing. 1. Testing is the process of demonstrating that errors are not present.

Software Testing. 1. Testing is the process of demonstrating that errors are not present. What is Testing? Software Testing Many people understand many definitions of testing :. Testing is the process of demonstrating that errors are not present.. The purpose of testing is to show that a program

More information

Scan Scheduling Specification and Analysis

Scan Scheduling Specification and Analysis Scan Scheduling Specification and Analysis Bruno Dutertre System Design Laboratory SRI International Menlo Park, CA 94025 May 24, 2000 This work was partially funded by DARPA/AFRL under BAE System subcontract

More information

MONIKA HEINER.

MONIKA HEINER. LESSON 1 testing, intro 1 / 25 SOFTWARE TESTING - STATE OF THE ART, METHODS, AND LIMITATIONS MONIKA HEINER monika.heiner@b-tu.de http://www.informatik.tu-cottbus.de PRELIMINARIES testing, intro 2 / 25

More information

PACKING DIGRAPHS WITH DIRECTED CLOSED TRAILS

PACKING DIGRAPHS WITH DIRECTED CLOSED TRAILS PACKING DIGRAPHS WITH DIRECTED CLOSED TRAILS PAUL BALISTER Abstract It has been shown [Balister, 2001] that if n is odd and m 1,, m t are integers with m i 3 and t i=1 m i = E(K n) then K n can be decomposed

More information

Verification and Validation. Verification and validation

Verification and Validation. Verification and validation Verification and Validation Verification and validation Verification and Validation (V&V) is a whole life-cycle process. V&V has two objectives: Discovery of defects, Assessment of whether or not the system

More information

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks

Software Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks Software Testing for Developer Development Testing Duvan Luong, Ph.D. Operational Excellence Networks Contents R&D Testing Approaches Static Analysis White Box Testing Black Box Testing 4/2/2012 2 Development

More information

INTRODUCTION TO SOFTWARE ENGINEERING

INTRODUCTION TO SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING Structural Testing d_sinnig@cs.concordia.ca Department for Computer Science and Software Engineering Introduction Testing is simple all a tester needs to do is find

More information

Goal of the course: The goal is to learn to design and analyze an algorithm. More specifically, you will learn:

Goal of the course: The goal is to learn to design and analyze an algorithm. More specifically, you will learn: CS341 Algorithms 1. Introduction Goal of the course: The goal is to learn to design and analyze an algorithm. More specifically, you will learn: Well-known algorithms; Skills to analyze the correctness

More information

Formally-Proven Kosaraju s algorithm

Formally-Proven Kosaraju s algorithm Formally-Proven Kosaraju s algorithm Laurent Théry Laurent.Thery@sophia.inria.fr Abstract This notes explains how the Kosaraju s algorithm that computes the strong-connected components of a directed graph

More information

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010 esting & Continuous Integration Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/1/20 University of Colorado, 20 1 Goals 2 Review material from Chapter of Pilone & Miles esting

More information

Introduction to Sets and Logic (MATH 1190)

Introduction to Sets and Logic (MATH 1190) Introduction to Sets and Logic () Instructor: Email: shenlili@yorku.ca Department of Mathematics and Statistics York University Dec 4, 2014 Outline 1 2 3 4 Definition A relation R from a set A to a set

More information

Testing: Test design and testing process

Testing: Test design and testing process Testing: Test design and testing process Zoltán Micskei Based on István Majzik s slides Dept. of Measurement and Information Systems Budapest University of Technology and Economics Department of Measurement

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

3.2 Recursions One-term recursion, searching for a first occurrence, two-term recursion. 2 sin.

3.2 Recursions One-term recursion, searching for a first occurrence, two-term recursion. 2 sin. Chapter 3 Sequences 3.1 Summation Nested loops, while-loops with compound termination criteria 3.2 Recursions One-term recursion, searching for a first occurrence, two-term recursion. In Chapter 2 we played

More information

Introduction to Axiomatic Semantics

Introduction to Axiomatic Semantics Introduction to Axiomatic Semantics Meeting 10, CSCI 5535, Spring 2009 Announcements Homework 3 due tonight Homework 2 is graded 13 (mean), 14 (median), out of 21 total, but Graduate class: final project

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.

More information

Repetition Through Recursion

Repetition Through Recursion Fundamentals of Computer Science I (CS151.02 2007S) Repetition Through Recursion Summary: In many algorithms, you want to do things again and again and again. For example, you might want to do something

More information

Star Decompositions of the Complete Split Graph

Star Decompositions of the Complete Split Graph University of Dayton ecommons Honors Theses University Honors Program 4-016 Star Decompositions of the Complete Split Graph Adam C. Volk Follow this and additional works at: https://ecommons.udayton.edu/uhp_theses

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

CSE 20 DISCRETE MATH. Winter

CSE 20 DISCRETE MATH. Winter CSE 20 DISCRETE MATH Winter 2017 http://cseweb.ucsd.edu/classes/wi17/cse20-ab/ Final exam The final exam is Saturday March 18 8am-11am. Lecture A will take the exam in GH 242 Lecture B will take the exam

More information

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013! Testing Prof. Leon Osterweil CS 520/620 Spring 2013 Relations and Analysis A software product consists of A collection of (types of) artifacts Related to each other by myriad Relations The relations are

More information

Topic 1: What is HoTT and why?

Topic 1: What is HoTT and why? Topic 1: What is HoTT and why? May 5, 2014 Introduction Homotopy type theory (HoTT) is a newly emerging field of mathematics which is currently being developed as a foundation of mathematics which is in

More information

STABILITY AND PARADOX IN ALGORITHMIC LOGIC

STABILITY AND PARADOX IN ALGORITHMIC LOGIC STABILITY AND PARADOX IN ALGORITHMIC LOGIC WAYNE AITKEN, JEFFREY A. BARRETT Abstract. Algorithmic logic is the logic of basic statements concerning algorithms and the algorithmic rules of deduction between

More information

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop

AXIOMS OF AN IMPERATIVE LANGUAGE PARTIAL CORRECTNESS WEAK AND STRONG CONDITIONS. THE AXIOM FOR nop AXIOMS OF AN IMPERATIVE LANGUAGE We will use the same language, with the same abstract syntax that we used for operational semantics. However, we will only be concerned with the commands, since the language

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

3.7 Denotational Semantics

3.7 Denotational Semantics 3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These

More information

Week - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program.

Week - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program. Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 Euclid's Algorithm

More information

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should

More information

Kuratowski Notes , Fall 2005, Prof. Peter Shor Revised Fall 2007

Kuratowski Notes , Fall 2005, Prof. Peter Shor Revised Fall 2007 Kuratowski Notes 8.30, Fall 005, Prof. Peter Shor Revised Fall 007 Unfortunately, the OCW notes on Kuratowski s theorem seem to have several things substantially wrong with the proof, and the notes from

More information

Software Testing. Software Testing

Software Testing. Software Testing Software Testing Software Testing Error: mistake made by the programmer/ developer Fault: a incorrect piece of code/document (i.e., bug) Failure: result of a fault Goal of software testing: Cause failures

More information

Analysis of Algorithms. Unit 4 - Analysis of well known Algorithms

Analysis of Algorithms. Unit 4 - Analysis of well known Algorithms Analysis of Algorithms Unit 4 - Analysis of well known Algorithms 1 Analysis of well known Algorithms Brute Force Algorithms Greedy Algorithms Divide and Conquer Algorithms Decrease and Conquer Algorithms

More information

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Lecture 5: The Halting Problem. Michael Beeson

Lecture 5: The Halting Problem. Michael Beeson Lecture 5: The Halting Problem Michael Beeson Historical situation in 1930 The diagonal method appears to offer a way to extend just about any definition of computable. It appeared in the 1920s that it

More information

CITS5501 Software Testing and Quality Assurance Formal methods

CITS5501 Software Testing and Quality Assurance Formal methods CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005

More information

Write perfect C code to solve the three problems below.

Write perfect C code to solve the three problems below. Fall 2017 CSCI 4963/6963 Week 12 David Goldschmidt goldschmidt@gmail.com Office: Amos Eaton 115 Office hours: Mon/Thu 1:00-1:50PM; Wed 1:00-2:50PM Write perfect C code to solve the three problems below.

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

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

Testing Process and Methods. CS 490MT/5555, Spring 2017, Yongjie Zheng

Testing Process and Methods. CS 490MT/5555, Spring 2017, Yongjie Zheng Testing Process and Methods CS 490MT/5555, Spring 2017, Yongjie Zheng Context of Software Testing Verification & Validation Verification: checking that the software conforms to its specification. Validation:

More information

Algorithms and Data Structures

Algorithms and Data Structures Algorithms and Data Structures Spring 2019 Alexis Maciel Department of Computer Science Clarkson University Copyright c 2019 Alexis Maciel ii Contents 1 Analysis of Algorithms 1 1.1 Introduction.................................

More information

Lecture 10: Introduction to Correctness

Lecture 10: Introduction to Correctness Lecture 10: Introduction to Correctness Aims: To look at the different types of errors that programs can contain; To look at how we might detect each of these errors; To look at the difficulty of detecting

More information

(Refer Slide Time: 00:50)

(Refer Slide Time: 00:50) Programming, Data Structures and Algorithms Prof. N.S. Narayanaswamy Department of Computer Science and Engineering Indian Institute of Technology Madras Module - 03 Lecture 30 Searching Unordered linear

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

Table : IEEE Single Format ± a a 2 a 3 :::a 8 b b 2 b 3 :::b 23 If exponent bitstring a :::a 8 is Then numerical value represented is ( ) 2 = (

Table : IEEE Single Format ± a a 2 a 3 :::a 8 b b 2 b 3 :::b 23 If exponent bitstring a :::a 8 is Then numerical value represented is ( ) 2 = ( Floating Point Numbers in Java by Michael L. Overton Virtually all modern computers follow the IEEE 2 floating point standard in their representation of floating point numbers. The Java programming language

More information

The testing process. Component testing. System testing

The testing process. Component testing. System testing Software testing Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating system

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

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends! Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science

More information

Lecture 2: NP-Completeness

Lecture 2: NP-Completeness NP and Latin Squares Instructor: Padraic Bartlett Lecture 2: NP-Completeness Week 4 Mathcamp 2014 In our last class, we introduced the complexity classes P and NP. To motivate why we grouped all of NP

More information

2.2 Syntax Definition

2.2 Syntax Definition 42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions

More information

Data Analytics and Boolean Algebras

Data Analytics and Boolean Algebras Data Analytics and Boolean Algebras Hans van Thiel November 28, 2012 c Muitovar 2012 KvK Amsterdam 34350608 Passeerdersstraat 76 1016 XZ Amsterdam The Netherlands T: + 31 20 6247137 E: hthiel@muitovar.com

More information

Statistics Case Study 2000 M. J. Clancy and M. C. Linn

Statistics Case Study 2000 M. J. Clancy and M. C. Linn Statistics Case Study 2000 M. J. Clancy and M. C. Linn Problem Write and test functions to compute the following statistics for a nonempty list of numeric values: The mean, or average value, is computed

More information

Structural Testing. White Box Testing & Control Flow Analysis

Structural Testing. White Box Testing & Control Flow Analysis Structural Testing White Box Testing & Control Flow Analysis Functional vs. Structural Functional Have I built the right product? Tests derived from the program specification Internal Structure ignored

More information

Testing & Debugging TB-1

Testing & Debugging TB-1 Testing & Debugging TB-1 Need for Testing Software systems are inherently complex» Large systems 1 to 3 errors per 100 lines of code (LOC) Extensive verification and validiation is required to build quality

More information

Monitoring Interfaces for Faults

Monitoring Interfaces for Faults Monitoring Interfaces for Faults Aleksandr Zaks RV 05 - Fifth Workshop on Runtime Verification Joint work with: Amir Pnueli, Lenore Zuck Motivation Motivation Consider two components interacting with each

More information

UNIT-4 Black Box & White Box Testing

UNIT-4 Black Box & White Box Testing Black Box & White Box Testing Black Box Testing (Functional testing) o Equivalence Partitioning o Boundary Value Analysis o Cause Effect Graphing White Box Testing (Structural testing) o Coverage Testing

More information

Lectures 20, 21: Axiomatic Semantics

Lectures 20, 21: Axiomatic Semantics Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics

More information

Specifications. Prof. Clarkson Fall Today s music: Nice to know you by Incubus

Specifications. Prof. Clarkson Fall Today s music: Nice to know you by Incubus Specifications Prof. Clarkson Fall 2015 Today s music: Nice to know you by Incubus Question Would you like a tiny bonus to your final grade for being here on time today? A. Yes B. Sí C. Hai D. Haan E.

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

Getting those Bugs Out --Software Testing

Getting those Bugs Out --Software Testing 1 1 Getting those Bugs Out --Software Testing 1. Issues in software testing and reliability 2. Test sets, test selection criteria, and ideal test sets. 3. Defect Testing 3.1 Black Box Testing 3.2 White

More information

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

Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage Introduction to Software Testing Chapter 3, Sec# 1 & 2 Logic Coverage Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/soft waretest/ Ch. 3 : Logic Coverage Four Structures for Modeling Software

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

CSE 12 Abstract Syntax Trees

CSE 12 Abstract Syntax Trees CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures

More information

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic 3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax

More information

CS125 : Introduction to Computer Science. Lecture Notes #38 and #39 Quicksort. c 2005, 2003, 2002, 2000 Jason Zych

CS125 : Introduction to Computer Science. Lecture Notes #38 and #39 Quicksort. c 2005, 2003, 2002, 2000 Jason Zych CS125 : Introduction to Computer Science Lecture Notes #38 and #39 Quicksort c 2005, 2003, 2002, 2000 Jason Zych 1 Lectures 38 and 39 : Quicksort Quicksort is the best sorting algorithm known which is

More information

Software Testing. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University

Software Testing. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University Software Testing Minsoo Ryu Hanyang University Topics covered 1. Testing Goals and Principles 2. Testing Process 3. Testing Strategies Component testing Integration testing Validation/system testing 4.

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

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

Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt

Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt Program Testing and Analysis: Manual Testing Prof. Dr. Michael Pradel Software Lab, TU Darmstadt Partly based on slides from Peter Müller, ETH Zurich 1 Warm-up Quiz What does the following code print?

More information

UNIT-4 Black Box & White Box Testing

UNIT-4 Black Box & White Box Testing Black Box & White Box Testing Black Box Testing (Functional testing) o Equivalence Partitioning o Boundary Value Analysis o Cause Effect Graphing White Box Testing (Structural testing) o Coverage Testing

More information

2. Lecture notes on non-bipartite matching

2. Lecture notes on non-bipartite matching Massachusetts Institute of Technology 18.433: Combinatorial Optimization Michel X. Goemans February 15th, 013. Lecture notes on non-bipartite matching Given a graph G = (V, E), we are interested in finding

More information

Introduction to Axiomatic Semantics (1/2)

Introduction to Axiomatic Semantics (1/2) #1 Introduction to Axiomatic Semantics (1/2) How s The Homework Going? Remember: just do the counterexample guided abstraction refinement part of DPLL(T). If you notice any other errors, those are good

More information