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

Size: px
Start display at page:

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

Transcription

1 Software Testing Minsoo Ryu Hanyang University

2 Topics covered 1. Testing Goals and Principles 2. Testing Process 3. Testing Strategies Component testing Integration testing Validation/system testing 4. Testing Tactics 5. Debugging 2 2

3 1. Testing Goals and Principles Testing goals (Glen Meyer) Testing is a process of executing a program with the intent of finding an error A good test case is one that has a high probability of finding an as-yet- undiscovered error A successful test is one that uncovers an as-yetundiscovered error 3 3

4 Testing Goals and Principles Five testing principles by Davis All tests should be traceable to customer requirements Tests should be planned long before testing begins Test planning can begin as soon as the analysis model complete The Pareto principle applies to software testing 80 percent of all errors uncovered during testing will likely be traceable to 20 percent of all program components The Pareto principle (also known as the rule, the law of the vital few and the principle of factor sparsity) states that for many phenomena, 80% of the consequences stem from 20% of the causes Testing should begin in the small and progress toward testing in the large Exhaustive testing is not possible 4 4

5 Topics covered 1. Testing Goals and Principles 2. Testing Process 3. Testing Strategies Component testing Integration testing Validation/system testing 4. Testing Tactics 5. Debugging 5 5

6 2. Testing Process Testing begins in the small and progresses to the large Testing process Unit (component or module) test Integration test Validation and system test 6 6

7 The Testing Process 7 7

8 Topics covered 1. Testing Goals and Principles 2. Testing Process 3. Testing Strategies Component testing Integration testing Validation/system testing 4. Testing Tactics 5. Debugging 8 8

9 3. Testing Strategies A testing strategy integrates software test case design methods into a well-planned series of steps The strategy provides a road map that describes the steps to be constructed as part of testing, when these steps are planned and then undertaken, and how much effort, time, and resources will be required Therefore any testing strategy must incorporate test planning, test case design, test execution, and resultant data collection and evaluation 9 9

10 Organizing for Software Testing Who tests the software? From a psychological point of view, software analysis, design, and construction (coding) are constructive tasks From the point of view of the builder, testing can be considered destructive So the builder treads lightly, designing and executing tests that will demonstrate that the program works, rather than uncovering errors The role of independent test group (ITG) is to remove the above inherent problems The developer and the ITG work closely throughout a software project to ensure that thorough tests will be conducted 10 10

11 Organizing for Software Testing developer Understands the system but, will test "gently" and, is driven by "delivery" independent tester Must learn about the system, but, will attempt to break it and, is driven by quality 11 11

12 Component (Unit or Module) Testing Each module is tested to uncover errors within the boundary of the module Module interface Local data structures All independent paths (basis paths) Boundary conditions Error handling paths 12 12

13 Component (Unit or Module) Testing Module interface Tests of data flow across a module interface are required before any other test is initiated Local data structures Local data structures should be exercised and the local impact on global data should be ascertained Execution paths Test cases should be designed to uncover errors due to erroneous computations, incorrect comparisons, or improper control flow Boundary conditions Tests cases that exercise data structures, control flow, and data values just below, at, and just above maxima and minima are very likely to uncover errors Error handling paths Good design dictates that error conditions be anticipated and errorhandling paths set up to reroute or cleanly terminate processing when an error does occur Unfortunately, there is a tendency to incorporate error handling into software and then never test it 13 13

14 Component (Unit or Module) Testing Unit test environment A driver is a main program that accepts tests case data, passes such data to the component, and prints relevant results Stubs serve to replace modules that are subordinate to the component to be tested A stub or dummy subprogram uses the subordinate module interface, may do minimal data manipulation, provides verification of entry, and returns control to the module undergoing testing Some comments on unit testing Drivers and stubs are overhead (not delivered) Unit testing is simplified when a component with high cohesion is designed 14 14

15 Unit Test Environment driver stub Module stub interface local data structures boundary conditions independent paths error handling paths test cases RESULTS 15 15

