Software testing interview questions can be very tricky, especially for a fresher. This list of possible questions (with answers) is here to help.
There are many different things you can be asked during your first interviews as a Software Tester, but to give you an idea (and probably some training) of what to be prepared for, here are some basic software testing interview questions and answers for freshers.
What is the purpose of Software Testing?
Software testing is a process to find out if software under test matches its designed technical and business requirements. It can also be referred to as a set of activities carried in order to find bugs in software.
Name and describe Software Testing Levels.
Most commonly listed Software Testing Levels are:
Unit testing is usually performed by developers (or white-box testers) and includes testing the smallest software modules. It is performed prior to component testing (and in some methodologies, even prior to the development itself).
Component testing is a testing of independent components, which can be performed with the use of stubs, drivers and simulators before other parts of application become ready for testing. Component testing is performed by a software tester.
Integration testing looks at how several (or all) components interact. It is sometimes divided into sublevels such as Component integration testing or System integration testing. There are several approaches to integration testing based on the order of the components’ integration. These can be Bottom-Up, Top-Down, Big Bang approach, or a Hybrid approach.
System testing assesses the system as a whole, for example, end-to-end testing. It’s the final stage that tests the product and is performed by professional testing agents.
Acceptance testing is performed by end users, customers or other entitled authorities to ensure that the system meets the acceptance criteria. This is a final stage of testing before the product is officially introduced into the market.
What roles are specific to Scrum? Give a short overview of each.
There are three defined roles in Scrum, which are Product Owner, Scrum Master and Scrum Team. The Product Owner defines the backlog and its prioritization. He/she embodies the client and business, and is also responsible for the financial outcome of the project (ROI) and serves as an interface between the team and other stakeholders. The Scrum Master carries the role of moderator (and facilitator) for the meetings. They will be a regular team member but with some extra functions. This person is responsible for the Scrum rules being followed and will be responsible for creating proper working conditions for the team to perform most efficiently in order to meet the sprint goals. The Scrum Team is a development team of usually 7 (+/-2) members which is self-sufficient, self-organized, and as empowered and autonomous as possible.
Describe a life cycle of a bug. List common statuses of a bug within its life cycle.
The common bug workflow looks like this:
New (Open) – The bug is reported
In Progress – The bug is assigned to a developer and started to be worked on
Resolved – The bug is fixed by the developer
Verified – The bug fix is verified by a software tester
Closed – The bug is not reproduced, confirmed to be a duplicate or not a bug
Reopened – The bug is reproducible again
There are also additional statuses, such as Assigned or Deferred, which can be assigned as necessary.
For example, here is a workflow for one of the possible bug type issue:
What are the common fields used for a test case?
- Test Case ID
- Test Priority
- Test Case Name
- Test Case Description
- Precondition /Pre-requisite
- Expected Result
- Actual Result
- Status (Passed / Failed)
- Optional: Comments; Browser, OS and/or Device Details; Bug ID or Reference; Input Data; Requirements; Attachments; Automated (Yes/No); Test Type.
What would you do if you found an intermittent error which is rarely reproduced?
Record a video as you try to find the conditions that influence the reproducibility of the bug. It could lie in some previous steps or settings but it may, or may not, be the cause. It might depend on a totally different reason, such as which server is being used by the application at the time. Also, collect logs and check console for errors if possible. Attach these artifacts to the bug report. Sometimes logs convey nothing to the tester but can hold significant information for the developer. Specify the environment being used and, if possible, try reproducing it in other environments. Make sure the steps are concise, full and sufficient.
What is the difference between bug severity and bug priority? Give examples.
Bug severity is usually set by a software tester to define the impact an issue has on a system. Bug priority is about the importance of the issue and how soon it needs to be fixed. This is most commonly set by a Project Manager, Test Manager, Product Owner or a representative of the business who is responsible for prioritization. To give an example, imagine a spelling mistake in the slogan on the landing page. It is a minor issue in terms of severity, as it doesn’t impact the system, but priority will be high, as it influences the UX strongly and needs to be fixed ASAP. Another example could be a rare combination of steps that leads to a system crash. The severity here is high but the bug can have low priority due to the unlikely probability of it being reproduced in real life and/or being deferred if, for example, the bug will be presumed to be unreproducible after forthcoming system.
What is the purpose of regression testing?
Regression testing is performed after changes to the software have been made, such as functionality being added or modified, or a bug fixed. The purpose of regression testing is to ensure that any new changes or modifications have not broken previously existing functionality, new bugs didn’t appear and that no ‘unexpected side-effects’ have been introduced.
What is the difference between dynamic and static testing techniques? Give examples.
Dynamic testing is a testing technique that requires the code being run. Static testing refers to an examination of the code and/or relevant documentation that does not require the code to be run. Examples of dynamic testing include execution of end-to-end test, smoke test or functional test. Examples of the static testing method are requirements analysis, a review of test cases, and code review.
A developer tells you that a bug reported by you is not a bug. What would you do?
It is important to clarify for what reason the developer stated so. Is there a clear requirement that I’ve missed for some reason? Or a confirmation from the BA or PM? Or is it because the dev didn’t understand the bug description correctly or was unable to reproduce it? After I find it out and if we still have different understanding about the bug, I’d address the owner of requirements (e.g., Business Analyst) providing the information based on which the bug was reported with the request for their resolution.
What is a test plan?
A test plan is a document created during the planning phase of a software testing life cycle that includes detailed information on the test objectives and scope, as well as defining the test strategy, resources, environment, estimations, risks, deliverables and exit criteria.
What is the main reason for using a risk-based approach in testing?
It is impossible to test everything because resources (time, money, materials) are always limited. The risk-based approach allows the prioritization of a sufficient and required level of testing based on risks evaluation. The order of priority is focused on areas of functionality that will have the highest impact and probability of occurrence of any undesired outcome.
As you have seen, interview questions can cover not only Software Testing theory, but also practical approaches, understanding of roles, and interactions in a team. For more tips on how to start a Software Testing career, what to learn and how to gain your first testing experience, read How to Get a Job in Software Testing as a Fresher.
Good luck in your career, and stay tuned!