Manual Questions
Manual Questions
44) What is the difference between functional testing and non-functional testing?
Functional testing focuses on testing the features and functions of an application to ensure it
works as expected (e.g., unit testing, integration testing).
Non-functional testing deals with how the application performs under certain conditions,
such as load, performance, security, and scalability testing.
46) What is the significance of boundary value analysis in test case design?
Boundary value analysis focuses on testing the boundaries or edge cases of input values, as
errors are often found at the boundaries (e.g., maximum and minimum values of fields).
47) Can you explain the concept of test case prioritization? How would you do it?
Definition: Assigning priorities to test cases based on business impact or defect-prone areas.
Approach:
48) Describe the various stages of the Software Development Life Cycle (SDLC). Where does testing
fit in?
Testing fits in after development and before deployment, ensuring the system meets
requirements and works correctly.
49) How do you identify and report bugs? What's your process for managing defects?
Bugs are identified during testing by validating expected vs. actual results. Once found, a bug
report is created, documenting steps to reproduce, expected vs. actual behavior, severity,
and screenshots/logs. Defects are managed using tools like JIRA or Bugzilla to track status
and resolution.
50) What is the difference between severity and priority in bug reporting?
Severity indicates the impact of the bug on the system (e.g., critical, major, minor).
Priority indicates the urgency to fix the bug based on business needs (e.g., high, medium,
low).
Regression testing ensures that new changes (code or features) have not introduced new
bugs in existing functionalities. In Agile environments, where frequent iterations and changes
are common, regression testing helps maintain the stability and quality of the software.
52) What is smoke testing, and when would you perform it?
Smoke Testing is a quick check of basic functionalities to ensure the application is stable
enough for further testing.
53) Can you explain what a test plan is and what are the key components of it?
A test plan is a document describing the overall testing strategy, scope, resources, and
schedule for testing activities. Key components include objectives, test items, features to be
tested, test deliverables, testing environment, roles and responsibilities, and schedule.
54) How do you ensure the test cases you write cover all the requirements?
To ensure comprehensive test coverage, I map each test case to a specific requirement and
verify that all possible scenarios (positive, negative, boundary conditions) are tested.
Regression testing ensures that new changes (code or features) have not introduced new
bugs in existing functionalities. In Agile environments, where frequent iterations and changes
are common, regression testing helps maintain the stability and quality of the software.
52) What is smoke testing, and when would you perform it?
Smoke Testing is a quick check of basic functionalities to ensure the application is stable
enough for further testing.
53) Can you explain what a test plan is and what are the key components of it?
A test plan is a document describing the overall testing strategy, scope, resources, and
schedule for testing activities. Key components include objectives, test items, features to be
tested, test deliverables, testing environment, roles and responsibilities, and schedule.
54) How do you ensure the test cases you write cover all the requirements?
To ensure comprehensive test coverage, I map each test case to a specific requirement and
verify that all possible scenarios (positive, negative, boundary conditions) are tested.
55) Explain Exploratory Testing. When would you use it, and how does it differ from scripted
testing?
Exploratory testing involves simultaneous learning, test design, and test execution. It's used
when the requirements are unclear or when you need quick feedback. Unlike scripted
testing, which follows predefined steps, exploratory testing relies on the tester's creativity
and intuition.
Exploratory Testing
A testing approach where testers explore the application without predefined test cases,
designing tests on the go based on experience and intuition.
56) How do you deal with ambiguous requirements when creating test cases?
57) What is the difference between system testing and integration testing?3
System testing tests the entire system as a whole to ensure that it behaves as expected.
Integration testing focuses on testing the interaction between different modules or
components of the system.
58) How would you handle situations where you find conflicting test results?
I first verify the environment and data consistency, then check for possible errors in the test
execution process. If conflicts persist, I may consult with team members, perform re-testing,
and analyze logs to determine the root cause.
59) What do you understand by the term "Test Environment"? What does it include?
Includes:
o Network configurations.
o Test data.
In Agile, the tester is responsible for writing and executing test cases, performing exploratory
testing, collaborating with developers, and providing quick feedback on the features
delivered in each sprint.
61) How do you handle situations when there are unclear or vague requirements in Agile sprints?
I collaborate with the Product Owner, Business Analyst, and developers to clarify
requirements. If there's still ambiguity, I make assumptions and document them or prioritize
test cases based on the available information.
62) Explain how you handle changes in the test scope during the testing phase.
I re-assess the impact of the changes on existing test cases, update the test scope
accordingly, and ensure the modified requirements are covered in the testing. Change
management processes like version control and continuous feedback ensure smooth
handling.
63) Can you describe the process of test closure? What activities are part of this phase?
Test closure involves wrapping up the testing activities after test execution. Activities include
reporting the final test results, logging and tracking any open defects, reviewing test cases
for completeness, and creating test summary reports.
An interface is a reference type in Java that defines a set of abstract methods. It allows
classes to implement the methods defined in the interface. Interfaces are used to achieve
abstraction and multiple inheritance.
Method overloading: Defining multiple methods with the same name but different
parameter lists.
Method overriding: Defining a method in a subclass with the same name and signature as a
method in the parent class.
@Override
System.out.println("Overridden method");
SDLC (Software Development Life Cycle) defines the stages of software development,
including planning, design, development, testing, deployment, and maintenance.
STLC (Software Testing Life Cycle) defines the stages of testing, including test planning, test design,
test execution, defect tracking, and test closure
Waterfall, Agile, Spiral, V-Model, and Incremental are common SDLC methodologies. Each
has its approach to development and testing, with Agile emphasizing iterative development
and collaboration.
Scrum is an Agile framework that divides the project into time-boxed iterations called
sprints.
Scrum: A lightweight Agile framework for managing software development using roles
(Scrum Master, Product Owner, Development Team), ceremonies, and artifacts.
Estimation in Sprint involves predicting the amount of work that can be completed in a
sprint, usually measured in story points or hours.
The Sprint backlog is a list of tasks or user stories selected for completion during a sprint,
derived from the product backlog.
Defect Report
Traceability Matrix
Automation Report
Test Case ID
Test Scenario
Steps to Execute
Expected Result
Actual Result
Status (Pass/Fail)
Defect ID
Summary
Steps to Reproduce
Environment Details
Jira is a project management and issue tracking tool used to track bugs, user stories, and
tasks in software development projects.
In Jira, you can link bugs to user stories by using the “Issue Links” feature to associate the
defect with the relevant user story.
A Sprint is a time-boxed period, usually 2-4 weeks, in which a specific set of tasks or user
stories are completed in Agile.
Functional testing checks whether the software works according to its specifications and
requirements.
In my framework, I used encapsulation for data hiding, inheritance for extending base
classes, and polymorphism for handling multiple types of test cases.
TestNG is a testing framework inspired by JUnit and NUnit, designed to simplify test
configuration and execution, with features like parallel test execution, annotations, and
reporting.
TestNG (Test Next Generation) is a testing framework for Java that supports parallel
execution, dependency management, and annotations.
Usability Testing checks how user-friendly the application is by evaluating navigation, design,
and accessibility.
93) What are the steps for reporting the defect in Jira?
Navigate to "Create Issue," select the "Bug" issue type, fill in the details, and assign it to the
relevant person for resolution.
Selenium has a core set of components: WebDriver (for controlling browsers), Grid (for distributed
testing), and IDE (for recording test scripts)
96) Different types of wait in Selenium? Explain each of them.
Implicit Wait: Waits for a certain time globally for elements to be found.
Fluent Wait: A dynamic wait with a polling frequency to check for a condition.
This line creates an instance of the ChromeDriver class, which is required to interact with
Google Chrome in Selenium.
Test Strategy is a high-level document defining the testing approach, methodology, and overall test
objectives for the entire project.
107) In a framework, suppose you have 100 pages, do you create 100 page objects?
Ideally, yes. You create a separate page object for each page to maintain the Page Object Model
(POM) design pattern for better readability, reusability, and maintainability. However, shared
components or reusable methods (like login) can be abstracted into base page classes.
111) Create a Cucumber feature file for a search functionality in an e-commerce application,
including steps for filtering results by category.
112) Explain how you handle shared test data between multiple Cucumber scenarios.
Shared test data can be handled by using Cucumber's @Before and @After hooks or creating
a context class to store data across scenarios. You can also use dependency injection for
sharing test data across steps.
113) What is an ElementClickInterceptedException? Give scenarios where this might occur and
explain how to resolve it.
Resolution: Wait for the element to be clickable using WebDriverWait or scroll to the
element using JavaScript.
117) What are Fluent Waits in Selenium, and when would you use them instead of Explicit Waits?
Fluent Wait allows you to specify a maximum wait time and a polling frequency to check for
a condition.
Use Fluent Wait when you need more control over polling frequency or when the condition
might take varying amounts of time to be met.
.withTimeout(Duration.ofSeconds(30))
.pollingEvery(Duration.ofSeconds(5))
.ignoring(NoSuchElementException.class);
125) You report a bug that the developer refuses to fix, saying it's "not reproducible." Write steps
to handle the situation professionally.
Politely ask the developer for specific details about their environment.
Suggest further debugging steps or environment setups to help reproduce the bug.
Involve the test manager or lead if needed to resolve the conflict.
126) What are different types of exceptions you faced in your framework and how you resolved
them?
127) What is stale element exception? Why it occurs? Use of text() in XPath?
The use of text() in XPath helps to locate an element based on its visible text. Example:
//button[text()='Submit']
This helps in situations where an element's text content is constant and can be used for
reliable location.
WebDriver driver = new ChromeDriver() is preferred because it directly initializes the driver
instance for Google Chrome, which is widely used and stable for automated testing.
Additionally, ChromeDriver supports multiple options like headless testing, which is efficient
for CI/CD pipelines.
The parent class of all exceptions in Java is Throwable. It has two main subclasses: Error and
Exception. Exception further divides into RuntimeException and checked exceptions.
A 400 Bad Request response indicates that the server cannot process the request due to
invalid syntax. It typically occurs when required parameters are missing or invalid in the API
request.
PUT is used to update a resource entirely. It replaces the existing resource with the new one.
PATCH is used to update a resource partially. It only modifies the fields that need to be updated,
leaving the rest unchanged
135) What is the use of dynamic XPath? Write dynamic XPath for the 'Check Availability' button on
the Rediffmail create account page.
Dynamic XPath allows for more flexible element location, especially when the elements
change dynamically (e.g., in IDs or classes).
This XPath works even if the button's ID changes but still contains the text "Check Availability."
136) XPath axes use and tell me XPath functions you have used.
XPath axes like parent, child, descendant, ancestor, following, and preceding allow
navigation through elements in the DOM.
2. element.click();
3. Using Actions class (for complex actions like hover and click):
5. actions.moveToElement(element).click().perform();
8. js.executeScript("arguments[0].click();", element);
139) Are you comfortable to work with manual testing as well if needed?
Yes, I am open to manual testing if required, especially in situations where automation is not
feasible or during exploratory testing.
final: Used to declare constants, prevent method overriding, and prevent inheritance.
finally: A block used in exception handling that always runs, regardless of whether an
exception is thrown or not.
finalize: A method in the Object class that is called by the garbage collector before an object
is destroyed.
141) Can you use multiple catch blocks with try block?
Yes, multiple catch blocks can be used to handle different types of exceptions.
try {
} catch (IOException e) {
// Handle IOException
} catch (SQLException e) {
// Handle SQLException
142) Dynamic Dropdowns: How would you select an item from a dropdown where options load
dynamically as you type?
You can use sendKeys() to type and dynamically filter the dropdown options:
dropdown.sendKeys("item_name");
151) Data-Driven Testing: How would you use Selenium to read test data from an external source
(Excel/CSV) and execute test cases?
To perform data-driven testing, Selenium can be combined with a data provider like Apache
POI (for Excel) or OpenCSV (for CSV files). Test data is read from the file and passed to test
methods using frameworks like TestNG or JUnit. Example with TestNG and Excel:
@DataProvider(name = "excelData")
@Test(dataProvider = "excelData")
Software testing is the process of verifying and validating that a software application meets the
specified requirements and is free of defects. It ensures that the software functions correctly, is
reliable, and performs as expected.
Ensures Quality – Verifies that the software meets business and user requirements.
Verification is the process of checking if the software meets the specified requirements and
is built correctly (e.g., reviewing the code or design).
Validation is the process of ensuring the software meets the user's needs and requirements
(e.g., functional testing).
Unit Testing – Tests individual components or functions of the software. Usually done by
developers.
System Testing – Tests the entire system to ensure it meets the requirements.
Acceptance Testing – Ensures the software meets business needs and is ready for
release. Performed by end-users or clients.
Regression Testing: Verifying that new changes don’t break existing functionality.
Equivalence Partitioning divides input data into groups where the behavior of the system is
expected to be the same. Each group is treated as a representative value.
Defects are logged in a defect tracking system (e.g., JIRA). Each defect is analyzed, assigned
severity and priority, and then assigned to the relevant developer for fixing. After the defect
is fixed, re-testing is performed to ensure resolution.
Defect Triage is the process of evaluating defects to determine their priority, assigning
responsibility for fixing them, and deciding whether they should be fixed in the current
release or deferred. It’s important for effective defect management.
168) What is the Agile testing methodology, and how is it different from traditional waterfall
testing?
Agile Testing involves testing continuously throughout the development cycle, with frequent
feedback and adaptation. In contrast, Waterfall Testing is done at the end of the
development cycle after all features are built.
169) What is the difference between static testing and dynamic testing?
Static Testing involves reviewing documents or code without executing the program (e.g.,
code reviews, inspections).
Dynamic Testing involves executing the code to verify that it behaves as expected (e.g.,
functional testing).
Usability Testing evaluates how user-friendly, efficient, and intuitive an application is. It is
typically conducted by observing real users interact with the application and collecting
feedback.
Test Coverage refers to the percentage of the application or code that is covered by test
cases. Higher test coverage indicates more thorough testing.
TestNG supports parallel execution. You can configure it in the testng.xml file by setting
parallel="tests" or parallel="methods" depending on how you want the tests to be executed.
<test name="Test1">
<classes>
<class name="TestClass1"/>
</classes>
</test>
<test name="Test2">
<classes>
<class name="TestClass2"/>
</classes>
</test>
</suite>
173) Which method allows you to change control from one window to another?
driver.switchTo().window(windowHandle);
175) Which open-source tools allow us to read and write MS Excel files using Java?
Apache POI is a widely used open-source library for reading and writing Excel files in Java.
The WebDriver component is the most important, as it provides the interface to interact
with browsers and perform tests.
UI Testing (User Interface Testing) involves verifying the graphical interface of a system to
ensure it functions as expected and is user-friendly.
Open-source software is software whose source code is freely available for anyone to
inspect, modify, and distribute.
190) Which method is present in POM (Page Object Model) to locate a web element?
In POM, WebDriver is used to locate web elements, typically with @FindBy annotations (for
PageFactory) or findElement() method. Example using PageFactory:
@FindBy(id = "loginButton")
WebElement loginButton;
192) Which tool will you use to manage and organize jar and lib in automation?
Maven or Gradle can be used to manage and organize JAR files and dependencies in an
automation project.
198) Your automated tests for a login page are failing intermittently. How would you investigate
and address this issue?
Check for:
3. Verify if the page is loading fully before interaction (add appropriate waits).
199) The website you're testing has elements that constantly change IDs or positions. What
techniques would you use to create reliable locators for your tests?
Use dynamic XPath or CSS selectors with attributes like name, class, text(), or contains()
functions. Alternatively, try to find parent-child relationships or unique attributes.
200) A critical API endpoint is returning unexpected errors. How would you use automation to help
debug this?
Use tools like Postman or RestAssured to automate API tests and validate the response. Log
the error messages and status codes to help debug. You can also use automation to test
various parameters and configurations to pinpoint the cause of the errors.
Here are answers for questions 201 to 207:
201) Your web application needs to work flawlessly across different browsers (Chrome, Firefox,
Safari). How would you approach cross-browser test automation?
3. Use a BrowserStack or Sauce Labs for running tests on various browsers and
versions on the cloud.
4. Ensure that all elements and actions are located using reliable locators (e.g., XPath,
CSS selectors) to avoid issues due to browser rendering differences.
202) Users complain about slow loading times on a specific page. How can automation help
identify performance issues?
1. Use performance testing tools like JMeter or Gatling to test the page load times and
track resource usage.
3. Utilize browser developer tools (e.g., Chrome DevTools) to inspect network latency,
resource loading times, and any bottlenecks during page load.
5. Automate the entire process with performance scripts to periodically measure page
loading and response times.
203) You need to test a form with a large number of different input values. How would you
efficiently manage and use test data in your automation?
4. Use parameterized tests to execute the same test with different data sets.
204) The company is prioritizing mobile users. How would you automate testing on different
mobile devices and operating systems?
2. Set up a mobile testing grid to execute tests across multiple devices using
BrowserStack, Sauce Labs, or a locally connected mobile farm.
5. Ensure compatibility with multiple OS versions (e.g., Android 9, iOS 14) by integrating
testing in the CI/CD pipeline.
205) You encounter a feature that seems impossible to automate (e.g., audio/video playback).
How do you handle this in your test strategy?
1. Consider manual testing for complex features that can't be automated reliably (e.g.,
audio/video synchronization, quality, and user experience).
2. Use API testing for backend validation if the feature involves content streaming.
4. Implement health checks to ensure the media files load correctly, even if the
playback can't be fully automated.
206) You're tasked with automating tests for an old application with limited documentation. How
would you approach this?
2. Perform an exploratory test to identify core workflows and record them for
automation.
3. Build basic automation scripts for the most important flows first (e.g., login, form
submissions).
4. Gradually add more tests as you understand the application, even if there’s little
documentation.
5. Use screen recording and logging to track issues and behavior for further
investigation.
207) How would you integrate your automated tests into a Continuous Integration/Continuous
Delivery pipeline?
1. Set up a CI/CD tool like Jenkins, GitLab CI, or Azure Pipelines to trigger tests
automatically after each code commit.
2. Create a test suite that can run independently in the CI/CD pipeline, using
frameworks like JUnit, TestNG, or Cucumber.
3. Use Docker containers for setting up a consistent test environment across different
machines.
4. Ensure that test execution results are stored in a report (e.g., HTML, JUnit format)
for easy analysis.
5. If tests fail, set up alerts to notify the team, enabling immediate investigation and
quick fixes.
6. Add tests for performance, API, and UI within the pipeline to cover all aspects of the
application.