Testing
Error is human – Proverb
Any one can make mistakes, so that all
pencils are having erasers – Oscar Wilde
Goals
To assess and improve the quality of the
work products generated during
development and modification of software.
Quality Attributes
Correctness
Completeness
Consistency
Reliability
Efficiency
Conformance to standards and
over all cost effectiveness
Portability
Ease with software can be transferred from one computer or
environment to another
Reliability
Ability of a program to perform a required function under stated
condition for a stated period of time.
Efficiency
The extent to which the software performs its intended function with
a minimum consumption of computing resources.
Correctness
i) Software is free from design and coding defects – or fault free
ii) Software meets its specified requirements
iii) Software meets user expectations
Robustness
Software can continue to operate correctly – even though the input
is wrong.
Work Products
REVIEW WORK PRODUCTS
PFR : Product Feasibility Review System Definition / Project Plan
SRR : Software Requirements Review SRS / Preliminary User’s Manual
Preliminary Verification Plan
PDR: Preliminary Design Review Architectural Design Document
CDR: Critical Design Review Detailed Design Spec.
User’s Manual
Software Verification Plan
SCR: Source Code Review Walkthroughs and Inspection of
The Source Code
ATR: Acceptance Test Review Acceptance Test Plan
PRR : Product Release Review All of the Above
PPM: Project Post-Mortem Project Legacy
Verification - Are we Building the
product right?
Validation - Are we Building the right
product?
VERIFICATION
Process of determining whether or not
an object in a given phase of the software
development process satisfies the
requirements of previous phases.
VERIFICATION TYPES
Life Cycle Verification – Process of determining
the degree to which the work products of a
given phase of the development cycle fulfill the
specifications established during prior phases
(refer the previous cases).
Formal Verification – Rigorous mathematical
demonstration that source code conforms to its
specifications
VALIDATION
Process of evaluation software at the
end of the software development process
to ensure compliance with requirements.
In short – Verification and Validation
involve assessment of work products
to determine conformance to
specifications
Specifications –include
Requirements Specification ( examined to conformance to
user needs,
Environmental constraints and notational standards)
Design Documents (with respect to requirements).
Various Stylistic Guidelines (Structured Coding Techniques
and Coding Style)
Implementation language standards (Modern Language
Features)
Project standards (Performance Details)
Organizational Standards ( Project and Team Structure )
User Expectations (Screen and Report formats)
Software Errors
Requirements Error
Caused by incorrect statement of user needs
Failure to specify the functional and performance requirements
completely
Infeasible requirements
Inconsistencies among the requirements
Design Errors
Failure to translate the requirements into correct and complete
solution structures
Inconsistency with the design specifications
Implementation Errors
Errors made in translating design spec into source code
Can occur due to data declarations, control flow logic, sub-program
interfaces, input/output operations or by computational expressions
Techniques
SQA
Walkthroughs
Inspections
Static Analysis
Symbolic Execution
Unit testing & Debugging
System testing
Formal Verification
QUALITY ASSURANCE
Planned and Systematic pattern of
all actions necessary to provide adequate
confidence that the item or product
conforms to established technical
requirements
SQA
To provide assurance that the
procedures, tools and techniques used
during product development and
modification are adequate to provide the
desired level of confidence in work
products
Functions of SQA
During Analysis and Design
Software Verification Review is conducted – Software Verification
Plan and an Acceptance Test Plan are prepared
During Product Evolution
In-Process Audits are conducted to verify the consistency and
completeness of the work products
Prior to Product Delivery
Functional Audit (Reconfirms the requirements have been met) and
Physical Audit (Source Code and its associated documents) Audits
Walkthrough
Is not a project review but it is an in-
depth examination of selected work
products by the individuals.
Goal
To discover and make note of problem
areas
Guidelines
1. Work should be reviewed on a scheduled basis
2. Emphasis should be placed on detecting errors
3. Major issues should be addressed
4. Walkthrough sessions should be limited to 2
hours (Open and non defensive atmosphere)
INSPECTIONS
A Team of trained inspectors, working
from checklists of items to be examined
Items to be inspected are:
Subprogram interfaces, Decision Logic,
Data referencing, computations
expressions, I/O statements, Comments,
Data flow and Memory Usage
STATIC ANALYSIS
Assessing the structural characteristics of source
code
Activity
Structure of the code is examined but the code
is not executed
Concerned with the program structure
Discovering the departure of coding standards,
structural errors like uninitialized variable and
mismatch of parameters (Actual and Formal)
SYMBOLIC EXECUTION
Validation Technique
Activity
Instead of actual data the symbolic values
are used to assess the code
Determines the loop invarients
That's all folks!
Any Questions?