Sunteți pe pagina 1din 10

approaches defined and designed which are used/employed during development process

of software, these approaches are also referred as Software Development Process


Models (e.g. Waterfall model, incremental model, V-model, iterative model, RAD
model, Agile model, Spiral model, Prototype model etc.). Each process model follows
a particular life cycle in order to ensure success in process of software
development.

Software life cycle models describe phases of the software cycle and the order in
which those phases are executed. Each phase produces deliverables required by the
next phase in the life cycle. Requirements are translated into design. Code is
produced according to the design which is called development phase. After coding
and development the testing verifies the deliverable of the implementation phase
against requirements. The testing team follows Software Testing Life Cycle (STLC)
which is similar to the development cycle followed by the development team.

There are following six phases in every Software development life cycle model:

Requirement gathering and analysis


Design
Implementation or coding
Testing
Deployment
Maintenance

1) Requirement gathering and analysis: Business requirements are gathered in this


phase. This phase is the main focus of the project managers and stake holders.
Meetings with managers, stake holders and users are held in order to determine the
requirements like; Who is going to use the system? How will they use the system?
What data should be input into the system? What data should be output by the
system? These are general questions that get answered during a requirements
gathering phase. After requirement gathering these requirements are analyzed for
their validity and the possibility of incorporating the requirements in the system
to be development is also studied.

Finally, a Requirement Specification document is created which serves the purpose


of guideline for the next phase of the model. The testing team follows the Software
Testing Life Cycle and starts the Test Planning phase after the requirements
analysis is completed.

2) Design: In this phase the system and software design is prepared from the
requirement specifications which were studied in the first phase. System Design
helps in specifying hardware and system requirements and also helps in defining
overall system architecture. The system design specifications serve as input for
the next phase of the model.

In this phase the testers comes up with the Test strategy, where they mention what
to test, how to test.

3) Implementation / Coding: On receiving system design documents, the work is


divided in modules/units and actual coding is started. Since, in this phase the
code is produced so it is the main focus for the developer. This is the longest
phase of the software development life cycle.

4) Testing: After the code is developed it is tested against the requirements to


make sure that the product is actually solving the needs addressed and gathered
during the requirements phase. During this phase all types of functional testing
like unit testing, integration testing, system testing, acceptance testing are done
as well as non-functional testing are also done.
5) Deployment: After successful testing the product is delivered / deployed to the
customer for their use.

As soon as the product is given to the customers they will firs

t do the beta testing. If any changes are required or if any bugs are caught, then
they will report it to the engineering team. Once those changes are made or the
bugs are fixed then the final deployment will happen.

6) Maintenance: Once when the customers starts using the developed system then the
actual problems comes up and needs to be solved from time to time. This process
where the care is taken for the developed product is known as maintenance.

ISTQB Exam Certification

Home
Blog
ISTQB Foundation Level
Agile Testing Tutorial
2017 ISTQB Exam Dates
ISTQB Dumps Mock Tests
Contact Us
Privacy Policy
Terms of Use
Disclaimer
About Us
Write for us

Previous Topic
Next Topic
What is Agile methodology? Examples, when to use it, advantages and disadvantages

710
81 87

Agile software development methodology is an process for developing software (like


other software development methodologies Waterfall model, V-Model, Iterative
model etc.) However, Agile methodology differs significantly from other
methodologies. In English, Agile means ability to move quickly and easily and
responding swiftly to change this is a key aspect of Agile software development
as well.
Topics covered

Brief overview of Agile Methodology


Example of Agile Software Development
Difference between Agile model and Non-Agile models
When to use Agile and Non-Agile models
Advantages of Agile Methodology
Disadvantages of the Agile Methodology

Brief overview of Agile Methodology

In traditional software development methodologies like Waterfall model, a


project can take several months or years to complete and the customer may not get
to see the end product until the completion of the project.
At a high level, non-Agile projects allocate extensive periods of time for
Requirements gathering, design, development, testing and User Acceptance Testing,
before finally deploying the project.
In contrast to this, Agile projects have Sprints or iterations which are
shorter in duration (Sprints/iterations can vary from 2 weeks to 2 months) during
which pre-determined features are developed and delivered.
Agile projects can have one or more iterations and deliver the complete product
at the end of the final iteration.