16 Integration Testing Integration testing is a systematic technique for constructing the software architecture while at the same time conducting tests to uncover errors associated with interfacing Two approaches Big bang approach All components are combined in advance and the entire program is tested as a whole Chaos usually results, and correction is difficult because isolation of cause is complicated by the vast expense of the entire program Incremental approach The program is constructed and tested in small increments Top-down vs. bottom-up 16 16

17 Incremental Integration Testing A T1 A T1 A T1 T2 B T2 T2 B T3 B T3 C T3 T4 C T4 D T5 Test sequence 1 Test sequence 2 Test sequence

18 Top-Down Integration Modules are integrated by moving downward through the control hierarchy, beginning with the main control module Modules subordinate to the main control module are incorporated into the structure in either a depth-first or breadth-first manner The top-down integration strategy verifies major control or decision points early in the test process 18 18

19 Top-Down Integration A top module is tested with stubs B F G D C E stubs are replaced one at a time, "depth first" as new modules are integrated, some subset of tests is re-run 19 19

20 Top-Down Integration Top-down strategy sounds relatively uncomplicated, but, in practice, logistical problems can arise The most common of these problems occurs when processing at low levels in the hierarchy is required adequately test upper levels Stubs replace low-level modules at the beginning of topdown testing; therefore no significant data can flow upward in the program structure Two choices: (1) delay many tests until stubs are replaced with actual modules, or develop stubs that perform limited functions that simulate actual module 20 20

21 Bottom-Up Integration Bottom-up integration testing begins construction and testing with atomic modules Low-level components are combined into clusters (builds) A driver is written to coordinate test case input and output The cluster is tested Derivers are removed and clusters are combined moving upward in the program structure 21 21

22 Bottom-Up Integration A B F G C drivers are replaced one at a time, "depth first" D E worker modules are grouped into builds and integrated cluster 22 22

23 Regression Testing Each time a new module is added as part of integration testing, the software changes New data flow paths are established, new I/O may occur, and new control logic is invoked Regression testing is the re-execution of some subset of tests that have already been conducted to ensure that changes have not propagated unintended side effects 23 23

24 Validation and System Testing Ultimately, software is incorporated with other system elements (e.g., hardware, people, information), and a series of system integration and validation tests are conducted Software validation is achieved through a series of tests that demonstrate conformity with requirements A classic system testing problem is finger-pointing When an error uncovered, each system element developer blames the other for the problem 24 24

25 Types of Validation and System Testing Recovery testing Forces the software to fail in a variety of ways and verifies that recovery is properly performed If recovery is automatic, reinitialization, checkpointing mechanisms, data recovery, and restart are evaluated If recovery requires human intervention, the mean-time-tofailure (MTTR) is evaluated whether it is within acceptable limits Security testing Verifies that protection mechanisms built into a system will protect it from improper penetration 25 25

26 Types of Validation and System Testing Stress testing Executes a system in a manner that demands resources in abnormal quantity, frequency, or volume For example, input data rates may be increased by an order of magnitude to determine how input functions will respond Performance testing Test the run-time performance of software within the context of an integrated system 26 26

27 Types of Validation and System Testing Alpha testing Alpha test is conducted in a controlled manner at the developer s site by end-users The software is used in a natural setting with the developer looking over the shoulder of typical users and recording errors and usage problems Beta test Beta test is conducted at end-user sites The developer is generally not present The beta test is a live application of the software in an environment that cannot be controlled by the developer The end-user records and reports all problems 27 27

28 Topics covered 1. Testing Goals and Principles 2. Testing Process 3. Testing Strategies Component testing Integration testing Validation/system testing 4. Testing Tactics 5. Debugging 28 28

29 4. Testing Tactics (Methods) white-box methods black-box methods Testing Methods Testing Strategies 29 29

30 White Box vs. Black Box Testing White box testing Knowing the internal workings of a product Can be conducted only when component-level design (or source code) exists e.g.) Basis path testing and control structure testing Black box testing Knowing the specified function that a product has been to perform Alludes to tests that are conducted at the software interface e.g.) Equivalence partitioning, boundary value analysis, and orthogonal array testing 30 30

31 Basis Path Testing Basis path testing is a white box testing proposed by Tom McCabe The objective of path testing is to ensure that the set of test cases is such that each path through the program is executed at least once The starting point for path testing is a program flow graph that shows nodes representing program decisions and arcs representing the flow of control Statements with conditions are therefore nodes in the flow graph Sequence If While Until Case 31 31

