You are on page 1of 21

Software Testing

CHAPTER 7
Overview
Definition of Software Testing
Problems with Testing
Benefits of Testing
Effective Methods for Testing
Definition of Software Testing
Software testing is the process of
executing a software system to determine
whether it matches its specification and
executes in its intended environment.
The testing process
Component testing
 Testing of individual program components
 Usually the responsibility of the component developer
(except sometimes for critical systems)
 Tests are derived from the developer’s experience
Integration testing
 Testing of groups of components integrated to create a
system or sub-system
 The responsibility of an independent testing team
 Tests are based on a system specification.
Testing phases

Component Integration
testing testing

Software developer Independent testing team


How to define Software Testing Principles

Testing
The execution of a program to find its faults
Verification
The process of proving the programs correctness.
Validation
The process of finding errors by executing the program in a
real environment
Debugging
Diagnosing the error and corrective
What are the Types of Software Tests

Unit Testing (White Box)


Integration Testing
Function Testing (Black Box)
Regression Testing
System Test
Acceptance and Installation Tests
“Program testing can be a very effective
way to show the presence of bugs, but it
is hopelessly inadequate for showing
their absence
Why Test?
Q: If all software is released to
customers with faults, why should we
spend so much time, effort, and money
on testing?
Cost of Delaying the Release of a
Software Product

Timing is another important factor to


consider.
New products: The first to the market
often sells better than superior products
that are released later.
What is Test Planning
Define the functions, roles and methods for all test
phases.
Test planning usually start during the requirements
phase.
Major test plan elements are:
1. Objectives for each test phase
2. Schedules and responsibilities for each test activity
3. Availability of tools, facilities and test libraries.
4. Set the criteria for test completion
Beta Testing
Customers test for free!
Seems to give you test cases
representative of customer use.
Helps to determine what is most
important to the customers.
Can do more configuration (environment)
testing than in your testing lab.
Problems with Testing
Since it is impossible to find every fault
in a software system, bugs will be found
by customers after the product is
released.
Too Many Possible Inputs
Programs take input in a variety of
ways: mouse, keyboard, and other
devices.
Must test Valid and Invalid inputs.
Most importantly, there are an infinite
amount of sequences of inputs to be
tested.
Phases of the Software
Process

Requirements Specification
Design Phase
Phase Phase

Implementation
Phase

Retirement Maintenance Integration


Phase Phase Phase
Why No Testing Phase?
Testing must be done at every phase.
Testing of a phase must be build upon and
checked against the results of the previous
phase.
Non-execution based testing is done in early
phases (before executable code is produced).
Execution and non-execution based testing
can be done in later phases.
Execution-Based Testing
Utility
Reliability
Robustness
Performance
Correctness
Black-Box / White-Box Testing
Black-box tests are driven by the program’s
specification
White-box tests are driven by the program’s
implementation

Black- White-box
Specification Program
box tests tests
Black Box Testing
Checks that the product conforms to
specifications
Cannot determine how much code has
been tested

Omissions detected
by black-box tests
Program
White Box Testing
Allows tester to be sure every statement
has been tested.
Difficult to discover missing
functionality.

Commissions detected
Program by White-box tests
Review questions
1. What is Software Testing?
2. What are Quality Assurance and Quality Control?
3. What is Verification in software testing?
4. What is Validation in software testing?
5. What is Static Testing?
6. What is Dynamic Testing?
What is White Box Testing?

You might also like