SOFTWARE TESTING - I
Contents
SKYTECH
SYSTEMS
Software Testing Introduction
Quality Principles
Software Process
SDLC
(Software Development Life Cycle)
Project Management
SOFTWARE TESTING
2 / 50
Contents
SKYTECH
SYSTEMS
Requirement Management
Configuration Management
Software Testing Fundamentals
Testing Policy Vs Quality Policy
Testing Economics and Testing Cost
Testing Levels
Testing Techniques
SOFTWARE TESTING
3 / 50
Contents
SKYTECH
SYSTEMS
Test Maturity Criteria
Verification Process
Test Level Model
Special Test Types
Test Standards
Testing Process
SOFTWARE TESTING
4 / 50
SKYTECH
SYSTEMS
Software Testing
STATIC
DYNAMIC
Logical Errors
Structural Testing
Functional Testing
(White Box testing)
(Black Box testing)
Nothing else but
functioning
SOFTWARE TESTING
5 / 50
SKYTECH
SYSTEMS
Testing
A Process of evaluating a particular
product to determine whether the product contain
any defects
Software Testing
Software Testing is a process of
evaluating a system by manual or automatic
means and verify that it satisfies specified
requirements or identify differences between
expected and actual results.
SOFTWARE TESTING
6 / 50
SKYTECH
SYSTEMS
Why Software Testing ?
Error Free
Efficient
Secured
Flexible
Software Testing is important as it may cause
mission failure, impact on operational
performance and reliable if not done properly.
SOFTWARE TESTING
7 / 50
SKYTECH
SYSTEMS
QUALITY PRINCIPLES
Quality is defined as meeting the Customers
requirements in the First time and Every time.
Quality is much more than the absence of
defects, which allows us to meet customers
expectations.
There are five perspective of quality- they
are
SOFTWARE TESTING
8 / 50
SKYTECH
SYSTEMS
Software Quality
Critical Quality
Attributes
Maintainability
Dependability
Efficiency
Usability
SOFTWARE TESTING
Other Attributes
Completeness
Compatibility
Portability
Internationalization
Understandability
Scalability
Robustness
Testability
Reusability
Customizability
9 / 50
SKYTECH
SYSTEMS
Five perspective of quality
1. Transcendent-I know when I see it.
2. Product based- possesses desired
features
3. User based Fitness for use.
4. Development and manufacturing based
Confirms to requirements.
5. Value based At an acceptable cost.
SOFTWARE TESTING
10 / 50
SKYTECH
SYSTEMS
Why Quality?
Quality is the most important factor affecting
an organization's long-term performance.
Quality is the way to achieve improved
productivity and competitiveness in any
organization.
SOFTWARE TESTING
11 / 50
SKYTECH
SYSTEMS
Cost of Quality
The three categories of costs associated with
producing quality products are
1. Prevention cost : Money required to prevent errors
and to do the job right the first time.
2. Appraisal costs : Money Spent to review completed
product against requirement.
3. Failure costs : This cost associated with defective
products that have been delivered to the user or
moved into production.
SOFTWARE TESTING
12 / 50
Quality Assurance
Vs
Quality Control
SKYTECH
SYSTEMS
Quality Assurance
- process oriented
(Software
development)
- Defect prevention
(Identify & Rectify)
Quality Control
- Product Oriented (quality of the entire
product is checked or tested)
- Defect detection
SOFTWARE TESTING
13 / 50
SKYTECH
SYSTEMS
Software Process
A particular method of doing some
thing, generally involving a number of
steps or operations is a process.
The process that deals with the technical
and management issues of software
development is called Software
Process.
SOFTWARE TESTING
14 / 50
SKYTECH
SYSTEMS
Software Process
Process Projects Products
A software process specifies a method of
developing software.
A software project, on the other hand, is a
development project in which a software
process is used.
A Software product is the outcome of a
software project.
SOFTWARE TESTING
15 / 50
SKYTECH
SYSTEMS
PLAN
Necessary Actions
ACT
Planning & Designing
DO
Coding & Production
CHECK
Testing & Evaluating
SOFTWARE TESTING
16 / 50
SKYTECH
SYSTEMS
Plan : Device a plan. Define your objective and
determine and strategy and supporting methods
required to achieve that objective.
Do : executive the plan. Create the conditions and
perform the necessary training to execute the plan.
Check : Check the results. Check to determine
whether work is progressing according to the plan
and whether the results are obtained.
SOFTWARE TESTING
17 / 50
SKYTECH
SYSTEMS
SDLC
(SOFTWARE DEVELOPMENT
LIFE CYCLE)
Overview of Software Development
Activities
Introduction to Various Lifecycles
SOFTWARE TESTING
18 / 50
SKYTECH
SYSTEMS
Agenda
Team Organization Deliverable Turn-in
Project Assignments to be posted on the website
Introduction to Software Development
Activities
Survey of Lifecycle Models
SOFTWARE TESTING
19 / 50
SKYTECH
SYSTEMS
Software Engineering
Layered Technology
Key Process Areas
Tools
Methods
Process
Quality
SOFTWARE TESTING
20 / 50
SKYTECH
SYSTEMS
Capability Maturity Model
Developed by SEI(Software Engineering
Integration)
Five Process Maturity Levels
Level 0:
Level 1:
Level 2:
Level 3:
Level 4:
Level 5:
SOFTWARE TESTING
Chaos
Initial
Repeatable
Defined
Managed
Optimizing
21 / 50
SKYTECH
SYSTEMS
Process Principles
Prescribes all major activities
Uses resources, within a set of constraints, to
produce intermediate and final products
May be composed of sub-processes
Each activity has entry and exit criteria
Activities are organized in a sequence
Has a set of guiding principles to explain goals
Constraints may apply to activity, resource or
product
SOFTWARE TESTING
22 / 50
SKYTECH
SYSTEMS
The six Stages of SDLC process are
SOFTWARE TESTING
Requirement Analysis
Design
Development
Testing
Implementation
Maintenance
23 / 50
SKYTECH
SYSTEMS
Requirement Analysis
Study done by organization against customers
requirement is documented as SRAS( software
requirement analysis specification)
The main objective of the requirements analysis is to
produce a document that properly specifies all
requirements of the customer.
SRS(Software Requirement Specification) is the
primary output of this phase.
SOFTWARE TESTING
24 / 50
Design Process
SKYTECH
SYSTEMS
Decompose entire project into units / modules and
prepare dataflow diagram and communication.
CDD(Comprehensive Design Document)
= HCL + LLD
Design Process
High Level Design
HCD
SOFTWARE TESTING
Low Level Design
LLD
25 / 50
SKYTECH
SYSTEMS
HLD
High-Level Design (system Design)
High-level design is the phase of the life cycle
when a logical view of the computer
implementation of the solution to the customer
requirements is developed.
SOFTWARE TESTING
26 / 50
SKYTECH
SYSTEMS
LLD
Low Level Design (Detailed Design)
During the detailed design phase, the view of
the application developed during the high level
design is broken down into modules and
programs. Logic design is done for every
program.
SOFTWARE TESTING
27 / 50
SKYTECH
SYSTEMS
Coding and unit testing
During the build phase, the detailed design
is used to produce the required programs in
a programming language.
This stage produces the source code,
executable, and databases applicable.
SOFTWARE TESTING
28 / 50
SKYTECH
SYSTEMS
Testing
Unit testing
Integration testing
STATIC(Reviewing)
DYNAMIC (Execution)
System testing
SOFTWARE TESTING
29 / 50
SKYTECH
SYSTEMS
Integration testing
Integration is a systematic approach to
building the complete software structure
specified in the design from unit-tested
modules.
Integration plan must specify the order in
which the modules are integrated.
SOFTWARE TESTING
30 / 50
SKYTECH
SYSTEMS
System Testing
System testing is an activity to validate the
software product against the requirement
specification.
This stage is intended to find defects that
can be exposed only by testing the entire
system.
SOFTWARE TESTING
31 / 50
SKYTECH
SYSTEMS
Acceptance and Installation
Acceptance and installation is the phase in the
software life cycle during which a software
product is integrated into its operational
environment and tested in this environment to
ensure that it performs as required.
The two basic tasks- getting the software accepted
and installing the software at the customer site.
SOFTWARE TESTING
32 / 50
SKYTECH
SYSTEMS
Project Management
Project Management is nothing but
organising, Planning,ans scheduling
software projects.
Project staffing
Project planning
Project scheduling
Project monitoring
SOFTWARE TESTING
33 / 50
SKYTECH
SYSTEMS
Risk Management
Software Risks
1. Risk identification : Identify project, product and
business risks.
2. Risk analysis : Assess the likelihood and
consequences of these risks.
3. Risk planning : Draw up plans to avoid or
minimize the effects of the risk.
4. Risk monitoring : Monitor the risks throughout
the project
SOFTWARE TESTING
34 / 50
SKYTECH
SYSTEMS
Requirements Management
Requirements management is managing changes
in the evolving software in a cost effective
manner. Changes may come externally or
internally.
External changes may be due to
problem,customer, environment.
Internal changes may be due to requirements,
design, implementation, testing, maintenance
SOFTWARE TESTING
35 / 50
SKYTECH
SYSTEMS
Configuration Management
Standards and procedures for managing changes in
an evolving software product is configuration
management.
New versions of software systems are created as
they change for different machines/OS, offering
different functionality.
Software systems are sometimes called baselines
as they are a starting point for further
development.
SOFTWARE TESTING
36 / 50
SKYTECH
SYSTEMS
Verification and release
management
Invent identification scheme for system
versions plan when new system version is
to be produced. Ensure that version
management procedures and tools and
properly applied. Plan and distribute new
system releases.
SOFTWARE TESTING
37 / 50
SKYTECH
SYSTEMS
version/variants/releases
Version : An instance of a system, which is
functionally distinct in some way from
other system instances.
Variant: An instance of a system, which is
functionally identical but non-functionally
distinct from other instances of a system.
Release : An instance of a system, which is
distributed to users outside of the
development team.
SOFTWARE TESTING
38 / 50
SKYTECH
SYSTEMS
Version derivation structure
V 1.1b
V 1.0
V 1.1
V 1.1.1
V 1.2
V 2.0
V 2.1
V 2.2
V 1.1a
SOFTWARE TESTING
39 / 50
SKYTECH
SYSTEMS
Software Testing Fundamentals
Primary role of software testing?
determine whether the system meets
specification (producer view)
determine whether the system meets business
and user needs (customer view).
SOFTWARE TESTING
40 / 50
SKYTECH
SYSTEMS
STF
What is Defects ?
The purpose of testing is to find defects. A
defect is a variance from a desired product
attribute. Two categories of defects are
1. Variance from product specifications.
2. Variance from customer/user expectation.
SOFTWARE TESTING
41 / 50
Defects
SKYTECH
SYSTEMS
1. Wrong : The specifications have been implemented
incorrectly. This defect is a variance from customer / user
specification. (correctly mentioned in specification but
wrongly implemented)
2. Missing : A specified or wanted requirement is not in the
built product. This can be a variance from specification, an
indication that the specification was not implemented.
( given in specification but missed out in application)
3. Extra : A requirement incorporated into the product that
was not specified. This is always a variance from
specifications, but may the user of the product desire an
attribute. (any thing that dissatisfies)
SOFTWARE TESTING
42 / 50
SKYTECH
SYSTEMS
Test case
Set of procedures written by a tester which
execute in our system to find defect.
Positive test case
negative test case
A test case is said to be effective only when both
positive and negative cases are prepared.
SOFTWARE TESTING
43 / 50
SKYTECH
SYSTEMS
Testing Economics & Cost
Traditional Testing
Accumulated
Test cost
Continuous Testing
Accumulated
Error
Remaining
Error
Remaining
Test cost
20
Requirement
10
$ 10
40
Design
15
$ 25
60
Code
18
$ 42
$ 480
12
Testing
$ 182
$1690
Production
$ 582
SOFTWARE TESTING
44 / 50
SKYTECH
SYSTEMS
TESTING LEVELS
Unit Testing
Integration Testing
System Testing
Acceptance Testing
SOFTWARE TESTING
45 / 50
SKYTECH
SYSTEMS
Unit Testing
Unit testing is a testing in which the
individual unit of the software are tested in
isolation from other parts of a program.
Advantage :
To catch the defects that occurs at the early
stage of software development.
To minimize the ration of defects before
moving to next level
SOFTWARE TESTING
46 / 50
Integration Testing
SKYTECH
SYSTEMS
Integration testing refers to the testing in
which software units of an application
combined and tested for a communication
interfaces between them.
Big Bang Testing
Bottom Up Testing
Top Down Testing
SOFTWARE TESTING
47 / 50
Big Bang Testing
SKYTECH
SYSTEMS
Module - 1
Module - 6
Module - 2
System
Module - 3
Module - 5
Module - 4
SOFTWARE TESTING
48 / 50
SKYTECH
SYSTEMS
Big Bang Testing
A type of integration in which software
components of an application are combined
all at once into a overall system according
to this approach
Advantage :
To check the data flow from one module to
another
Communication between various modules is
checked
SOFTWARE TESTING
49 / 50
SKYTECH
SYSTEMS
Integration
Bottom-up Integration testing :
In bottom up integration, all modules are added
or combined from lower level hierarchy to
higher level hierarchy I.e., the lower level
model is tested in isolation first, then the next
set of higher level modules are tested with the
previously tested lower modules.
Worker modules are grouped into builds and
integrated.
SOFTWARE TESTING
50 / 50