Example of Agile software development

Example: Google is working on project to come up with a competing product for MS


Word, that provides all the features provided by MS Word and any other features
requested by the marketing team. The final product needs to be ready in 10 months
of time. Let us see how this project is executed in traditional and Agile
methodologies.

In traditional Waterfall model

At a high level, the project teams would spend 15% of their time on gathering
requirements and analysis (1.5 months)
20% of their time on design (2 months)
40% on coding (4 months) and unit testing
20% on System and Integration testing (2 months).
At the end of this cycle, the project may also have 2 weeks of User Acceptance
testing by marketing teams.
In this approach, the customer does not get to see the end product until the
end of the project, when it becomes too late to make significant changes.

The image below shows how these activities align with the project schedule in
traditional software development.

Agile versus traditional software development methodologies

With Agile development methodology

In the Agile methodology, each project is broken up into several Iterations.


All Iterations should be of the same time duration (between 2 to 8 weeks).
At the end of each iteration, a working product should be delivered.
In simple terms, in the Agile approach the project will be broken up into 10
releases (assuming each iteration is set to last 4 weeks).
Rather than spending 1.5 months on requirements gathering, in Agile software
development, the team will decide the basic core features that are required in the
product and decide which of these features can be developed in the first iteration.
Any remaining features that cannot be delivered in the first iteration will be
taken up in the next iteration or subsequent iterations, based on priority.
At the end of the first iterations, the team will deliver a working software
with the features that were finalized for that iteration.
There will be 10 iterations and at the end of each iteration the customer is
delivered a working software that is incrementally enhanced and updated with the
features that were shortlisted for that iteration.

The iteration cycle of an Agile project is shown in the image below.

Agile Methodology development-what is agile

gile software Development Methodology

This approach allows the customer to interact and work with functioning software at
the end of each iteration and provide feedback on it. This approach allows teams to
take up changes more easily and make course corrections if needed. In the Agile
approach, software is developed and released incrementally in the iterations. An
example of how software may evolve through iterations is shown in the image below.

Agile Iterative Development

Agile methodology gives more importance to collaboration within the team,


collaboration with the customer, responding to change and delivering working
software.

Agile development has become common place in IT industry. In a recent survey over
52% of respondents said that their company practiced Agile development in one form
or another. Irrespective of your role in the organization, it has become essential
to understand how Agile development works and how it differs from other forms of
software development.

In traditional approach each job function does its job and hands over to the next
job function. The previous job functions have to signoff before it is handed over
the next job function authenticating that the job is full and complete in all
aspects. For example, Requirement gathering is completed and handed over to design
phase and it is subsequently handed over to development and later to testing and
rework. Each job function is a phase by itself.

In Agile way of working, each feature is completed in terms of design, development,


code, testing and rework, before the feature is called done. There are no separate
phases and all the work is done in single phase only.
Difference between Agile model and Non-Agile models
Parameters

Agile Model

