How do you conduct manual testing?
Conducting manual testing involves systematically executing test cases without the use of automation tools to ensure that software functions as expected. At a high level, the process involves understanding the requirements, planning test strategies, executing test cases, and documenting any defects found. Here’s how I approach manual testing:
- Requirement Analysis: I begin by thoroughly understanding the functional and non-functional requirements of the application.
- Test Planning: I then create a detailed test plan, which includes defining the scope, objectives, resources, and schedule for the testing activities.
- Test Case Design: I design test cases that cover positive, negative, boundary, and edge cases to ensure comprehensive coverage.
- Environment Setup: I set up the test environment to closely mimic the production environment.
- Test Execution: I execute the test cases manually, keeping a keen eye on the expected vs. actual results.
- Defect Logging: Any discrepancies or defects found are logged in a defect tracking tool with detailed information to facilitate easy reproduction and resolution.
- Test Closure: After completing the tests, I prepare a test summary report that includes key metrics and insights for stakeholders.
Key Talking Points:
- Requirement Analysis: Understand what needs to be tested.
- Test Planning: Define the scope and resources.
- Test Case Design: Create detailed and comprehensive test cases.
- Environment Setup: Ensure the testing environment is ready.
- Test Execution: Execute test cases and observe outcomes.
- Defect Logging: Record any issues found during testing.
- Test Closure: Summarize findings and report to stakeholders.
NOTES:
Reference Table: Manual Testing vs. Automated Testing
| Aspect | Manual Testing | Automated Testing |
|---|---|---|
| Execution | Performed by humans without tools | Uses scripts and tools to perform tests |
| Speed | Slower due to human intervention | Faster since scripts can run quickly |
| Cost | Lower initial cost but higher in the long term | Higher initial cost but cost-effective long term |
| Best For | Exploratory, usability, ad-hoc testing | Regression, load, performance testing |
| Accuracy | Prone to human error | More accurate if tools are properly configured |
Follow-Up Questions and Answers:
Q1: What are the limitations of manual testing?
- Answer: Manual testing can be time-consuming and is prone to human errors. It may not be feasible for large-scale regression testing due to the repetitive nature of the tasks. Additionally, manual testing does not provide the same level of coverage and depth for performance and load testing as automated testing does.
Q2: How do you prioritize test cases during manual testing?
- Answer: I prioritize test cases based on factors such as risk (critical functionalities), business impact, frequency of use, and past defect data. This ensures that the most important aspects of the application are tested first, even if time or resources are limited.
Q3: Can you explain a situation where manual testing is preferred over automation?
- Answer: Manual testing is often preferred for exploratory testing where human intuition and creativity are required to identify unexpected issues. It is also ideal for usability testing where the focus is on the user experience and interface design, which requires human judgment.
This approach should provide a comprehensive understanding of manual testing and how it fits into the software development lifecycle, especially for an interviewer at a FAANG company.