Sie sind auf Seite 1von 17

What is Agile Testing?

The agile testing is a software practice which follows up the principles of agile software
development; it is started from the beginning of the project with continuous integration
between development and testing unlike the waterfall method. It is a continuous
development methodology, where the requirements evolve between the customer and the
self–organizing teams.

How Agile Testing is beneficial?

There are some of the points which will clear that how agile testing is beneficial. Following
are the points:

 In this less documentation is required.


 Through daily meetings the issues can be well determined at earlier stage.
 It saves time and money both.
 It provides regular feedback from the end user.

Basic fundamentals of Agile Testing

Some of the basic fundamentals of Agile Testing are:

 Test documentation reduced– The agile testing reduces the test documentation and
as it reduces the length of the documentation so, it makes the testers to focus on the
test rather than on the details.
 It is not a phase- The team perform testing continuously and through continuous
testing it provides continuous progress.
 Implementation- The agile testing is performed while implementation compare to
other testing methods which is performed after implementation.
 Fixing defects- The defects which are raised during the iteration are fixed within
the same iteration and therefore keeping the code clean.

What are the strategies of Agile Testing?


The agile testing life cycle has four stages:

 Iteration 0 – As this is the first phase among the four stages, and in this stage we
perform the initial setup tasks. This stage includes the identifying of people for
testing, installing the testing tools, etc. Some of the steps included to achieve
Iteration 0 are:

1. Firstly, business case of the project is established.


2. Then, we will establish the boundary conditions and the scope of the project.
3. Then, the key requirements will be outlined of the project and the use cases.
4. After the requirements, risk is identified.
5. And lastly, the cost of estimation and preliminary of project is prepared.

 Construction Iterations – Most of the testing part is performed in this stage. In this
phase, some of the iterations are observed to build an increment of the solution. In
this phase, the team follows the prioritized requirement practice where each
iteration takes the most essential requirement and implements it. The construction
iterations can be divided into two:

1. Investigating testing – It detects the problem that confirmatory team has skipped. In
this, the tester determines the problems in the form of defect stories.
2. Confirmatory testing – In this, it mainly concentrates on verifying that the system
fulfils the intent of stakeholders as described to the team and performed by the
team.

 Transition Phase – In the transition phase, the main purpose of this phase is to
deploy our system successfully into production phase. Some of the activities
included in this phase are training of end users, operational people and support
people. And some are marketing of the user documentation, product release, back
up and restoration.
 Production phase – This is the last stage after the transition phase and in this the
product is moved to the production stage.

Agile Testing Quadrants


The agile testing quadrants help to identify, plan and execute the testing needed by the
team. It separates the whole process into four quadrants and helps to understand how agile
testing is performed.

 Quadrant 1 – The quadrant 1 is associated with Automated testing and includes the
tests such as Unit tests, Web services testing , Component tests, etc. The advantage
of this quadrant is that through these tests it helps to improve the design without
affecting the functionality and improve the quality of the product by means of
proper source code management.
 Quadrant 2 – The quadrant 2 is associated with Automated and Manual testing and
it includes Functional testing, Prototypes, Simulations, etc. It helps to prepare the
right set of questions. It includes the test cases that are business driven and are
implemented to support the team. Its main focus is on the requirements.

 Quadrant 3 – The quadrant 3 is related with manual testing and it includes


Exploratory testing, User Acceptance testing, Alpha/Beta testing, etc. This quadrant
is used to evaluate the product and the use through feedback, demos, through actual
user experience, etc.

 Quadrant 4 – The quadrant 4 is related to Tools Automated and it includes the tests
such as Performance and Load testing, Maintainability, Scalability, Reliability,
Compatibility, etc. This quadrant tests are performed on the basis of priorities that
can be at the beginning of the SDLC phase or later on.
What is Software Development Life Cycle – SDLC?

Software Development Life Cycle is a systematic approach to develop software. It creates a


structure for the developer to design, create and deliver high quality software according to
the requirements of customer or end user. It also provides a methodology for improving the
quality of the desired product. The purpose of SDLC process is to provide help in
producing a product that is cost efficient and of high quality.

Different Stages of Software Development Life Cycle


Stage 1: Planning of Project:

This includes making reasonable estimates of the cost and size of the software product as
compared to the resources at hand.

Stage 2: Analysis & Requirement Gathering

This step includes collecting maximum information from the client about the desired
product. All details and specifications of the product must be discussed with the customer.
The development team analyses the requirements keeping in view the design and coding of
the software. The requirements so gathered are then analyzed for their validity and
possibility of incorporating them into the software system. The aim of requirement analysis
is to capture the detail of each requirement so that everyone understands how each
requirement is to be worked.