Non-Agile Models
Approach of this methodology This methodology is very flexible and adjustable and
can adapt to the project needs. This methodology is not as flexible as Agile
model and its tough to accommodate changes in the project.
Measurement of Success The success of the project in Agile model is measured by
the Business value delivered. In this methodology the success of the project
is measured by the Conformation to plan.
Size of the Project The Project size is usually small in Agile model. However
larger projects can also be handled using the Scaled Agile Framework (SAFe).
The project size is Large in non- Agile models.
Style of Management The style of management in Agile model is not centralized.
It is distributed among the team members. The management style in the non-
Agile models is dictatorial. Only one person is the decision maker and rest of the
people follows him.
Ability to adapt to change In Agile model the changes are accepted and adapted
as per the project needs. But in non-Agile models the changes are not accepted
easily in the later stages of the development.
Documentation required Less documentation is required in Agile. More documentation
is required in non-Agile models.
Importance of In Agile model more emphasis is given to the people that means
its People- Oriented. In non-Agile models the more importance is given to the
process hence its Process- Oreinted.
Cycles or iterations Agile methodology has many cycles or iterations which is
also known as Sprints. But, in Non-Agile methodology the cycles are limited.
Planning in Advance There is minimal upfront planning in Agile methodology.
In Non-Agile models the planning should be complete before the development
starts.
Revenue In Agile method the return on investment is early in the project cycle.
In non-Agile methods the return on investment is at the end of the project.
Size of the team The size of the team in Agile methodology is usually small and
creative. But in Non-Agile models the team size is large.
When to use Agile and Non-Agile models
Project Attributes Agile Model Non-Agile Model
Requirement of the Project Requirements in Agile model can change as per the
customer requirement. Sometimes requirements are not very clear. In Non-Agile
models the requirements are very clear before entering into the development phases.
Any change in the requirement is not easily accepted during the development phases.
Size of the Project The Project size is small in Agile model hence small team
is required. But in Non-Agile models the Project size is usually big hence big
team is required.
Design of the Project In Agile model the architecture is made as per the current
requirements but is designed to be flexible. In Non-Agile models the
architecture is made as per the current requirements as well as for future
requirements.
Planning and Control of the Project In Agile model the planning of the
project is Internalized and has qualitative control. But in Non-Agile models the
plans are documented properly and have quantitative control.
Type of Customers Agile methodology is followed by the collaborated,
dedicated collated and knowledgeable customers. In Non-Agile models the
customers are of Contract provisions.
Developers required In Agile model the developers should be knowledgeable,
analytically strong, collated and collaborative. In Non-Agile models the
developers should be more Plan Oriented.
Refactoring In Agile model refactoring is not costly. But in Non-Agile
models the refactoring is very costly.
Risks involved Usually in Agile models the chances of occurrence of unknown
risks are more which can have major impact in the project. In Non-Agile models the
risks are understood clearly and the impact of the risk in the project is very
less.
Advantages of Agile Methodology

In Agile methodology the delivery of software is unremitting.


The customers are satisfied because after every Sprint working feature of the
software is delivered to them.
Customers can have a look of the working feature which fulfilled their
expectations.
If the customers has any feedback or any change in the feature then it can be
accommodated in the current release of the product.
In Agile methodology the daily interactions are required between the business
people and the developers.
In this methodology attention is paid to the good design of the product.
Changes in the requirements are accepted even in the later stages of the
development.

Disadvantages of the Agile Methodology

In Agile methodology the documentation is less.


Sometimes in Agile methodology the requirement is not very clear hence its
difficult to predict the expected result.
In few of the projects at the starting of the software development life cycle
its difficult to estimate the actual effort required.
The projects following the Agile methodology may have to face some unknown
risks which can affect the development of the project.

710
81 87
Download 200+ Software Testing Interview Questions and Answers PDF
Get the job you want
Take your career to the next level
PDF will be sent by email
Please enter correct email id

Filed Under: ISTQB Agile Testing Certification Tagged With: advantages pros of
agile methodology, Agile development, agile development methodology, agile
development process, agile environment, agile methodology, agile methodology
tutorial, agile methods, Agile model, agile overview, agile process, agile
programming, Agile project management, agile project management with scrum, agile
scrum methodology, agile sdlc, agile software development, agile testing, agile vs
traditional, difference between agile and non-agile, disadvantage cons of agile,
iterative process, scrum agile, scrum meeting, scrum methodology, scrum process,
scrum project management, what is agile, what is agile project management, what is
scrum, when to use agile
Previous Topic
Next Topic
Agile Testing Study Material
Chapter 1: Agile Software Development
Agile Methodology - When to use it, advantages, disadvantages
Agile Software Development - Agile Manifesto
Whole Team Approach
Early and Frequent Feedback
Agile Software Development Approaches
What is a Scrum Master, Product Owner - Roles and Responsibilities
User Story Template in Agile software
Retrospective Meeting or Restrospection
Continuous Integration
Release and Iteration Planning
Chapter 2: Agile Testing Principles, Practices and Processes
Agile Testing and Development Activities
Project Work Products
Test Levels in Agile
Testing and Configuration Management
Independent testing options
Communicating Test Status, Progress and Product Quality
Managing Regression Risk, Evolving Manual and automated Test Cases
Agile Testing Methodology - TDD, BDD
Test Pyramid and Agile Testing Quadrants
Role of a Tester
Chapter 3: Agile Testing Methods, Techniques and Tools
Sprint planning in Agile project management
Assessing Quality Risks in Agile methodology
Planning Poker - Effort estimation in Agile
Agile Testing Techniques
Definition of Done - Test Levels
Acceptance Test Driven Development
Agile Exploratory Testing
Tools in Agile Projects
Build and Distribution Tools
Like Us? Share Us!

