Top Mostly asked Software Testing Interview Questions-Answers in 2020

Answer — Software Testing is a process of executing an application or a programme with the intent of finding the software bugs. It verifies actual product with an expected product to make it defect free.

Answer — Software Testing Life Cycle(STLC) is a process of whole activities performed during bug detection to bug resolve. There are multiple phases in STLC. Each phase in STLC has specific action to be performed. You will get more reference about it here.


Black Box Testing is a Software Testing method in which internal structure/ code/ implementation of any software product/program is not known to the tester. Tester don’t have any idea about internal working of any product is being tested, limited knowledge means only external functionality is known. It is done by Testers. Here Programming knowledge is not needed to perform Black Box Testing.

White Box Testing is a Software Testing method in which internal structure/ code/ implementation of any software product is known to the Tester. Tester knows how the internal working goes, implementation works. It is applicable to Unit Testing, Integration Testing. It is mostly done by developers and Testers too. Here Programming knowledge is needed to perform White Box Testing.

Answer –

Error: The different output from the required logic, syntax or standards is called as Error.

There are 3 types of Errors: 1.Syntax Error 2. Logical Error 3.Execution Error

Defect: When an error is detected by Tester i.e. Quality department then it is called a Defect.

Bug: When a defect gets approved by the Software Developer then it converts into Bug.

Answer — Traceability matrix also called Requirement Traceability Matrix is a table that traces the requirements during the S/W development life cycle.This includes one with the requirement specifications and another one with the test cases.There are many user defined templates for RTM. Each requirement is RTM document is linked with it’s associated test case so that testing can be done as per the mentioned requirements. Furthermore, Bug Id is also linked with it’s associated requirements and test case.A Traceability Matrix is a document that co-relates any two-baseline documents that require a many-to-many relationship to check the completeness of the relationship.

Requirement Traceability Matrix (RTM) is a document that maps and traces user requirement with test cases.It captures all requirements proposed by the client and requirement traceability in a single document, delivered at the conclusion of the Software devlopement life cycle. The main purpose of Requirement Traceability Matrix is to validate that all requirements are checked via test cases such that no functionality is unchecked during Software testing.

  1. Requirement Id
  2. Requirement Type and Description
  3. Test Cases with Status

Traceability Matrix can do below listed things:

1. Show the requirement coverage in the number of test cases

2. Design status as well as execution status for the specific test case

3. If there is any User Acceptance test to be done by the users, then UAT status can also be captured in the same matrix.

It checks 100% test coverage. It analyzes the impact on the QA team’s work with respect to revisiting or re-working on the test cases. The related defects and the current state can also be mentioned in the same matrix. It shows missing requirements or document Failure. It helps in tracing the developed documents during different phases of SDLC. It shows the overall defects or execution status with a focus on business requirements.

Answer — Basically on high level there are 2 types of Software Testing:

1. Functional Testing

2. Non-Functional Testing

Functional Testing: Functional Testing is nothing but What is the work is supposed to do. It tests whether each functionality or operation is performing as per requirement. Functional Testing tests the behavior of a software under test. Types of Functional Testing:

1.Unit Testing

2.Smoke Testing

3.Sanity Testing

4.Integration Testing

5.System Testing

6.Component Testing

7.Regression Testing

8.User Acceptance Testing

Non-Functional Testing: Non-Functional Testing is a type of testing which is performed to verify the Non-functional requirements of Application. It is based on the requirements defined by clients. It focuses on the behavior of the product not the functionality. It enhances the performance of the software.


Test Case: Test case is a set of actions to be performed on the Software product to verify the expected functionality of the sprint or feature. A Test case contains test steps, test data, preconditions, Expected Result, Actual Result, Status, Post conditions, etc. It describes “How to Test” any functionality.

Test Scenario: Test Scenario describes What to Test. Multiple test cases can be created from single Test Scenario. It covers a wide range of possibilities.

Test Suit: A Collection of Test Cases is called Test Suit. Test Suits are based on the scope of project.


Smoke Testing is a process which checks the major functionality of any product or build is working fine or not. Instead of going in detail deep testing, it checks only major core parts of build. This is how tester can reject any majorly affected links or broken links at initial stage. The main focus of Smoke Testing is to test the critical areas/ parts of the application and not whole application.

Sanity Testing : Sanity Testing is a type of Testing which checks whether software is working fine when any new module or functionality gets implemented to an existing product and after bug got fix. Sanity Testing is usually performed by Testers. Sanity Testing is a subset of Regression Testing.

Answer — Priority of the Test is urgency to solve the bug.

Severity is Impact of the bug on the application.


Load Testing: Load Testing is a non-functional testing in which performance of software application is tested under a specific expected Load. It is testing of an application under normally expected condition. It checks the highest limit of any module in an application.Ex. No. of logged in users.

Stress Testing: Stress Testing is nothing but testing of an application under worst case situation. It verifies the higher point at which system breaks. It checks reliability and capability of product.

Ex. Website get crashed, slow speed at the time of any online sale

Answer — Regression Testing is a type of testing in which testers verify that any change in code of the software does not affect any existing functionality of software. It checks whether product is working fine after change in any functionality or existing code. In Regression testing already executed test cases gets executed to ensure whether they are working fine or not.

Answer — Unit Testing is basically done by Developers at the time of Software Development. It is a type of testing where every individual units are tested. The focus is to check every single unit of product is performing as expected.


Verification: Verification is static testing. It occurs before Validation. It addresses the concern “Are you building product Right?”. It is done by Developers. It includes following activities: 1. Inspections 2. Reviews 3. Walk- throughs 4.Demos

Validation: Validation is dynamic testing. It occurs after Verification. It addresses the concern “Are you building the Right product?”. It is done by Testers. It includes following activities: 1.Functional Testing. 2. Non-Functional Testing.

