Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program."

Transcription

1 Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the absence of errors. A successful test is a one which discovers more, yet-undiscovered, errors An ideal testing process never ends. Definition: Quality assurance is a planned and systematic pattern of all actions necessary to provide adequate confidence that the item conforms to established requirements. -- IEEE 1

2 Objectives of software testing To find more errors in the software design and implementation To confirm that the product meets (satisfies) the requirements, including non-functional requirements Testing is one type of validation Validation is a process that answers to the question, Are we developing the right product? Testing and Debugging Definitions Testing is a process of finding the presence of errors. Debugging is a process of finding and correcting errors. Debugging requires testing efforts to find the errors first, and then retest the program after correcting the errors. (Thus, testing occurs before and after debugging.) Testing is usually performed manually. Debugging is often performed with the help of tool support. 2

3 Test Case Definition A test case is a description of input/output relationship of one particular testing activity - a set of inputs and expected output(s). Example: Let y = f(x) be the function to be tested; a test case will indicate for what range of values of (input) x the function will return (output) and for what input values the function will not return an output Sample Test Cases The following are some of the test cases for the factorial function int factorial (int x) Input x Expected output Actual output x = 0 1 x = 1 1 x >= 0 x! x < 0 error 3

4 Testing principles All tests should be traceable to their source (requirements and/or code). Testing activity should be planned (test cases prepared) well before testing process is exercised. Exhaustive testing is not possible. To be most effective, testing should be conducted by a third party not by the developers. Quality Assurance team Test case design methods black-box testing The software is assumed to be a black box (with unknown code). Test cases are derived from problem descriptions, requirements, design documents, etc. white-box testing Test cases are derived by examining the source code. Both black-box and white-box testing are required for a complete testing process. 4

5 Black-box and White-box testing Test cases can be derived before the program is written. The objective is to ensure that the program meets (satisfies) the requirements. Knowledge of the application domain is necessary but not about the program or the programming language. Test cases can be derived only after the program is complete. The objective is to ensure that all parts of the logic of the program are correct. Knowledge of the programming language is needed but possibly not the application domain. White-box testing Also called glass-box testing and structural testing path coverage statement coverage Derivation of test cases from the program s structure. What we would like to do... exercise every possible execution path What we are able to do... exercise every possible statement at least once 5

6 Example computing factorial int factorial (int n) { int i, ret = 0; if (n < 0) return ret; i = n; ret = 1; while (i > 0) { ret = ret * i; i = i - 1; } return ret; } Input n n < 0 Test cases Expected output Error n==0 1 n > 0 n! Flow graph notation Also called program graph Abstractly describes the control flow of the program Consists of nodes and arrows Each node represents a contiguous segment of code (statement(s) or expression(s)). Arrows represent control flow transitions. 6

7 sequence if if-else case while for repeatuntil Flow graph for the factorial example int i, ret=0; int factorial (int n) { int i, ret = 0; if (n < 0) return ret; i = n; ret = 1; while (i > 0) { ret = ret * i; i = i - 1; } return ret; } ret = 0; (n < 0) return ret; i = n; ret = 1; (i > 0) ret = ret * i; i = i - 1; return ret; 7

8 For path coverage we must ensure that every node is executed by at least one test case. 1) number nodes 2) check test cases 1 int i, ret=0; Test cases Case statements n < 0 1,2,3,8 n==0 1,2,3,4,5,7 n > 0 1,2,3,4,5,6, ret = 0; (n < 0) return ret; i = n; ret = 1; (i > 0) ret = ret * i; i = i - 1; 8 7 return ret; Another example Remove an integer from an array and shift the array, adding 0 at the end. void squeeze (int k, int[] arr) { boolean flag = false; int index = 0, j; while (index < arr.length &&!flag) { if (arr[index] == k) { for (j = index; j < arr.length; j++) arr[j] = arr[j+1]; arr[n] = 0; flag = true; } else index = index + 1; } } Draw the flow graph and generate the test cases. 8

9 What about this one? public char reportgrade (int[] exams) { char ch = ; int s,i; s = sum (exams) / exams.length; if (s >= 90) ch = 'A'; else if (s < 90 && s >= 75) ch = 'B'; else if (s < 75 && s >= 60) ch = 'C'; else if (s < 60 && s >= 50) ch = 'D'; else } ch = 'F'; return ch; public int sum (int[] exams) { int n, total = 0; for (n = 0; n < exams.length; n++) total = total + exams[n]; return total; } White-box Testing Issues When is statement coverage impossible? When is statement coverage impractical? Does statement coverage ensure correctness? 9

