SlideShare a Scribd company logo
Day 2

Testing Throughout SDLC

© Mahindra Satyam 2011
Learning Objectives
 Software Development Life Cycle

 Software Development Models
 Waterfall model
 V-model (Sequential Development Model)

 Iterative-incremental Development Model

 Agile Methodology

© Mahindra Satyam 2011
2
Software Development Life Cycle
 The Software Development Life Cycle is a step-by-step process involved in the
development of a software product.

 The whole process is generally classified into a set of steps and a specific
operation will be carried out in each of the steps.

 The basic classification of the whole process is as follows:


Initial



Analysis



Design



Coding



Testing



Maintenance

Initial:
• The main aim of the initial phase is requirements gathering.
• The responsible person is “BA – Business Analyst”
• The outcome document name is “BRS – Business Requirements
Specification”.
© Mahindra Satyam 2011
3
Contd..
Analysis:
• In this phase requirements are analyzed for the feasibility of implementation.
• Planning the project, Resource estimation, Schedule preparation, project prototype
will takes place.
• The outcome document name is “SRS – System Requirements Specification”.
• At the end of this phase, both project plan and test plan documents are delivered.

Design:
•
•
•
•
•

The aim is to create the architecture of the total system(including database design).
Dividing the system into no. of module and sub-modules.
Preparing Data-flow diagrams, Control-flow diagrams, Use cases.
Designing Database
The outcome document name is “TDD – Technical Design Document”.

Coding:
• In this phase, programmers prepares/write the code for given specification in
the chosen programming language.
• The outcome is “Source code”.
© Mahindra Satyam 2011
4
Contd..
Testing:
• In this phase, testing team will execute the prepared test cases on the given
build/system.
• Main aim is, to verify that the given system working as per client requirements.
• If test fails, they will raise an incident.
• The outcome documents are: Test Cases, Incidents.

Maintenance:
•
•
•
•

In this phase, the system deployed into the client‟s environment.
Any issue raised by client, environmental problems are handled.
Requirements change requests are handled
Maintenance is made up of:
• Corrective maintenance
• Ex: fixing customer-reported problems
• Adaptive maintenance
• Ex: making the software run on a new version of an OS or Database.
• Preventive maintenance
• Ex: changing the application program code to avoid a potential security hole in an
OS code

© Mahindra Satyam 2011
5
Software
Development Models

© Mahindra Satyam 2011
Waterfall Model

© Mahindra Satyam 2011
Software Development Models – Waterfall model
Waterfall Model

Requirements

 In "The Waterfall" approach, the
whole process of software
development is divided into
separate process phases.

Design

 All these phases are cascaded to
each other so that second phase is
started as and when defined set of
goals are achieved for first phase
and it is signed off, so the name
"Waterfall Model".

Code

 All the methods and processes

Testing

undertaken in Waterfall Model are
more visible.

Release
© Mahindra Satyam 2011
8
Contd..
Advantages

Disadvantages

 It is the simplest software process

 All requirements must be known

model in terms of complexity and
ease of implementation. As you
know, it is nothing but common
sense.

upfront

 Jumping back and forth between
two or more phases is not possible.

 The next phase can be reached only

 This model is extremely easy to

after the previous one has been
completed.

understand and therefore, is
implemented at various project
management levels and in a number
of fields (not just software
development).

 Bugs and errors in the code cannot
be discovered until and unless the
testing phase is reached. This can
lead to a lot of wastage of time and
other precious resources.

 It employs a systematic, orthodox
method of project development and
delivery.

 Not suitable for projects wherein the
project requirements are dynamic or
constantly changing.

© Mahindra Satyam 2011
9
V -Model

© Mahindra Satyam 2011
V-Model

© Mahindra Satyam 2011
11
Contd..
 A framework to describe the software development lifecycle activities from
requirements specification to maintenance. The V-model illustrates how testing
activities can be integrated into each phase of the software development lifecycle.

 The V-Model demonstrates the relationships between each phase of the