32 Exhaustive testing Basis Path Testing loop < 20 X There are paths for the above small program! If the processor can exercise each test case in one millisecond, working 24 hours a day, 365 days a year, the processor would work for 3170 years 32 32

33 Selective testing Basis Path Testing Selected path loop < 20 X 33 33

34 Independent Program Path An independent path is any path through the program that introduces at least one new set of processing statements or a new condition An independent path must move along at least one edge that has not been traversed before the path is defined Path 1: 1,2,3,6,7,8 Path 2: 1,2,3,5,7,8 Path 3: 1,2,4,7,8 Path 4: 1,2,4,7,2,4,...7, Path <1, 2, 3, 5, 7, 2, 4, 7, 8> is not an independent path (simply a combination)

35 Independent Program Path Paths 1, 2, 3, 4 constitute a basis set The basis set is not unique A number of different basis sets can be derived for a given design How do we know how many paths to look for? The computation of cyclomatic complexity provides the answer Cyclomatic complexity V(G) The number of regions The number of edges the number of nodes + 2 The number of predicate nodes + 1 Each node that contains a condition is called a predicate node 35 35

36 Condition Testing Condition testing exercises the logical conditions contained in a program module A simple condition is a Boolean variable or a relational expression A relational expression E 1 <relational-operator> E 2 <relational-operator> Less (greater) than, less (greater) than or equal to, equal to, not equal to A compound condition is composed of two or more simple conditions, Boolean operators, and parentheses Boolean operators: OR, AND, NOT 36 36

37 Data Flow Testing Selects test paths of a program according to the locations of definitions and uses of variables in the program For a statement with S as its statement number DEF(S) = {X statement S contains a definition of X} USE(S) = {X statement S contains a use of X} The definition of variable X at statement S is said to be live at statement S if there exists a path from statement S to statement S that contains no other definition of X A definition-use (DU) chain of variable X is of the form [X, S, S ] One simple data flow testing is to require that every DU chain be covered at least once 37 37

38 Loop Testing Loop testing focuses exclusively on the validity of loop constructs Simple loop Nested Loops Concatenated Loops Unstructured Loops 38 38

39 Loop Testing Minimum conditions Simple Loops 1. skip the loop entirely 2. only one pass through the loop 3. two passes through the loop 4. m passes through the loop m < n 5. (n-1), n, and (n+1) passes through the loop where n is the maximum number of allowable passes 39 39

40 Loop Testing Nested Loops Start at the innermost loop. Set all outer loops to their minimum iteration parameter values. Test the min+1, typical, max-1 and max for the innermost loop, while holding the outer loops at their minimum values. Move out one loop and set it up as in step 2, holding all other loops at typical values. Continue this step until the outermost loop has been tested. Concatenated Loops If the loops are independent of one another then treat each as a simple loop else* treat as nested loops endif* for example, the final loop counter value of loop 1 is used to initialize loop

41 Black Box Testing requirements output input events 41 41

42 Equivalence Partitioning Equivalence partitioning divides the input domain of a program into classes of data from which test cases can be derived Invalid inputs Valid inputs System Outputs 42 42

43 Boundary Value Analysis Equivalence class boundaries Elements < Mid Elements > Mid Mid-point 43 43

44 Orthogonal Array Testing Orthogonal array testing can be applied to problems in which the input domain is relatively small but too large to accommodate exhaustive testing In any two of columns, each pair of symbols occurs exactly the same number of times Z Z Y X Y X One input item at a time L9 orthogonal array 44 44

45 Orthogonal Array Testing P1 = {0, 1, 2}, P2 = {0, 1, 2}, P3 = {0, 1, 2}, P4 = {0, 1, 2} P1 P2 P3 P <One at a time> P1 P2 P3 P <Orthogonal array> 45 45

46 46 46

47 47 47

48 48 48

49 Topics covered 1. Testing Goals and Principles 2. Testing Process 3. Testing Strategies Component testing Integration testing Validation/system testing 4. Testing Tactics 5. Debugging 49 49

