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

Size: px
Start display at page:

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

Transcription

1 1 / 80 Verification Miaoqing Huang University of Arkansas

2 Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice White-box Testing Statement coverage Edge coverage Condition coverage Path coverage Black-box Testing Testing driven by logic specification Syntax-driven testing Decision Table-based Testing Cause-effect Graph Technique Testing in the Large Module Testing Integration Testing 2 / 80

3 3 / 80 Need for verification Designers are fallible even if they are skilled and follow sound principles You are human!!! Everything must be verified, every required quality, process and products Even the verification process itself needs to be verified You have confidence after verification

4 4 / 80 Properties of verification May not be binary (OK, not OK) severity of defect is important some defects may be tolerated May be subjective or objective e.g., usability, maintainability Even implicit qualities should be verified e.g., robustness

5 5 / 80 Approaches to verification Experiment with behavior of product sample behaviors via testing goal is to find counterexamples dynamic technique Analyze product to deduce its adequacy analytic study of properties static technique

6 6 / 80 Lack of continuity in software testing Testing sample behaviors by examining test cases Impossible to extrapolate behavior of software from a finite set of test cases No continuity of behavior it can exhibit correct behavior in many cases, but may still be incorrect in some cases

7 7 / 80 Verification in traditional engineering Example of bridge design One test assures infinite correct situations

8 8 / 80 Goals for testing To show the presence of bugs, but never to show their absence 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 the correctness in the general case Still, we need to do testing driven by sound and systematic principles

9 9 / 80 Goals for testing To show the presence of bugs, but never to show their absence 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 the correctness in the general case Still, we need to do testing driven by sound and systematic principles read (x); read(y); if x==y then z=2; //should be z=22 else z=0; end if; write(z);

10 10 / 80 Goals for testing To show the presence of bugs, but never to show their absence 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 the correctness in the general case Still, we need to do testing driven by sound and systematic principles read (x); read(y); if x==y then z=2; //should be z=22 else z=0; end if; write(z);

11 11 / 80 Goals for testing Help isolate errors facilitate debugging print out the location where the error takes place Be repeatable repeating the same experiment, we should get the same results if (x==0) then // x is not initialized write( abnormal ); else write( normal ); end if;

12 Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice White-box Testing Statement coverage Edge coverage Condition coverage Path coverage Black-box Testing Testing driven by logic specification Syntax-driven testing Decision Table-based Testing Cause-effect Graph Technique Testing in the Large Module Testing Integration Testing 12 / 80

13 13 / 80 Definition I Definition P: the program D: the input domain R: the output domain OR: the requirement on output values of P as stated in P s specification P(d) is correct <d, P(d)> OR P is correct if all P(d)s are correct

14 14 / 80 Definition II FAILURE P(d) is not correct ERROR (DEFECT) Anything that may cause a failure Typing mistake Incomplete branches in if-else statement FAULT Incorrect intermediate state entered by program during runtime

15 15 / 80 Definition II FAILURE P(d) is not correct ERROR (DEFECT) Anything that may cause a failure Typing mistake Incomplete branches in if-else statement FAULT Incorrect intermediate state entered by program during runtime Their relations A FAILURE definitely demonstrates the existence of an ERROR An ERROR does not necessarily create a FAILURE A FAILURE occurs only if a FAULT happens during execution A FAULT occurs only if the program contains an ERROR The goal of testing

16 Definition II FAILURE P(d) is not correct ERROR (DEFECT) Anything that may cause a failure Typing mistake Incomplete branches in if-else statement FAULT Incorrect intermediate state entered by program during runtime Their relations A FAILURE definitely demonstrates the existence of an ERROR An ERROR does not necessarily create a FAILURE A FAILURE occurs only if a FAULT happens during execution A FAULT occurs only if the program contains an ERROR The goal of testing Select appropriate test cases to increase the likelihood that errors cause failures 16 / 80

17 17 / 80 Definition III Test case d An element of D, i.e., d D Test case d is successful if P(d) is correct Test set T A finite subset of D, i.e., T D Test set T is successful if P(d) is correct for all d T Ideal test set T Whenever P is incorrect, there exists a d T such that P(d) is incorrect

18 18 / 80 Test Selection Criterion I A test selection criterion C is a subset of 2 D 2 D denotes the set of all finite subsets of D Each element in C is a test set A test set T satisfies C if T C Example: for a program whose domain D is the set of integers C could require that test sets contain at least three elements: one negative, one zero, and one positive

