Information
Technology
SOFTWARE TESTING
AJ Rosal
BUGS AKA
Defect
Problem
Error
Incident
Anomaly
Variance
Failure
Inconsistency
Product
Anomaly
Product
Incidence
SOURCES OF PROBLEMS
Requirements Definition: Erroneous,
incomplete, inconsistent requirements.
Design: Fundamental design flaws in the
software.
Implementation: Mistakes in chip
fabrication, wiring, programming faults,
malicious code.
Support Systems: Poor programming
languages, faulty compilers and debuggers,
misleading development tools.
to find bugs
as early in the software
development processes as possible
and make sure they get fixed.
Advice: Be careful not to get get
caught in the dangerous spiral of
unattainable perfection.
to find bugs
as early in the software
development processes as possible
and make sure they get fixed.
Advice: Be careful not to get get
caught in the dangerous spiral of
unattainable perfection.
SOFTWARE TESTING
Testing is the
process of
establishing
confidence that
a program does
what it is
supposed to do.
SOFTWARE TESTING
Testing is the
process of
demonstrating
that errors are
not present.
SOFTWARE TESTING
SOFTWARE is 99%
ERROR FREE
SOFTWARE TESTING
The purpose of
testing is to
show that a
program
performs its
intended
functions
correctly
SOFTWARE TESTING
WHAT IS THE
BEST TESTING
PROCEDURE?
SOFTWARE TESTING
THE BUGS
SOFTWARE BUGS
Defect categories
Wrong
The specifications have been
implemented incorrectly.
Missing
A specified requirement is not
in the built product.
Extra
A requirement incorporated
into the product that was not
specified.
Srihari Techsoft
TRIVIA
The term Computer Bug is coined by
Grace Murray Hopper.
During her work on Mark II and Mark III
machine was facing some problem, later
operators investigated and identified that
there was a moth (Insect) trapped in a
relay which was causing problem.
TRIVIA
This Computer Bug (Insect) removed and taped
to log book September 9th 1945 at 3:45 p.m.
First, actual case of bug being found in
computer.
Grace Murray Hopper is also a Mother of COBOL.
The word went out that they had debugged
the machine and the term debugging a
computer program was born
TRIVIA
SOFTWARE TESTING
SOFTWARE TESTING
Non Functional Testing
Testing Methods
Testing Level
1.
2.
3.
4.
5.
6.
7.
8.
Unit testing
Integration testing
System testing
System integration
testing
Regression testing
Acceptance
testing
Alpha testing
Beta testing
1. Software
performance
testing and load
testing
2. Stability testing
3. Usability testing
4. Security testing
5. Internationalization
and localization
6. Destructive testing
Supportability
e.g., Test the ability to
maintain and support
application under
production use
Reliability
e.g., Test the application
behaves consistently and
predictably.
Performance
e.g., Test online
response under average
and peak loading
HOW IS IT DONE
Injecting faults into production systems
(services, servers, and network) to validate
service continuity in the event of a real fault.
The random and unexpected occurrence of
such faults is a certainty in any service of
substantial scale.
PURPOSE OF DST
Prolonged endurance testing under the
most
severe
operating
conditions,
continued until the component, equipment,
or product fails (is broken or destroyed).
The purpose of destructive testing is to
determine service life and to detect design
weaknesses that may not show up under
normal working conditions.
EXAMPLE
In one year, Google expects to see 20
rack failures, three router failures and
1000s of server failures. So if these
failures are sure to occur, it is the
testers duty to assure the service can
handle them when they do
Introduction
Conventional Software Testing Definitions
the activity or process which shows or
demonstrates that a program or system
performs all intended functions correctly
the activity of establishing the necessary
confidence that a program or system does
what it is supposed to do, based on the
specifications and requirements set by the
user
Software Misuse
Improper or incorrect
Input data will be supplied
Letters entered when numbers are
expected.
Destructive Testing
Terminology
Destructive Hardware Testing (DHT)
Hardware systems are destroyed as part
of testing
Example: Automobile safety testing
The usual practice is to subject the automobile to
an actual accident where the vehicle is heavily
damaged or destroyed
DST Definitions
DST is testing that
assures proper or predictable software
behavior when the software is subject to
improper usage or improper input
attempts to crash a software product
tries to crack or break a software
product
checks the robustness of a software
product
Conventional Testing
Strategies to DST
Strategies that cannot be used for
DST
Verification Testing
Validation Testing
Benchmark Testing
Incorporation of Destructive
Testing
into Specifications
Mandatory destructive testing
clauses
Incorporation of Destructive
Testing
into Specifications
1.
2.
3.
4.
5.
Incorporation of Destructive
Testing
into Specifications
Future work
Author is currently working with a team
to develop requirements specification
for an example case study involving a
data conversion program.
Subsequent to the completion of the
requirements specification and
implementation of the software, test
cases will be developed for destructive
testing of the software.
Conclusion
The goal of conventional software testing is to
ensure a software product correctly performs
all the functions specified in the requirements
specification.
The goal of destructive testing is to ensure a
software product exhibits proper behavior
when subject to improper usage or improper
input.
Ongoing work includes the development of
requirements specification that mandate
destructive testing of a case study software
product.
Conclusion
Destructive testing is a reflection of the
fact that user will sometimes use a
software product in an improper manner.
Destructive testing does not replace
conventional testing
Supplements conventional testing
Performed in addition to conventional testing
Questions