Popular Software Testing Interview Questions

1. What is Software Testing?

Software Testing is a process used to check the correctness, completeness and quality of developed software or product or application.
Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that software product is defect free.

2. What are the different Levels of Manual Testing?

Four levels of manual testing are:

  • Unit Testing– It is a type of software testing where individual units or components of software are tested. The purpose is to validate that each unit of the software code performs as expected. Unit Testing is done during the development (coding phase) of an application by the developers.

  • Integration Testing – It is a level of software testing where individual units are combined and tested to verify if they are working as they intend to when integrated. The main aim here is to test the interface between the modules.
  • System Testing – In system testing all the components of the software are tested as a whole in order to ensure that the overall

  • User Acceptance Testing – User Acceptance Testing (UAT) is a type of testing performed by the end-user or the client to verify/accept the software system before moving the software application to the production environment.

3. Difference between Smoke & Sanity Testing?

Smoke Testing vs Sanity Testing :

Product meets the requirements specified. is a level of testing that validates the complete and fully integrated software product.

Smoke Testing
Sanity Testing

It is done by both developers & testers

It is done by Testers

Smoke Testing verifies the critical functionalities of the system

Sanity Testing verifies the new functionality like bug fixes.

Smoke testing is a subset of acceptance testing

Sanity testing is a subset of Regression Testing.

Smoke testing is documented or scripted

No need of documentation

Smoke testing verifies the entire system from end to end

Sanity Testing verifies only a particular component.

4.Difference between Functional & Non Functional Testing with example?

Functional Testing & Non Functional Testing

Functional testing is performed using the functional specification provided by the client and verifies the system against the functional requirements.

Non-Functional testing checks the Performance, reliability, scalability and other non-functional aspects of the software system.

Non-functional testing should be performed after functional testing

Functional Testing
Non Functional Testing

Manual Testing or automation tools can be used for functional testing.

Using tools will be effective for this testing.

Business requirements are the inputs to functional testing.

Performance parameters like speed, scalability are inputs to non-functional testing.

Functional testing describes what the product does.

Nonfunctional testing describes how good the product works.

Easy to do Manual Testing.

Tough to do Manual Testing.

Ex- Functional Requirements of WhatsApp are Chatting, Video Calling, profile Changing, etc.

Ex – Non-Functional Requirements of WhatsApp are GUI, Look & Feel, Performance, etc.

5. What are the Software Testing Techniques?

Boundary Value Analysis – Boundary testing is the process of testing between extreme ends or boundaries between partitions of the input values. So these extreme ends like Maximum-Minimum, values are called boundary values and the testing is called “boundary testing”.

Equivalent Class Partitioning – Equivalence class partitioning is a black-box testing technique based on specifications. A set of input data that defines multiple test conditions is partitioned into logically comparable groups in equivalence class partitioning.

Decision Table – A decision table is also known as to Cause-Effect table. This software testing technique is used for functions which respond to a combination of inputs or events. For example, a submit button should be enabled if the user has entered all required fields.

State Transition – State Transition Testing is a black box testing technique in which changes made in input conditions cause state changes or output changes in the Application under Test(AUT). State transition testing helps to analyze behaviour of an application for different input conditions.

Experience Based Testing – When there is insufficient/no documentation and also a limited time frame Experience-based techniques come in handy in such situations. They use the tester’s experience to understand the most important areas of a system i.e. areas most used by the customer and areas that are most likely to fail.

Error Guessing – Error Guessing is a simple technique that takes advantage of a tester’s skill, intuition and experience with similar applications to identify special tests that formal Black Box techniques could not identify Exploratory Testing: This is used when specifications are either missing or inadequate and where there is severe time pressure. A test charter of test objectives is first created and based on the test objectives, test cases are designed, executed and logged, all these activities occur concurrently along with learning about the application within a fixed time frame (time- box).

6. What is the difference between System Testing & UAT Testing ?

System Testing & UAT Testing

System Testing
UAT Testing
  • System testing is done to check whether the software or product meets the specified requirements or not.
  • System testing is used by developers as well as testers.
  • System Testing is the constitute of System and integration testing.
  • System testing is done before the Acceptance testing.
  • In system testing, system is checked for dummy inputs
  • Acceptance testing is the type of testing which is used to check whether the software meets the customer requirements or not.
  • Acceptance testing is used by testers, stakeholders, clients etc.
  • Acceptance testing is the constitute of alpha & beta testing.
  • Acceptance testing is done after the System testing.
  • In acceptance testing, system is checked for random inputs.

7. What is Regression Testing?

Regression testing is done to make sure that new code changes should not have side effects on the existing functionalities. Regression testing is a black box testing techniques. It is used to authenticate a code change in the software does not impact the existing functionality of the product. Regression testing is making sure that the product works fine with new functionality, bug fixes, or any change in the existing feature.

Regression testing is a type of software testing. Test cases are re-executed to check the previous functionality of the application is working fine, and the new changes have not produced any bugs.

8. What is Test Cases & write a Test Cases for one application and show! What is Defect and its various status?

A test case template is a document that comes under one of the test artifacts, which allows testers to develop the test cases for a particular test

scenario in order to verify whether the features of an application are working as intended or not. Test cases are the set of positive and negative executable steps of a test scenario which has a set of pre-conditions, test data, expected results, post-conditions, and actual results.

Why test cases are important?

A test case template is a document that comes under one of the test artifacts, which allows testers to develop the test cases for a particular test scenario in order to verify whether the features of an application are working as intended or not.

Benefits of Test Case?
  • Guaranteed good test coverage.
  • Reduced maintenance and software support costs.
  • Reusable test cases.
  • Confirmation that the software satisfies end-user requirements.
  • Improved quality of software and user experience.
  • Higher quality products lead to more satisfied customers.
  • More satisfied customers will increase company profits.