Stage 3: Design

In this phase, program developer analyses whether software can be prepared to fulfill all the
requirements of the end user. Also he checks that the project is financially, practically and
technologically feasible for the customer. After that best design approach is selected for the
product. The developer selects the program language like Java, Oracle etc. which will be
best suited for the software. It is also like the engineering representation of the product to
be built.

Stage 4: Development or Implementation

It means translating the design into a computer readable language. Development team does
the actual coding based on designed software and writes unit tests for each component to
test the new codes written by them. The developer may show the work done to the business
analysts and the modification or enhancements may be required. This is the longest phase
of SDLC.

Stage 5: Testing

This is the last phase of SDLC before the software is delivered to the customer. The job of
test team is to test the system against the requirements. The aim of tester is to find out the
gaps or defects within the system and also to verify that the software works as expected
according to the requirements. It includes Unit testing, Integration testing and System
testing.

Stage 6: Deployment

Once the Product is tested and ready to deploy, it is released to consumers to use. The size
of the project will determine the complexity of the deployment if required. The users can be
trained on, or aided with the documentation on how to operate the software. A small round
of testing is also performed on production to make sure of any environmental issues and
any impact of new release.

Stage 7: Maintenance

When the customers start using the developed system, 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. The software is maintained timely by updating the code
according to the changes taking place in user end environment or technology.

Different types of Software Development Life Cycle

 Waterfall Model: The waterfall model is a sequential design process, used in


software development processes, in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases of conception, initiation, analysis,
design, construction, testing, production/implementation and maintenance. Learn
More
 Iterative Model: Iterative development is a way of breaking down the software
development of a large application into smaller chunks. In iterative development,
feature code is designed, developed and tested in repeated cycles. Learn More
 Spiral Model:Spiral model is a combination of iterative development process model
and sequential linear development model i.e. waterfall model with very high
emphasis on risk analysis. It allows for incremental releases of the product, or
incremental refinement through each iteration around the spiral. Learn More
 V-Model: In software development, the V-model represents a development process
that may be considered an extension of the waterfall model, and is an example of
the more general V-model. Instead of moving down in a linear way, the process
steps are bent upwards after the coding phase, to form the typical V shape. Learn
More
 Big Bang Model:The Big Bang model is SDLC model where we do not follow any
specific process. The development just starts with the required money and efforts as
the input, and the output is the software developed which may or may not be as per
customer requirement.
 RAD Model: The functional modules are developed simultaneously as prototypes
and are integrated to make the complete product for faster product delivery. The
customer gets early visibility in the software and can provide feedback on design,
delivery, and other requirements. Learn More
 Prototype Model: The basic idea here is that instead of freezing the requirements
before a design or coding can proceed, a throwaway prototype is built to
understand the requirements. This prototype is developed based on the currently
known requirements. Learn More
What is agile methodology

There are many phases of Software Development Life Cycle. Starting with Requirement
Phase, Design Phase, Coding (Development) Phase, Testing Phase, UAT (User Acceptance
Testing)

In this SDLC cycle where does the testing phase start? Actually it start at the beginning
when the requirement gathering starts. QA’s are meant to do the complete analysis of the
requirement including impact analysis. Agile Methodology completely takes care of all
these phases in a very disciplined way.

What is Agile?
Agile in simple terms is to accept the change and implement the same.

What is Agile Methodology?


Agile Methodology is the method that is used worldwide as a process. Agile processes
generally promote a disciplined project management process that encourages frequent
inspection and adaptation, a leadership philosophy that encourages teamwork, self-
organization and accountability, a set of engineering best practices intended to allow for
rapid delivery of high-quality software.

There are different agile methods like SCRUM, Extreme Programming etc. The most
popular method is Scrum. In this article we will understand how the SDLC works with
SCRUM method.

Note: Please read What makes agile development the need of this progressive
technology?

What is Scrum in Agile?


Scrum is a subset of Agile. It is a lightweight process framework for agile development,
and the most widely-used one.

 A “process framework” is a particular set of practices that must be followed in order for a
process to be consistent with the framework. (For example, the Scrum process framework
requires the use of development cycles called Sprints, the XP framework requires pair
programming, and so forth.)
 “Lightweight” means that the overhead of the process is kept as small as possible, to
maximize the amount of productive time available for getting useful work done.
A Scrum process is distinguished from other agile processes by specific concepts and
practices, divided into the three categories of Roles, Artifacts, and Time Boxes.

The actors in Scrum are:

 Product Owner (PO)


 Scrum master
 Team

Product Owner:

Who is Product Owner? The Scrum Product Owner is typically a project’s key
stakeholder. Part of the product owner responsibilities is to have a vision of what he or she
wishes to build, and convey that vision to the scrum team.

Product Owner is one who creates the product backlog. Product backlog has all the feature
details in the form of stories that is to be taken as a part of a sprint. Product Owner breaks
down the feature in the form of stories. Prioritize the stories as per the requirement, and
those are taken in the sprint accordingly.

Scrum Master

What is a Scrum Master? The ScrumMaster is responsible for making sure a Scrum team
lives by the values and practices of Scrum. The ScrumMaster is often considered a coach
for the team, helping the team do the best work it possibly can. The ScrumMaster can also
be thought of as a process owner for the team, creating a balance with the project’s key
stakeholder, who is referred to as the product owner.

The ScrumMaster does anything possible to help the team perform at their highest level.
This involves removing any impediments to progress, facilitating meetings, and doing
things like working with the product owner to make sure the product backlog is in good
shape and ready for the next sprint. The ScrumMaster role is commonly filled by a former
project manager or a technical team leader but can be anyone.

Scrum Team

What/Who is Scrum Team? Scrum teams are cross-functional, including the skills (but
ideally not the job titles) of software engineers, architects, programmers, analysts, QA
experts, testers, UI designers, etc. It is recommended all team members be located in a team
room, and collaborate more intensely than a traditional team.

Story comprises of below points:

1) Story Title – This describes the story in short

2) Story Status – Open, In Progress, Testing, Approved, Reopened, Closed

 Open– new story status


 In Progress– It’s under development
 Testing– It’s in testing phase, bug fixing/retesting are also done in this phase
 Approved– QA approved
 Reopened– PO reopens
 Closed– Approved by PO

3) Story Description – This is section has the complete description about the story

4) Story Points – Team is asked to rate the complexity of the story in the form of story
points. Story points are given to the story in the estimation meeting.

5) Story Priority – PO decides the story priority when to be done in the sprint

6) Acceptance Criteria – As per the acceptance criteria team develops the requirement. PO
before signing off checks whether all the acceptance criteria are met as per the plan.

7) Testing Criteria – QA’s before signing off checks whether all the testing criteria are met
as per the requirement

8) Environment – This section includes the OS, window, browser details, mobile devices
etc.

What is Sprint?
All the activities are carried out in the form of sprints. Sprint period can be defined as 1
month, 2 weeks or 1 week. Depending on the sprint period, the features or functionality are
taken up in the sprint.

Estimation and Sprint Grooming Activities


Estimation Meeting: PO, Scrum master and Team all three are the part of the estimation
meeting. All sits together and estimate the story points. Team does this activity by using
poker cards. Poker cards has different cards with number on it that represent the Fibonacci
series i.e. 1, 1, 2, 3, 5, 8, etc.

Sprint Grooming: PO and Scrum master play major role in this activity. In this meeting
scrum master understands what are the features that are to be developed for the release.
Risk analysis and story prioritization is also part of this activity. This is done one week
prior to the sprint start.

Sprint Planning

PO, Scrum master and Team all three are the part of the sprint planning.This happens on
the zeroth day of the sprint or the first day. All the members involved in this understands
the story and acceptance criteria. The story is breakdown into tasks, and is allocated to the
team members.

During the sprint, If there is any change in requirement, then it is taken as a priority and
accordingly the other story is de-prioritized. The story is breakdown into small tasks like
test case writing, test case review, Updating test case, test case execution, bug retesting etc.

Each tasks has its hour allocation. Once completed, hours are logged against that task with
proper comments.

DURING THE SPRINT :

 First day of the sprint, the team starts their work. Developer starts story development, QA’s
starts writing test cases
 Once the development is done, QA’s perform functional testing
 Bugs are raised accordingly
 Developer resolves the bugs, those are retested by QA’s
 Once all the story acceptance criteria are met, QA’s mark it as approved state
 PO re-verifies it, and accordingly either closes or reopens the story
 All these activities are traced by scrum master and team during their daily standup
 Daily standup meeting – Scrum master and team are the part of it. Daily morning, all meet
and discuss on what task they worked yesterday, on what they are working today and if
team has any blockers. Scrum master is responsible for resolving the blockers and solving
the team queries.
 If team is not able to finish off 1 or 2 stories due to some reason, these are carry forward to
the next sprint.
 Sprint fails if team is not able to deliver all the stories in the sprint demo

