Professional Documents
Culture Documents
Ag i le t e st i n g i s u n str u ct ur ed a s co mp ar ed to t h e
wa t er fa ll ap p ro ac h a nd t her e i s mi n i mal In t he W ater fal l mo d el, th e t e st i n g p ro ce s s is
p la n ni n g. mo r e str uc t ured a nd t h er e i s a d et ai led
d esc rip t io n o f t he te st i n g p h as e.
W ater fal l t es ti n g ca n b e ad o p ted fo r al l so rt s o f
Agile testing is well suited fo r small p r o j ects. p ro j ects .
T ester s a nd d e ve lo p er s wo r k c lo s el y i n Ag i le
te st i n g. T ester s a nd d e ve lo p er s wo r k sep ar ate l y.
T he t es ter s ne ed to e st a b li s h co m m u n ic at io n wi t h
d ev elo p e rs to a n al yz e r e q ui r e me n t s a nd De ve lo p er s ar e no t i n vo l ved i n a n al yz i n g
p la n ni n g. req u ire me n t s a nd p l a n ni n g p ro ce ss .
1)Continuous Feedback:
Continuous feedback is very important for both customer team and for
developer team. In agile, requirements changes very often and during
testing, different problems might arise due to conflicts in requirements. It is
responsibility of tester to keep a keen eye on requirement change. And
based on these changes, provide feedback accordingly on risks as well as
overall progress to all stake holders.
4)Have Courage:
Courage is most important factor in agile environment to talk with
business stake holders and with other technical team. Some time, tester
feels hesitation to be a part of technical discussion. It needs to be avoided.
Talk with business stakeholder and product owner with confident for
updated requirements. Try to be a part of technical discussion. It will not
only help a tester to find loop holes during white box testing but domain
knowledge will also improve.
5)Keep It Simple:
A software tester should follow ‘Keep it simple’ approach to ensure
that software is meeting business requirement and client’s expectation. It
really does not mean to forget about negative cases. But it means, while
doing negative testing, do not forget about happy cases and posit ive test
cases.
7)Respond to change:
Respond to change is for testers too. They need to get updated
requirements as well. As testing team is part of planning meeting, Scrum
meeting so all requirements is clear to them. They should respond to
customer’s queries and quires of development team.
8)Self-Organize:
An agile tester should be self-organize. He needs to be competent,
motivated and persistent. Do respect of your other team members as a
person alone cannot produce quality of product but a team can. Continuity
is essential for the self-organized team. Pull work by yourself, take
ownership and then manage it acco rdingly.
9)Focus on People:
10)Enjoy:
In agile, there is a lot of pressure of work especially on production release.
After a successful delivery, it is important to enj oy the success too. It will keep
moral high of the whole team. Celebrating success also boast confidence of the
team.
As in the case of Traditional Testing, Agile Testing also need to cover all the
Test Levels.
Unit Testing
Integration Testing
System Testing
User Acceptance Testing
Unit Testing
Integration Testing
System Testing
Done at the end of each Sprint and at the end of the project
Done by the Customer. Feedback is taken by the Team
Feedback will be an input to subsequent Sprints
User Stories in a Sprint are pre-verified to be testable and are with defined
Acceptance Criteria
The Agile Testing Quadrants provide a helpful taxonomy to help teams identify,
plan and execute the testing needed.
Acceptance testing
An acceptance test is a formal description of the behavior of a
software product, generally expressed as an example or a usage scenario. A
number of different notations and approaches have been proposed for such
examples or scenarios. In many cases the aim is that it should be possible
to automate the execution of such tests by a software tool, either ad -hoc to
the development team or off the shelf.
Similar to a unit test, an acceptance test generally has a binary result, pass
or fail. A failure suggests, though does not prove, the presence of a defect
in the product.
Teams mature in their practice of agile use acceptance tests as the main
form of functional specification and the only formal expression of business
requirements. Other teams use acceptance tests as a complement to
specification documents containing uses cases or more narrative text.
Also Known As
The terms “functional test”, “acceptance test” and “customer test” are used
more or less interchangeably. A more specific term “story test”, referring
to user stories is also used, as in the phrase “story test driven
development”.
Expected Benefits
Acceptance testing has the following benefits, complementing those which
can be obtained from unit tests:
Encouraging closer collaboration between developers on the one hand
and customers, users or domain experts on the other, as they entail
that business requirements should be expressed
Providing a clear and unambiguous “contract” between customers and
developers; a product which passes acceptance tests will be
considered adequate (though customers and developers might refine
existing tests or suggest new ones as necessary)
Decreasing the chance and severity both of new defects and
regressions (defects impairing functionality previously reviewed and
declared acceptable)
Exploratory Testing
Exploratory Testing is an important activity in an agile environment
as it can help software testers to keep up with the rapid development pace
of agile software projects.
In this type of testing, the test design and test execution phase go hand in
hand. Exploratory testing emphasizes working software over
comprehensive documentation. The individuals and interactions are more
important than the process and tools. Customer collaboration hold s greater
value than contract negotiation. Exploratory testing is more adaptable to
changes. In this testers identify the functionality of an application by
exploring the application. The testers try to learn the application, and
design & execute the test plans according to their findings.
First, a brief intro on agile methodology and exploratory testing:
In agile methodology, software is released in small iterations. Each
iteration goes through planning, estimation, development, integration,
testing and release. Because of frequent releases, test automation becomes
ever so important as developers need to get quick feedback on the status of
the application. The automat ed checks serve as regression tests to ensure
that with each release the software has not regressed.
Exploratory Testing is defined as simultaneous learning, test design and
test execution. It is an approach to testing that values the tester as an
integral part of the test process and shares the same values as the Agile
Manifesto:
Exploratory Testing is also complementary to test automation; that is while
automated checks are checking for regression issues, Exploratory Testing
focuses on new features which have been developed. This is important
because each sprint typically lasts only couple of weeks, which doesn’t
allow sufficient time for scripting tests cases and executing them later
against the application. On the other hand, exploratory testing in agile
environment allows testers to get familiar with the domain and the
application and on each iteration, that understanding is enhanced and hence
testers become more efficient .
agile-exploratory-testing
Agile testing not only facilitates the early detection of defects but
also reduces the cost of bugs by fixing them early. This approach also yields a
customer-centric approach by delivering a high -quality product as early as
possible.
Incomplete test coverage: Any future code changes that were not considered
before can lead to inadequate code changes. However, regression testing
can ensure the functionality of existing releases.
Broken codes due to frequent build: Since the code is changed frequently, it
is more likely to get broken due to this. A proper automated technique with
CI could tackle this situation.
Inadequate API testing: Due to the complexity in implementing complex
APIS, API testing they are sometimes overlooked . Automation tools can
overcome the need to have strong code skills while testing such APIs.
Performance bottlenecks: With more functionality and enhanced experience,
a software application gets more complex and involves a high volume of
code and results in performance related issues. Load testing tools can be
handy in identifying performance bottlenecks and can track performance
over time.
Complex mobile testing: With the number of mobile devices increasing in
the market day by day, mobile testing is becoming more complex. A strong
automation suite can ensure that the code doesn’t break with each build.
Are you a technical tester in the agile project? Various new platforms are
being developed every day, and testers are providing sharing their inputs with the
developers to improve the functionalities of the project as well as test numerous
features, etc. using various testing tools to verify the functionality of the
application. Here, we have compiled a list of useful tools to help your testing
activities in agile projects.
Selenium Web Driver is the most widely used test tool for browser test automation.
By running automated tests on the UI, we can simulate what the user sees when
they interact with the web application. One of the main advantages of using
Selenium WebDriver over other UI automation tools is that you can write your
automated tests in a variety of supported programming languages, such as Java, C#,
Ruby, Python, and PHP.
2. Jmeter
Jmeter is an open source performance testing tool written entirely in Java. It can be
used to load test websites (HTTP, HTTPS) as well as Web Services(SOAP and
REST) and Databases. The HTTP(S) Test Script Recorder can be used to record
and replay requests. Jmeter can be extended by plugins to support further
functionalities and there is also a Jenkins plugin which means you can run
performance tests as part of the delivery pipeline.
3.SoapUI
SoapUI tool is primarily used for functional testing of Web Services. The tool is
relatively easy to use and you can create tests for web services in just a few
minutes. You can execute tests and analyze the reports all inside SoapUI GUI. A
nice feature of SoapUI is its ability to create mock web services which are handy
when you are creating tests for a web service which are not yet developed.
4.VirtualBox
These days, most applications need to be tested against multiple browsers and
operating systems. Instead of having physical servers with different operating
systems and browsers, VirtualBox provides an easy solution to create virtual
machines with different configurations. You can run VirtualBox on any operating
system to create virtual machines and you can even have multiple virtual machines
with different operating systems on the same box.
5.XMind
XMind in the most popular and feature-rich mind mapping tool. You can use it to
create stunning mind maps to highlight the features of a website, or to create a user
journey flow through the application. Mind maps have become very popular in the
world of software testing because they provide nice visuals and can be of great help
when designing test cases.