50 5. Debugging Debugging is an action that results in the removal of the error uncovered by the testing process test cases regression tests corrections new test cases suspected causes identified causes Debugging results 50 50

51 Debugging Effort Brian Kingdom, Everyone knows that debugging is twice as hard as writing a program in the first place. So if you are as clever as you can be when you write it, how will you ever debug it? time required to correct the error and conduct regression tests time required to diagnose the symptom and determine the cause 51 51

52 Symptoms & Causes symptom and cause may be geographically separated symptom may disappear when another problem is fixed cause may be due to a combination of non-errors cause may be due to a system or compiler error symptom cause cause may be due to assumptions that everyone believes symptom may be intermittent 52 52

53 Brute Force Debugging Brute force debugging is probably the most common and least efficient method for isolating the cause of a software error Using a let the computer find the error philosophy, memory dumps are taken, run-time traces are invoked, and the program is loaded with output statements We hope that somewhere in the morass of information we will find a clue that can lead us to the cause of an error Although the mass of information produced may ultimately lead to success, it more frequently leads to wasted effort and time 53 53

54 Backtracking Backtracking is a fairly a common debugging approach that can be used successfully in small programs Beginning at the site where a symptom has been uncovered, the source code is traced backward (manually) until the site of the cause is found Unfortunately, as the number of source lines increases, the number of potential backward paths may become unmanageably large 54 54

55 Cause Elimination Cause elimination is manifested by induction or deduction and introduces the concept of binary partitioning Data related to the error occurrence are organized to isolate potential causes A cause hypothesis is devised, and the aforementioned data are used to prove or disprove the hypothesis Alternatively, a list of all possible causes is developed, and tests are conducted to eliminate each If initial tests indicate that a particular cause hypothesis shows promise, data are refined in an attempt to isolate the bug 55 55

56 The Final Maxim When all else fails, get help! Set a time limit, say, one hour, on the time you spend trying to debug a problem on your own After that, get help 56 56

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

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 22 Software Testing Strategies Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014

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

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software Testing Basic ideas and principles Traditional testing strategies Unit, integration, regression, validation, system OO Testing techniques Application of traditional techniques to OO software Testing-11,

More information

Introduction to Software Engineering

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

More information

Verification and Validation

Verification and Validation Chapter 5 Verification and Validation Chapter Revision History Revision 0 Revision 1 Revision 2 Revision 3 Revision 4 original 94/03/23 by Fred Popowich modified 94/11/09 by Fred Popowich reorganization

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

Software Engineering Software Testing Techniques

Software Engineering Software Testing Techniques Software Engineering Software Testing Techniques 1 Testability Operability it it operates cleanly Observability the the results of each test case are readily observed Controllability the the degree to

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

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK TWO MARKS UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT 1. What is software engineering? Software engineering

More information

! Is often referred to as verification and validation (V&V).

! Is often referred to as verification and validation (V&V). Software Testing! Is often referred to as verification and validation (V&V). Software Testing! Verification!Activities ensure that implementation=a specific function!are we building the product right?!

More information

Chapter 14 Testing Tactics

Chapter 14 Testing Tactics Chapter 14 Testing Tactics Moonzoo Kim CS Division of EECS Dept. KAIST moonzoo@cs.kaist.ac.kr http://pswlab.kaist.ac.kr/courses/cs550-07 Spring 2007 1 Overview of Ch14. Testing Tactics 14.1 Software Testing

More information

Lecture 14: Chapter 18!

Lecture 14: Chapter 18! Lecture 14: Chapter 18! Testing Conventional Applications! Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by

More information

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS6403 SOFTWARE ENGINEERING II year/ IV sem CSE (Regulation 2013) UNIT 1- SOFTWARE PROCESS AND PROJECT

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

QUIZ #5 - Solutions (5pts each)

QUIZ #5 - Solutions (5pts each) CS 435 Spring 2014 SOFTWARE ENGINEERING Department of Computer Science Name QUIZ #5 - Solutions (5pts each) 1. The best reason for using Independent software test teams is that a. software developers do

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

SOFTWARE ENGINEERING SOFTWARE VERIFICATION AND VALIDATION. Saulius Ragaišis.