Follow us on Google +
Performance Testing
JMeter Tutorial

LoadRunner Tutorial
Follow us on Google+
Recent Posts
What is a Test Case?
What is Sanity testing?
Big Data Testing Complete beginners guide for Software Testers
What is Ad-hoc testing? Types, Advantages and Disadvantages
What is Software Testing Life Cycle (STLC)?

Popular Posts

Mobile app testing checklist


What is Waterfall model? When to use it?
SDLC
What is V-model? When to use it?
What is Spiral model? When to use it?
Agile model - When to use it?

Categories

Fundamentals of testing (15)


ISTQB Agile Testing Certification (32)
ISTQB Certification (14)
Software Testing (15)
Static techniques (13)
Test design techniques (29)
Test Management (22)
Testing throughout the testing life cycle (53)
Tool support for testing (22)

All content is copyright of http://ISTQBExamCertification.com


AddThis Sharing Sidebar
Share to Facebook
Share to Google+
Share to LinkedIn
Share to Email
Share to Twitter
ISTQB Exam Certification

Home
Blog
ISTQB Foundation Level
Agile Testing Tutorial
2017 ISTQB Exam Dates
ISTQB Dumps Mock Tests
Contact Us
Privacy Policy
Terms of Use
Disclaimer
About Us
Write for us