10 Black-box testing Black-box testing is a testing approach in which test cases are generated without knowledge of the program (source code). also called functional testing or behavioral testing Test cases can be derived even before coding begins. Example: Automated teller machine (ATM) Consider the functional requirement for a withdraw operation. Test cases include... withdraw an amount less than the balance withdraw an amount equal to the balance withdraw an amount more than the balance withdraw an amount beyond a maximum withdraw a negative amount (robustness testing) 10

11 Objectives of black-box testing Identify improper implementation of functionalities. Identify missing functionalities. Identify errors in interfaces among the components of the software.... including external software such as a database. Identify performance (and other non-functional) errors. Identify initialization and/or termination errors. Equivalence partitioning A black-box testing method Partition the input domain (the set of potential input values) into mutually disjoint subsets, called equivalence classes. Every element of a subset shares one characteristic with all other elements in the same subset. As a consequence, it is sufficient to select one element from each subset, there by reduce the time for testing. 11

12 Input domain Software system Equivalence partitioning does not impose any constraints on the output domain. Output domain Equivalence partitioning example Factorial example Three subsets of input (the parameter n ) are negative integers zero positive integers Equivalence classes: negative integers - invalid factorial input zero - base case for recursive definition of factorial positive integers - factorial defined recursively 12

13 More examples A function that accepts a 2-digit positive integer as input All integers less than 10 Integers between 10 and 99 both inclusive All integers greater than 99 Calculate income tax based on net income Income between $0 through $33000 Income between $33001 through $ Income above $ Limitations of Equivalence Partitioning User is responsible for ensuring the mutual exclusiveness of the partitions. Too difficult to determine equivalence classes Too many equivalence classes 13

14 Boundary Value Analysis Boundary value analysis is a technique that complements the equivalence partitioning approach. Boundary value analysis can help to partition the input domain when the input lies within a range(s) of values. Boundary value analysis works best when parameters (if more than one) are fairly independent of each other. Guidelines for boundary value analysis Select the members at the boundary of each equivalence class. Select a middle value. Also select those values which are adjacent to the boundaries. Include out of range values for robustness. Example: Suppose an equivalence class contains values from 120 through 175. Test case values: 119, 120, 121, 149, 174, 175,

15 More examples Calculate property tax based on the value of the property. Single variable function Calculate the score of a competition based on the number of events participated and the score given for each such event. Two-variable function Boundary value analysis for a two-variable function - f (x,y) Y max Y min X min X max 15

16 Boundary values for different data types Data type Integer, Double (Real) String Array File Boundary cases Range of values given in the problem Empty string, String with one char, String of maximum length, String of length greater than the maximum Similar to String Empty file, File with one record, file of max. size, file overflow Testing Phases Unit testing Test individual components in isolation. Often performed by the developer. Module testing Test a group of components (units) that interact with each other or a group that implements a particular functionality. May be a group of procedures for the imperative paradigm; a group of methods or classes in the O-O paradigm. Interfaces among these components must also be tested. 16

17 Testing Phases(continued) Subsystem testing Test a group of modules and their interfaces. A subsystem may be a higher-level group of modules in the procedural paradigm or a package in the O-O paradigm. Interfaces between modules, particularly access restrictions across modules, must be tested along with functionalities Integration testing This is a combination of module and subsystem testing. Testing Phases(continued) Acceptance testing Test the entire system as one single product. GUI testing falls into this category. Also requires testing of interfaces between external components such as a database or a device driver. System testing Testing to conform that the software product meets the standards and/or specific criteria set by the customers/users. 17

18 Classifications of Testing Black-box testing and White-box testing classify testing methods processes to generate test cases and test data. Stages of testing classify the portion of the software product that must be tested at any one time. Combining these two... A unit can be tested both by black-box testing and by white-box testing. A module may undergo black-box testing and white-box testing. Conclusion: Each classification defines a different perspective of testing Further classifications of testing Bottom-up testing Test the units first, then the modules, then the subsystems and so on until the entire product is tested Top-down testing Test the entire software product as one unit, then test its individual subsystems giving emphasis to their interfaces, then test the modules and so on until the components are broken down at the unit level. May require stubs. 18

