Performance Testing is performed
to evaluate the compliance level of an application or software with its initial
requirements. It is an integral par Performance Testing is performed to
evaluate the compliance level of an application or software with its initial
requirements. It is an integral part of the agile process. Its main goal is to
test performance and functionality in each sprint. In a traditional development
cycle, performance testing usually takes place at the end of the development
life cycle. However, this finds its place early in the Agile methodology.
Managing Performance Testing in Agile Environment
The key element in Agile methodology
is its flexibility. To ensure efficiency and thoroughness in this environment,
the ways of performance testing may require changes. This approach requires an
understanding of the project as a whole and further evaluates the contribution
of performance testing into the project. This helps the team to estimate the
success criteria for the effort.
Once these criteria are
established, a strategy is formed to achieve these criteria by summarizing the
testing activities to be performed that will add value at various points of the
development cycle. These points refer to project delivery, sprints, iterations
or weekly builds. With the continuous evolution in strategy, a performance test
and load generation environment will be set up.
With a strategy and a test set up in place,
major tests are planned for the weekly builds. As a build is delivered, the
plan is appropriately reported, recorded, revised, reprioritized, added and
removed, thus improving the application and the overall strategy as the plan
progresses.
Types of Performance Testing performed:
Load Testing is done to verify the
application behavior under normal to peak load conditions. It enables to
quantify the response time, throughput rate, resource utilization and the
breaking point of the application. Endurance Testing determines the performance
of the product when subjected to workload volumes over an extended period of
time.
Stress test: It determines the
behavior of the application beyond normal to peak load conditions. It reveals
errors and faults that arise only under high load conditions. It helps to
identify the weak points of the application during extreme load conditions.
Spike Test is a subset of stress test that validates the behavior of an
application under extreme workload over a short period of time.
Capacity test: This determines the number of users or transactions the
system can support.
Testing with JMeter:
JMeter is an open source testing
tool in Java with a graphical interface. It is used to measure the performance
and load management behavior on a variety of services. It is platform
independent and capable of loading performance tests in variety of servers like
HTTP, HTTPS, SOAP, Database through JDBC, LDAP, JMS and Mail POP3.It supports
various kinds of testing such as Load, Distributed and Functional Testing and
can generate heavy load against the application under test. It is capable of
performing automated testing using Selenium. It generates the test results in
easily understandable formats like chart, table and log file and can be easily
installed by running the JMeter Shell script in Linux or by starting the .bat
file in Windows.
Additional Considerations for Agile performance Testing:
All significant information must
be communicated to the team.
For a major portion of the
development life cycle, the testing is about compiling adequate information to
enhance the performance as the design and development progresses.
Testing should not be forced on a
build simply because it is planned in the strategy. If the current build is not
appropriate for testing, then another build should be waited for on which the
test can be performed.
Performance testing brings
about significant changes in the application architecture, code, hardware and
the environment. Hence, the test reports need to be read and understood
efficiently to bring about appropriate changes.
Conclusion:
Performance testing in Agile is
actually based on the principle of continuously asking what can be done at a
point of time to increase the most value of the project. This approach allows
managing the test process in a very flexible way. It helps to revise the
project vision and context and reprioritize tasks based on their value
addition.
No comments:
Post a Comment