SOFTWARE ENGINEERING SOFTWARE VERIFICATION AND VALIDATION. Saulius Ragaišis. SOFTWARE ENGINEERING SOFTWARE VERIFICATION AND VALIDATION Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Verification and Validation Learning Objectives: Distinguish between program validation

More information

Software Testing Strategies. Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman

Software Testing Strategies. Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman Chapter 17 Software Testing Strategies Slide Set to accompany Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For

More information

SE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT

SE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT 1 Unit 4 Software Testing Introduction Once the source code has been developed, testing is required to uncover the errors before it is implemented. In order to perform software testing a series of test

More information

UNIT 1-SOFTWARE PROCESS AND PROJECT MANAGEMENT

UNIT 1-SOFTWARE PROCESS AND PROJECT MANAGEMENT PART A (2 MARKS) UNIT 1-SOFTWARE PROCESS AND PROJECT MANAGEMENT 1. What is software engineering? Software engineering is a discipline in which theories, methods and tools are applied to develop professional

More information

Chapter 8. Achmad Benny Mutiara

Chapter 8. Achmad Benny Mutiara Chapter 8 SOFTWARE-TESTING STRATEGIES Achmad Benny Mutiara amutiara@staff.gunadarma.ac.id 8.1 STATIC-TESTING STRATEGIES Static testing is the systematic examination of a program structure for the purpose

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

TESTING STRATEGIES. a. A STRATEGIC APPROACH TO SOFTWARE TESTING. Verification and Validation. Organizing for Software Testing

TESTING STRATEGIES. a. A STRATEGIC APPROACH TO SOFTWARE TESTING. Verification and Validation. Organizing for Software Testing TESTING STRATEGIES a. A STRATEGIC APPROACH TO SOFTWARE TESTING Testing is a set of activities that can be planned in advance and conducted systematically. For this reason a template for software testing

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

CS6403 SOFTWARE ENGINEERING Year / Sem : II / IV Sub. Code &Subject : CS6403 SOFTWARE ENGINEERING QUESTION BANKWITH ANSWERS

CS6403 SOFTWARE ENGINEERING Year / Sem : II / IV Sub. Code &Subject : CS6403 SOFTWARE ENGINEERING QUESTION BANKWITH ANSWERS CS6403 SOFTWARE ENGINEERING Year / Sem : II / IV Sub. Code &Subject : CS6403 SOFTWARE ENGINEERING QUESTION BANKWITH ANSWERS UNIT 1-SOFTWARE PROCESS AND PROJECT MANAGEMENT 1. What is software engineering?

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 Fundamental. Next is Testing. Testing is the one step in the software process that could be viewed as destructive rather than constructive.

Testing Fundamental. Next is Testing. Testing is the one step in the software process that could be viewed as destructive rather than constructive. Testing Fundamental Software engineer attempts to build software from an abstract concept to a tangible product. Next is Testing. The engineer creates a series of test cases that are intended to "demolish"

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 Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Testing Software Engineering -CSC4350/6350 - Rao Casturi 2 Testing What is testing? Process of finding the divergence between the expected behavior of the

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/10/2015 http://cs.gsu.edu/~ncasturi1 Class announcements Final Exam date - Dec 1 st. Final Presentations Dec 3 rd. And

More information

Chapter 14 Software Testing Techniques

Chapter 14 Software Testing Techniques Software Engineering: A Practitioner s s Approach, 6/e Chapter 14 Software Testing Techniques copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY

More information

UNIT-2 Levels of Testing

UNIT-2 Levels of Testing Levels of Testing Unit testing Integration testing System testing Acceptance testing - alpha testing, beta testing Static and dynamic testing Manual and automation testing 1 PARUL UNIVERSITY [MCA] Garima

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

Software Engineering Fall 2014

Software Engineering Fall 2014 Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/10/2014 Final Exam date - Dec 10 th? Class announcements Final Presentations Dec 3 rd. And Dec 8 th. Ability

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

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

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

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation Yan Shi SE 2730 Lecture Notes Verification and Validation Verification: Are

More information

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities

More information

Literature. CHAPTER 5 Testing. When to Test? The Unified Process. When to Test?

