A) What is Agile Testing?
The agile testing is a software practice which 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.
B) How Agile Testing is beneficial?
- In this less documentation is required.
- Through daily meetings, the issues can be well determined at earlier stage.
- It saves time and money both.
- It provides regular feedback from the end user.
C ) What are the strategies of Agile Testing?
Iteration – As this is the first phase among the four stages, and in this stage we perform the initial setup tasks. This stage includes the identifying of people for testing, installing the testing tools, etc. Some of the steps included to achieve Iteration 0 are:
- Then, we will establish the boundary conditions and the scope of the project.
- Then, the key requirements will be outlined of the project and the use cases.
- After the requirements, risk is identified.
- And lastly, the cost of estimation and preliminary of project is prepared.
- Construction Iterations – Most of the testing part is performed in this stage. In this phase, some of the iterations are observed to build an increment of the solution. In this phase, the team follows the prioritized requirement practice where each iteration takes the most essential requirement and implements it. The construction iterations can be divided into two:
- Investigating testing – It detects the problem that confirmatory team has skipped. In this, the tester determines the problems in the form of defect stories.
- Confirmatory testing – In this, it mainly concentrates on verifying that the system fulfils the intent of stakeholders as described to the team and performed by the team.
- Transition Phase – In the transition phase, the main purpose of this phase is to deploy our system successfully into production phase. Some of the activities included in this phase are training of end users, operational people and support people. And some are marketing of the user documentation, product release, back up and restoration.
- Production phase – This is the last stage after the transition phase and in this the product is moved to the production stage.
D) Ways to Make Test Automation Effective in Agile Development.
- Test Driven Development (TDD) is a minimalistic software development process that is driven by an automated test case which defines the desired enhancement to the system. The test is first executed to fail. The developer then comes up with a minimal code that will pass the test case. Once the new code is tested, it is refactored to adapt to standards and retested. The cycle is then repeated to add further enhancements.
- Avoid functional complexity: Keep functionality to be achieved simply. Deliberate on it with the whole team to ensure the test case covers the desired functionality in every way possible. As the test case is the driver here, it should be reviewed for correctness and completeness.
- Focus on what you need to achieve: Be sure you understand where the code needs to be called and frame the test suite accordingly. Ensure test cases follow standard naming conventions and clearly depict what needs to be achieved by the end of development process. This is crucial as functionality keeps getting added with iterations. Future developers should be able to look at the test and easily deduce the intended functionality.
- Maintain code austerity : Ensure your code has just enough meat to satisfy your test case. This is a basic tenet of TDD. This minimizes the chances of defects and also simplifies review and testing processes. However, do ensure the code is understandable and allows future enhancements.