What is Agile Testing?
Agile testing is a software practice that 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 Exactly Both of Them Work
Since in the introduction above, I have used the term Waterfall as well, let us see how exactly these works.
Waterfall provides a more sequential approach to software development. It works in the following order.
- Software requirement document is gathered
- The application is designed after requirement is finalized
- Development begins and parallelly unit testing is executed
- Performance testing is carried out to ensure the system performs well under load or stress User acceptance testing
- Defect fixing where the developer starts working on the bugs detected by the testing team
- The application is deployed in production
Agile however, does not follow any linear path. It follows an iterative approach to development. Instead of creating tasks, the entire duration of the project is divided into phases called sprints. Agile generally focuses on four fundamental values
- Interaction between team members rather than tools.
- A properly working software rather than all-inclusive documentation.
- Collaboration of customer in every sprints.
- Quick response to change instead of following a plan.
Importance of Agile Testing
Since it follows an iterative approach, Agile is advantageous in many ways
- Short development phases make the project adaptable and always ready for any major or minor change required by the customer.
- The customer can view the live project during every sprint and regular feedback results in a better-quality product.
- Developers and testers work hand in hand along with the customer. A better teamwork results in the development of an individual as well as business of the organization.
Whenever there are advantages, it is followed by certain disadvantages
- Agile prefers a working application over documentation. This is a good thing but depending on the complexity of a project, a proper balance between documentation and coding may sometimes be necessary
- The methodology is designed for small teams. Therefore, each team member must be proficient in their roles and self-dependent.
Also, In most development cycles, even those following agile development methodologies, browser compatibility testing is the last priority. It is done when the whole project is built and is just few steps away from deployment. Sometimes it is even done after deployment. This practice is understandable even. The focus of development team is to make the application work first then worry about making it compatible. However in large projects this sometimes backfires. It’s important to make sure that all app pages are browser compatible specially during development of critical user stories. Making pages cross browser compatible after all development will lead to unnecessary increase in development time.