19 19 / 80 Test Selection Criterion I A test selection criterion C is a subset of 2 D 2 D denotes the set of all finite subsets of D Each element in C is a test set A test set T satisfies C if T C Example: for a program whose domain D is the set of integers C could require that test sets contain at least three elements: one negative, one zero, and one positive C = {<x 1, x 2,... x n> n 3 and exists i, j, k (x i < 0, x j = 0, x k > 0)} <-5, 0, 22> <-10, 2, 8, 33, 0, -19> <1, 3, 99> x C is consistent for any pairs T 1, T 2 satisfying C, T 1 is successful iff T 2 is successful

20 20 / 80 Test Selection Criterion I A test selection criterion C is a subset of 2 D 2 D denotes the set of all finite subsets of D Each element in C is a test set A test set T satisfies C if T C Example: for a program whose domain D is the set of integers C could require that test sets contain at least three elements: one negative, one zero, and one positive C = {<x 1, x 2,... x n> n 3 and exists i, j, k (x i < 0, x j = 0, x k > 0)} <-5, 0, 22> <-10, 2, 8, 33, 0, -19> <1, 3, 99> x C is consistent for any pairs T 1, T 2 satisfying C, T 1 is successful iff T 2 is successful Theoretically, there is no need to make a specific choice of a test set among those satisfying C if C is consistent

21 21 / 80 Test Selection Criterion II C is complete Whenever P is incorrect, there is a test set T C that is not successful C is complete and consistent Identify an ideal test set Allow correctness to be proved! C 1 is finer than C 2 For any program P, for any T 1 C 1 there is a subset T 2 T 1, which satisfies C 2 C 1 is more restrictive than C 2 Example C 1 = {<x 1, x 2,... x n> n 3 and exists i, j, k, m, p(x i < 0, x j = 0, x k > 0, x m even and x p odd)} C 2 = {<x 1, x 2, x 3 > (x 1 < 0, x 2 = 0, x 3 > 0)} T 1 = T 2 = {-3, 0, 6} T 1 = {-3, 0, 5, 8}, T 2 = {-3, 0, 5}

22 22 / 80 Property of the criterion definition None is effective No algorithms are exist to state if a program, test set, or criterion has that property In particular, there is no algorithm to derive a test set that would prove program correctness There is no constructive criterion that is consistent and complete

23 Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice White-box Testing Statement coverage Edge coverage Condition coverage Path coverage Black-box Testing Testing driven by logic specification Syntax-driven testing Decision Table-based Testing Cause-effect Graph Technique Testing in the Large Module Testing Integration Testing 23 / 80

24 24 / 80 Empirical Testing Principles We want to test a system exhaustively, but it is impossible Compromise between the impossible and the inadequate We try to find strategy to select significant test cases Significant = having high potential of uncovering presence of error Running a sufficient number of significant test cases instead of a large number of test cases

25 25 / 80 Empirical Testing Principles We want to test a system exhaustively, but it is impossible Compromise between the impossible and the inadequate We try to find strategy to select significant test cases Significant = having high potential of uncovering presence of error Running a sufficient number of significant test cases instead of a large number of test cases if x>y then max = x; else max = x; end if; 1 {x=3, y=2}, {x=2, y=3} 2 {x=3, y=2}, {x=4, y=3}, {x=5, y=1}

26 26 / 80 Complete coverage principle An intuitive introduction 1 Given a system, find all the possible test cases in the domain

27 27 / 80 Complete coverage principle An intuitive introduction 1 Given a system, find all the possible test cases in the domain 2 Analyze these test cases and figure out their properties or behaviors

28 28 / 80 Complete coverage principle An intuitive introduction 1 Given a system, find all the possible test cases in the domain 2 Analyze these test cases and figure out their properties or behaviors 3 Group test cases that behave in approximately the same way into the sub-domain

29 Complete coverage principle An intuitive introduction 1 Given a system, find all the possible test cases in the domain 2 Analyze these test cases and figure out their properties or behaviors 3 Group test cases that behave in approximately the same way into the sub-domain 4 Select one test case from each sub-domain to compose a test set 29 / 80

30 Complete coverage principle An example Example Compute the factorial of any number If n < 0, then an appropriate error message must be printed. If 0 n < 20, then the exact value of n! must be printed. If 20 n 200, then an approximate value of n! must be printed in floating-point format (e.g., using some approximate method of numerical calculus). The admission error is 0.1% of the exact value. Finally, if n > 200, the input can be rejected by printing an appropriate error message. {n < 0},{0 n < 20},{20 n 200},{n > 200} {-10,5,175,290} The assertion that the program will behave correctly for any other value is a reasonable expectation 30 / 80

31 31 / 80 Complete coverage principle The theory Try to group elements of D into sub-domains D 1, D 2,..., D n where any element of each D i is likely to have similar behavior D = D 1 D 2 D n Satisfy the complete coverage principle Select one test case as a representative of the sub-domain from each sub-domain

