Agile methodology
Agile methodology is a flexible and iterative approach to software development and testing. In
real life manual testing, Agile can significantly improve the efficiency and effectiveness of the
testing process. Here's a detailed explanation of how Agile works in real-life manual testing,
illustrated with a real-time example.
Key Principles of Agile in Testing
1. Iterative Development: Work is divided into small, manageable units called sprints,
typically lasting 1-4 weeks.
2. Collaboration: Continuous collaboration between developers, testers, and stakeholders.
3. Flexibility: Ability to adapt to changes even late in the development process.
4. Continuous Feedback: Regular feedback loops to ensure the product meets user needs.
5. Automation: While Agile promotes automated testing, manual testing still plays a
critical role, especially in exploratory and usability testing.
Example Scenario: Developing a Mobile Banking Application
Initial Setup
1. Sprint Planning: The team, including developers, testers, product owners, and
stakeholders, gathers to plan the sprint. They prioritize user stories (features or
functionalities) based on business needs.
2. User Stories:
Example User Story: "As a user, I want to be able to transfer money to another
account so that I can pay my bills."
Acceptance Criteria: Clearly defined conditions under which a user story is
considered complete, e.g., "Transfer should be successful for valid account
numbers and amounts."
Sprint Execution
1. Development: Developers start coding the user stories for the sprint. Testers work
closely with developers to understand the features being developed.
2. Creating Test Cases: Testers create manual test cases based on the user stories and
acceptance criteria.
Example Test Case: For the money transfer feature:
Verify that the transfer is successful for valid inputs.
Verify that an error message is displayed for invalid account numbers.
Verify that the correct balance is deducted and credited.
3. Continuous Integration: As developers complete features, they integrate their code into
the shared repository. Automated tests might be run at this stage, but manual testers will
perform their tests on these new features.
Manual Testing
1. Exploratory Testing: Testers perform exploratory testing to uncover issues not covered
by automated tests or predefined test cases.
Example: Test how the application behaves when the network connection is lost
during a transaction.
2. User Interface (UI) Testing: Ensuring the UI is intuitive and functions as expected.
Example: Check if the transfer money screen layout is user-friendly and all
elements are visible and functional on different devices.
3. Regression Testing: Manual regression tests are run to ensure that new changes do not
adversely affect existing functionalities.
Example: After the money transfer feature is added, testers manually verify that
the login and account summary features still work as intended.
Sprint Review and Retrospective
1. Sprint Review: At the end of the sprint, the team demonstrates the new features to
stakeholders. Manual testers may present their findings and any bugs they have
identified.
2. Feedback: Stakeholders provide feedback, which might result in new user stories or
adjustments to existing ones.
3. Retrospective: The team reflects on what went well, what didn't, and how processes can
be improved. This includes discussing the testing process and identifying any bottlenecks
or areas for improvement.
Continuous Improvement
1. Incorporating Feedback: Based on the feedback and retrospective, the team makes
necessary adjustments to their processes. This might include improving the test case
creation process, enhancing communication between developers and testers, or
integrating more automated tests to complement manual testing.
2. Next Sprint Planning: The cycle begins again with planning the next sprint,
incorporating lessons learned from the previous one.
Real-Time Example Summary
Imagine a two-week sprint where the goal is to implement and test the money transfer feature in
a mobile banking app. Testers work in parallel with developers, creating and executing manual
test cases based on user stories. They perform exploratory testing to catch unforeseen issues, and
regression testing to ensure existing functionalities remain intact. At the end of the sprint, the
team reviews progress, gathers feedback, and plans for continuous improvement in the next
sprint.
This iterative and collaborative process ensures that the application evolves in alignment with
user needs and quality standards, with manual testing playing a crucial role in maintaining the
product’s reliability and usability.