You are on page 1of 43

INDIUM SOFTWARE INDIA LIMITED

Enhancing Software Quality

Software Testing Life Cycle

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Objective

To introduce software testing life cycle


To understand the phases of software testing
To know the roles and responsibilities of a test engineer
To appreciate the attitudes and competencies of a
successful tester

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Conventional testing process

Spec
Spec

Design
Design

Build
Build

Test
Test&&Fix
Fix

* Here testing was happening only towards the end of the life
cycle

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Distribution of defects In the life cycle


Requirements
27% Design
27%
Code
Other

56%
56%

7%

7%

10%
10%
Source: IBM/TRW/Mitre

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Software development life cycle


Requirement
Analysis

Ongoing
Support

Review/Test

High level
design

Operational
Testing
Integration
Testing

Detailed
Specifications

Unit Testing

Coding

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

STLC V Model
Requirement
Req. Review

Execute System Tests


Develop Acceptance Tests
Review Acceptance tests

Design
Design Review

Execute Integration tests


Develop integration Tests
Review Integration Tests

Code
Code Review
Develop Unit Test
Review Unit Test

Execute Unit Test

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

STLC Activities
Plan

Scope/Requirement

Base line inventory


Acceptance criteria
Schedule
Prioritization
Test references
Sign off req

Approach
Process and Tools
Methodology
Delivery Models
Risk Plan
Project Overflow
Quality Objectives
Configuration Plan

Design

Test Design
Specifications
Test Scenarios
Test Cases
Test Data
Tool
Development

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

STLC Activities
Execution

Implement Stubs
Test Data Feeders
Batch Processes
Execute Testing
Collate Test Data
Identify Bugs

Defect Analysis

Check unexpected behavior


Identify defective
application areas
Identify erroneous test data
Identify defect
trends/patterns

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

STLC Activities
Software Testing Life Cycle
Phase

Activities

Outcome

Planning

Create high level test plan

Test plan, Refined Specification

Analysis

Create detailed test plan, Functional Revised Test Plan, Functional


Validation Matrix, test cases
validation matrix, test cases

Design

test cases are revised; select which


test cases to automate

revised test cases, test data sets, sets,


risk assessment sheet

Construction

scripting of test cases to automate,

test procedures/Scripts, Drivers, test


results, Bugreports.

Testing cycles

complete testing cycles

Test results, Bug Reports

Final testing

execute remaining stress and


performance tests, complete
documentation

Test results and different metrics on


test efforts

Post implementation

Evaluate testing processes

Plan for improvement of testing


process

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Test Approach
Test Process

The project under development or incorporation of accepted changes in the


project or project under maintenance which implemented changes, use the
testing process
Based on the nature of the project, adequate testing shall be arrived at the
project level
The Test Approach

sets the scope of system testing


the overall strategy to be adopted
the activities to be completed
the general resources required
the methods and processes to be used to test the release
details the activities, dependencies and effort required to
System Test

conduct the

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Test Approach

Test approach will be based on the objectives set for testing


Test approach will detail the way the testing to be carried out
Types of testing to be done viz Unit, Integration and system
testing
the general resources required
The method of testing viz Blackbox, White-box etc.,
Details of any automated testing to be done
Details the activities, dependencies and effort required to conduct
the System Test

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing life cycle phases

1. Requirement Analysis
2. Prepare Test Plan
3. Test Case Designing
4. Test Case Execution
5. Bug Reporting, Analysis and Regression testing
6. Inspection and release
7. Client acceptance and support during acceptance
8. Test Summary analysis

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Requirement Analysis

Objective
The objective of Requirement Analysis is to
ensure software quality by eradicating errors as
earlier as possible in the developement process,
as the errors noticed at the end of the software
life cycle are more costly compared to that of
early ones, and there by validating each of the
outputs
The objective can be achieved by three basic issues:

Correctness
Completeness
Consistency

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Type of requirement

Functional
Data
Look and Feel
Usability
Performance
Operational
Maintainability
Security
Scalability
Etc.

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Evaluating requirements

What Constitutes a good Requirement?


Clear: Unambiguous terminology
Concise: no unnecessary narrative or non-relevant facts
Consistent
requirements that are similar are stated in similar terms.
Requirements do not conflict with each other.
Complete
all functionality needed to satisfy the goals of the system is
specified to a level of detail sufficient for design to take
place

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Requirements Analysis
Difficulties in conducting requirement analysis

Analyst not prepared


Customer has no time/interest
Incorrect customer personnel
involved
Insufficient time allotted in
project schedule

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Prepare Test plan - Activities

Scope Analysis of project


Document product purpose/definition
Prepare product requirement document
Develop risk assessment criteria
Identify acceptance criteria
Document Testing Strategies.
Define problem - reporting procedures
Prepare Master Test Plan

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Design - Activities

Setup test environment


Design Test Cases: Requirements-based and Codebased Test Cases
Analyze if automation of any test cases is needed

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Execution activities

Initial Testing, Detect and log Bugs


Retesting after bug fixes
Final Testing
Implementation
Setup database to track components of the automated
testing system, i.e. reusable modules

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Bug reporting, Analysis and Regression testing

