Agile methodology has been the most compelling approach to project management. The main purpose of the agile approach is to overcome difficulties with earlier waterfall model and to make processes more flexible and effective.
Few Agile testing methodologies are:
- Acceptance Test Driven Development (ATDD)- . It verifies that the product functions as users would expect. ATDD is related to TDD, or Test-Driven Development. It faster collaboration between developers, testers and business stakeholders, and in which test automation plays a major role.
- Behaviour driven development (BDD)- It verifies that the product functions are necessary for the desired business outcome.It allows the business requirements to be converted into test cases that are re viewable by business and users when needed. It also fill the gap between business people and people from technical background
- Exploratory Test – This methodology has been invented for the hidden risks within a product. The bugs has been missed in functional tests are done in TDD. It is complementary to test automation. Which means while automation doing the regression testing. Exploratory test focuses on the testing of the new features.
The agile testing life cycle includes the following phases:
- Requirements: Business analyst and the client together do the requirement analysis process.
- Design: Architects do the design for the product
- Development: Once the design is final, the developers come into picture and the development of the product happens here.
- Testing: The QA team does the testing of the product developed by the development team. If any issue/bug is found then the story is assigned back to the developers. The QA gives the green signal once all the issues are fixed.
- Deployment: Deployment is done so that the end user can also test the product and can give their input accordingly
Principles of Agile Testing
There are different principles when we talk about agile testing methodologies just to accomplish the real goal:
- Agile teams make testing a regular practice and perform tests regularly so that they can guarantee the continuous progress of the overall project and product development
- The feedback in Agile testing is continuous along with testing.
- Unlike the traditional method of testing where only the test team is responsible for the testing in the software development life cycle, Agile testing involves the developers, the testers as well as the business analysts to test the product
- Agile testing focuses on creating simplified and clean code
- Agile team focuses on less documentation. They generally uses a reusable checklist.
- Testing is generally performed at the time of implementation
Agile Testing Life Cycle
- Impact Assessment: Gather inputs from the stake holder and users, this will act as a feedback for the next deployment cycle.
- Agile Test Planning: All participants come together to plan the schedule of testing progress meeting frequency and deliverable.
- Daily Scrums: This include the everyday stand up, morning meeting to catch up on the status of testing and set the goals for the whole week.
- Agile Review Meeting: Weekly review meeting with participants to review and assess the progress against the set milestone
- Release Readiness: In this stage reviewers review the features that have been deployed which are ready to go live.
What is a role of a Tester in Agile world?
Agile endorses the ENTIRE team approach where the developers, testers and business people work together to meet the sprint and release goal. The following is a list of behavioural traits that a Scrum team must have to produce desired results.
Responsibilities of a Tester:
- They should attend sprint planning sessions.
- QA team should attend daily stand-ups.
- They should do Regression testing
- They should do release activities
Most of the Roles are common but there are slight difference from organisation to organisation or from project to project
Why/What/What not to Automate ?
- User experience tests for usability (tests that require a user to respond as to how easy the app is to use).
- Tests that you will only run one-time. (This is a general rule)
- Test that need to run ASAP.
- Tests that require ad hoc/random testing based on domain knowledge/expertise.
- Tests without predictable results. For automation validation to be successful, it needs to have predictable results in order to produce pass and fail conditions.
- If a test needs to be manually determine whether the results are correct.
- Full automation is not possible. Unless doing so will save a considerable amount of time.