development life cycle and its associated phase of testing.

 Testing helps to ensure that the work-products are being developed in the right
way (verification) and that the product will meet the user needs (validation).

Verification
• Checks that the work-product meets the requirements set out for it.
• Verification helps to ensure that we are building the product in the
right way.

Validation
• Checks that the behavior of the work-product matches the customer
needs as defined for the project.
• Validation helps to ensure that we are building the right product as far
as the users are concerned.
© Mahindra Satyam 2011
12
Contd..
V-Model Objectives:

Minimization of Project Risks

Improvement and Guarantee of Quality

Reduction of Total Cost over the Entire Project and System Life Cycle

Improvement of Communication between all Stakeholders

© Mahindra Satyam 2011
13
Contd..
Advantages

Limitations

 The users of the V-Model participate in

 The organization and execution of







the development and maintenance of the
V-Model.
A change control board publicly
maintains the V-Model.
The change control board meets once a
year and processes all received change
requests on The V-Model.
At each project start, the V-Model can be
tailored into a specific project V-Model,
because the V-Model is project
independent.
It provides concrete assistance on how
to implement an activity and its work
steps, defining explicitly the events
needed to complete a work step: each
activity schema contains instructions,
recommendations and detailed
explanations of the activity.

operation, maintenance, repair and
disposal of the system are not covered
by the V-Model. However, planning and
preparation of a concept for these tasks
are regulated in the V-Model.

 The V-Model addresses software
development within a project rather than
a whole organization.

© Mahindra Satyam 2011
14
Iterative-Incremental
Model

© Mahindra Satyam 2011
Iterative-Incremental Model
 This is one where the requirements do not need to be fully defined before coding
can start. Instead, a working version of the product is built, in a series of stages,
or iterations - hence the name iterative or incremental development.

© Mahindra Satyam 2011
16
Contd..
 An Iterative model for development has fewer steps those are:


1) Define Iteration Requirements



2) Build Iteration



3) Test Iteration

 This type of development is often referred to as cyclical - we go „round the
development cycle a number of times‟, within the project.

 Example:
– Assuming a development of a social networking website with parts like
member registration, sign in, forgot password, member profile, search
members, friends list, blog, blog search, photos, photo search and messaging.

 Development:
– First iteration comprising of member registration, sign in, member profile and
search members.

– The second iteration can comprise of friends list, blog, blog search.
– The third iteration can comprise of photos, photo search, messaging and
forgot password.
© Mahindra Satyam 2011
17
Contd..
 Drawbacks:
 The lack of formal documentation makes it difficult to test.
 The working environment may be such that developers make any changes
required, without formally recording them.

 The amount of testing required to ensure that implementation of the changes
does not cause unintended changes to other parts of the software (this is
called regression testing).

© Mahindra Satyam 2011
18
Agile Testing

© Mahindra Satyam 2011
What is Agile Testing ? –Agile values
Core value1: Individuals and interactions over
processes and tools:
• Undocumented process with good interactions among
the stakeholders, than a documented process with
less interactions
Agile Values
(Agile
Manifesto)

How it is
different?

Roles and
Activities

Core value 2: Working software over comprehensive
documentation:
• Running code is ruthlessly honest

Whole team
approach

Core value 3: Customer collaboration over contract
negotiation:
• Customer is part of development process; it is
collaboration in decision meeting, speed of
communication and individual's connect
Core value 4: Respond to change over following a plan:
• Rather than focusing on outdated plan, deal with
changing realities

© Mahindra Satyam 2011
20
Water fall model –Success factors
Complexity = f( development+ target) environment variables

Successful:
The system is
useful when it
is delivered

© Mahindra Satyam 2011
21
Agile – Success factors

Risk reduction:
analyzing,
prioritizing and
attacking the top
risks in each
iteration

Walker Royce, Software project management: A unified framework, 1998, AW
© Mahindra Satyam 2011
22
What is Agile Testing –Meaning whole Team approach
 Business facing tests –tests that describe customer‟s desired features and