Answer — Integration Testing is defined as the testing of combined parts of an application to determine if they are working correctly. Integration Testing performed after Unit Testing. Here, we test the group of related module. It finds interfacing issues between the modules. It can be done in 2 ways: 1. Bottom-Up Integration Testing 2. Top- Down Integration Testing

Answer –

Retesting: Retesting test the failed test cases in final execution to verify whether issue has resolved or not. It is applied on Defect fixes. Defect Verification is came under Retesting. Priority of Retesting over Regression Testing is higher, so it is carried out before Regression Testing. Retesting is performed on Failed Test cases.

Regression Testing: Regression Testing is a testing which checks due to any bug fix or modification in code other part of the application should not get affected. It is not performed for specific defect fixes. It is carried out parallel with Retesting. Regression Testing is performed on only passed test cases.

Answer — Gorilla Testing is a type of testing in which testers and sometimes developers also takes part. In this testing any product or module get tested in all aspects repeatedly to check the robustness of the product. Gorilla Testing describes the repetitive, boring manual testing process which is done by tester hundred times before. It checks the functionality of any module heavily. It is also called as Frustrating Testing.

Answer — Monkey Testing is a type of testing in which user or tester provides a random input to check the behavior of any application, to check whether system is crashing or not. This technique does not follow any predefined test cases. This testing works well at the time of Load / Stress testing by providing random inputs to check whether application is breaking or not.

Answer — As in name Exploratory Testing is about exploring the product. What is the purpose of product or any application, what it does, what it doesn’t do, what works and what not works. In this Testers are involved in minimum planning and maximum test execution. This testing means testing of Software without any specific plans and schedules.

Answer –

Alpha Testing: Alpha Testing is a first phase of testing in customer validation. It is performed in Development environment before it is released to the customer. Here white-box and or black box testing technique are involved. Here the functionality, usability of the product gets tested.

Beta Testing: This is the second phase in Customer Validation. It is performed in Customer environment

Answer — Compatibility Testing is a Non-Functional type of Testing which performed to check whether an application or software product is working fine on different devices, different operating system, different browsers, different hardware and network requirements.

Answer — A Release is an installable software provided to the end-users after it gets tested by testers. At the time of product release, release notes are attached to it includes a number of defects still open, covered user stories, change-requirements, and version of the release.

A Build is an executable file passed by Developers to the testing team for testing the application. It undergoes various processes of fixing and testing until the application works as expected. Once the application becomes stable and ready, it gets released in the market.

Answer — Fuzz Testing is a testing in which a large amount of random input data is provided to the application to find any security threats or risk and issues in the application.

Answer — Desktop application is a computer programe which runs on local computer. It needs electricity and desktop/ laptop/ tablet etc. Desktop apps are restricted for some hardware requirements.

Web Application can be used worldwide at any time, at any location. It just needs an internet connection, network requirement. Those who have access to browser, internet can use web application.

AnswerTest Stub is a prototype of a function which integrates with an application to complete it’s functionality. Prototype means only a skeleton of a function without any code. It is useful in testing that follows top-down approach.

Test Driver is a part of a program that calls Software component under Test. It is useful in testing that follows bottom-up approach.

Answer — I would write the test cases based on Functional specifications and Business Requirements Document (BRD) and test cases using the domain knowledge.

Answer — In Software Development Life Cycle, after completion of FRS Document the Test Lead prepare the use case document and test plan document, then the tester role starts.

Answer — Test Plan in Software Testing is a formal document which describes the scope of testing, time requirement, resource requirement, test environment in which testing will be performed, schedule of testing activities. Basically Test Team Lead writes the Test Plan. It is derived from the Software Requirement Specifications.

Answer — Exhaustive testing is a testing in which all possible data combinations are used as a input to check the application’s performance.

Answer — GUI is a Graphical User Interface Testing in which tester finds the defects in User Interface. It checks whether User interface is looking as expected and meet the specifications.

AnswerPositive Testing is performed to proove that a given product or application is working as it is expected to do. The need of Positive Testing is to verify the known test conditions. When a test case tests the software to obtain a set of expected output, it is called as Positive Testing.

Negative Testing is performed to proove that application does not fail when an unexpected input is given. The need or purpose of Negative Testing is to break the system with unknown inputs. Providing unknown input to the application gives an idea about how the application is performing in critical situation. When you put an invalid input and receive errors is known as negative testing.

Answer — Formal Testing is performed with a plan, documented set of test cases, etc that outline the methodology and test objectives. Test documentation is developed from requirements documents, design document, equivalence partitioning, domain coverage, error guessing, etc.

Answer — As in name Security Testing is a testing which determines data and resources be saved from outer intruders. It saves the system from any kind of vulnerabilities that any hacker could exploit.

Answer — UAT in Software Testing is User Acceptance Testing. This is the last phase of STLC. It is also known as end-user testing. The purpose of this testing is to verify that Software is working as per the Business Requirements or Expectations. It checks the user-friendliness of the application.

Answer — Adhoc Testing is a testing in which tester tries to break the system by giving multiple random inputs. It is performed without any proper planning, test cases and functionality. Adhoc tests are performed after formal testing is performed. The tests are intended to be run only once, unless a defect is discovered.

Answer — Spike Testing is a non-functional type of testing. It is a performance testing in which application’s performance get checked after increasing the number of active users during the load testing.


Software Testing Techniques gives testers a better idea to write testcases. It reduces a no. of test cases.

There are 5 different Test Design Techniques:

  1. Boundary Value Analysis (BVA)
  2. Equivalence Class Partitioning
  3. Decision Table based Testing
  4. State Transition
  5. Error Guessing



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Blogger, Software Development, Software Testing