32 32 / 80 Complete coverage principle The theory Try to group elements of D into sub-domains D 1, D 2,..., D n where any element of each D i is likely to have similar behavior D = D 1 D 2 D n Satisfy the complete coverage principle Select one test case as a representative of the sub-domain from each sub-domain If D i D j, a test case in D i D j exercises both D i and D j D 1 = {d i d i mod 2 = 0} D 2 = {d i d i 0} D 3 = {d i d i mod 2 0} D 1 D 2 and D 2 D 3 {-48, -37}

33 33 / 80 Testing in small and Testing in large Testing in small Address the testing of individual modules Testing in large Address the issue of decomposing and organizing the testing activity according to the modular structure of complex programs

34 34 / 80 Two approaches White-box testing Test what the program does Structural testing Implementation-based testing Partition the test domain based on the module s internal code Example, the {x > y} and {x y} case Black-box testing Test what the program is supposed to do Functional testing Specification-based testing Partition the test domain based on the module s specification Example, test the program to compute the factorial n!

35 Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice White-box Testing Statement coverage Edge coverage Condition coverage Path coverage Black-box Testing Testing driven by logic specification Syntax-driven testing Decision Table-based Testing Cause-effect Graph Technique Testing in the Large Module Testing Integration Testing 35 / 80

36 36 / 80 Structural Coverage Testing Derive test cases from program code Only test what have been implemented Adequacy criteria If significant parts of program structure are not tested, testing is inadequate Testing strategies Statement coverage Edge coverage Condition coverage Path coverage

37 37 / 80 Statement coverage Statement-coverage Criterion Select a test set T such that every elementary statement in P is executed at least once by some d in T Elementary statement A statement that does not produce any recursive occurrence of itself Example: assignment statements, I/O statements, procedure calls Try to minimize the number of test cases still preserving the desired coverage

38 38 / 80 Example read(x); read(y); if x > 0 then write( 1 ); else write( 2 ); end if; if y > 0 then write( 3 ); else write( 4 ); end if; Let W 1, W 2, W 3, W 4 represent the 4 write statements Let D i denote the class of input values that causes execution of W i, i = 1,..., 4. D 1 = {x > 0} D 2 = {x 0} D 3 = {y > 0} D 4 = {y 0} {<x = 2, y = 3>, <x = - 13, y = 51>, <x = 97, y = 17>, <x = - 1, y = - 1>} covers all statements

39 39 / 80 Example read(x); read(y); if x > 0 then write( 1 ); else write( 2 ); end if; if y > 0 then write( 3 ); else write( 4 ); end if; Let W 1, W 2, W 3, W 4 represent the 4 write statements Let D i denote the class of input values that causes execution of W i, i = 1,..., 4. D 1 = {x > 0} D 2 = {x 0} D 3 = {y > 0} D 4 = {y 0} {<x = 2, y = 3>, <x = - 13, y = 51>, <x = 97, y = 17>, <x = - 1, y = - 1>} covers all statements {<x = - 13, y = 51>, <x = 2, y = - 3>} is minimal

40 40 / 80 Edge coverage Edge-coverage Criterion Select a test set T such that every edge (branch) of the control flow is exercised at least once by some d in T Notation in control graph Edges represent statements Nodes at the ends of an edge represent entry into and exit from of the statement Use node to connect statements

41 41 / 80 Control graph construction rules A single Statement Statement Block if-then-else if-then while Sequential statements

42 42 / 80 Simplification A sequence of edges can be collapsed into just one edge k-1 k 1 k

43 43 / 80 Example: Euclid s algorithm 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;

44 44 / 80 Condition coverage Motivation found = false; counter = 1; while (not found) and counter < number_of_items loop if table (counter) == desired_element then found = true; end if; counter = counter + 1; end loop; if found then write ( the desired element is in the table ); else write ( the desired element is not in the table ); end if;

45 45 / 80 Condition coverage Motivation found = false; counter = 1; while (not found) and counter < number_of_items loop if table (counter) == desired_element then found = true; end if; counter = counter + 1; end loop; if found then write ( the desired element is in the table ); else write ( the desired element is not in the table ); end if; Only covering all edges is not going to discover the error

46 46 / 80 Condition coverage Condition-coverage Criterion Select a test set T such that every edge of P s control flow is traversed and all possible values of the constituents of compound conditions are exercised at least once Compound Boolean expression C = c 1 and c 2 or c 3... It is finer than edge coverage

47 47 / 80 Condition coverage Example if c1 and c2 then st; else sf; end if; if c1 then if c2 then st; else sf; end if; else sf; end if;

48 48 / 80 Path coverage Motivation if x 0 then y = 5; else z = z - x; end if; if z > 1 then z = z / x; else z = 0; end if; {<x = 0, z = 1>, <x = 1, z = 3>} covers all edges Fail to expose the risk of a division by zero