functionalities

 It includes functional, system, load, performance, stress, security, usability ..
 Agile testing –does not mean testing on an agile project. Testing is inline with
valuing working software and responding to change

 In Agile not only testers or a quality assurance team own the responsibility for
quality –but entire team
 We just don‟t think of departments -rather the skills and resources we need to
deliver the best possible product.
 Business facing tests –tests that describe customer‟s desired features and
functionalities

 Focus of agile development is producing high quality software in a time frame that
maximizes its value to the business.
 Any task might be completed by any team member or a pair of team members
 Team takes the responsibility of all kinds of testing tasks, such as automating
tests and manual exploratory testing
© Mahindra Satyam 2011
23
Agile Testing –Roles and Activities
Customer Team
• Includes business experts, product owners, domain
experts, product managers, business analysts, Subject
Matter experts
• Customer team writes the stories or feature sets that the
developer team delivers
• They communicate and collaborate with the developer
team through out each iteration
• Testers are integral part of the customer team helping
elicit requirements and examples and helping the
customers express their requirements as tests, make
sure the tests pass, and make sure that adequate
regression tests are automated

Developer Team
• Involved in delivering code
• Discourage specialized roles on the teams and
encourage all team members to transfer their skills to
other members as much as possible
• Testers are also on the developer team

Interaction of roles

© Mahindra Satyam 2011
24

Programmer

Tester

Domain Expert
How Agile Testing is different?

I1

Requirements

I2

I3

I4

Software
Specifications

E
D
C

Code
C

Testing

A

Release

© Mahindra Satyam 2011
25

B

A

B

A

D
C
B

A

B
Traditional Vs Agile Testing
 In water fall model, testing happens towards the end, right before release
 It appears that there is as much time for testing as coding –but in reality it is
not the case –Testing gets squished because coding takes longer time than
expected

 Requirements are taken as inputs and tests are created from a requirement
document

 Agile is incremental with intermediate releases
 Testers test each increment of coding as soon as it is finished (An iteration can
be as short as one week or one month)

 Team builds and tests little bit of code, make sure that it works correctly and
then moves on to the next piece of requirements that need to be built.

 A story is not “done” until it has been tested
 One team might be dedicated to a single project or might be part of another
project

 Tests normally created by business analysts before anyone ever thought of
writing a line of code. It is collaborative effort.
© Mahindra Satyam 2011
26
Ten Principles for Agile Tester
Agile Tester is a professional tester who embraces change,
collaborates well with both development and business team
• Agile testers tend to have good technical skills
• collaborate with others to automate tests, are also experienced exploratory testers
• better understand customer‟s requirements

10 Principles important for agile testers:
• Provide continuous feedback: Feedback helps the team in removing impediments
• Deliver value to the customer: Tester helps the team in limiting the scope and recognizes impact of
cool features to the story
• Enable face to face communication: Any time there is a question about how a feature should work,
tester can pull in a programmer and a business expert to talk about it.
• Have courage: It is a core value in XP such as test automation; continuous integration allow the
team. We need courage to let ourselves fail, learn quickly from that; allow others to make
mistakes, to seek help –when we‟ve blown up an iteration because we didn‟t get a stable build, we
will start thinking of ways to ensure it does not happen again
• Keep it simple: Take a simple approach to ensuring that the software meets requirements
• Practice continuous improvement
• Respond to change
• Self organize
• Focus on people
• Enjoy
© Mahindra Satyam 2011
27
Thank you

mahindrasatyam.com
Safe Harbor
This document contains forward-looking statements within the meaning of Section 27A of the Securities Act of
1933, as amended, and Section 21E of the Securities Exchange Act of 1934, as amended. The forward-looking
statements contained herein are subject to certain risks and uncertainties that could cause actual results to differ
materially from those reflected in the forward-looking statements. Mahindra Satyam undertakes no duty to
update any forward-looking statements.

© Mahindra Satyam 2011
28

More Related Content