19 Stubs - example public static void main(string[] args) { int[] arr = new int[20]; read(arr); sort(arr); if (search(arr, 23)) System.out.println( 23 is in the array ); else System.out.println( 23 NOT in the array ); } public void read(int[] array) { //STUB System.out.println ( read to be implemented ); } public void sort(int[] array) { //STUB System.out.println ( sort to be implemented ); } public boolean search(int[] array, int k) { //STUB return true; } A few more testing classifications Desk Checks Developers often perform walk-throughs of their own, or colleague s code. Alpha testing Testing performed at the developer s site. Generally performed by the QA team, not by the development team. Purpose: to check and correct errors before the release of the actual product Beta testing Testing performed at the customer s site. Generally conducted by the end users (may be the customer) Purpose: to report back to the developers any errors before product release 19

20 Regression testing Regression testing is the act of repeating a suite of test cases after a significant change to a system. Regression testing is an important part of software maintenance. Documentation of test cases is essential to successful regression testing. Dependency graphs can help to determine which components require regression testing. Object-Oriented Software Testing Research on O-O testing reports that testing methods proposed for imperative approach are not adequate for O-O approach. O-O poses additional problems due to the distinguishing characteristics such as encapsulation, inheritance and polymorphism. 20

21 Class testing Class testing are modules. Methods are units. Interactions within a class are module interfaces. Interactions between different classes are subsystem interfaces. Testing O-O Encapsulation Within O-O design encapsulation specifies access restrictions to the structural and behavioral members of a class. Such encapsulation should be tested. Check whether all the public members are accessible from everywhere. Check whether all the private members are hidden outside the class. If language supports other access mechanisms, such as protected or class-specific scope, those features should be tested for both accessibility and non-accessibility. 21

22 Testing Inheritance Subclasses introduce new features (attributes and methods) and can modify inherited behaviors. Modified behaviors must be tested in the context where they are used. Polymorphism adds complexity (e.g., co-variance or contra-variance?) Multiple inheritance adds complexity (What if two methods with the same signature conflict? i.e., both are inherited from different superclasses.) Any change to a superclass requires regression testing of all subclasses. 22

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Testing Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To discuss the distinctions between validation testing and defect t testing To describe the

More information

Software Testing. Quality & Testing. Software Testing

Software Testing. Quality & 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

APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION

APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION 1 APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION Validation: Are we building the right product? Does program meet expectations of user? Verification: Are we building the product right?

More information

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur Module 10 Coding and Testing Lesson 26 Debugging, Integration and System Testing Specific Instructional Objectives At the end of this lesson the student would be able to: Explain why debugging is needed.

More information

Software testing. Objectives

Software testing. Objectives Software testing cmsc435-1 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

More information

Introduction to Computers and Programming. Testing

Introduction to Computers and Programming. Testing Introduction to Computers and Programming Prof. I. K. Lundqvist Lecture 13 April 16 2004 Testing Goals of Testing Classification Test Coverage Test Technique Blackbox vs Whitebox Real bugs and software

More information

Chapter 8 Software Testing

Chapter 8 Software Testing Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is

More information

Software Testing. Motivation. People are not perfect We make errors in design and code

Software Testing. Motivation. People are not perfect We make errors in design and code Motivation Software Testing People are not perfect We make errors in design and code Goal of testing: given some code, uncover as many errors are possible Important and expensive activity Not unusual to

More information

Software Testing and Maintenance 1

Software Testing and Maintenance 1 Input Space Partitioning Introduction Equivalence Partitioning Boundary-Value Analysis Summary Software Testing and Maintenance 1 The Test Selection Problem The input domain of a program consists of all

More information

(From Glenford Myers: The Art of Software Testing)

(From Glenford Myers: The Art of Software Testing) A Testing Exercise: (From Glenford Myers: The Art of Software Testing) A program reads three integer values from a card. The three values are interpreted as representing the lengths of the sides of a triangle.

More information

Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013

Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013 Masters programmes in Computer Science and Information Systems Object-Oriented Design and Programming Sample module entry test xxth December 2013 This sample paper has more questions than the real paper

More information

Abstraction and Information Hiding

Abstraction and Information Hiding Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

Foundation Level PRACTICE EXAM Syllabus Version 2010 Practice Exam Version 2011

Foundation Level PRACTICE EXAM Syllabus Version 2010 Practice Exam Version 2011 ISTQB Certified Tester Foundation Level PRACTICE EXAM International Software Testing Qualifications Board Name: Company address: Phone : Fax : Email: Billing address: Training company: Trainer: Foundation

More information

J a v a Quiz (Unit 3, Test 0 Practice)

J a v a Quiz (Unit 3, Test 0 Practice) Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points

More information

CS 451 Software Engineering Winter 2009

CS 451 Software Engineering Winter 2009 CS 451 Software Engineering Winter 2009 Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Testing Process Testing Testing only reveals the presence of defects Does not identify

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Software Testing. Jeffrey Carver University of Alabama. April 7, 2016

Software Testing. Jeffrey Carver University of Alabama. April 7, 2016 Software Testing Jeffrey Carver University of Alabama April 7, 2016 Warm-up Exercise Software testing Graphs Control-flow testing Data-flow testing Input space testing Test-driven development Introduction

More information

National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. Testing Guidelines for Student Projects

National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. Testing Guidelines for Student Projects National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. DEPARTMENT OF COMPUTER SCIENCE, TECHNICAL REPORT SERIES Testing Guidelines for Student Projects Stephen Brown and Rosemary Monahan

More information

Part I. Multiple Choice Questions (2 points each):

Part I. Multiple Choice Questions (2 points each): Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******

More information

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)