Sprint Demo
PO, scrum master, team and other stakeholders are the part of sprint demo. Team is asked
to showcase the features they have developed in the sprint during sprint demo. If any
change requirement comes, it is incorporated and developed as a part of next sprint. This is
done on the last day of the sprint. So the first and last day are not considered as a part of the
story development.

Sprint Retrospective

Scrum master and team plays major role in sprint retro. In this meeting, all sits together and
discuss what went wrong in the sprint, what new things we can try in order to achieve the
best and on time delivery. Recommendation are part of this, if any team member has done
good job, he/she is appreciated.

Agile Benefits

Stakeholder Engagement – Agile provides multiple opportunities for stakeholder and team
engagement – before, during, and after each Sprint.

Transparency – All the actors are aware about the current status and sprint delivery details.

Allows for Change – change is accepted and implemented.


What Makes Agile Development The Need Of This Progressive
Technology?

As everything is susceptible to changes, thereby the technology is also. So, when trends
will change how can you lag behind. Being a service provider, if you fail to match pace
with this rapidly advancing technology you will suffer huge losses and this is stated by the
law of probability. Now, as every human being needs a brain to function , likewise
companies need IT infrastructure to proper functioning. Therefore, an agile model becomes
an indispensable need to attain agility in business.

There are a lot of executives, that use softwares in order to track the progress of Agile
projects and also teams which are working on Agile methods located at different
demographic region across the globe. The thorough testing and analysis process has proven
that Agile methodology works for large scale companies as well.

Here we have discussed how Agile methodology helps you build futuristic projects and
thus is deemed as the progressive development methodology .

Manages the Risk easily

As Agile goes for small releases after every sprint which makes the clients and developers
to easily get an idea about whether they are going on the right track or not. This helps to
easily identify the issues, as the sample space is small and helps to easily tackle them. The
development model of agile makes all the area of improvement quite visible to the
developers as well as clients. Wherefore, they can take the requisite steps in the very next
sprint.

Engages the Stakeholders

Agile methodology opens up new avenues for stakeholders as well as to engage their team
members. Involvement of clients in each Sprint will help you check whether the
development is in the right direction or not and it also helps you to develop a rapport
between them. This will help the team to understand them clearly and deliver high quality
and desired products. This further helps the development team to attain the targets well in
time which in turn helps in earning the trust of the clients.
Ensures the development of the right product

Agile development lets us towards the right development path and hence the resultant is the
right product. It’s supple nature helps you to adopt the requirements in order to hold change
and this is what helps the developers to build something which is required. Wherein, the
regular development model lets you stick to a well defined path which keeps you under the
constraints of not molding in accordance to the advancement in the technology. It might
happen that by the time you are ready to launch your new project there is something better
already introduced in the market.

Conducive Work environment

Agile development needs the employees to me active and cooperative, which makes
working environment more delightful to work. It is quite different from other software
development models as the requirements are discussed in the workshops itself. Rather than
drafting a status reports, the developers have to discuss the progress of the tasks. Lengthy
project plans and change management are replaced by decisions according to what’s good
for a project. This is the reason which makes this approach much desirable one. This helps
to create a quite conducive work environment that fosters team ship and helps to deliver
high performing projects.

You need to choose this Model if:


 Agile development methodology gives you full freedom to implement changes
which are time as well cost effective. These changes are incremental and take your
development forward and make it more robust.
 Agile development does not consume a lot of time in planning to commence with
the project just like other traditional software development models. Agile works on
the precept that the user’s needs are volatile and keeps on changing every time. In
this competitive world you need to stick to their needs, thus you must be well
equipped to adapt the changes as per their feedback. Thus, if you are in an industry
which has a lot of competition then you must go for agile development.
 If the stakeholders think that they need time and not end up making something
which is not subjected to changes in order to match pace with the ever changing
technology. Having interstices and flexibility helps them to take crucial decisions in
order to reach the most optimal approach or programs available for the benefit of
the program. This helps to avoid the phase of stagnation where you cannot move
forward and get stuck in rut because the development firm has delivered as per the
discussed guidelines and you cannot do anything about it.
 It is designed to save a lot of time as you just need to spend only a few hours or a
few days to implement any changes or incorporate new feature.

Disadvantages of Agile model:


 You need to have programmers with hands on experience in the field of
development, as they are the one who can take strong decisions during the
development process. Therefore, there is no scope of freshers.
 You never know that you are on the wrong track and you are susceptible to one if
the representative of the customers himself do have a clear head of what they want.
 There is no concrete designing and documentation as they are prone to change at
any point of time.
 You cannot estimate the amount of resources you require in order to deliver the
product. This makes this methodology quite capricious and gives you no clue at the
beginning of the development cycle.

Das könnte Ihnen auch gefallen