DOCX
Sdlc overview
PDF
Agile method
PPTX
Agile versus waterfall
PPT
SDLC Models and Their Implementation
PDF
Agile Model & Methodology
PPTX
Waterfall Methodology
PPTX
Agile methodology
Sdlc overview
Agile method
Agile versus waterfall
SDLC Models and Their Implementation
Agile Model & Methodology
Waterfall Methodology
Agile methodology

What's hot (20)

PPT
Waterfall model
PDF
Agile model
PDF
Effort Distribution on Waterfall and Agile
PPTX
SDLC
PDF
Agile Methodology - Software Engineering
PPTX
SDLC MODEL
PDF
Overview of SDLC - Waterfall, Agile, and more
PPTX
Introduction of sdlc
PPTX
Comparision between waterfall model and agile model
PPTX
SDLC Smashup
PPTX
Waterfall Model
PPTX
Agile Development Method
PPT
Agile model in software testing
PPTX
Agile methodology
PDF
Software Development with Agile Waterfall Hybrid Method
PPSX
SDLC-Waterfall-Model
PPTX
Agile Model for Beginner’s
PPT
SDLC
PPTX
PPTX
Waterfall model
Waterfall model
Agile model
Effort Distribution on Waterfall and Agile
SDLC
Agile Methodology - Software Engineering
SDLC MODEL
Overview of SDLC - Waterfall, Agile, and more
Introduction of sdlc
Comparision between waterfall model and agile model
SDLC Smashup
Waterfall Model
Agile Development Method
Agile model in software testing
Agile methodology
Software Development with Agile Waterfall Hybrid Method
SDLC-Waterfall-Model
Agile Model for Beginner’s
SDLC
Waterfall model
Ad

Similar to sdlc or Software Development LifeCycle (20)

PPTX
Software Engineering-Process Models.pptx
PDF
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
DOCX
Ch 02 s.e software process models 1
PPT
SW Development Methodologies
PPT
Chapter 1- Introduction to software engineering for CS.ppt
PPT
Chapter 1- Introduction for software.ppt
PDF
Software development life cycle (sdlc) phases.pdf
PPTX
Lesson 2 introduction in computing
PPTX
Presentation of waterfall model
PPTX
software development life cycle(SDLC)
PPTX
4_59247024118127714222222222222222255.pptx
PDF
Ijetcas14 545
PPTX
SE-03.pptx
PPTX
Software Design Architecture SDA SDLC DETAILS
PDF
Software Engineering Perspective and Specialized Process Models
PPTX
SOFTWARE ENGINEERING FOR BEGINNERS UNIT 1.pptx
PPTX
Software Development Life Cycle (SDLC )
PDF
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
PPTX
Scrum in IT Industry Part1
Software Engineering-Process Models.pptx
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
Ch 02 s.e software process models 1
SW Development Methodologies
Chapter 1- Introduction to software engineering for CS.ppt
Chapter 1- Introduction for software.ppt
Software development life cycle (sdlc) phases.pdf
Lesson 2 introduction in computing
Presentation of waterfall model
software development life cycle(SDLC)
4_59247024118127714222222222222222255.pptx
Ijetcas14 545
SE-03.pptx
Software Design Architecture SDA SDLC DETAILS
Software Engineering Perspective and Specialized Process Models
SOFTWARE ENGINEERING FOR BEGINNERS UNIT 1.pptx
Software Development Life Cycle (SDLC )
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
Scrum in IT Industry Part1
Ad

More from Jyothi Vbs (18)

