Agile Testing Methods
Author: Ujen Maharjan
Agile is an iterative development methodology, where both development and testing activities are concurrent. Here, coding and testing are done interactively and incrementally unlike waterfall method where testing is done at a separate phase.
Therefore, agile testing is a software process that follows the principles of agile software development. It is a continuous process rather than being sequential. Testing begins at the start of the project concurrently with development. Hence it results in quality end product- meeting customer requirements.
Test Driven Development:
Test Driven Development (TDD) can be defined as a programming practice that instructs developers to write and correct the failed tests before writing new code. This helps to avoid duplication of code and make it clearer, simpler and bug-free. In this approach, first, the test is developed which specifies and validates what the code will do. In Software Testing Process, first we generate the code and then test. Tests might fail since test cases are written before the development.
TDD can be understood with following steps:
- Write a Test Case to reflect the expected behavior of the functionality of the code that needs to be written.
- Run the test. The test may fail as the code is still not developed.
- Develop code based on the test case.
- Run the test again. Now test has to pass as the functionality is coded.
- Repeat step 3 & 4 till it passes.
- Refactor the code.
- Run the test again to insure it passes.
Following flowchart shows the process of TDD.
Acceptance Test Driven Development
In ATDD method, the code is developed based on the test-first approach directed by Acceptance Test Cases. The focus is on involving team members with different perspectives such as the customer, end users, developer and testers to create a user story for acceptance criteria and tests. The acceptance tests are a representation of the user’s point of view and it describes how the system will function.
ATDD can be understood by following steps:
Write Acceptance Test Cases with user stories in collaboration with the customer and users.
- Define the associated acceptance criteria.
- Develop code based on the acceptance tests and acceptance criteria.
- Run the acceptance tests to ensure that the code is running as expected.
- Automate the acceptance tests. Repeat Step 3 – 5 until all the user stories in the iteration are implemented.
- Automate the regression tests.
- Run the automated Regression Tests to ensure Continuous Regression.
Behavior Driven Development
Behavior Driven Development (BDD) improves communication amongst project stakeholders so that all members correctly understand each feature before the development process starts. It is like the TDD and focus is on testing the code to ensure the expected behavior of the system. Moreover, it ensures continuous communication among the users, testers and developers. The development and testing are transparent so everyone can know what is being done.
Advantages of Agile Testing
- Saves time and money
- Reduces documentation
- Flexible and highly adaptable to changes
- Useful for receiving regular feedback from the end user
- Better determination of issues through daily meetings
In this blog, we have touched upon Agile Testing Methods. Keep up to date with the latest technology by reading our other blogs. At Dogma Group, we help you harness the power of CRM, ERP & related technology for success. Contact us today for a no-obligation consultation on 01296 328 689. Or email us at firstname.lastname@example.org.