Activities
Detect Bugs by executing test cases
Bug Reporting
Analyze the Error/Defect/Bug
Debugging the system
Regression testing

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Inspection and Release activities

Maintaining configuration of related work products


Final Review of Testing
Metrics to measure improvement
Replication of Product
Product Delivery Records
Evaluate Test Effectiveness

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Client Acceptance

Software Installation
Provide Support during Acceptance Testing
Analyze and Address the Error/Defect/Bug
Track Changes and Maintenance
Final Testing and Implementation
Submission, client Sign-off
Update respective Process

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Support during acceptance activities

Pre-Acceptance Test Support


Installing the software on the clients environment
Providing training for using the software or maintaining
the software
Providing hot-fixes as and when required to make
testing activity to continue
Post Acceptance Test Support
Bug Fixing

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Test Summary analysis

Quantitative measurement and Analysis of Test


Summary
Evaluate Test Effectiveness
Test Reporting
Report Faults (off-site testing)
Report Faults (on-site/ field testing)
Click here to know more about test summary analysis

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing Life Cycle Team structure

An effective testing team includes a


mixture of members who has
Testing expertise
Tools expertise
Database expertise
Domain/Technology expertise

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing Life Cycle Team structure

The testing team must be properly structured, with


defined roles and responsibilities that allow the testers
to perform their functions with minimal overlap
There should not be any uncertainty regarding which
team member should perform which duties
The test manager will be facilitating any resources
required for the testing team

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing Life Cycle Roles and Responsibilities

Clear Communication protocol should be


defined with in the testing team to ensure
proper understanding of roles and
responsibilities
The roles chart should contain both on-site
and off-shore team members

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing Life Cycle Roles and Responsibilities

Test Manager
Single point contact between onsite and offshore team
Prepare the project plan
Test Management
Test Planning
Interact with onsite lead, Client QA manager
Team management
Work allocation to the team
Test coverage analysis

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing Life Cycle Roles and Responsibilities

Test Manager
Co-ordination with onsite for issue resolution.
Monitoring the deliverables
Verify readiness of the product for release through release review
Obtain customer acceptance on the deliverables
Performing risk analysis when required
Reviews and status reporting
Authorize intermediate deliverables and patch releases to
customer.

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing Life Cycle Roles and Responsibilities

Test Lead
Resolves technical issues for the product group
Provides direction to the team members
Performs activities for the respective product group
Review and Approve of Test Plan / Test cases
Review Test Script / Code
Approve completion of Integration testing
Conduct System / Regression tests
Ensure tests are conducted as per plan
Reports status to the Offshore Test Manager

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Testing Life Cycle Roles and Responsibilities

Test Engineer
Development of Test cases and Scripts
Test Execution
Result capturing and analysing
Defect Reporting and Status reporting

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Automation Specialist

Involved in the selection and deployment of test tools


Supports the test manager in devising a test strategy
with automation
Supports the team in translating the test cases into
automation scripts
Helps build effective test suites for regression testing
Helps set-up the environment to conduct load/stress
testing

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies


for a
Successful Tester

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

Recruit the right testers


Helps testers for self-improvement
Strengths required by software teams

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

The ideal tester has deep insights into how the users will
exploit the programs features and the kinds of cockpit
errors that users are likely to make
The single most important quality for testers (just as for
programmers) is raw intelligence, good testers, just as
programmers, are smart people

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

Get up to speed quickly


Domain knowledge
Ignorance is important
Model user behavior
Focus on what can go wrong
Focus on severity of problem
Tolerate tedium
Comfortable with conflict
Report problems
Empirical
Whats observed
Skeptics

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

Get up to speed quickly


Domain knowledge
Ignorance is important
Good testers notice little things that others miss or
ignore.
Testers see symptoms, not bugs

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

Model user behavior


Focus on what can go wrong
Focus on severity of problem

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

Tolerate tedium
Comfortable with conflict
Report problems

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

Empirical
Whats observed
skeptic

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

People skills

You can be an effective programmer even if you are


hostile and anti-social; that wont work for a tester
Sense of humor and a thick skin will help the tester
survive.
Testers may have to be diplomatic when confronting a
programmer with a fundamental goof up.
Diplomacy, tact, a ready smile- all work to the
independent testers advantage.

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Attitudes and Competencies for a Successful Tester

Identifying same defects again and again, carelessness


among

developers,

lack

of

seriousness

among

developers, lack of appreciation of defects identified and


personality traits of developers often frustrate testers.
Testers have to slowly and systematically work towards
winning developers confidence by containing the
frustrations during the course.
Never give up attitude and understanding where the
developers come from help to manage the frustration.

INDIUM SOFTWARE INDIA LIMITED


Enhancing Software Quality

Summary

Testing life cycle comprises of many phases


Requirements, test design, test execution, defect
reporting and test closure
Clear Communication protocol should be defined with
in the testing team to ensure proper understanding of
roles and responsibilities
The roles chart should contain both on-site and offshore team members
Attitudes of a successful tester includes diplomatic,
empirical and never give up attitude

You might also like