More information

Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions?

Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions? Logistics Project Part 3 (block) due Sunday, Oct 30 Feedback by Monday Logistics Project Part 4 (clock variant) due Sunday, Nov 13 th Individual submission Recommended: Submit by Nov 6 th Scoring Functionality

More information

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) The JDK command to compile a class in the file Test.java is A) java Test.java B) java

More information

Sample Exam. ISTQB Foundation Level Syllabus. International Software Testing Qualifications Board. Version 2.6

Sample Exam. ISTQB Foundation Level Syllabus. International Software Testing Qualifications Board. Version 2.6 Copyright 2016 (hereinafter called ISTQB ). All rights reserved. ISTQB Foundation Level 2011 Syllabus The authors transfer the copyright to the (hereinafter called ISTQB ). The authors (as current copyright

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

ISTQB Foundation level exam Sample paper - II For more testing free downloads Visit

ISTQB Foundation level exam Sample paper - II For more testing free downloads Visit ISTQB Foundation level exam Sample paper - II For more testing free downloads Visit http://softwaretestinghelp.com Q1 A deviation from the specified or expected behavior that is visible to endusers is

More information

AP Computer Science Java Subset

AP Computer Science Java Subset APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall

More information

Sample Exam. 2011 Syllabus

Sample Exam. 2011 Syllabus ISTQ Foundation Level 2011 Syllabus Version 2.3 Qualifications oard Release ate: 13 June 2015 ertified Tester Foundation Level Qualifications oard opyright 2015 Qualifications oard (hereinafter called

More information

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

Testing! Jennifer Rexford! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6! Testing! Jennifer Rexford! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6! 1 Quotations on Program Testing! On two occasions I have been

More information

The V-model. Validation and Verification. Inspections [24.3] Testing overview [8, 15.2] - system testing. How much V&V is enough?

The V-model. Validation and Verification. Inspections [24.3] Testing overview [8, 15.2] - system testing. How much V&V is enough? Validation and Verification Inspections [24.3] Testing overview [8, 15.2] - system testing Requirements Design The V-model V & V Plans Implementation Unit tests System tests Integration tests Operation,

More information

Software Testing Strategies and Techniques

Software Testing Strategies and Techniques Software Testing Strategies and Techniques Sheetal Thakare 1, Savita Chavan 2, Prof. P. M. Chawan 3 1,2 MTech, Computer Engineering VJTI, Mumbai 3 Associate Professor, Computer Technology Department, VJTI,

More information

Software Testing. Massimo Felici JCMB BP-G

Software Testing. Massimo Felici JCMB BP-G Software Testing Massimo Felici JCMB-1402 0131 650 5899 1BP-G04 0131 650 4408 mfelici@inf.ed.ac.uk What is Software Testing? Software Testing is the design and implementation of a special kind of software

More information

[Handout for L9P1] Quality Assurance: Testing and Beyond

[Handout for L9P1] Quality Assurance: Testing and Beyond CS0/-Aug0 [Handout for L9P] Quality Assurance: esting and Beyond Quality assurance (QA) is the process of ensuring that the software we build has the required quality levels. Quality Assurance = Validation

More information

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java

More information

Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland

Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland Software Testing & Analysis (F22ST3) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh Software Testing & Analysis (F22ST3): Static

More information

SOFTWARE TESTING. Yogesh Singh MM CAMBRIDGE UNIVERSITY PRESS

SOFTWARE TESTING. Yogesh Singh MM CAMBRIDGE UNIVERSITY PRESS SOFTWARE TESTING Yogesh Singh MM CAMBRIDGE UNIVERSITY PRESS Contents List of Figures List of Tables Preface Acknowledgements xi xv xxi xxiii 1. Introduction 1 1.1 Some Software Failures 1 1.1.1 The Explosion

More information

Software Engineering. How does software fail? Terminology CS / COE 1530

Software Engineering. How does software fail? Terminology CS / COE 1530 Software Engineering CS / COE 1530 Testing How does software fail? Wrong requirement: not what the customer wants Missing requirement Requirement impossible to implement Faulty design Faulty code Improperly

More information

Comparing the Testing Approaches of Traditional, Object-Oriented and Agent- Oriented Software System

Comparing the Testing Approaches of Traditional, Object-Oriented and Agent- Oriented Software System Comparing the Testing Approaches of Traditional, Object-Oriented and Agent- Oriented Software System N.Sivakumar 1 and K.Vivekanandan 2 Department of computer Science and Engineering Pondicherry Engineering

More information

Test Design: Functional Testing

Test Design: Functional Testing Test Design: Functional Testing Daniel Sundmark How should test cases be designed? Outline Functional Testing Basics Systematic Functional Test Design Input-Space Based Techniques Equivalence Partitioning

More information

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language Translation Translating to Java Introduction to Computer Programming The job of a programmer is to translate a problem description into a computer language. You need to be able to convert a problem description

More information

The Object Model Overview

The Object Model Overview The Object Model 3 3.1 Overview The object model provides an organized presentation of object concepts and terminology. It defines a partial model for computation that embodies the key characteristics

More information

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com Formal Software Testing Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com Scope of Testing Find defects early Remove defects prior to production Identify Risks Unbiased opinion When Should Testing

More information

1 White-Box Testing by Stubs and Drivers

1 White-Box Testing by Stubs and Drivers White-box testing is a verification technique software engineers can use to examine if their code works as expected. In this chapter, we will explain the following: a method for writing a set of white-box

More information

Levels of Software Testing. Functional Testing

Levels of Software Testing. Functional Testing Levels of Software Testing There are different levels during the process of Testing. In this chapter a brief description is provided about these levels. Levels of testing include the different methodologies

More information

CSTE Mock Test - Part III Questions Along with Answers

CSTE Mock Test - Part III Questions Along with Answers Note: This material is for Evaluators reference only. Caters to answers of CSTE Mock Test - Part III paper. 1. Independence is important in testing is mostly due to the fact that (Ans: C) a. Developers

More information

Software Testing. Testing types. Software Testing

Software Testing. Testing types. Software Testing 1 Software Testing Testing types Software Testing 2 References Software Testing http://www.testingeducation.org/bbst/ IBM testing course available through the Academic Initiative: Principles of Software

More information

CMPU102: Exam 1 Solutions Spring 2005

CMPU102: Exam 1 Solutions Spring 2005 CMPU102: Exam 1 Solutions Spring 2005 1. Consider the following statements: int a = 4; int b = 7; b *= a; What are the resulting values of a and b? a = 4 b = 28 2. Consider the following statements: int

More information

Introduction to Software Testing Chapter 8.1 Building Testing Tools Instrumentation. Chapter 8 Outline

Introduction to Software Testing Chapter 8.1 Building Testing Tools Instrumentation. Chapter 8 Outline Introduction to Software Testing Chapter 8. Building Testing Tools Instrumentation Paul Ammann & Jeff Offutt www.introsoftwaretesting.com Chapter 8 Outline. Instrumentation for Graph and Logical Expression

More information

Regression Verification: Status Report

Regression Verification: Status Report Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software

More information

Test case design techniques II: Blackbox testing CISS

Test case design techniques II: Blackbox testing CISS Test case design techniques II: Blackbox testing Overview Black-box testing (or functional testing): Equivalence partitioning Boundary value analysis Domain analysis Cause-effect graphing Behavioural testing

More information

Functional Testing. in contrast to structural or white-box testing, where the program is the base.

Functional Testing. in contrast to structural or white-box testing, where the program is the base. From Pressman, Software Engineering a practitionerʼs approach, Chapter 14 and Pezze + Young, Software Testing and Analysis, Chapters 10-11 Testing Today, weʼll talk about testing how to test software.

More information

Tools for Integration Testing

Tools for Integration Testing Tools for Integration Testing What is integration ing? Unit ing is ing modules individually A software module is a self-contained element of a system Then modules need to be put together to construct the

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Module 7. Object Modeling using UML. Version 2 CSE IIT, Kharagpur

Module 7. Object Modeling using UML. Version 2 CSE IIT, Kharagpur Module 7 Object Modeling using UML Lesson 17 Activity and State Chart Diagram Specific Instructional Objectives At the end of this lesson the student will be able to: Draw activity diagrams for any given

More information

Merge Sort. 2004 Goodrich, Tamassia. Merge Sort 1

Merge Sort. 2004 Goodrich, Tamassia. Merge Sort 1 Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Merge Sort 1 Divide-and-Conquer Divide-and conquer is a general algorithm design paradigm: Divide: divide the input data S in two disjoint subsets

More information

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References Outline Computer Science 331 Introduction to Testing of Programs Mike Jacobson Department of Computer Science University of Calgary Lecture #3-4 1 Denitions 2 3 4 Implementation and Evaluation 5 Debugging

More information

Standard for Software Component Testing

Standard for Software Component Testing Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document

More information

An Analysis on Objectives, Importance and Types of Software Testing

An Analysis on Objectives, Importance and Types of Software Testing Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 2, Issue. 9, September 2013,

More information

Java Interview Questions and Answers

Java Interview Questions and Answers 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java

More information

CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16

CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16 CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16 Basics of C Remark: Skim Chapters 1 through 6 of Deitel & Deitel. You will notice the following: C is (more or less) a subset of Java. (So, you are

More information

Topic 11 Scanner object, conditional execution

Topic 11 Scanner object, conditional execution Topic 11 Scanner object, conditional execution "There are only two kinds of programming languages: those people always [complain] about and those nobody uses." Bjarne Stroustroup, creator of C++ Copyright

More information

Course: Introduction to Java Using Eclipse Training

Course: Introduction to Java Using Eclipse Training Course: Introduction to Java Using Eclipse Training Course Length: Duration: 5 days Course Code: WA1278 DESCRIPTION: This course introduces the Java programming language and how to develop Java applications

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

int w = (x + x)*y - y; System.out.println("The value of w is " + w); z = w + 3; System.out.println("The value of z is now " + z);

int w = (x + x)*y - y; System.out.println(The value of w is  + w); z = w + 3; System.out.println(The value of z is now  + z); MIT AITI Mobile Application Development in Java Lab 02: Java Basics Instructions on how to submit Lab 2 will be presented on the screen. Please follow instructions and if they are unclear, please feel

More information

ISTQB Certified Tester. Foundation Level. Sample Exam 1

ISTQB Certified Tester. Foundation Level. Sample Exam 1 ISTQB Certified Tester Foundation Level Version 2015 American Copyright Notice This document may be copied in its entirety, or extracts made, if the source is acknowledged. #1 When test cases are designed

More information

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved.

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved. 1 2 Introduction to Java Applications 2.2 First Program in Java: Printing a Line of Text 2 Application Executes when you use the java command to launch the Java Virtual Machine (JVM) Sample program Displays

More information

Approach of Unit testing with the help of JUnit

Approach of Unit testing with the help of JUnit Approach of Unit testing with the help of JUnit Satish Mishra mishra@informatik.hu-berlin.de About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality

More information

Recursive Solutions. Ch. 3: Recursion. Binary Search vs Sequential Search. Recursive Solutions. Characteristics of Recursive Methods.

Recursive Solutions. Ch. 3: Recursion. Binary Search vs Sequential Search. Recursive Solutions. Characteristics of Recursive Methods. Recursive Solutions Ch. 3: Recursion Recursion An extremely powerful problem-solving technique Breaks a problem into smaller identical problems An alternative to iteration, but not always a better one

More information

Preet raj Core Java and Databases CS4PR. Time Allotted: 3 Hours. Final Exam: Total Possible Points 75

Preet raj Core Java and Databases CS4PR. Time Allotted: 3 Hours. Final Exam: Total Possible Points 75 Preet raj Core Java and Databases CS4PR Time Allotted: 3 Hours Final Exam: Total Possible Points 75 Q1. What is difference between overloading and overriding? 10 points a) In overloading, there is a relationship

More information

Basic Testing Concepts and Terminology

Basic Testing Concepts and Terminology T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts

More information

Conditionals (with solutions)

Conditionals (with solutions) Conditionals (with solutions) For exercises 1 to 27, indicate the output that will be produced. Assume the following declarations: final int MAX = 25, LIMIT = 100; int num1 = 12, num2 = 25, num3 = 87;

More information

A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:

A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and: Binary Search Trees 1 The general binary tree shown in the previous chapter is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will)

More information

Introduction to Java

Introduction to Java Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high

More information

Testing A Tutorial. Alexander Klaus. Fraunhofer IESE. Dept. Information Systems Quality Assurance

Testing A Tutorial. Alexander Klaus. Fraunhofer IESE. Dept. Information Systems Quality Assurance Testing A Tutorial Alexander Klaus Fraunhofer IESE Dept. Information Systems Quality Assurance Alexander.Klaus@.iese.fraunhofer.de 0631-6800 2245 Room B3.20 Agenda Introduction Functional Testing Structural

More information

Programming Languages. National Chiao Tung University Chun-Jen Tsai 05/4/2012

Programming Languages. National Chiao Tung University Chun-Jen Tsai 05/4/2012 Programming Languages National Chiao Tung University Chun-Jen Tsai 05/4/2012 Programming Language Programming Language (PL) is a language that can precisely describe an algorithm to a computer so that

More information

Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

More information

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming

More information

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT, 15.1200.40

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT, 15.1200.40 SOFTWARE DEVELOPMENT, 15.1200.40 1.0 APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.1 Describe methods and considerations for prioritizing and scheduling software development

More information

Programming and Software Development CTAG Alignments

Programming and Software Development CTAG Alignments Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical

More information

Stacks. Linear data structures

Stacks. Linear data structures Stacks Linear data structures Collection of components that can be arranged as a straight line Data structure grows or shrinks as we add or remove objects ADTs provide an abstract layer for various operations

More information

Analysis / Design. Traditional Development. Process models. Common Methodologies. Common Approach. Analysis: DFD. Traditional Software Development 1

Analysis / Design. Traditional Development. Process models. Common Methodologies. Common Approach. Analysis: DFD. Traditional Software Development 1 Analysis / Design Traditional Development requirements gathering WHAT? HOW? requirements analysis coding Ali Doğru METU 66 Process models Usually Waterfall derivatives Data and Function based models Dataflow

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

COMPUTER SCIENCE. Paper 1 (THEORY)

COMPUTER SCIENCE. Paper 1 (THEORY) COMPUTER SCIENCE Paper 1 (THEORY) (Three hours) Maximum Marks: 70 (Candidates are allowed additional 15 minutes for only reading the paper. They must NOT start writing during this time) -----------------------------------------------------------------------------------------------------------------------

More information

Basic Programming and PC Skills: Basic Programming and PC Skills:

Basic Programming and PC Skills: Basic Programming and PC Skills: Texas University Interscholastic League Contest Event: Computer Science The contest challenges high school students to gain an understanding of the significance of computation as well as the details of

More information

Introduction to Automated Testing

Introduction to Automated Testing Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases

More information

Random Testing: The Best Coverage Technique - An Empirical Proof

Random Testing: The Best Coverage Technique - An Empirical Proof , pp. 115-122 http://dx.doi.org/10.14257/ijseia.2015.9.12.10 Random Testing: The Best Coverage Technique - An Empirical Proof K Koteswara Rao 1 and Prof GSVP Raju 2 1 Asst prof, (PhD) @JNTUK, CSE Department,

More information

Recursion. Slides. Programming in C++ Computer Science Dept Va Tech Aug., 2001. 1995-2001 Barnette ND, McQuain WD

Recursion. Slides. Programming in C++ Computer Science Dept Va Tech Aug., 2001. 1995-2001 Barnette ND, McQuain WD 1 Slides 1. Table of Contents 2. Definitions 3. Simple 4. Recursive Execution Trace 5. Attributes 6. Recursive Array Summation 7. Recursive Array Summation Trace 8. Coding Recursively 9. Recursive Design

More information

Object-Oriented Systems Analysis and Design with UML

Object-Oriented Systems Analysis and Design with UML Object-Oriented Systems Analysis and Design with UML OBJECTIVES: Understand the basic characteristics of objectoriented systems. Be familiar with the Unified Modeling Language (UML), Version 2.0. Be familiar

More information

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM The American Association for Laboratory Accreditation Document Revised: R214: Specific Requirements: Information Technology Testing Laboratory Accreditation July 13, 2010 Program Page 1 of 26 R214 SPECIFIC

More information

CS 111 Classes I 1. Software Organization View to this point:

CS 111 Classes I 1. Software Organization View to this point: CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

(2) If a method does not have a return statement, then. String S = (new String("arach")).substring(0,2) + (new String("nophobia")).

(2) If a method does not have a return statement, then. String S = (new String(arach)).substring(0,2) + (new String(nophobia)). CSc 2010, Fall 2013 Final Exam - Practice Problems for Java n- SOLUTIONS MULTIPLE CHOICE QUESTIONS (1) Which of the following reserved words in Java is used to create an instance of a class? a) class b)