PDF
Kidney book-in-telugu
PDF
Shri anjaneya dhadakam_telugu
PDF
Aditya hrudayam-in-telugu
DOCX
Vratam
PDF
Lalitha sahasra namamulu_telugu
PDF
Telugu strotras
PDF
Stotrams
PDF
Hanuman dandakam
PDF
Bilvaashtakam in-telugu
PDF
Shri anjaneya dhadakam_telugu
PPT
SDLC or Software Development Life Cycle
PPT
2.5 gui
PPTX
Completed slides
PPT
20100310 liwen-waterfall (1)
DOCX
21 patra with telugu names and mantra for vinayaka chavithi
PPTX
Warren buffet principles & philosophy
PPTX
Move forward in life life is yours rightway to achieve and win
PPTX
Slides1 - testing
Kidney book-in-telugu
Shri anjaneya dhadakam_telugu
Aditya hrudayam-in-telugu
Vratam
Lalitha sahasra namamulu_telugu
Telugu strotras
Stotrams
Hanuman dandakam
Bilvaashtakam in-telugu
Shri anjaneya dhadakam_telugu
SDLC or Software Development Life Cycle
2.5 gui
Completed slides
20100310 liwen-waterfall (1)
21 patra with telugu names and mantra for vinayaka chavithi
Warren buffet principles & philosophy
Move forward in life life is yours rightway to achieve and win
Slides1 - testing

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
PPTX
Big Data Technologies - Introduction.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Electronic commerce courselecture one. Pdf
PDF
KodekX | Application Modernization Development
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
Big Data Technologies - Introduction.pptx
cuic standard and advanced reporting.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
Machine learning based COVID-19 study performance prediction
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

