Manual Testing Tutorial - 9 to 10
Manual Testing Tutorial - 9 to 10
Agile methodology emphasizes flexibility, collaboration, and frequent delivery of small increments of software. In Agile,
manual testing is still essential, even in environments where automation is used, due to its ability to handle exploratory
testing, usability testing, and testing new features or functionalities in real-time.
While Agile practices focus on continuous iteration and improvement, manual testers ensure that user requirements
are met through comprehensive testing of each feature as it’s developed, ensuring high-quality deliverables at the end
of each sprint.
Manual testing in Agile involves testing the software manually after each sprint. Unlike traditional Waterfall
methodologies, where testing is done at the end of the project, Agile testing is integrated into the iterative process and
begins as soon as the first set of features is ready for testing.
Key Points:
Frequent Releases: Testers perform manual testing on new features delivered in each sprint.
Continuous Feedback: Feedback from testers is used to refine and improve the product, ensuring early
detection of issues.
Collaboration: Testers work closely with developers and business stakeholders to ensure that the product
meets the acceptance criteria.
Test Case Design: Writing test cases to validate features developed in each sprint.
Exploratory Testing: Testing the product with an exploratory approach to find unexpected issues.
Regression Testing: Ensuring that new code does not break existing functionality.
UAT (User Acceptance Testing): Verifying that the product meets business requirements.
In an Agile environment, the role of a manual tester extends beyond just writing and executing test cases. Testers in
Agile teams are expected to contribute to the development process, provide feedback during sprints, and collaborate
across various stages of development.
Active Participation in Sprint Planning: Testers participate in sprint planning sessions to understand the scope
and requirements for the upcoming sprint.
Test Case Design and Execution: Writing, reviewing, and executing test cases during the sprint to validate new
features.
Collaborating with Developers: Providing feedback on new features and working with developers to reproduce
and fix defects.
Continuous Integration: Participating in continuous integration (CI) and continuous testing (CT) processes.
Test Automation (Optional but Often Involved): In some Agile environments, testers may help create
automated tests or use automation tools for repetitive tasks while continuing to conduct manual testing for
complex scenarios.
A deep understanding of both the business and technical aspects of the product.
In Agile, sprint planning is a collaborative session where the team discusses the features to be developed in the
upcoming sprint, sets priorities, and estimates the time required to complete the tasks.
Understanding Requirements: Testers need to understand the user stories or requirements associated with
the sprint. This ensures that testing efforts are aligned with business goals.
Test Case Planning: Testers can identify potential test scenarios, create test data, and design test cases based
on the acceptance criteria of the user stories.
Effort Estimation: Testers collaborate with developers to estimate the testing effort required, ensuring that the
test cases can be executed within the sprint's timeframe.
Key Considerations:
Test-First Approach: In some Agile methodologies like Test-Driven Development (TDD), test cases are written
before the development of features, and manual testers are often involved in reviewing these test cases.
Test Cases and Acceptance Criteria: Testers ensure that all acceptance criteria are covered by the test cases
and that the software meets business requirements.
Context: Suppose we are testing a ride-sharing application in an Agile environment. The development team is working
on a new feature: “Ride Cancellation.”
User Story: "As a user, I want to cancel a ride request before the driver accepts it."
Acceptance Criteria:
o The user can cancel the ride request from the app.
Sprint Planning:
Testers review the user story, understand the business requirements, and plan for testing the ride cancellation
feature.
o Test Case 1: Verify that the user can cancel the ride request.
o Test Case 3: Verify that the cancellation message is displayed to the user.
Manual Testing:
Test Execution: During the sprint, testers execute these test cases on the newly developed feature. Any issues
are logged and communicated back to the development team for resolution.
Exploratory Testing: Testers also perform exploratory testing to identify any edge cases related to ride
cancellation, such as attempting to cancel a ride after a driver has accepted it.
Regression Testing: Manual testers run regression tests to ensure that the new feature doesn't break any
existing functionality (like ride booking or payment).
Collaboration:
Testers work closely with developers, providing feedback on the functionality during the sprint.
The team holds daily stand-ups to track testing progress and any roadblocks that may arise.
End of Sprint:
At the end of the sprint, the feature is considered "done" if all tests have passed, defects are resolved, and it
meets the acceptance criteria.
Manual testing, while effective in many scenarios, comes with its own set of challenges. Some of the most common
challenges faced by manual testers include:
1. Time Constraints:
o Testing can be time-consuming, especially when the product has complex features or large volumes of
functionality to verify. Manual testing may not always be able to keep up with tight release schedules.
o Many test cases, particularly for regression testing, involve repetitive tasks that testers need to execute
multiple times. This can lead to tester fatigue and reduce efficiency.
o Due to time or resource constraints, testers may not be able to cover every single scenario. This can
lead to missing critical defects, especially in large applications.
4. Human Error:
o Manual testing is prone to human error. Testers may overlook test cases or fail to execute tests
accurately, leading to missed defects.
o Testing with large volumes of data can be challenging when done manually. Testers may struggle to
handle extensive data or complex data manipulations.
6. Lack of Objectivity:
o Testers can sometimes become biased due to familiarity with the application, which might result in
missing issues that a fresh perspective would catch.
o Manual testing often struggles with reproducing defects consistently, especially intermittent issues or
those occurring in specific environments.
Here are several strategies to help manual testers overcome common challenges:
o Proper planning ensures that the most critical test cases are prioritized. Testers should focus on high-
risk areas first and consider automating lower-priority tests.
o Use techniques like Boundary Value Analysis and Equivalence Partitioning to design test cases that
cover a wide range of scenarios while reducing redundant tests.
o For repetitive tests, especially regression tests, automation can save time and reduce errors. Testers
should focus on automating test cases that need to be executed frequently.
o Close collaboration with developers and other team members helps ensure that requirements are
understood and defects are addressed promptly.
o Regular feedback loops in Agile teams can help catch issues early in the sprint.
o Tools like bug trackers, test management systems, and performance testing tools can streamline the
process and help testers manage their efforts more effectively.
6. Exploratory Testing:
o Testers should regularly engage in exploratory testing to uncover issues that are difficult to capture in
predefined test cases. This also helps ensure coverage of edge cases.
o Proper defect tracking, with clear steps for developers to reproduce the issue, ensures that bugs are
resolved efficiently and testers can verify fixes.
o Example: A defect where a user is intermittently unable to add items to the shopping cart in an e-
commerce app.
o Challenge: The defect doesn't occur consistently, making it hard to reproduce manually.
o Solution: Testers used logging and debugging tools to track the defect. They also started tracking the
user’s actions before the issue occurred, eventually identifying a race condition in the cart logic.
o Example: A large banking application with many features, but limited time to test.
o Solution: Testers prioritized testing of the most critical functions (like fund transfers, balance checking)
and automated lower-priority tests. They also performed exploratory testing to uncover other defects.
o Challenge: Testers have limited time for testing each feature due to tight release schedules.
o Solution: Testers focused on functional testing and regression for the most critical workflows. They also
started leveraging test automation for routine checks.
10.4 Conclusion
Manual testing is a vital part of the software development lifecycle, especially in Agile environments. While manual
testing comes with challenges, such as time constraints and human error, these challenges can be mitigated through
strategic planning, collaboration, automation, and effective communication.
By understanding and addressing these challenges, testers can ensure that they deliver high-quality, reliable software
while adapting to the fast-paced nature of Agile development.