49 49 / 80 Path coverage Motivation if x 0 then y = 5; else z = z - x; end if; if z > 1 then z = z / x; else z = 0; end if; {<x = 0, z = 1>, <x = 1, z = 3>} covers all edges Fail to expose the risk of a division by zero {<x = 0, z = 3>, <x = 1, z = 1>} would work

50 50 / 80 Path coverage Path-coverage Criterion Select a test set T that traverses all paths from the initial to the final node of P s control flow It is finer than edge coveragr Number of paths may be too large, or even infinite (see while loops) Empirical guideline for testing loops Zero times or a minimum number of times A maximum number of times An average number of times

51 Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice White-box Testing Statement coverage Edge coverage Condition coverage Path coverage Black-box Testing Testing driven by logic specification Syntax-driven testing Decision Table-based Testing Cause-effect Graph Technique Testing in the Large Module Testing Integration Testing 51 / 80

52 52 / 80 An intuitive example Specification The program receives input as a record describing an invoice The invoice must be inserted into a file of invoices sorted by date If other invoices exist in the file with the same date, then the invoice should be inserted after the last one Some consistency checks must be performed The program should verify whether the customer is already in a corresponding file of customers Whether the customer s data in the two files match, etc.

53 53 / 80 An intuitive example Specification The program receives input as a record describing an invoice The invoice must be inserted into a file of invoices sorted by date If other invoices exist in the file with the same date, then the invoice should be inserted after the last one Some consistency checks must be performed The program should verify whether the customer is already in a corresponding file of customers Whether the customer s data in the two files match, etc. Possible test cases (informal test procedure) An invoice whose date is the current date An invoice whose date is before the current date An invoice whose date is the same as some existing invoice An invoice whose date does not exist in any previous invoice Several incorrect invoices, checking different types of inconsistencies

54 54 / 80 Strategies Informal Decompose the specifications into a set of classes Give at least one test case for each class Formal Testing driven by logic specification Syntax-driven testing The input is formally described by a grammar Decision table-based testing A specification is described by a decision table Cause-effect graphs

55 55 / 80 An example Specification The program receives input as a record describing an invoice The invoice must be inserted into a file of invoices that is sorted by date If other invoices exist in the file with the same date, then the invoice should be inserted after the last one Some consistency checks must be performed The program should verify whether the customer is already in a corresponding file of customers Whether the customer s data in the two files match, etc.