ISTQB Exam Certification Home Blog ISTQB Foundation Level Agile Testing Tutorial
2017 ISTQB Exam Dates ISTQB Dumps Mock Tests Contact Us Privacy Policy Terms of
Use Disclaimer About Us Write for us Previous Topic Next Topic What is Agile
methodology? Examples, when to use it, advantages and disadvantages 710 81 87 Agile
software development methodology is an process for developing software (like other
software development methodologies Waterfall model, V-Model, Iterative model
etc.) However, Agile methodology differs significantly from other methodologies. In
English, Agile means ability to move quickly and easily and responding swiftly to
change this is a key aspect of Agile software development as well. Topics covered
Brief overview of Agile Methodology Example of Agile Software Development
Difference between Agile model and Non-Agile models When to use Agile and Non-Agile
models Advantages of Agile Methodology Disadvantages of the Agile Methodology Brief
overview of Agile Methodology In traditional software development methodologies
like Waterfall model, a project can take several months or years to complete and
the customer may not get to see the end product until the completion of the
project. At a high level, non-Agile projects allocate extensive periods of time for
Requirements gathering, design, development, testing and User Acceptance Testing,
before finally deploying the project. In contrast to this, Agile projects have
Sprints or iterations which are shorter in duration (Sprints/iterations can vary
from 2 weeks to 2 months) during which pre-determined features are developed and
delivered. Agile projects can have one or more iterations and deliver the complete
product at the end of the final iteration. Example of Agile software development
Example: Google is working on project to come up with a competing product for MS
Word, that provides all the features provided by MS Word and any other features
requested by the marketing team. The final product needs to be ready in 10 months
of time. Let us see how this project is executed in traditional and Agile
methodologies. In traditional Waterfall model At a high level, the project teams
would spend 15% of their time on gathering requirements and analysis (1.5 months)
20% of their time on design (2 months) 40% on coding (4 months) and unit testing
20% on System and Integration testing (2 months). At the end of this cycle, the
project may also have 2 weeks of User Acceptance testing by marketing teams. In
this approach, the customer does not get to see the end product until the end of
the project, when it becomes too late to make significant changes. The image below
shows how these activities align with the project schedule in traditional software
development. Agile versus traditional software development methodologies With Agile
development methodology In the Agile methodology, each project is broken up into
several Iterations. All Iterations should be of the same time duration (between 2
to 8 weeks). At the end of each iteration, a working product should be delivered.
In simple terms, in the Agile approach the project will be broken up into 10
releases (assuming each iteration is set to last 4 weeks). Rather than spending 1.5
months on requirements gathering, in Agile software development, the team will
decide the basic core features that are required in the product and decide which of
these features can be developed in the first iteration. Any remaining features that
cannot be delivered in the first iteration will be taken up in the next iteration
or subsequent iterations, based on priority. At the end of the first iterations,
the team will deliver a working software with the features that were finalized for
that iteration. There will be 10 iterations and at the end of each iteration the
customer is delivered a working software that is incrementally enhanced and updated
with the features that were shortlisted for that iteration. The iteration cycle of
an Agile project is shown in the image below. Agile Methodology development-what is
agile gile software Development Methodology This approach allows the customer to
interact and work with functioning software at the end of each iteration and
provide feedback on it. This approach allows teams to take up changes more easily
and make course corrections if needed. In the Agile approach, software is developed
and released incrementally in the iterations. An example of how software may evolve
through iterations is shown in the image below. Agile Iterative Development Agile
methodology gives more importance to collaboration within the team, collaboration
with the customer, responding to change and delivering working software. Agile
development has become common place in IT industry. In a recent survey over 52% of
respondents said that their company practiced Agile development in one form or
another. Irrespective of your role in the organization, it has become essential to
understand how Agile development works and how it differs from other forms of
software development. In traditional approach each job function does its job and
hands over to the next job function. The previous job functions have to signoff
before it is handed over the next job function authenticating that the job is full
and complete in all aspects. For example, Requirement gathering is completed and
handed over to design phase and it is subsequently handed over to development and
later to testing and rework. Each job function is a phase by itself. In Agile way
of working, each feature is completed in terms of design, development, code,
testing and rework, before the feature is called done. There are no separate phases
and all the work is done in single phase only. Difference between Agile model and
Non-Agile models Parameters Agile Model Non-Agile Models Approach of this
methodology This methodology is very flexible and adjustable and can adapt to the
project needs. This methodology is not as flexible as Agile model and its tough to
accommodate changes in the project. Measurement of Success The success of the
project in Agile model is measured by the Business value delivered. In this
methodology the success of the project is measured by the Conformation to plan.
Size of the Project The Project size is usually small in Agile model. However
larger projects can also be handled using the Scaled Agile Framework (SAFe). The
project size is Large in non- Agile models. Style of Management The style of
management in Agile model is not centralized. It is distributed among the team
members. The management style in the non-Agile models is dictatorial. Only one
person is the decision maker and rest of the people follows him. Ability to adapt
to change In Agile model the changes are accepted and adapted as per the project
needs. But in non-Agile models the changes are not accepted easily in the later
stages of the development. Documentation required Less documentation is required in
Agile. More documentation is required in non-Agile models. Importance of In Agile
model more emphasis is given to the people that means its People- Oriented. In
non-Agile models the more importance is given to the process hence its Process-
Oreinted. Cycles or iterations Agile methodology has many cycles or iterations
which is also known as Sprints. But, in Non-Agile methodology the cycles are
limited. Planning in Advance There is minimal upfront planning in Agile
methodology. In Non-Agile models the planning should be complete before the
development starts. Revenue In Agile method the return on investment is early in
the project cycle. In non-Agile methods the return on investment is at the end of
the project. Size of the team The size of the team in Agile methodology is usually
small and creative. But in Non-Agile models the team size is large. When to use
Agile and Non-Agile models Project Attributes Agile Model Non-Agile Model
Requirement of the Project Requirements in Agile model can change as per the
customer requirement. Sometimes requirements are not very clear. In Non-Agile
models the requirements are very clear before entering into the development phases.
Any change in the requirement is not easily accepted during the development phases.
Size of the Project The Project size is small in Agile model hence small team is
required. But in Non-Agile models the Project size is usually big hence big team is
required. Design of the Project In Agile model the architecture is made as per the
current requirements but is designed to be flexible. In Non-Agile models the
architecture is made as per the current requirements as well as for future
requirements. Planning and Control of the Project In Agile model the planning of
the project is Internalized and has qualitative control. But in Non-Agile models
the plans are documented properly and have quantitative control. Type of Customers
Agile methodology is followed by the collaborated, dedicated collated and
knowledgeable customers. In Non-Agile models the customers are of Contract
provisions. Developers required In Agile model the developers should be
knowledgeable, analytically strong, collated and collaborative. In Non-Agile models
the developers should be more Plan Oriented. Refactoring In Agile model refactoring
is not costly. But in Non-Agile models the refactoring is very costly. Risks
involved Usually in Agile models the chances of occurrence of unknown risks are
more which can have major impact in the project. In Non-Agile models the risks are
understood clearly and the impact of the risk in the project is very less.
Advantages of Agile Methodology In Agile methodology the delivery of software is
unremitting. The customers are satisfied because after every Sprint working feature
of the software is delivered to them. Customers can have a look of the working
feature which fulfilled their expectations. If the customers
has any feedback or any change in the feature then it can be accommodated in the
current release of the product. In Agile methodology the daily interactions are
required between the business people and the developers. In this methodology
attention is paid to the good design of the product. Changes in the requirements
are accepted even in the later stages of the development. Disadvantages of the
Agile Methodology In Agile methodology the documentation is less. Sometimes in
Agile methodology the requirement is not very clear hence its difficult to predict
the expected result. In few of the projects at the starting of the software
development life cycle its difficult to estimate the actual effort required. The
projects following the Agile methodology may have to face some unknown risks which
can affect the development of the project. 710 81 87 Download 200+ Software Testing
Interview Questions and Answers PDF Get the job you want Take your career to the
next level PDF will be sent by email Please enter correct email id Filed Under:
ISTQB Agile Testing Certification Tagged With: advantages pros of agile
methodology, Agile development, agile development methodology, agile development
process, agile environment, agile methodology, agile methodology tutorial, agile
methods, Agile model, agile overview, agile process, agile programming, Agile
project management, agile project management with scrum, agile scrum methodology,
agile sdlc, agile software development, agile testing, agile vs traditional,
difference between agile and non-agile, disadvantage cons of agile, iterative
process, scrum agile, scrum meeting, scrum methodology, scrum process, scrum
project management, what is agile, what is agile project management, what is scrum,
when to use agile Previous Topic Next Topic Agile Testing Study Material
Chapter 1: Agile Software Development Agile Methodology - When to use it,
advantages, disadvantages Agile Software Development - Agile Manifesto Whole Team
Approach Early and Frequent Feedback Agile Software Development Approaches What is
a Scrum Master, Product Owner - Roles and Responsibilities User Story Template in
Agile software Retrospective Meeting or Restrospection Continuous Integration
Release and Iteration Planning Chapter 2: Agile Testing Principles, Practices and
Processes Agile Testing and Development Activities Project Work Products Test
Levels in Agile Testing and Configuration Management Independent testing options
Communicating Test Status, Progress and Product Quality Managing Regression Risk,
Evolving Manual and automated Test Cases Agile Testing Methodology - TDD, BDD Test
Pyramid and Agile Testing Quadrants Role of a Tester Chapter 3: Agile Testing
Methods, Techniques and Tools Sprint planning in Agile project management Assessing
Quality Risks in Agile methodology Planning Poker - Effort estimation in Agile
Agile Testing Techniques Definition of Done - Test Levels Acceptance Test Driven
Development Agile Exploratory Testing Tools in Agile Projects Build and
Distribution Tools Like Us? Share Us! Follow us on Google + Performance Testing
JMeter Tutorial LoadRunner Tutorial Follow us on Google+ Recent Posts What is a
Test Case? What is Sanity testing? Big Data Testing Complete beginners guide for
Software Testers What is Ad-hoc testing? Types, Advantages and Disadvantages What
is Software Testing Life Cycle (STLC)? Popular Posts Mobile app testing checklist
What is Waterfall model? When to use it? SDLC What is V-model? When to use it? What
is Spiral model? When to use it? Agile model - When to use it? Categories
Fundamentals of testing (15) ISTQB Agile Testing Certification (32) ISTQB
Certification (14) Software Testing (15) Static techniques (13) Test design
techniques (29) Test Management (22) Testing throughout the testing life cycle (53)
Tool support for testing (22) All content is copyright of
http://ISTQBExamCertification.com AddThis Sharing Sidebar Share to Facebook Share
to Google+ Share to LinkedIn Share to Email Share to Twitter ISTQB Exam
Certification Home Blog ISTQB Foundation Level Agile Testing Tutorial 2017 ISTQB
Exam Dates ISTQB Dumps Mock Tests Contact Us Privacy Policy Terms of Use
Disclaimer About Us Write for us

S-ar putea să vă placă și