Wednesday 28 November 2012

Agile Testing

What is Agile Testing?

Agile as the name refers implies something to do very quickly. Hence Agile Testing refers to validate the client requirements as soon as possible and make it customer friendly. As soon as the build is out, testing is expected to get started and report the bugs quickly if any found. As a Tester, you need to provide your thoughts on the client requirements rather than just being the audience at the other end. Emphasis has to be laid down on the quality of the deliverable in spite of short time frame which will further help in reducing the cost of development and your feedback's will be implemented in the code which will avoid the defects coming from the end user.


Advantages offered by Agile Methodology:

The very first advantage that the company got to see with the Agile Methodology is the saving of time and money. There is less documentation required though documents help to a great deal in verifying and validating the requirements but considering the time frame of the project, this approach leads to focus more on the application rather than documenting the things. Since it is iterative in its form, it tends to have a regular feedback from the end user so that the same can be implemented as soon as possible. And because all phases of SDLC need to be completed very quickly, there is a transparency to each individual working on the project with the status of each phase.

Another advantage that Agile Methodology offers to other approaches available is that in case there is any Change request or enhancements come in between any phase, it can be implemented without any budget constraint though there needs to be some adjustment in the already allotted time frame which will not be a difficult task for the projects following Agile tactics. Though it is useful for any Programming language or Technology around, it is advisable to make it employ for Web 2.0 or the projects which are new in media.

Daily meetings and discussions for the project following Agile approach can help to determine the issues well in advance and work on it accordingly. Quick coding and Testing makes the management aware of the gaps existing in either requirements or technology used and can try to find the workaround for the same.
Hence, with the quicker development, testing and constant feedback's from the user, the Agile methodology becomes the appropriate approach for the projects to be delivered in a short span of time.

Agile Testing Myth
One thing that must bind it tight to your minds is that Agile Testing is not an easy task to undertake. The other important thing is to nullify the statement that Agile Testing can be done without the need of the testers. Get in touch with your developers to obtain each and every minute detail on the Application workflow in order to come out with successful Black box as well as White Box Testing in short span of time.

Challenges in Agile Testing
  • Agile Testing offers an open door policy for the requirements to creep in any time during any phase of the project and it will be greeted vey graciously and tested as per it is intended to function. Though not an easy task, but becomes a challenge for the team working on Agile methodology to accommodate the same in the already allotted functionalities to be validated.
  • Because Agile methodologies move faster, it becomes a challenge for the team to navigate through whole application. Proper approach needs to be followed in order to accomplish the same such as Testing the application as per Risk-based Strategy can do wonders and also prioritizing the Test scenarios as per their priority will enhance the quality of the deliverable.
  • In case of incomplete or inadequate unit testing performed by the developers, it is the testers who are at target to showcase their abilities in finding out the 90% of the hidden bugs missed by developers. It is indeed a challenging task considering the time frame of the testing phase that Agile methodology offers.
  • It is not only new functionalities that need to be working as designed but Agile Testers also need to make sure that the already placed functionalities do not get affected and hence regression testing plays a vital role in Agile Methodology.
  • Projects following Agile approach always lack with the appropriate documents and hence it becomes a challenging job for the testers to validate the requirements with the developers and confirm if the same is expected to work the way it is reflecting in the application else an another resource of communication will be required which will involve the customers of this Application to get the queries clarified and test accordingly.
Looking at the Challenges that Agile Testing is equipped with; it indeed becomes a very difficult task though not impossible to meet the expected commitment and deadlines.

When is Agile Testing Approach followed?

In case there is a situation in the project where there is a frequent change in the requirements from the client and it is difficult to accommodate them each time in your documentation as well as Test Assets, it is always advisable to follow the Agile Testing Approach which is often used when there is a dynamic change in the requirements from the client.

Comparison of Agile over Other methods:

Here is a limelight on the Agile advantages over other methods which are known to be traditional now considering the advantages that Agile methodology offers.

-> Development of an application in Agile is incremental rather than progressive or sequential as compared to other methods such as waterfall model which tends to have a phase wise development. This feature of Agile helps to have quick testing and results in small incremental releases and each of them is tested to the depth in order to meet the requirements and in case any requirement is to be introduced further, it is not a difficult task to do so in case of Agile as compared to waterfall where it will have to be traced down to the beginning of the phase to make the appropriate changes. 

-> Rather than tools and technologies talking with each other, it is the individuals who communicate with each other more often in Agile Testing approach. In case of waterfall, Extreme Programming or V-model, it is the tools, processes and technologies that often meet with each other and decide the relevant outcome. So Human communication lacks in other methods as compared to Agile method.

-> Working or rather testing the Application is always on the top priority for the projects following Agile Methodology as compared to other methods where documentation is given a more edge over other critical tasks.

-> The best part of the Agile over other methods is that it directly communicates with the user of the Application rather than having any intermediary party like client. This enables them to quickly get the feedback from the customer and appropriately implement the change in the Application.

-> When any enhancement or change request comes in, it is directly taken into account to be implemented in the Application rather than deciding to go for a further planning and revisiting the budget and time constraints as use to happen in other methods.

Agile methodology if compared to other methods offers advantages which are helpful to save time and money for Testing Phase which are important elements of any project.


2 comments:

  1. blog is awesome (GSM and everything) but it would have been very great if you have introduce digital communications in your blog

    ReplyDelete
    Replies
    1. it's niz suggestion satya thank you...will do that..

      Delete