Software Testing Interview Questions:-
Software testing interview questions generally vary for freshers and experienced. However, the basics remain the same and we have covered most of it which would help you to crack the interviews.
As per ANSI / IEEE 1059, A software analysis process to detect differences between existing and required conditions (i.e. defects) and assess the features of the software item is known as Software Testing.
In this article, we will go through different questions that are frequently asked during an interview for software testing.
What are the different stages of a testing life cycle?
The different phases of Software testing life cycle are as mentioned below:-
- Test Planning
- Test Case Development
- Environment Setup
- Test Execution
- Test Cycle Closure
What are the different types of software testing?
As testers, we are aware of different kinds of testing software such as Functional Testing or Non-Functional Testing, Automation Testing, or Agile Testing.
In our testing journey, each one of us would have encountered various kinds of testing. We may have heard and worked on some of them, but not everyone knows all the test types.
Following is the list of common software test types:-
Functional Testing types are:-
- Unit Testing
- Integration Testing
- System Testing
- Sanity Testing
- Smoke Testing
- Interface Testing
- Regression Testing
- Beta/Acceptance Testing
Non-functional Testing types are:-
- Performance Testing
- Load Testing
- Stress Testing
- Volume Testing
- Security Testing
- Compatibility Testing
- Install Testing
- Recovery Testing
- Reliability Testing
- Usability Testing
- Compliance Testing
- Localization Testing
Things to Know:-
What is Black box testing?
BLACK BOX TESTING is described as a testing technique in which the Application Under Test (AUT) is evaluated without analyzing the internal code framework, the implementation details, and knowledge of software ‘s internal path.
It is a software testing method to evaluate the software/ application’s functionality without being aware of the internal layout/design of the product.
Each method of testing has its own benefits and disadvantages. Some bugs cannot be found using the black box only or the white box technique alone.
What is White box testing?
The WHITE BOX TESTING is the process of testing software, where the internal structure, design, or implementation of the item is familiar to the tester, also known as clear box testing, open box testing, glass box testing, transparent box testing, codes-based testing, or structural testing.
It focuses mainly on the verification of the flow of the inputs and the outputs through the app, improved design and usability, and increased security.
The clear box or White Box symbolizes the ability to look in the inner workings of the software through the outer shell.
What is the best test case writing practices?
Here are the few tips to write good test cases –
- Write test cases keeping end-users in mind.
- Simply write test steps so that everyone can easily follow them
- Make the test cases so that it is easily reusable.
- Mention the correct priority
- Mention a description of test cases, test data, expected outcome, precondition, postcondition.
- Provide invalid test cases together with valid test cases.
- Follow conventions of proper naming
- Regularly review the test cases and, if necessary, update them.
What if the software is so unstable that it just cannot be tested?
If the software is so buggy, we must first report the bugs and categories based on seriousness.
If the bugs are critical bugs, the schedules have a serious impact and the problem with the software development process is indicated.
You, therefore, have to inform the manager about the bugs with correct documentation as proof.
What is static testing? When does it start and what is it all about?
Static testing is a method used to test a white box testing technique that allows developers to validate their code using a checklist to identify errors.
Before finalizing the application or system the developers may start static testing. Static tests are cheaper than dynamic ones, as they cover more areas in a shorter time than dynamic tests.
What is meant by agile testing, and why are they important?
Agile testing is a customer-based software testing process for evaluating software. This is beneficial as the development team will not need full coding to start QA.
Both coding and testing go together instead. Nevertheless, continuous customer interaction may be important.
Does retesting and regression testing mean the same?
Some of the differences are as follows between the retest and the regression test:
- We perform retests to verify the fixes for defects. Furthermore, the regression check guarantees that other aspects of the code are not broken by the bug fix.
- The functionality of any or all modules is verified by the regression test cases.
- The re-execution of passed test cases guarantees regression checking. Retesting, however, includes the evaluation of failed test cases.
- Retesting is more critical than regression. Yet both are run in parallel in some situations.
List out the types of different functional testing followed for any project?
Functional testing covers the following types of techniques:
- Unit testing
- Smoke testing
- Sanity testing
- Interface testing
- Integration testing
- System testing
- Regression testing
What functional and non-functional test cases?
Functional testing: the functionality of a program or application under test is tested. It checks the behaviors and actions of the test software.
A document called a software specification, or a requirement specification is used as a reference for evaluating the application based on the client ‘s specifications.
Non-functional testing: If an app runs smoothly and effectively in software conditions as anticipated by the consumer, it is known as a reliable application.
It is very important to check these criteria on the basis of consistency. It is known as a non-functional test.
What is an Error, Defect, and Failure?
Error is a human mistake. An error not only occurs due to the logical error in the developer’s code. Anyone within the team can make mistakes during different software development phases.
A defect is a difference between expected and actual results. An error the tester detects is considered a defect.
A software product defect represents the inability of the software to meet defined specifications and standards and, therefore, to avoid performing the required and planned function by the software application.
The defect is often called Failure. Failure is the result of a defect. It is the system’s observed wrong behavior.
In other words, if the system fails due to any defect during the development or execution of software code, it is referred to as Failure when the system fails as expected.
Not all defects lead to failure; some of them remain inactive and can never be found.
What is meant by exploratory testing?
Exploratory testing is a software testing method whereby testers learn about test design and testing at the same time.
In other words, it is a realistic approach where testers are more interested in the test results than in preparation.
What is a test strategy?
Test Strategy is a high-level (static document) document usually drawn up by the project manager. It is a document that shows the way we evaluate the product and achieve the objectives.
The Business Requirement Specification (BRS) is usually used for this.
Which does a Test Plan contain?
The Test Plan Report includes a schedule for all test activities to be carried out to deliver a quality product. The project Test Plan is taken from the Product Description, SRS, or Use Case Reports for all future project activities.
The Test Lead or Test Manager usually prepares the document and explains what to test, what not to test, and how to test, and who should test what. It also includes the necessary environment and tools, allocation of resources, follow-up testing techniques, risk plans, and contingency.
A test plan is a dynamic document and we should keep it updated at all times.
Explain the Defect or Bug Life Cycle
New: first time a defect is reported and posted. It’s given as a new state.
- Assigned: The tester has posted the bug, and a report is assigned to the corresponding developer and developer team by the tester. It’s in the assigned state.
- Open: the developer started to analyze and work on the defect fix in this state.
- Fixed: if the developer updates the code and verifies the changes, the bug status will be ‘fixed’ and the bug would then be transferred to the testing team.
- Pending retest: After the defect has been fixed, the developer provides the specific code for the tester. The results are pending at the end of the testing system. And this state is pending retest.
- Retest: The tester will now re-test the code that the developer has changed to check whether or not the defect has been fixed.
- Verified: After the developer has fixed the bug, the tester tests it once again. If the bug is not present, the bug will be fixed and change the status to “verified.”
- Reopen: If the error still persists even though the developer has fixed the issue, the tester updates the “reopened” status. The bug moves once more through the life cycle.
- Closed: The tester should check until the error is fixed. If the tester assumes that the bug does not exist anymore, the bug’s status is changed to “closed.” The bug is fixed, tested, and approved in this state.
- Duplicate: When the bug is replicated two times or two bugs reference the same bug definition, a bug status will be marked as “duplicate.”
- Rejected: When developers think the issue is not a bug, the error status would instead be changed to “rejected.”
- Deferred: The bug, modified in a deferred state, means that in next releases the bug is expected to be fixed. There are many reasons why the bug is changed to that state. Some of these priorities may be low, lack of release time or the bug may have no significant software effect.
- Not a bug: the bug is given as “Not a bug” if the functionality of the application does not change. For example: If the Customer requests a change in the app’s look and feel like a color change for some text, it’s not a bug but only a change in the app’s look.
Explain the difference between the smoke and sanity tests?
The key distinctions are the following between smoking and sanity testing.
If a new build has been given after the bug has been fixed, it has to pass the sanity tests. Smoke testing is still conducted to verify the major application features.
Sanity checks are conducted by both the tester and the developer. Smoke tests precede the performance of sanity tests.
Critical areas of the product are covered by a sanity test to ensure the basics work well. Smoke tests however include a set of high-priority test cases with specific functional features.
What is severity and priority in a bug?
Priority reflects the business severity of the issue. It says – How quickly should we fix the bug?
Severity represents the effect of the defect on the application’s functionality. Bugs that have a significant impact on the feature need a fast fix.