56 56 / 80 Definition Let x be a variable of type invoice, (i.e., tuple <x.customer, x.amount, x.data,...>, where customer, amount are given Let current_date denote a variable of type date storing the value of the day when the insert operation is executed Let f be a variable of type invoice_file (i.e., a sequence of elements of type invoice). f(i) denotes the ith element of f. Given a generic record x and a file f of such records (with no repeated elements), let pos be a function that returns the position i of x in f. pos(x,f)=i f(i)=x sorted_by_date(f) forall i,j in Integers (i<j implies f(i).date f(j).date)

57 57 / 80 The logic specification for all x in Invoices, f in Invoice_Files {sorted_by_date(f) and not exist j,k (j k and f(j)=f(k)}

58 58 / 80 The logic specification for all x in Invoices, f in Invoice_Files {sorted_by_date(f) and not exist j,k (j k and f(j)=f(k)} insert(x,f)

59 59 / 80 The logic specification for all x in Invoices, f in Invoice_Files {sorted_by_date(f) and not exist j,k (j k and f(j)=f(k)} insert(x,f) {sorted_by_date(f) and for all k,z (old_f(k) = z implies exists j (f(j)=z)) and for all k,z (f(k)=z and z x) implies exists j (old_f(j)=z) and exists j (f(j).date=x.date and f(j) x) implies j<pos(x,f) and result (x.customer belongs_to custome_file and...) and warning (x belongs_to old_f or x.data > current_date or...) } The postcondition as the conjunction of several clauses, each characterized by some condition.

60 60 / 80 The conditions TRUE implies sorted_by_data(f) and for all k,z (old_f(k) = z implies exists j (f(j)=z)) and for all k,z (f(k)=z and z x) implies exists j (old_f(j)=z)

61 61 / 80 The conditions TRUE implies sorted_by_data(f) and for all k,z (old_f(k) = z implies exists j (f(j)=z)) and for all k,z (f(k)=z and z x) implies exists j (old_f(j)=z) and (x.customer belongs_to custome_file and...) implies result

62 62 / 80 The conditions TRUE implies sorted_by_data(f) and for all k,z (old_f(k) = z implies exists j (f(j)=z)) and for all k,z (f(k)=z and z x) implies exists j (old_f(j)=z) and (x.customer belongs_to custome_file and...) implies result and not (x.customer belongs_to custome_file and...) implies not result

63 63 / 80 The conditions TRUE implies sorted_by_data(f) and for all k,z (old_f(k) = z implies exists j (f(j)=z)) and for all k,z (f(k)=z and z x) implies exists j (old_f(j)=z) and (x.customer belongs_to custome_file and...) implies result and not (x.customer belongs_to custome_file and...) implies not result and x belongs_to old_f implies warning

64 64 / 80 The conditions TRUE implies sorted_by_data(f) and for all k,z (old_f(k) = z implies exists j (f(j)=z)) and for all k,z (f(k)=z and z x) implies exists j (old_f(j)=z) and (x.customer belongs_to custome_file and...) implies result and not (x.customer belongs_to custome_file and...) implies not result and x belongs_to old_f implies warning and x.data > current_date implies warning and...

65 65 / 80 Apply condition-coverage criterion to produce the test set Any test case can be used to verify that the file, which is produced, contains all and only previous invoices plus the new one and is sorted We need at least one test case with an invoice whose field customer exists in the customer_file, and one test case with an invoice whose field customer does not exist in such file

66 66 / 80 Use syntax-driven testing to verify a compiler An interpreter of simple arithmetic expression (in BNF grammar) <expression> ::= <expression>+<term> <expression>-<term> <term> <term> ::= <term> <factor> <term>/<factor> <factor> <factor> ::= ident (<expression>)

67 67 / 80 Use syntax-driven testing to verify a compiler An interpreter of simple arithmetic expression (in BNF grammar) <expression> ::= <expression>+<term> <expression>-<term> <term> <term> ::= <term> <factor> <term>/<factor> <factor> <factor> ::= ident (<expression>) Possible test cases <expression> = <expression>+<term> = <expression>+<term> <factor> = <term>+<term> <factor> = <factor>+<factor> <factor> = ident+ident ident

68 68 / 80 Decision table-based testing Example A word processor Three different formats plain text (p) boldface (b) italics (i) Five different commands make text plain (P) make text boldface (B) make text italics (I) emphasize (E) E can be either B or I superemphasize (SE) SE can be B, I or both (B+I)

69 69 / 80 The decision table Rows represent conditions Columns represent rules (i.e., results) Apply complete-coverage criterion to exercise each column

70 70 / 80 The decision table Rows represent conditions Columns represent rules (i.e., results) Apply complete-coverage criterion to exercise each column The number of column may go exponentially n conditions may generate 2 n results Need to select a significant subset of all possible input classes

71 71 / 80 Cause-effect graph technique Formally structure complex input-output specification using cause-effect graphs Steps 1 Transform inputs and outputs into Boolean values 2 Build the Boolean functions between inputs and outputs

72 72 / 80 Cause-effect graph technique Formally structure complex input-output specification using cause-effect graphs Steps 1 Transform inputs and outputs into Boolean values 2 Build the Boolean functions between inputs and outputs Example Transform inputs to a 10-tuple of Boolean {P, B, I, E, E=B, E=I, SE, SE=B, SE=I, SE=B+I} <false,true,false,false,false,false,false,false,false,false> represents command B Transform outputs of a 3-tuple of Boolean {p, b, i} <false,true,false> denotes a boldface text output

73 73 / 80 The cause-effect graph for boldface text output

74 74 / 80 Put constraints among inputs and outputs Inputs are not independent in many cases, same as outputs The output text can not be both plain and boldface at the same time

75 75 / 80 The cause-effect graph with constraints m m m m

76 Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice White-box Testing Statement coverage Edge coverage Condition coverage Path coverage Black-box Testing Testing driven by logic specification Syntax-driven testing Decision Table-based Testing Cause-effect Graph Technique Testing in the Large Module Testing Integration Testing 76 / 80

77 77 / 80 Testing in the large Module testing testing a single module Integration testing integration of modules and subsystems System testing testing the entire system Acceptance testing performed by the customer

78 78 / 80 Build scaffolding STUB Call Module Under Test Call DRIVER Access to nonlocal variables Scaffolding needed to create the environment in which the module should be tested stubs modules used by the module under test driver module activating the module under test

79 79 / 80 Build scaffolding STUB Call Module Under Test Call DRIVER Access to nonlocal variables Scaffolding needed to create the environment in which the module should be tested stubs modules used by the module under test driver module activating the module under test How to build the scaffolding Develop simplified calling modules and called modules

80 80 / 80 Integration testing Big-bang approach first test individual modules in isolation then test integrated system Incremental approach modules are progressively integrated and tested can proceed both top-down and bottom-up according to the USES relation Top-down only stubs are needed Bottom-up only drivers are needed

Verification Black-box Testing & Testing in the Large

Verification Black-box Testing & Testing in the Large 1 / 18 Verification & Miaoqing Huang University of Arkansas Spring 2010 2 / 18 Outline 1 2 Testing Boundary Conditions 3 Module Testing Integration Testing 3 / 18 Outline 1 2 Testing Boundary Conditions

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

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

SFWR ENG 3S03: Software Testing

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

More information

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

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

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

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

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

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

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

Introduction to Dynamic Analysis

Introduction to Dynamic Analysis Introduction to Dynamic Analysis Reading assignment Gary T. Leavens, Yoonsik Cheon, "Design by Contract with JML," draft paper, http://www.eecs.ucf.edu/~leavens/jml//jmldbc.pdf G. Kudrjavets, N. Nagappan,

More information

Program Analysis. Program Analysis

Program Analysis. Program Analysis Program Analysis Class #4 Program Analysis Dynamic Analysis 1 Static VS Dynamic Analysis Static analysis operates on a model of the SW (without executing it) If successful, produces definitive information

More information

Verification Various Testing Techniques

Verification Various Testing Techniques 1 / 22 Verification Various Testing Techniques Miaoqing Huang University of Arkansas Spring 2010 2 / 22 Outline 1 Other Techniques in Testing in the Small Testing Boundary Conditions 2 Testing in the Large

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

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering Chapter 11, Testing Using UML, Patterns, and Java Object-Oriented Software Engineering Outline Terminology Types of errors Dealing with errors Quality assurance vs Testing Component Testing! Unit testing!

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

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

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

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

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development Reveal faults Goals of testing Correctness Reliability Usability Robustness Performance Top-down/Bottom-up Bottom-up Lowest level modules tested first Don t depend on any other modules Driver Auxiliary

More information

Subject Software Testing Structural Testing

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

More information

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

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

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

Testing. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)?

Testing. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)? Testing CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Testing Feb. 15, 2007 Some slides adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Execute program on sample input

More information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

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

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

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

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process Verification and Validation Assuring that a software system meets a user s needs Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 19,20 Slide 1

More information

Software Testing. Testing: Our Experiences

Software Testing. Testing: Our Experiences Software Testing Testing: Our Experiences Test Case Software to be tested Output 1 Test Case Generation When to Stop? Test Case Software to be tested Verification Output No Enough? Test Coverage Yes A

More information

Terminology. There are many different types of errors and different ways how we can deal with them.

Terminology. There are many different types of errors and different ways how we can deal with them. Testing Terminology Reliability: The measure of success with which the observed behavior of a system confirms to some specification of its behavior. Failure: Any deviation of the observed behavior from

More information

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs. In this Lecture you will Learn: Testing in Software Development Process Examine the verification and validation activities in software development process stage by stage Introduce some basic concepts of

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

Software Verification and Validation. Prof. Lionel Briand Ph.D., IEEE Fellow

Software Verification and Validation. Prof. Lionel Briand Ph.D., IEEE Fellow Software Verification and Validation Prof. Lionel Briand Ph.D., IEEE Fellow 1 White-Box Testing 2 White-Box vs. Black-BoxTesting: Reminder Software Representation (Model) Associated Criteria Test cases

More information

Reading assignment: Reviews and Inspections

Reading assignment: Reviews and Inspections Foundations for SE Analysis Reading assignment: Reviews and Inspections M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 1999, pp. 258-287.

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

Page 1. Reading assignment: Reviews and Inspections. Foundations for SE Analysis. Ideally want general models. Formal models

Page 1. Reading assignment: Reviews and Inspections. Foundations for SE Analysis. Ideally want general models. Formal models Reading assignment: Reviews and Inspections Foundations for SE Analysis M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 999, pp. 258-28.

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

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages No Source Code : Software Testing Black-Box Testing Test-Driven Development No access to source code So test cases don t worry about structure Emphasis is only on ensuring that the contract is met Specification-Based

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

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems)

Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems) Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems) More Analysis for Functional Correctness Jonathan Aldrich Charlie Garrod School of Computer Science

