SOFTWARE TESTING
Designed By:
The Purpose of the Testing
¾ To measure the quality of the software
¾ To detect the faults in the software
¾ To improve the quality and reliability by removing the
faults from the software
Why Do Faults occurs in the software?
¾ One of the major causes is the specification.
¾ Also there are deadlines to deliver the project on time
¾ Another reason is human beings create software
Importance of software Testing
Software testing is one of the most important phase in
Software development life cycle . Although reviews
and SQA activities can uncover the errors but
thorough Testing is required to deliver the quality
product to the Customer. Therefore it’s always better
to find the bugs ,Than the customer finds them.
SOFTWARE DEVELOPMENT LIFE CYCLE
Is the overall process of developing information
systems through a multi step process from
investigation of initial requirement through analysis
design implementation and maintenance.
There are many different models and methodologies
but each generally consists of a series of defined steps
or stages.
ILLUSTRATION
How the customers explained it
How the project leader understood it
How the analyst designed it
Problem
Definition
Status Quo Technical
Development
Solution
Integration
SDLC Models
•Water Fall Model (Linear Sequential Model)
•Spiral Model
•Prototype Model
•Rapid Application Development
•V Model
Water Fall Model
Analysis
Design
Code
Test
Support
Prototype Model
Listen to Customer Build/revise mock-up
Customer test-drives mock-up
Rapid Application Model
Team #1 Team #2 Team #3
Business Business Business
Modeling Modeling Modeling
Data Data Data
Modeling Modeling Modeling
Process Process Process
Modeling Modeling Modeling
Application Application Application
Modeling Modeling Modeling
Test and Test and Test and
turnover turnover T turnover
e
s
V Model
User Manual
Requirements Specification System/Acceptance Test
SRS Tested Software
System Design System Integration Test
Detail Design Integration Test
Module Design Tested Module
Coding Unit Test
Code
Importance of Testing in SDLC
Software testing is one of the important phases in SDLC
because of the following reasons:
It helps to very that all the software requirement are implemented
correctly.
It helps in identifying defects and ensuring that they are addressed
before software deployment.
Data collection as testing is conducted provide a good indication of
software reliability and some indication of Software reliability and
some indication of software Quality as a whole.
Errors, Bugs and Faults in Software
Errors & Bugs –
Is a human action that produces the incorrect result,and
the presence of the error at the time of execution of the
software is know as bug .
Faults –
Is a software defect that cause a failure and Failure is a
deviation of the software.
Testing and Quality
• Testing is the process of checking the functionality
and correctness of software by executing it and it
measure the software quality.
• If a software product is of high quality, it will
meet
Why does software have bugs?
z Miscommunication or no
communication
z Software complexity
z Programming errors
z changing requirements
z time pressures
Testing life cycle
Comparisons & Relationships
z SDLC
z STLC
z VV Model
z Standards and Guidelines
VV Model
Verification & Validation
Start Start
Implementation Test
•SRS •Test Plan
•Build •Test Design
•Install •Test Execute
•Prooduction •Acceptance
•Maintenance •Report
•Evaluation
Correction
Complete
Levels of testing
Insight into various levels in a test phase
z Unit testing
z Integration or module
z System
z Acceptance
z Alpha , Beta
TESTING LIFE CYCLE
Effort Estimation
Project Initiation Summary Reports
System study
Analysis
Test plan Regression Test
Report defects
Design Test cases
Test Automation Execute Test cases
TEST PLAN
Test plan is a document that describes the objectives,
scope, approach and focus of a Software testing
efforts.
Some items that might be included in a test plan depending
on particular project:
• Title
• Identification of software including version number
• Revision history of document including authors,dates
• Table of contents
• Purpose of document
• Objective of testing effort
• Software product overview
Some items that might be included in a test plan depending
on particular project: Cont…
• Relevant related document list, Exe requirements,
design documents etc.
• Assumptions and dependencies
• Project risk and analysis
• Testing priorities and focus
• Test outline
• Test environment
• Test tools to be used
• Personal allocation etc………………….
Test Case, Test Logs, Test Harness
TEST CASES:
A Test cases is a document that describes an input,
action or event and an expected response to determine
if a feature of an application is working correctly.
contd….
Test Case, Test Logs, Test Harness Cont…
TEST LOGS:
A collection of raw output captured during a unique
execution of one or more tests, usually representing the
output resulting from the execution of a Test suite for a
single test cycle.
TEST HARNESS:
A test harness is a small program specially written to
test a particular subroutine or module.
AUTOMAED Vs MANUAL TESTING
Software testing assisted with software tools that require very
little operator input, or evaluation is referred to as
AUTOMATED TESTING
Whereas that part of software testing that requires human input,
analysis or evaluation is know as
MANUAL TESTING.
Acceptance Testing
A formal test conducted to determine whether or not
system satisfies its acceptance criteria and to enable the
customer to determine whether or not to accept the
system. It is the final test action before deploying the
software.the goal of acceptance testing is to verify that
software is ready and can be used by end users.
BLACKBOX TESTING
Also known as functional testing. Asoftware testing technique
whereby the internal workings of the item being tested are not
known by the tester. For example, in a black box test on a software
design the tester only knows the inputs and what the expected
outcomes should be and not how the program arrives at those
outputs. The tester does not ever examine the programming code
and does not need any further knowledge of the program other than
its specifications.
WHITEBOX TESTING
Also known as glass box, structural, clear box and open box testing. A
software testing technique whereby explicit knowledge of the
internal workings of the item being tested are used to select the test
data. Unlike black box testing, white box testing uses specific
knowledge of programming code to examine outputs. The test is
accurate only if the tester knows what the program is supposed to
do. He or she can then see if the program diverges from its intended
goal. White box testing does not account for errors caused by
omission, and all visible code must also be readable.