Software Testing Interview Questions & Answers (Part 1)

kshitija shirke
7 min readOct 11, 2020

Here is the list of most frequently asked Software Testing Interview Questions and Answers in technical interviews. These questions and answers are suitable for both freshers and experienced professionals at any level.

So, Let’s Start!

  1. What is Software Testing Life Cycle?

STLC is the testing process which is executed in systematic & planned manner. In STLC process, different activities are carried out to improve the quality of the product. Ideally, the next step is based on previous step or we can say next step cannot be started unless & until previous step is completed. It is possible in the ideal situation, but practically it is not always true.

  • Requirement Analysis

In this step quality assurance team understands the requirement in terms of what we will testing & figure out the testable requirement. If any conflict missing or not understood any requirement then QA team follow up with the various stakeholders. The requirements can be either functional or non functional.

  • Test Planning

Test planning is most important phase of software testing life cycle where all testing strategy is defined. This phase also called as test strategy phase. In this phase typically test manager involved to determine the effort & cost estimate for entire project. This phase will be kicked off once the requirement gathering phase is completed & based on the requirement analysis start preparing the test plan. Once test planning phase is complete, the QA team can start with test cases development activity.

  • Test Case Development

This is the phase of STLC where testing team write down the detailed test cases. Along with test cases testing team also prepare the test data if any required for testing. Once the test cases are ready then these test cases are reviewed by peer members or QA lead.

  • Test Environment Setup

Basically test environment decides on which condition software is tested. This is independent activity & can be started parallel with test case development. In process of setting up testing environment test team is not involved in it. Based on company to company may be developer or customer creates the testing environment. Meanwhile testing team should prepare the smoke test cases to check the readiness of the test environment step.

  • Test Execution

In this phase testing team start executing test cases based on prepared test planning & prepared test cases in the prior step. Once the test case is passed then same can be marked as passed. If any test case is failed then corresponding defect can be reported to developer team via bug tracking system & bug can be linked for corresponding test case for further analysis.

  • Test Cycle Closure

Discuss what all went good, what area needs to be improve & taking the lessons from current STLC as input to upcoming test cycles which will help tp improve bottleneck in the STLC process. Once complete the test cycle then test closure report & test metrics will be prepared. The result analysis is to find out the defect distribution by type & severity.

2. What are the Types of Software Testing?

Software testing is generally classified into 2 main broad categories : Functional & Non Functional Testing

Functional Testing

Functional testing involves the testing of the functional aspects of a software application. When you are performing functional tests, you have to test each & every functionality. You need to see whether you are getting the desired results or not. Functional tests are performed both manually & using automation tools. For this type of testing manual testing is easy but you should use tools when necessary.

Functional testing types :

  • Unit Testing

Testing each component or module of your software project is known as unit testing. To perform this kind of testing knowledge of programming is necessary.

  • Integration Testing

After integrating the modules, you need to see if the combined modules work together or not. This type of testing is known as integration testing.

  • End to end Testing

End to end testing is the functional testing of the entire software system. When you test the complete software system such testing is called end to end testing .

  • Regression Testing

If you need to make changes in any component, module or function you have to see if the whole system functions properly after those modifications. Testing of the whole system after such modifications is known as regression testing.

  • Acceptance Testing

The client who will purchase your software will perform acceptance testing to see if the software can be accepted or not by checking whether your software meets all the client’s requirements & preferences. If your Software doesn’t meet all the requirements or if your client doesn’t like something in the app, they may request you to make changes before accepting the project.

  • White Box Testing

Performed by the development team, white box testing is a testing method that requires a good understanding of the application’s code. It requires great knowledge of the app’s internal logic.

  • Black Box Testing

Performed by the QA team of a company, black box testing is a testing technique that involves the checking of the application’s functionality without having any technical knowledge of the application like the knowledge of the code’s logic, how the code works, knowledge of internal structure etc.

  • Interface Testing

User interface testing involves the testing of the application’s user interface. The aim of UI tests is to check whether the user interfaces have been developed according to what is described in the requirement specifications document. By running UI tests you can make the application’s user interface more user friendly & appealing to the eyes.

Non Functional Testing

With non functional testing, you can improve your software’s quality to a great extent. Non functional tests are not generally run manually. In fact, its difficult to perform this kind of tests manually. So these tests are usually executed using tools. Non functional tests are performed after the functional tests.

Non functional testing types:

  • Performance Testing

Performance tests are run to check if the software performance is good or not. There are performance testing tools that analyze your app’s performance & show you the performance issues.

  • Load Testing

Load testing is one kind of performance testing that tests how much load a system can take before the software performance begins to degrade. By running load tests, we can know the capacity of taking load of a system.

  • Security Testing

Security experts run this kind of tests to see how much your software is secure from attacks & to find security issues so that the app’s security can be strengthened.

3. What is the difference between smoke, sanity, regression & retesting?

  • Smoke Testing : Smoke testing is executed to determine if critical functionalities of AUT are working fine. Smoke testing is executed before regression test.
  • Sanity Testing : Sanity testing is executed to determine if the section of AUT is still working as design after some minor changes or bug fixes. Sanity testing is executed before regression testing, after smoke testing.
  • Regression Testing : Regression testing is executed to confirm whether a recent program or code change has not adversely affected existing features. Based on the project & availability of resources, regression testing can be carried out parallel with retesting.
  • Retesting : Retesting is executed to confirm the test cases that failed in the final execution are passing after the defects are fixed. Priority of retesting is higher than regression testing.

4. What are the types of Test Automation Framework?

  • Linear Scripting Framework :

Linear scripting framework is a basic level test automation framework which is in the form of ‘Record & Playback’ in a linear fashion. This type of framework is used to test small sized applications. It has its own drawbacks such as lack of reusability & hard coding data does not allow to run with multiple data sets.

  • Modular Testing Framework :

Testers divide the application into multiple modules & create test scripts individually.

  • Data Driven Framework :

Data driven test automation framework is focused on separating the test script logic & test data from each other. Allows us to create test automation scripts by passing different sets of test data. The test data set is kept in the external files or resources. The test script connect to external resources to get the test data.

  • Keyword Driven Framework :

In keyword driven testing, we use table format to define keywords or action words for each function or method that we would execute. It performs automations test scripts based on keywords specified in the excel sheet.

  • Hybrid Driven Framework :

Hybrid test automation framework is the combination of two or more frameworks mentioned above. It attempts to leverage the strengths & benefits of other frameworks for the particular test environment it manages.

5. What is the difference between Use Case & Test Case?

Use Case :

  • Use case describes us the overview of the software functions to reach final destination.
  • Use cases results are not verified.
  • Usually use cases are described by the analyst from business.
  • Use case can be completed in one time.
  • Use case doesn’t depend on the test case, it only works on requirements.

Test Case :

  • It demonstrates the test progress & the interaction between the software & the user.
  • Test case results are verified, it checks if the result that shows in use cases is functioning properly or not.
  • Test case only described by specialists. They can be s/w analyst, QA team, however mostly the test engineer.
  • Test case required repeated process of the testing.
  • Test case depends on the use case as it described the requirement steps.

--

--