More information

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

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

More information

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

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing Black Box Testing EEC 521: Software Engineering Software Testing Black-Box Testing Test-Driven Development Also known as specification-based testing Tester has access only to running code and the specification

More information

Software Quality Assurance (SQA) Software Quality Assurance

Software Quality Assurance (SQA) Software Quality Assurance Software Quality Assurance (SQA) Software Quality Assurance Use of analysis to validate artifacts requirements analysis design analysis code analysis and testing Technical/Document reviews Control of changes

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 3 1 2 Non-Testing V&V 7 2.1 Code Review....... 8 2.2 Mathematically-based verification......................... 19 2.3 Static analysis tools... 23 2.4

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 2 2 Non-Testing V&V 3 2.1 Code Review........... 4 2.2 Mathematically-based verification.................................. 8 2.3 Static analysis tools.......

More information

A Gentle Introduction to Program Analysis

A Gentle Introduction to Program Analysis A Gentle Introduction to Program Analysis Işıl Dillig University of Texas, Austin January 21, 2014 Programming Languages Mentoring Workshop 1 / 24 What is Program Analysis? Very broad topic, but generally

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

Properties of Criteria. 1. Applicability Property. Criteria

Properties of Criteria. 1. Applicability Property. Criteria Properties of Criteria Program-based To recognize a good adequacy criteria And to discard poor choices Objective, well-defined properties 1. Applicability Property For every program, there exists an adequate

