SFWR ENG 3S03: Software Testing
|
|
- Horatio McKinney
- 5 years ago
- Views:
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
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 informationVerification 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
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 informationTopics 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 informationAn 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 informationLecture 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 informationIntroduction 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 informationSE 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 information6. 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 informationChapter 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 informationDarshan 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 informationOne 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 informationSE 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 informationOverview. 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 informationGé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 informationDarshan 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 informationOutline. 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 informationHandout 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 informationLecture 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 informationAerospace 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 informationTheme 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 informationIntroduction 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 information6.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 information10. 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 information6.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 informationLast 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 informationReasoning 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 informationSoftware 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 informationSoftware 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 informationScan 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 informationMONIKA 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 informationPACKING 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 informationVerification 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 informationLecture 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 informationSoftware 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 informationINTRODUCTION 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 informationGoal 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 informationFormally-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 informationTesting & 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 informationIntroduction 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 informationTesting: 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 informationCS 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 information3.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 informationIntroduction 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 information6.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 informationThree 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 informationRepetition 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 informationStar 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 informationFormal 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 informationCSE 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 informationTesting! 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 informationTopic 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 informationSTABILITY 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 informationAXIOMS 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 informationSoftware 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 information3.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 informationWeek - 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 informationVerification 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 informationKuratowski 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 informationSoftware 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 informationAnalysis 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 informationLecture 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 informationLecture 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 informationCITS5501 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 informationWrite 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 informationCSE 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 informationPart 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 informationTesting 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 informationAlgorithms 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 informationLecture 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)
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 informationMTAT : 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 informationTable : 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 informationThe 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 informationStructural 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 informationCoding 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 informationLecture 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 information2.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 informationData 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 informationStatistics 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 informationStructural 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 informationTesting & 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 informationMonitoring 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 informationUNIT-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 informationLectures 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 informationSpecifications. 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 informationAlgebraic 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 informationGetting 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 informationIntroduction 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 informationDiscrete 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 informationCSE 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 information3.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 informationCS125 : 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 informationSoftware 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 informationCS 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 informationPart 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 informationProgram 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 informationUNIT-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 information2. 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 informationIntroduction 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