sdlc or Software Development LifeCycle

  • 1. Day 2 Testing Throughout SDLC © Mahindra Satyam 2011
  • 2. Learning Objectives  Software Development Life Cycle  Software Development Models  Waterfall model  V-model (Sequential Development Model)  Iterative-incremental Development Model  Agile Methodology © Mahindra Satyam 2011 2
  • 3. Software Development Life Cycle  The Software Development Life Cycle is a step-by-step process involved in the development of a software product.  The whole process is generally classified into a set of steps and a specific operation will be carried out in each of the steps.  The basic classification of the whole process is as follows:  Initial  Analysis  Design  Coding  Testing  Maintenance Initial: • The main aim of the initial phase is requirements gathering. • The responsible person is “BA – Business Analyst” • The outcome document name is “BRS – Business Requirements Specification”. © Mahindra Satyam 2011 3
  • 4. Contd.. Analysis: • In this phase requirements are analyzed for the feasibility of implementation. • Planning the project, Resource estimation, Schedule preparation, project prototype will takes place. • The outcome document name is “SRS – System Requirements Specification”. • At the end of this phase, both project plan and test plan documents are delivered. Design: • • • • • The aim is to create the architecture of the total system(including database design). Dividing the system into no. of module and sub-modules. Preparing Data-flow diagrams, Control-flow diagrams, Use cases. Designing Database The outcome document name is “TDD – Technical Design Document”. Coding: • In this phase, programmers prepares/write the code for given specification in the chosen programming language. • The outcome is “Source code”. © Mahindra Satyam 2011 4
  • 5. Contd.. Testing: • In this phase, testing team will execute the prepared test cases on the given build/system. • Main aim is, to verify that the given system working as per client requirements. • If test fails, they will raise an incident. • The outcome documents are: Test Cases, Incidents. Maintenance: • • • • In this phase, the system deployed into the client‟s environment. Any issue raised by client, environmental problems are handled. Requirements change requests are handled Maintenance is made up of: • Corrective maintenance • Ex: fixing customer-reported problems • Adaptive maintenance • Ex: making the software run on a new version of an OS or Database. • Preventive maintenance • Ex: changing the application program code to avoid a potential security hole in an OS code © Mahindra Satyam 2011 5
  • 8. Software Development Models – Waterfall model Waterfall Model Requirements  In "The Waterfall" approach, the whole process of software development is divided into separate process phases. Design  All these phases are cascaded to each other so that second phase is started as and when defined set of goals are achieved for first phase and it is signed off, so the name "Waterfall Model". Code  All the methods and processes Testing undertaken in Waterfall Model are more visible. Release © Mahindra Satyam 2011 8
  • 9. Contd.. Advantages Disadvantages  It is the simplest software process  All requirements must be known model in terms of complexity and ease of implementation. As you know, it is nothing but common sense. upfront  Jumping back and forth between two or more phases is not possible.  The next phase can be reached only  This model is extremely easy to after the previous one has been completed. understand and therefore, is implemented at various project management levels and in a number of fields (not just software development).  Bugs and errors in the code cannot be discovered until and unless the testing phase is reached. This can lead to a lot of wastage of time and other precious resources.  It employs a systematic, orthodox method of project development and delivery.  Not suitable for projects wherein the project requirements are dynamic or constantly changing. © Mahindra Satyam 2011 9
  • 10. V -Model © Mahindra Satyam 2011
  • 12. Contd..  A framework to describe the software development lifecycle activities from requirements specification to maintenance. The V-model illustrates how testing activities can be integrated into each phase of the software development lifecycle.  The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.  Testing helps to ensure that the work-products are being developed in the right way (verification) and that the product will meet the user needs (validation). Verification • Checks that the work-product meets the requirements set out for it. • Verification helps to ensure that we are building the product in the right way. Validation • Checks that the behavior of the work-product matches the customer needs as defined for the project. • Validation helps to ensure that we are building the right product as far as the users are concerned. © Mahindra Satyam 2011 12
  • 13. Contd.. V-Model Objectives: Minimization of Project Risks Improvement and Guarantee of Quality Reduction of Total Cost over the Entire Project and System Life Cycle Improvement of Communication between all Stakeholders © Mahindra Satyam 2011 13
  • 14. Contd.. Advantages Limitations  The users of the V-Model participate in  The organization and execution of     the development and maintenance of the V-Model. A change control board publicly maintains the V-Model. The change control board meets once a year and processes all received change requests on The V-Model. At each project start, the V-Model can be tailored into a specific project V-Model, because the V-Model is project independent. It provides concrete assistance on how to implement an activity and its work steps, defining explicitly the events needed to complete a work step: each activity schema contains instructions, recommendations and detailed explanations of the activity. operation, maintenance, repair and disposal of the system are not covered by the V-Model. However, planning and preparation of a concept for these tasks are regulated in the V-Model.  The V-Model addresses software development within a project rather than a whole organization. © Mahindra Satyam 2011 14
  • 16. Iterative-Incremental Model  This is one where the requirements do not need to be fully defined before coding can start. Instead, a working version of the product is built, in a series of stages, or iterations - hence the name iterative or incremental development. © Mahindra Satyam 2011 16
  • 17. Contd..  An Iterative model for development has fewer steps those are:  1) Define Iteration Requirements  2) Build Iteration  3) Test Iteration  This type of development is often referred to as cyclical - we go „round the development cycle a number of times‟, within the project.  Example: – Assuming a development of a social networking website with parts like member registration, sign in, forgot password, member profile, search members, friends list, blog, blog search, photos, photo search and messaging.  Development: – First iteration comprising of member registration, sign in, member profile and search members. – The second iteration can comprise of friends list, blog, blog search. – The third iteration can comprise of photos, photo search, messaging and forgot password. © Mahindra Satyam 2011 17
  • 18. Contd..  Drawbacks:  The lack of formal documentation makes it difficult to test.  The working environment may be such that developers make any changes required, without formally recording them.  The amount of testing required to ensure that implementation of the changes does not cause unintended changes to other parts of the software (this is called regression testing). © Mahindra Satyam 2011 18
  • 20. What is Agile Testing ? –Agile values Core value1: Individuals and interactions over processes and tools: • Undocumented process with good interactions among the stakeholders, than a documented process with less interactions Agile Values (Agile Manifesto) How it is different? Roles and Activities Core value 2: Working software over comprehensive documentation: • Running code is ruthlessly honest Whole team approach Core value 3: Customer collaboration over contract negotiation: • Customer is part of development process; it is collaboration in decision meeting, speed of communication and individual's connect Core value 4: Respond to change over following a plan: • Rather than focusing on outdated plan, deal with changing realities © Mahindra Satyam 2011 20
  • 21. Water fall model –Success factors Complexity = f( development+ target) environment variables Successful: The system is useful when it is delivered © Mahindra Satyam 2011 21
  • 22. Agile – Success factors Risk reduction: analyzing, prioritizing and attacking the top risks in each iteration Walker Royce, Software project management: A unified framework, 1998, AW © Mahindra Satyam 2011 22
  • 23. What is Agile Testing –Meaning whole Team approach  Business facing tests –tests that describe customer‟s desired features and functionalities  It includes functional, system, load, performance, stress, security, usability ..  Agile testing –does not mean testing on an agile project. Testing is inline with valuing working software and responding to change  In Agile not only testers or a quality assurance team own the responsibility for quality –but entire team  We just don‟t think of departments -rather the skills and resources we need to deliver the best possible product.  Business facing tests –tests that describe customer‟s desired features and functionalities  Focus of agile development is producing high quality software in a time frame that maximizes its value to the business.  Any task might be completed by any team member or a pair of team members  Team takes the responsibility of all kinds of testing tasks, such as automating tests and manual exploratory testing © Mahindra Satyam 2011 23
  • 24. Agile Testing –Roles and Activities Customer Team • Includes business experts, product owners, domain experts, product managers, business analysts, Subject Matter experts • Customer team writes the stories or feature sets that the developer team delivers • They communicate and collaborate with the developer team through out each iteration • Testers are integral part of the customer team helping elicit requirements and examples and helping the customers express their requirements as tests, make sure the tests pass, and make sure that adequate regression tests are automated Developer Team • Involved in delivering code • Discourage specialized roles on the teams and encourage all team members to transfer their skills to other members as much as possible • Testers are also on the developer team Interaction of roles © Mahindra Satyam 2011 24 Programmer Tester Domain Expert
  • 25. How Agile Testing is different? I1 Requirements I2 I3 I4 Software Specifications E D C Code C Testing A Release © Mahindra Satyam 2011 25 B A B A D C B A B
  • 26. Traditional Vs Agile Testing  In water fall model, testing happens towards the end, right before release  It appears that there is as much time for testing as coding –but in reality it is not the case –Testing gets squished because coding takes longer time than expected  Requirements are taken as inputs and tests are created from a requirement document  Agile is incremental with intermediate releases  Testers test each increment of coding as soon as it is finished (An iteration can be as short as one week or one month)  Team builds and tests little bit of code, make sure that it works correctly and then moves on to the next piece of requirements that need to be built.  A story is not “done” until it has been tested  One team might be dedicated to a single project or might be part of another project  Tests normally created by business analysts before anyone ever thought of writing a line of code. It is collaborative effort. © Mahindra Satyam 2011 26
  • 27. Ten Principles for Agile Tester Agile Tester is a professional tester who embraces change, collaborates well with both development and business team • Agile testers tend to have good technical skills • collaborate with others to automate tests, are also experienced exploratory testers • better understand customer‟s requirements 10 Principles important for agile testers: • Provide continuous feedback: Feedback helps the team in removing impediments • Deliver value to the customer: Tester helps the team in limiting the scope and recognizes impact of cool features to the story • Enable face to face communication: Any time there is a question about how a feature should work, tester can pull in a programmer and a business expert to talk about it. • Have courage: It is a core value in XP such as test automation; continuous integration allow the team. We need courage to let ourselves fail, learn quickly from that; allow others to make mistakes, to seek help –when we‟ve blown up an iteration because we didn‟t get a stable build, we will start thinking of ways to ensure it does not happen again • Keep it simple: Take a simple approach to ensuring that the software meets requirements • Practice continuous improvement • Respond to change • Self organize • Focus on people • Enjoy © Mahindra Satyam 2011 27
  • 28. Thank you mahindrasatyam.com Safe Harbor This document contains forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Securities Exchange Act of 1934, as amended. The forward-looking statements contained herein are subject to certain risks and uncertainties that could cause actual results to differ materially from those reflected in the forward-looking statements. Mahindra Satyam undertakes no duty to update any forward-looking statements. © Mahindra Satyam 2011 28