More information

Software Testing. Massimo Felici IF

Software Testing. Massimo Felici IF Software Testing Massimo Felici IF-3.46 0131 650 5899 mfelici@staffmail.ed.ac.uk What is Software Testing? Software Testing is the design and implementation of a special kind of software system: one that

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

Software Quality Assurance & Testing

Software Quality Assurance & Testing Software Quality Assurance & Testing 1.Software Testing - An ISTQB-BCS Certified Tester Foundation Guide 3rd edition, 2015 Brian Hambling, Peter Morgan, Geoff Thompson, Peter Williams,Angelina Samaroo

More information

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

INTRODUCTION TO SOFTWARE ENGINEERING

INTRODUCTION TO SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING Introduction to Software Testing d_sinnig@cs.concordia.ca Department for Computer Science and Software Engineering What is software testing? Software testing consists

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

[IT6004-SOFTWARE TESTING] UNIT 2

[IT6004-SOFTWARE TESTING] UNIT 2 1. List the two basic Testing strategies. UNIT 2 Black box testing. White box testing. 2. What are the knowledge sources for Black box testing? Requirements Document specification Domain knowledge Defect

More information

Chapter 3. Semantics. Topics. Introduction. Introduction. Introduction. Introduction

Chapter 3. Semantics. Topics. Introduction. Introduction. Introduction. Introduction Topics Chapter 3 Semantics Introduction Static Semantics Attribute Grammars Dynamic Semantics Operational Semantics Axiomatic Semantics Denotational Semantics 2 Introduction Introduction Language implementors

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

Test Cases Generation from UML Activity Diagrams

Test Cases Generation from UML Activity Diagrams Eighth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing Test Cases Generation from UML Activity Diagrams Hyungchoul Kim, Sungwon

More information

Sample Exam Syllabus

Sample Exam Syllabus ISTQB Foundation Level 2011 Syllabus Version 2.9 Release Date: December 16th, 2017. Version.2.9 Page 1 of 46 Dec 16th, 2017 Copyright 2017 (hereinafter called ISTQB ). All rights reserved. The authors

More information

Test design techniques

Test design techniques INF3121 : Software Testing 12. 02. 2015 Lecture 4 Test design techniques Lecturer: Raluca Florea INF3121/ 12.02.2015 / Raluca Florea 1 Overview 1. The test development process 2. Categories of test design

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

More information

Formal Methods. CITS5501 Software Testing and Quality Assurance

Formal Methods. CITS5501 Software Testing and Quality Assurance Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981

More information

Second assignment came out Monday evening. Find defects in Hnefetafl rules written by your classmates. Topic: Code Inspection and Testing

Second assignment came out Monday evening. Find defects in Hnefetafl rules written by your classmates. Topic: Code Inspection and Testing Announcements Second assignment came out Monday evening Topic: Code Inspection and Testing Find defects in Hnefetafl rules written by your classmates Compare inspection, coverage testing, random testing,

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

Software Testing. Lecturer: Sebastian Coope Ashton Building, Room G.18

Software Testing. Lecturer: Sebastian Coope Ashton Building, Room G.18 Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Software Testing 1 Defect Testing Defect testing involves

More information

MSc Software Testing MSc Prófun hugbúnaðar

MSc Software Testing MSc Prófun hugbúnaðar MSc Software Testing MSc Prófun hugbúnaðar Fyrirlestrar 7 & 8 Structural Testing White-box tests. 29/8/27 Dr Andy Brooks 1 Case Study Dæmisaga Reference Structural Testing of Programs, A Survey, A A Omar

More information

Administrivia. ECE/CS 5780/6780: Embedded System Design. Acknowledgements. What is verification?

Administrivia. ECE/CS 5780/6780: Embedded System Design. Acknowledgements. What is verification? Administrivia ECE/CS 5780/6780: Embedded System Design Scott R. Little Lab 8 status report. Set SCIBD = 52; (The Mclk rate is 16 MHz.) Lecture 18: Introduction to Hardware Verification Scott R. Little

