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

Testing Terminologies1

Testing criteria 1

Uploaded by

samit.sen
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Testing Terminologies1

Testing criteria 1

Uploaded by

samit.sen
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Outline Verification, Validation Testing terms Testing: Classification Test Activities

Software Testing: Terminologies

Meenakshi D’Souza

International Institute of Information Technology


Bangalore.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Outline

Verification, validation and testing.


Testing terms.
Testing: Classification.
Test activities.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Software Testing

Software testing is the act of examining the artifacts and the


behavior of the software under test by validation and verification.

Software testing can also provide an objective, independent view of


the software to allow the business to appreciate and understand
the risks of software implementation.

Definition courtesy: Wikipedia.


Outline Verification, Validation Testing terms Testing: Classification Test Activities

Verification, Validation and Testing

As per IEEE-STD-610, the IEEE Standard Glossary of Software


Engineering Terminology,
Validation: The process of evaluating software at the end of
software development to ensure compliance with intended
usage. i.e., checking of the software meets its requirements.
Verification: The process of determining whether the products
of a given phase of the software development process fulfill
the requirements established at the start of that phase.
Testing, as we will see in this course, deals mainly with verification.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Other related areas

Formal methods/verification: Model checking, theorem


proving, program analysis.
Modelling and simulation.
Software quality assurance.
Accreditation.
Test driven development.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Software: Faults, failures and errors

Fault: A static defect in the software. It could be a missing


function or a wrong function in code.
Failure: An external, incorrect behavior with respect to the
requirements or other description of the expected behavior. A
failure is a manifestation of fault when software is executed.
Error: An incorrect internal state that is the manifestation of
some fault.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Historical perspective

The terms bug and fault was used by Edison:


“It has been just so in all of my inventions. The first step is
an intuition, and comes with a burst, then difficulties arise,
this thing gives out and [it is] then that bugs, as such little
faults and difficulties are called, show themselves and months
of intense watching, study and labor are requisite.”
The term error was used by Ada Lovelace:
“An analyzing process must equally have been performed in
order to furnish the Analytical Engine with the necessary
operative data; and that herein may also lie a possible source
of error. Granted that the actual mechanism is unerring in its
processes, the cards may give it wrong orders.”
Outline Verification, Validation Testing terms Testing: Classification Test Activities

In this course...

We will use these terms synonmously in this course:

fault, failure, error, bug, defect ...

will all mean the same.


Outline Verification, Validation Testing terms Testing: Classification Test Activities

Test case

A test case typically involves inputs to the software and


expected outputs.
When test cases are executed and results recorded, if the
actual output matches the expected output, the test case is
said to have passed. Otherwise, the test case is said to have
failed.
A failed test cases indicates an error.
A test case also contains other paramaters like test case id,
traceability details etc.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Types of Testing

There are different types/levels of testing, based on the phase of


software development lifecycle that they are applied to:
Unit Testing: Done by developer during coding.
Integration Testing: Various components are put together and
tested. Components could be only software or software and
hardware components.
System Testing: Done with full system implementation and
the platform on which the system will be running.
Acceptance Testing: Done by end customer to ensure that the
delivered products meets the committed requirements.
Beta testing is done in a (so-called) beta version of the
software, by end users, after release.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Types of testing

System
main class P
testing

class A class B

method m1 method m3 Integration

testing

method m2 method m4

Unit testing
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Types of testing, contd.

Some additional types of testing are (an incomplete list):


Functional Testing: Done to ensure that the software meets
its specified functionality.
Stress Testing: Done to evaluate how the system behaves
under peak/unfavourable conditions/inputs.
Performance Testing: Done to ensure the speed and response
time of the system.
Usability Testing: Done to evaluate the user interface,
aesthetics etc.
Regression Testing: Done after modifying/upgrading a
component, to ensure that the modification is working
correctly and other components are not damaged by the
modification.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Testing Methods

There are two broad methods of testing:


Black-box testing: A method of testing that examines the
functionalities of software/system without looking into its
internal design or code.
White-box testing: A method of testing that tests the internal
structure of the design or code of a software.

Black-box testing White-box testing


Unit, integration, system Unit, integration and
and acceptance testing system testing
Usability, performance, beta
and stress testing
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Types of test activities

Testing can be broken into four activities:


Test design
Test automation
Test execution
Test evaluation
Adjacent activities include test management, test maintenance and
test documentation.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Test design

The most critical job in testing.


Need to design effective test cases— test cases that can find
the errors in the software.
Apart from specifying the inputs, this involves defining the
expected outputs too.
Typically cannot be automated.
Needs knowledge of basic Algorithms, Discrete Mathematics
and the domain of the software.
A part of this course will deal with criteria-based test
case design algorithms.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Test automation

Involves converting the test cases into executable scripts.


Need to specify how to reach deep parts of the code using just
inputs: Observability and Controllability.
Specific to the test execution framework or tool.
We will use a few open source test automation tools in
this course.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Test execution

Involves running the tests on the software and recording the


results.
Can be fully automated. Many good test execution tools are
available, open source and proprietary.
We will use a few open source test automation tools for
test execution.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Test evaluation

Involves evaluating the results of testing, reporting identified


errors.
Difficult problem is to isolate faults, especially in large
software and during integration testing.
Needs domain knowledge and experience.
Outline Verification, Validation Testing terms Testing: Classification Test Activities

Credits

Part of the material used in these slides are derived from the
presentations of the book Introduction to Software Testing, by
Paul Ammann and Jeff Offutt.

You might also like