More information

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

Final Exam Review. CS 1428 Fall Jill Seaman. Final Exam

Final Exam Review. CS 1428 Fall Jill Seaman. Final Exam Final Exam Review CS 1428 Fall 2011 Jill Seaman 1 Final Exam Friday, December 9, 11:00am to 1:30pm Derr 241 (here) Closed book, closed notes, clean desk Comprehensive (covers entire course) 25% of your

More information

Part I:( Time: 90 minutes, 30 Points)

Part I:( Time: 90 minutes, 30 Points) Qassim University Deanship of Educational Services Preparatory Year Program- Computer Science Unit Final Exam - 1434/1435 CSC111 Time: 2 Hours + 10 Minutes 1 MG Student name: Select the correct choice:

More information

Software Testing Tutorial

Software Testing Tutorial Software Testing Tutorial SOFTWARE TESTING TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i C O P Y R I G H T & D I S C L A I M E R N O T I C E All the content and graphics on this

More information

Test Case Design Techniques

Test Case Design Techniques Summary of Test Case Design Techniques Brian Nielsen, Arne Skou {bnielsen ask}@cs.auc.dk Development of Test Cases Complete testing is impossible Testing cannot guarantee the absence of faults How to select

More information

22C:22 (CS:2820) Object-Oriented Software Development

22C:22 (CS:2820) Object-Oriented Software Development The University of Iowa 22C:22 (CS:2820) Object-Oriented Software Development Fall 2012 The Object Model by Cesare Tinelli The Object Model of Development Built on the best ideas from previous technologies

More information

Top-Down Design Example

Top-Down Design Example Top-Down Design Example CS 1025 Computer Science Fundamentals I Stephen M. Watt University of Western Ontario Example of Top-Down Design Write a program to verify that a 9 x 9 grid is a Sudoku solution.

More information

Program Elements. Notes. Exercises CHAPTER 3

Program Elements. Notes. Exercises CHAPTER 3 CHAPTER 3 Program Elements Notes Chapter 3 introduces the program elements that are the underlying constructs used inside an object to define the services it contributes to a program. Without these constructs,

More information

Identification and Analysis of Combined Quality Assurance Approaches

Identification and Analysis of Combined Quality Assurance Approaches Master Thesis Software Engineering Thesis no: MSE-2010:33 November 2010 Identification and Analysis of Combined Quality Assurance Approaches Vi Tran Ngoc Nha School of Computing Blekinge Institute of Technology

More information