More information

Symbolic and Concolic Execution of Programs

Symbolic and Concolic Execution of Programs Symbolic and Concolic Execution of Programs Information Security, CS 526 Omar Chowdhury 10/7/2015 Information Security, CS 526 1 Reading for this lecture Symbolic execution and program testing - James

More information

Quality Assurance in Software Development

Quality Assurance in Software Development Quality Assurance in Software Development Qualitätssicherung in der Softwareentwicklung A.o.Univ.-Prof. Dipl.-Ing. Dr. Bernhard Aichernig Graz University of Technology Austria Summer Term 2017 1 / 47 Agenda

More information

CIS 890: Safety Critical Systems

CIS 890: Safety Critical Systems CIS 890: Safety Critical Systems Lecture: SPARK -- Analysis Tools Copyright 2007, John Hatcliff. The syllabus and all lectures for this course are copyrighted materials and may not be used in other course

More information

INTRODUCTION TO ALGORITHMS

INTRODUCTION TO ALGORITHMS UNIT- Introduction: Algorithm: The word algorithm came from the name of a Persian mathematician Abu Jafar Mohammed Ibn Musa Al Khowarizmi (ninth century) An algorithm is simply s set of rules used to perform

More information

Advanced Programming Methods. Introduction in program analysis

Advanced Programming Methods. Introduction in program analysis Advanced Programming Methods Introduction in program analysis What is Program Analysis? Very broad topic, but generally speaking, automated analysis of program behavior Program analysis is about developing

More information

Runtime Checking for Program Verification Systems

Runtime Checking for Program Verification Systems Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification

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

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

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

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing?

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing? Testing ECE/CS 5780/6780: Embedded System Design Scott R. Little Lecture 24: Introduction to Software Testing and Verification What is software testing? Running a program in order to find bugs (faults,

More information

Black-box Testing Techniques

Black-box Testing Techniques T-76.5613 Software Testing and Quality Assurance Lecture 4, 20.9.2006 Black-box Testing Techniques SoberIT Black-box test case design techniques Basic techniques Equivalence partitioning Boundary value

More information

EXAMINING THE CODE. 1. Examining the Design and Code 2. Formal Review: 3. Coding Standards and Guidelines: 4. Generic Code Review Checklist:

EXAMINING THE CODE. 1. Examining the Design and Code 2. Formal Review: 3. Coding Standards and Guidelines: 4. Generic Code Review Checklist: EXAMINING THE CODE CONTENTS I. Static White Box Testing II. 1. Examining the Design and Code 2. Formal Review: 3. Coding Standards and Guidelines: 4. Generic Code Review Checklist: Dynamic White Box Testing

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

Warm-Up Problem. Let be a set of well-formed Predicate logic formulas. Let be well-formed Predicate logic formulas. Prove or disprove the following.

Warm-Up Problem. Let be a set of well-formed Predicate logic formulas. Let be well-formed Predicate logic formulas. Prove or disprove the following. Warm-Up Problem Let be a set of well-formed Predicate logic formulas Let be well-formed Predicate logic formulas Prove or disprove the following If then 1/35 Program Verification Carmen Bruni Lecture 18

More information

Modern Methods in Software Engineering. Testing.

Modern Methods in Software Engineering. Testing. Modern Methods in Software Engineering Testing www.imit.kth.se/courses/2g1522 Literature used Text book Chapter 11 Introduction Content Terminology Types of errors Dealing with errors Component Testing

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering Quality Management Main Message Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase 3 1. Overview

More information

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins Software Testing Why Test? Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins https://www.typemock.com/software-bugs-infographic A bug found at design time costs ten times less to fix

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

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

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

More information

Profile-Guided Program Simplification for Effective Testing and Analysis

Profile-Guided Program Simplification for Effective Testing and Analysis Profile-Guided Program Simplification for Effective Testing and Analysis Lingxiao Jiang Zhendong Su Program Execution Profiles A profile is a set of information about an execution, either succeeded or

More information

Testing Objectives. Successful testing: discovers previously unknown errors

Testing Objectives. Successful testing: discovers previously unknown errors Testing Objectives Informal view: Testing: a process of executing software with the intent of finding errors Good testing: a high probability of finding as-yetundiscovered errors Successful testing: discovers

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

Case by Case. Chapter 3

Case by Case. Chapter 3 Chapter 3 Case by Case In the previous chapter, we used the conditional expression if... then... else to define functions whose results depend on their arguments. For some of them we had to nest the conditional

More information

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur School of Computing, Department of IT 1 School of Computing, Department 2 SOFTWARE TESTING

More information

Testing! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!

Testing! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6! Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Goals of this Lecture Help you learn about: Internal testing External testing General

More information