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

Slide1 Introduction To Software Testing

Uploaded by

202111238
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

Slide1 Introduction To Software Testing

Uploaded by

202111238
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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