Agile | Waterfall |
---|---|
Testing is done in parallel with the development activity which means that as the development progresses so does the testing | Testing is generally done at the end of the development |
Agile is an iterative and incremental approach | It is a sequential design process where design, development, testing and other phases happens one after another in a sequential way |
Testing is performed concurrently with software development | "Testing" phase comes after the "Build" phase |
Requirements are collected even late in development. | Requirements are collected before starting the development in Waterfall model. |
Agile teams participate in changing requirements. | Waterfall teams were not involved in changing requirements. |
Agile methodology is known for its flexibility | Waterfall is a structured software development methodology, and often times can be quite rigid |
It believes in constant feedback and accepts changes to requirements | Customer feedback is usually not collected until the very end of the project, and changes are discouraged |
Agile focuses on collaboration, small releases and customer feedback | Team coordination is very limited |
Agile divides the project into sprints. | The waterfall divides the project into stages. |
Self-motivated and self-organizing teams drive the project | Project manager drives the project as a central controlling authority |
It allows us to complete multiple small active projects. | It allows us to complete a single project. |
Testing phase starts in parallel with development in Agile. | Testing phase starts only after the development in Waterfall model. |
Agile Testing | Traditional Software Testing |
---|---|
Agile testing involves performing tests alongside software development in order to ensure greater transparency of the development process. | Traditional testing takes place after the entire phase of software development has been completed. The testing process comes after the development cycle is complete, and it could take a long time. |
In contrast, agile testing enables the team to "move forward (release) with working components while addressing defects in subsequent iterations". | It emphasizes on "Fix Defect Then Release". |
It requires regular interaction with customers. | Customer interaction is not mandatory on a daily or weekly basis. |
This process, however, is based on continuous improvement; changes are made in the next iteration of the testing cycle. | The traditional approach allows for any necessary modifications to be made only during the next release. |
It is more suitable for projects where the requirements fluctuate frequently. | Specifically, it is best suited for situations where the requirements are little or never likely to change. |
The business team is involved in each iteration of Agile testing. Continual feedback reduces the amount of time required to provide feedback for software development work. | User feedback is not obtained until the testing has been completed. |
Agility follows a risk-prevention approach that is timely and efficient. | In comparison, the traditional method is a risk-averse methodology. |
By using an incremental and iterative approach, agile testing reduces the overall time taken to define test requirements and validate the results. This leads to more rapid release of products without delays. | As with traditional testing, it is a time-consuming process that is expensive both financially and in terms of effort. |
Continuous interaction between team members is of utmost importance. | Testing is done in phases, thus limiting interaction among team members. |
Exploratory Testing | Scripted Testing |
---|---|
An exploratory testing approach allows testers to rely on their instincts, skills, and experience to perform individual tests in-depth. | The scripted testing process requires testers to follow a set of guidelines specifically designed to make sure that the actual results are as intended. |
In-depth domain knowledge is required for this type of testing. Without proper domain expertise, tests cannot be conducted. | It is possible to overcome the lack of domain knowledge during the test design phase. They can analyze the document along with learning from the subject matter experts. |
Often, documentation is lacking in exploratory environments. | Documentation is essential in Scripted Testing. |
No preparation is required, and no overhead is associated with reading the documentation. | Prior to executing tests, it is very important to prepare test scripts and create documentation. |
Testing involves comparing the application to the tester's expectations and understanding how the application should behave. | An application is verified against the specifications of the document. |
Learning and adaptability are key components of this approach. | Prediction and decision-making are important aspects of this approach. |
It is challenging to manage test coverage. | It is easier to manage test coverage. |
Automation is not possible. | Automation is possible. |
As testers examine an application without any proper test documentation, it is very difficult to identify any missing requirements. | It helps identify any missing requirements from the requirements specification document. |
There may be some learning curve for new testers, especially when complex applications are being developed. | A new tester can readily begin testing the system since he/she has a series of steps to follow. |