Software Testing Terminology
and Methodology
1
Objectives
• Difference between error, fault and failure.
• Life Cycle of a bug.
• How does a bug affect economics of software testing?
• How does a bug classified?
• Testing Principles
• Software Testing Life Cycle (STLC) and its models.
• Difference between verification and validation.
• Development of software testing methodology
2
Software Testing Terminology
• Failure
The inability of a system or component to perform a required
function according to its specification.
• Fault / Defect / Bug
Fault is a condition that in actual causes a system to produce
failure. It can be said that failures are manifestation of bugs.
3
Software Testing Terminology
Error
Whenever a member of development team makes any mistake in
any phase of SDLC, errors are produced. It might be a typographical
error, a misleading of a specification, a misunderstanding of what a
subroutine does and so on. Thus, error is a very general term used
for human mistakes.
4
Software Testing Terminology
5
Software Testing Terminology
• Testware
The documents created during the testing activities are known as
Testware.
• Incident
the symptom(s) associated with a failure that alerts the user to the
occurrence of a failure.
• Test Oracle
to judge the success or failure of a test,
6
Life Cycle of a Bug
7
States of a Bug
8
Bug affects Economics of Software Testing
Software Testing Myths
9
Bug Classification based on Criticality
• Critical Bugs
the worst effect on the functioning of software such that it stops or
hangs the normal functioning of the software.
• Major Bug
This type of bug does not stop the functioning of the software but
it causes a functionality to fail to meet its requirements as
expected.
• Medium Bugs
Medium bugs are less critical in nature as compared to critical and
major bugs.
Minor Bugs
10
Software Testing Life Cycle (STLC)
11
Test Planning
• Defining the Test Strategy
• Estimate of the number of test cases, their duration and cost.
• Plan the resources like the manpower to test, tools required,
documents required.
• Identifying areas of risks.
• Defining the test completion criteria.
• Identification of methodologies, techniques and tools for various test
cases.
• Identifying reporting procedures, bug classification, databases for
testing, Bug Severity levels, project metrics
12
Test Design
• Determining the test objectives and their Prioritization
• Preparing List of Items to be Tested
• Mapping items to test cases
• Selection of Test case design techniques
• Creating Test Cases and Test Data
• Setting up the test environment and supporting tools
• Creating Test Procedure Specification
13
Test Execution
14
Post-Execution / Test Review
• Understanding the Bug
• Reproducing the bug
• Analyzing the nature and cause of the bug
• Reliability analysis
• Coverage analysis
• Overall defect analysis
15
Software Testing Methodology
16
Test Strategy Matrix
• Select and Rank Test Factors
• Identify the System Development Phases
• Identify the Risks associated with System under
Development
17
Development of Test Strategy
Verification: “Are we building the product right?”
Validation: “Are we building the right product?”
18
V Testing Life Cycle Model
19
Validation Activities
• Unit Testing
• Integration Testing
• Function Testing
• System Testing
• Acceptance Testing
20