Manual testing interview questions
Beginner Level
These questions focus on fundamental concepts and definitions in software testing.
-
What is software testing? Answer: Software testing is the process of evaluating a software application to identify any defects, errors, or missing requirements against the expected behavior. It ensures the quality, reliability, and performance of the software before it is released to end-users.
-
Why is software testing important? Answer: Software testing is crucial for several reasons:
- Quality Assurance: It ensures the software meets specified requirements and functions as expected.
- Bug Detection: It helps identify and fix defects early in the development cycle, reducing costs.
- Customer Satisfaction: A reliable and high-quality product leads to better user experience.
- Risk Mitigation: It helps identify potential risks and vulnerabilities, improving security and stability.
-
What is manual testing? Answer: Manual testing is a type of software testing where a human tester manually interacts with a software application to identify defects, bugs, and usability issues. It does not rely on scripts or automated tools.
-
Explain the Software Development Life Cycle (SDLC). Answer: The Software Development Life Cycle (SDLC) is a structured process that outlines the stages involved in developing, deploying, and maintaining an information system. The typical phases include:
- Requirements Gathering and Analysis
- Design
- Implementation (Coding)
- Testing
- Deployment
- Maintenance
-
Explain the Software Testing Life Cycle (STLC). Answer: The Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during the testing process to ensure software quality. The phases include:
- Requirement Analysis
- Test Planning
- Test Case Development
- Test Environment Setup
- Test Execution
- Test Cycle Closure
-
What is the difference between Quality Assurance (QA) and Quality Control (QC)? Answer:
- Quality Assurance (QA): A proactive process focused on preventing defects by establishing and maintaining processes.
- Quality Control (QC): A reactive process focused on identifying and correcting defects in the final product.
-
What is the difference between verification and validation? Answer:
- Verification: "Are we building the product correctly?" It's a static process of reviewing documents and code.
- Validation: "Are we building the right product?" It's a dynamic process of testing the actual software.
-
What is a bug, defect, and error? Answer:
- Error: A human mistake made during development.
- Bug: The manifestation of an error in the code, found during testing.
- Defect: A broader term for any deviation from requirements.
-
Describe the defect life cycle (or bug life cycle). Answer: The defect life cycle describes the process a defect goes through from identification to resolution. Key stages include: New, Assigned, Open, Fixed, Pending Retest, Retest, Verified, and Closed.
-
What is a test case? What does it typically include? Answer: A test case is a set of conditions or variables under which a tester will determine whether a software system is working correctly. It typically includes: Test Case ID, Title, Description, Preconditions, Test Steps, Expected Result, Actual Result, and Status.
-
What is a test scenario? Answer: A test scenario is a high-level description of a functionality or feature to be tested, outlining what to test from an end-user perspective.
-
What is the difference between a test case and a test scenario? Answer: A test scenario is a high-level description of what to test, while a test case is a detailed, step-by-step instruction on how to test.
-
Explain the difference between static and dynamic testing. Answer:
- Static Testing: Examining code and documents without executing the program (e.g., reviews, walkthroughs).
- Dynamic Testing: Executing the software to analyze its behavior (e.g., unit, integration, system testing).
-
What is black box testing? What are some techniques? Answer: Black box testing evaluates the functionality of an application without any knowledge of its internal code structure. Techniques include Equivalence Partitioning, Boundary Value Analysis, and Decision Table Testing.
-
What is white box testing? Answer: White box testing is a methodology where the tester has complete knowledge of the internal workings, structure, and implementation of the application.
-
What is the difference between smoke testing and sanity testing? Answer:
- Smoke Testing: A preliminary test to verify basic and critical functionalities of a new build.
- Sanity Testing: A focused test after minor changes to ensure specific functionalities behave as expected.
-
What is positive and negative testing? Answer:
- Positive Testing: Using valid data to check if the system behaves as expected.
- Negative Testing: Using invalid data to check if the system handles errors gracefully.
-
What are the different types of testing? (e.g., functional, non-functional) Answer:
- Functional Testing: Verifies that the software's features work according to requirements (e.g., Unit, Integration, System Testing).
- Non-Functional Testing: Verifies the quality attributes of the system (e.g., Performance, Security, Usability Testing).
Intermediate Level
These questions delve deeper into testing methodologies, practical application, and common testing challenges.
-
Describe the manual testing process. Answer: The manual testing process follows the STLC: Requirement Analysis, Test Planning, Test Case Development, Test Environment Setup, Test Execution, and Test Cycle Closure.
-
What are the key components of a good test case? Answer: A good test case should be clear, concise, and include a unique ID, descriptive title, preconditions, detailed steps, specific test data, and a precise expected result.
-
What is the difference between severity and priority in bug tracking? Answer:
- Severity: The impact of the bug on the application's functionality.
- Priority: The urgency with which the bug needs to be fixed.
-
Explain different types of functional testing (e.g., Unit, Integration, System, User Acceptance Testing). Answer:
- Unit Testing: Testing individual components in isolation.
- Integration Testing: Testing the interaction between integrated modules.
- System Testing: Testing the complete, integrated system against requirements.
- User Acceptance Testing (UAT): Testing by end-users to verify the system meets their needs.
-
What is regression testing? Why is it important? Answer: Regression testing is the process of re-testing existing functionalities to ensure that new code changes have not adversely affected them. It's important for maintaining software stability.
-
What is retesting? What is the difference between retesting and regression testing? Answer:
- Retesting: Verifying that a specific defect has been fixed.
- Difference: Retesting confirms a fix, while regression testing checks for unintended side effects.
-
What is a test plan? What goes into it? Answer: A test plan is a document that outlines the scope, approach, resources, and schedule of intended testing activities. It includes test items, features to be tested, test strategy, and entry/exit criteria.
-
What is a test strategy? What is the difference between a test plan and a test strategy? Answer:
- Test Strategy: A high-level document that defines the overall testing approach for a project.
- Difference: A test strategy is a general guideline, while a test plan is a specific plan for a particular project.
-
How do you determine test coverage for a software application? Answer: Test coverage is determined by linking test cases to requirements using a Requirement Traceability Matrix (RTM) and by using test design techniques like equivalence partitioning and boundary value analysis.
-
How would you handle a situation where a developer disagrees with your bug report? Answer: I would first re-verify the bug to ensure it's reproducible. Then, I would schedule a meeting with the developer to demonstrate the bug and discuss the expected versus actual behavior, providing clear evidence and logs.
-
When should manual testing be used instead of automated testing? Answer: Manual testing is preferred for exploratory testing, usability testing, ad-hoc testing, and for features that are unstable or have a short lifespan.
-
What are some skills required for manual testing? Answer: Key skills include analytical thinking, attention to detail, communication, domain knowledge, and a good understanding of testing methodologies.
-
Explain boundary value analysis and equivalence partitioning. Answer:
- Equivalence Partitioning: Dividing input data into partitions where all values are expected to behave similarly.
- Boundary Value Analysis: Testing values at the boundaries of valid and invalid partitions.
-
What is Alpha testing and Beta testing? What is the difference between them? Answer:
- Alpha Testing: Testing performed by internal teams at the developer's site.
- Beta Testing: Testing performed by real users in their own environment.
-
What is a test environment? Answer: A test environment is a setup of hardware, software, and network configurations on which the testing team executes their test cases.
-
What is Defect Triage? Answer: Defect triage is a process where a team reviews, prioritizes, and assigns newly logged defects.
-
Explain Test Harness, Test Stub, and Test Driver. Answer:
- Test Harness: A collection of software and test data configured to test a program unit by running it under varying conditions.
- Test Stub: A dummy piece of code used to simulate the behavior of a module that is not yet developed.
- Test Driver: A piece of code that calls a module to be tested.
-
What is Requirement Traceability Matrix (RTM)? Answer: An RTM is a document that maps and traces user requirements with test cases.
-
What are the attributes of a good test case? Answer: A good test case is clear, concise, has a high probability of finding a defect, is reusable, and is easy to maintain.
Advanced / Experienced Level
These questions focus on strategic thinking, problem-solving, process improvement, and experience with complex scenarios.
-
Describe a challenging testing scenario you faced and how you dealt with it. Answer: I once tested a feature with complex, interdependent calculations. I dealt with it by first understanding the business logic thoroughly, then using decision table testing to cover all possible combinations of inputs and their expected outcomes.
-
How do you prioritize testing when you have limited time? Answer: I use a risk-based approach, prioritizing test cases based on business criticality, the likelihood of failure, and the impact of a potential defect.
-
Explain risk-based testing and how you would approach it. Answer: Risk-based testing is a methodology where testing efforts are focused on areas of the application that pose the highest risk. I would approach it by identifying and assessing risks, then designing and prioritizing test cases to mitigate those risks.
-
How do you ensure that software releases meet the required quality standards? Answer: By defining clear entry and exit criteria for each testing phase, maintaining a comprehensive regression suite, and providing transparent reports on test coverage and defect metrics.
-
What is your experience with Agile software development methodologies? Answer: I have extensive experience working in Agile (Scrum) environments, participating in sprint planning, daily stand-ups, and retrospectives, and providing continuous feedback to the development team.
-
How do you ensure that software is accessible and usable for people with special needs (accessibility testing)? Answer: By following WCAG guidelines, using screen readers and other assistive technologies for manual testing, and performing keyboard-only navigation tests.
-
What do you consider to be the most critical aspect of software testing? Answer: The most critical aspect is ensuring that the software meets the end-user's needs and provides a positive user experience, which is achieved through a combination of thorough testing and a deep understanding of the business requirements.
-
How do you perform regression testing manually? Answer: By maintaining a dedicated regression suite of manual test cases that cover the application's core functionalities. For each release, a subset of these test cases is selected based on the impact of the new changes.
-
How would you approach testing a complex feature with many dependencies? Answer: I would start by understanding all the dependencies and integration points. Then, I would use a combination of integration testing, system testing, and end-to-end testing to verify the feature's functionality in isolation and in conjunction with its dependencies.
-
What tools and techniques do you use for bug reporting and tracking? Answer: I use tools like Jira or Azure DevOps for bug tracking. For reporting, I ensure each bug has a clear title, detailed steps to reproduce, expected vs. actual results, and relevant attachments like screenshots or logs.
-
How do you collaborate with developers and other stakeholders in a project? Answer: Through open and regular communication, participating in team meetings, providing constructive feedback, and fostering a shared sense of ownership for product quality.
-
What is bug leakage and bug release? What is the difference between them? Answer:
- Bug Leakage: A bug that is missed by the testing team and is discovered by the end-user.
- Bug Release: A planned release of the software with known, low-priority bugs that are documented in the release notes.
-
How would you test a login functionality comprehensively? (Scenario-based question) Answer: I would test it by creating test cases for various scenarios, including valid login, invalid login (wrong username, wrong password), empty fields, case sensitivity, and security aspects like SQL injection.
-
How would you test an e-commerce payment gateway? (Scenario-based question) Answer: I would test it by verifying successful transactions with different payment methods, handling of failed transactions, security checks, and correct calculation of taxes and shipping costs.
-
What is the pesticide paradox and how can you overcome it? Answer: The pesticide paradox states that if the same set of tests is run repeatedly, it will eventually no longer find new bugs. I would overcome this by regularly reviewing and updating test cases, and by incorporating exploratory testing.
-
How do you stay updated with the latest trends and technologies in software testing? Answer: By reading testing blogs, attending webinars and conferences, participating in online forums, and taking relevant courses.
-
What is your experience with non-functional testing types like performance, security, or usability testing? Answer: I have experience in performing manual usability testing to provide feedback on user experience, and I collaborate with specialized teams for performance and security testing.
-
Scenario: You find a critical bug in production. What steps would you take? Answer: I would first verify the bug and gather all necessary information. Then, I would report it immediately to the project manager and development lead with high priority, and assist in troubleshooting and verifying the fix.
-
Scenario: Your team wants to automate regression testing to save time. How would you approach this? Answer: I would collaborate with the automation team to identify the best candidates for automation from the manual regression suite, focusing on stable, repetitive, and high-risk test cases.
-
Scenario: How do you handle changing requirements during a project? Answer: I would adapt by reviewing the new requirements, assessing their impact on existing test cases, and creating new test cases as needed, while communicating any changes in testing scope and effort to the stakeholders.
-
What is your experience with Agile methodologies (e.g., Scrum)? Answer: I am well-versed in Scrum, participating in all ceremonies, working in sprints, and providing continuous feedback to ensure quality is built into the product from the start.
-
How do you determine when to stop testing? Answer: Testing stops when the exit criteria defined in the test plan are met. This usually includes factors like reaching a certain level of test coverage, a low rate of critical defect discovery, and the project deadline.