Literature. CHAPTER 5 Testing. When to Test? The Unified Process. When to Test? CHAPTER 5 Testing Introduction When, Why, What & Who? What is Correct? Terminology Testing Techniques White Box basis path, conditions, loops Black Box: equivalence partitioning Testing Strategies Unit

More information

Integration Testing Qualidade de Software 2

Integration Testing Qualidade de Software 2 Integration Testing Integration Testing Software systems are built with components that must interoperate Primary purpose: To reveal component interoperability faults so that testing at system scope may

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

Sample Question Paper. Software Testing (ETIT 414)

Sample Question Paper. Software Testing (ETIT 414) Sample Question Paper Software Testing (ETIT 414) Q 1 i) What is functional testing? This type of testing ignores the internal parts and focus on the output is as per requirement or not. Black-box type

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

Testing Theory. Agenda - What will you learn today? A Software Life-cycle Model Which part will we talk about today? Theory Lecture Plan

Testing Theory. Agenda - What will you learn today? A Software Life-cycle Model Which part will we talk about today? Theory Lecture Plan heory Lecture Plan 2 esting heory Lecture 8 Software Engineering DDC88/DDC93 autumn 28 Department of Computer and Information Science Linköping University, Sweden L - Course Introduction and Overview L2

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

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

MTAT : Software Testing

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

More information

Test Design Techniques ISTQB (International Software Testing Qualifications Board)

Test Design Techniques ISTQB (International Software Testing Qualifications Board) Test Design Techniques ISTQB (International Software Testing Qualifications Board) Minsoo Ryu Hanyang University Testing Process Planning and Control Analysis and Design Implementation and Execution Evaluating

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

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia Topic: Software Verification, Validation and Testing Software Engineering Faculty of Computing Universiti Teknologi Malaysia 2016 Software Engineering 2 Recap on SDLC Phases & Artefacts Domain Analysis

More information

CMSC 132: OBJECT-ORIENTED PROGRAMMING II

CMSC 132: OBJECT-ORIENTED PROGRAMMING II CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code

More information

Chapter 11, Testing, Part 2: Integration and System Testing

Chapter 11, Testing, Part 2: Integration and System Testing Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 11, Testing, Part 2: Integration and System Testing Overview Integration testing Big bang Bottom up Top down Sandwich System testing

More information

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001

Integration and Testing. Uses slides from Lethbridge & Laganiere, 2001 Integration and Testing Uses slides from Lethbridge & Laganiere, 2001 Testing phases: V model Requirements Acceptance Testing Specifications System Testing Design Integration Testing Detailed Design Unit

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 Testing Techniques

Software Testing Techniques Software Testing Techniques Sahil Munjal, Sahil Bhardwaj, Sachin Malik Student, Dronacharya College of Engineering, Khentawas, Farrukhnagar, Gurgaon Abstract Testing a software is a complex issue. This

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

Software Testing Interview Question and Answer

Software Testing Interview Question and Answer Software Testing Interview Question and Answer What is Software Testing? A process of analyzing a software item to detect the differences between existing and required conditions (i.e., defects) and to

More information

Unit Testing as Hypothesis Testing

Unit Testing as Hypothesis Testing Unit Testing as Hypothesis Testing Jonathan Clark September 19, 2012 You should test your code. Why? To find bugs. Even for seasoned programmers, bugs are an inevitable reality. Today, we ll take an unconventional

More information

Chapter 11, Testing, Part 2: Integration and System Testing

Chapter 11, Testing, Part 2: Integration and System Testing Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 11, Testing, Part 2: Integration and System Testing Overview Integration testing Big bang Bottom up Top down Sandwich System testing

More information

System development, design & implementation

System development, design & implementation System development, design & implementation Design of software The following are the principle for any software design : Modularity and partitioning : Top down methods are used through out the analysis

More information

QUESTION BANK UNIT 1 SOFTWARE PROCESS AND PROJECT MANAGEMENT Part A

QUESTION BANK UNIT 1 SOFTWARE PROCESS AND PROJECT MANAGEMENT Part A QUESTION BANK UNIT 1 SOFTWARE PROCESS AND PROJECT MANAGEMENT Part A 1. What is software engineering?[apr MAY 2010] Software engineering is a discipline in which theories, methods and tools are applied

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

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

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 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

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

