0% found this document useful (0 votes)
32 views

Slide1 Introduction To Software Testing

Uploaded by

202111238
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

Slide1 Introduction To Software Testing

Uploaded by

202111238
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

Unit 1

Introduction to Software
Testing
Based on the following textbooks:
D. Galin, Software Quality Assurance: From Theory to Implementation, 1st ed. Addison-Wesley, 2004. (Chapter
9)

Ilene Burnstein, Practical Software Testing: A Process-Oriented Approach, Springer, 2003. (Chapter 3)

I. Sommerville, Software Engineering, 10th Edition, Pearson, 2015. (Chapter 8)


Outline
• Software Errors, Faults, and Failures
• Types of Defects
• Example: The Coin Problem
• Definition of Testing
• Testing Objectives
• Testing vs. Debugging
• Testing in Verification & Validation Processes
• Testing vs. Code Inspection
Software Errors, Faults (Defect), and
Failures
• A software error is an error made by a programmer.
• A software fault (defect) is an anomaly in the software that may cause it to
behave incorrectly, and not according to its specification.
• A fault is introduced into the software as the result of an error.
• A software failure is the inability of a software system to perform its required
functions within specified performance requirements.
• During development failures are usually observed by testers, and faults are located and
repaired by developers.
• When the software is in operation, users may observe failures which are reported back to the
developers so repairs can be made.
• A software fault becomes a software failure only when it is activated.
Software Errors, Faults, and Failures
Types of Defects
Requirement/Specification Defects

• Faulty definition of requirements:


• Erroneous definition of requirements.
• Absence of vital requirements.
• Incomplete definition of requirements.
• Inclusion of unnecessary requirements.
Types of Defects
Requirement/Specification Defects

• Client-developer communication failures:


• Misunderstanding of the client’s instructions as stated in the requirements
document.
• Misunderstanding of the client’s requirements changes.
Types of Defects
Requirement/Specification Defects

• Deliberate deviations from software requirements:


• Due to time or budget pressures, the developer decides to omit part of the
required functions.
• The developer reuses software modules taken from an earlier project without
sufficient analysis of the changes and adaptations needed to correctly fulfill
all the new requirements.
• The developer initiates improvements to the software without the client’s
approval.
• The developer disregards requirements that seem minor to the developer.
Types of Defects
Design Defects

• Logical design errors:


• Defects in the used algorithms.
• Defects or omissions in the processing steps.
• Erroneous definition of boundary conditions.
• Omission of required software system states.
• Omission of definition concerning reactions to illegal operation of the
software system.
• Module interface description defects.
• External interface description defects.
Types of Defects
Coding Defects

• Coding errors:
• Algorithmic and processing defects.
• Control, logic, and sequence defects.
• Typographical defects.
• Initialization defects.
• Data defects.
• Module interface defects.
• External hardware and software interfaces defects
Types of Defects
Other Types of Defects

• Non-compliance with documentation and coding standards.


• Shortcomings of the testing process
• User interface and procedure errors
• Documentation errors
• This includes errors in the user manuals and in the “help” displays
incorporated in the software.
Defect Examples: The Coin Problem
Defect Examples: The Coin Problem
Defect Examples: The Coin Problem
Software Testing - Definition
• Software testing is a formal process carried out by a specialized
testing team in which a software unit, several integrated software
units or an entire software package are examined by running the
programs on a computer. All the associated tests are performed
according to approved test procedures on approved test cases.
Software Testing Objectives
• Direct objectives:
• To identify and reveal as many errors as possible in the tested software.
• To bring the tested software, after correction of the identified errors and
retesting, to an acceptable level of quality.
• To perform the required tests efficiently and effectively, within budgetary and
scheduling limitations.
• To demonstrate that the software meets its requirements.
Software Testing Objectives
• Indirect objectives:
• To compile a record of software errors for use in error prevention (by
corrective and preventive actions).
Testing vs. Debugging
• Debugging, or fault localization, is the process of (1) locating the fault
or defect, (2) repairing the code, and (3) retesting the code.
• Testing and debugging are two very different activities.
• The debugging process begins after testing has been carried out and
the tester has noted that the software is not behaving as specified.
Testing in the V & V Processes
• Testing is part of a broader process of software verification and
validation (V & V):
• The aim of verification (conformance with the specification) is to ensure that the
software meets its stated functional and non functional requirements.
• Are we building the product right?
• The aim of validation is to ensure that the software meets the customer’s
expectations.
• Are we building the right product?
Testing vs Inspections and Reviews
• In addition to software testing, the V & V process may involve
software inspections and reviews.
• Inspections and reviews analyze and check the system requirements,
design models, the program source code, and even proposed system
tests.
• These are so-called ‘static’ V & V techniques in which you do not need to
execute the software to verify it.
• Testing is execution-based, that is it involves exercising the code with test
cases.
Testing vs Inspections and Reviews
Notes on Software Testing
• Testing cannot prove that the software is free of defects or that it will
behave as specified in every circumstance.
• “Testing can only show the presence of errors, not their absence”
Dijkstra.

You might also like