Part I: Preliminaries 24

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

More information

CSC 408F/CSC2105F Lecture Notes. Reading Assignment

CSC 408F/CSC2105F Lecture Notes. Reading Assignment CSC 408F/CSC2105F Lecture Notes These lecture notes are provided for the personal use of students taking CSC 408H/CSC 2105H in the Fall term 2004/2005 at the University of Toronto. Reading Assignment van

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

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

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

Software Testing CS 408

Software Testing CS 408 Software Testing CS 408 1/09/18 Course Webpage: http://www.cs.purdue.edu/homes/suresh/408-spring2018 1 The Course Understand testing in the context of an Agile software development methodology - Detail

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

Unit Testing as Hypothesis Testing

Unit Testing as Hypothesis Testing Unit Testing as Hypothesis Testing Jonathan Clark September 19, 2012 5 minutes You should test your code. Why? To find bugs. Even for seasoned programmers, bugs are an inevitable reality. Today, we ll

More information

The Fundamental Testing Process in Practical or Company environment

The Fundamental Testing Process in Practical or Company environment The Fundamental Testing Process in Practical or Company environment Ms. Palak Khanna Assistant Professor Department of Computer Applications, Chandigarh Group of Colleges Landran, Mohali (Punjab), India

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

Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.

Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. TESTING Testing is the process of evaluating a system or its component(s) with the concentrating to find whether it satisfies the specified requirements or not. Testing is executing a system in order to

More information

MTAT : Software Testing

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

More information

Chapter 10. Testing and Quality Assurance

Chapter 10. Testing and Quality Assurance Chapter 10 Testing and Quality Assurance Different styles of doing code review Human Reviewer Code Inspection with continuous integration infrastructure Pinger s testing set up Testing Related topics 1.

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 250 VLSI Design Lecture 11 Design Verification

CS 250 VLSI Design Lecture 11 Design Verification CS 250 VLSI Design Lecture 11 Design Verification 2012-9-27 John Wawrzynek Jonathan Bachrach Krste Asanović John Lazzaro TA: Rimas Avizienis www-inst.eecs.berkeley.edu/~cs250/ IBM Power 4 174 Million Transistors

More information

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

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

More information

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

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS Introduction To Software Testing Brian Nielsen bnielsen@cs.aau.dk Center of Embedded Software Systems Aalborg University, Denmark CSS 1010111011010101 1011010101110111 What is testing? Testing Testing:

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

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

Department of Electrical & Computer Engineering, University of Calgary. B.H. Far

Department of Electrical & Computer Engineering, University of Calgary. B.H. Far SENG 421: Software Metrics Software Test Metrics (Chapter 10) Department of Electrical & Computer Engineering, University of Calgary B.H. Far (far@ucalgary.ca) http://www.enel.ucalgary.ca/people/far/lectures/seng421/10/

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

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd)

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) An incorrect code fragment for determining if three integers are equal, together with two test cases Flowchart has over 10

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

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

MTAT : Software Testing

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

More information

CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING

CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING 1 CS 4387/5387 SOFTWARE V&V LECTURE 4 BLACK-BOX TESTING Outline 2 Quiz Black-Box Testing Equivalence Class Testing (Equivalence Partitioning) Boundary value analysis Decision Table Testing 1 3 Quiz - 1

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

CS Software Engineering. UNIT I to V : TWO MARK QUESTION AND ANSWERS. The KB for Engineering Students

CS Software Engineering. UNIT I to V : TWO MARK QUESTION AND ANSWERS. The KB for Engineering Students The KB for Engineering Students UNIT I to V : TWO MARK QUESTION AND ANSWERS Branch: B.E Computer Science and Engineering Year: III Semester: V Anna University (Regulation 2008) TWO MARK QUESTION & ANSWERS

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

Chap 2. Introduction to Software Testing

Chap 2. Introduction to Software Testing Chap 2. Introduction to Software Testing 2.1 Software Testing Concepts and Processes 2.2 Test Management 1 2.1 Software Testing Concepts and Processes 1. Introduction 2. Testing Dimensions 3. Test Concepts

More information