Software Testing - Interview Questions and Answers

 

The different phases involved in the software testing life cycle are:

Requirement Analysis Here, the QA team understands the requirements and identify the testable requirements.
Test Planning In this phase, the test strategy is defined.
Test Case Development Here, detailed test cases are defined and developed.
Environment Setup It is a setup of software and hardware for the testing teams to execute test cases.
Test Execution It is the process of executing the code and comparing the expected and actual results.
Test Cycle Closure It involves calling out the testing team member meeting & evaluating cycle completion criteria based on test coverage, quality, cost, time, critical business objectives, and software.

Black box Testing: The strategy of black box testing is based on requirements and specification. It requires no need of knowledge of internal path, structure or implementation of the software being tested.

White box Testing: White box testing is based on internal paths, code structure, and implementation of the software being tested. It requires a full and detail programming skill.

Gray box Testing: This is another type of testing in which we look into the box which is being tested, It is done only to understand how it has been implemented. After that, we close the box and use the black box testing.

Risk-based testing is done for projects and applications based on risks. It uses risk to prioritize and emphasize the appropriate tests during test execution.

  • Manual Testing – This is the oldest type of software testing where the testers manually execute test cases without using any test automation tools. It means the software application is tested manually by QA testers.
  • Automation Testing – This is the process of using the assistance of tools, scripts, and software to perform test cases by repeating pre-defined actions. Test Automation focuses on replacing manual human activity with systems or devices that enhance efficiency.

Quality control is a product-oriented approach of running a program to determine if it has any defects, as well as making sure that the software meets all of the requirements put forth by the stakeholders.

Four levels of manual testing are:

  • Unit testing – It is a way of testing the smallest piece of code referred to as a unit that can be logically isolated in a system. It is mainly focused on the functional correctness of the standalone module.
  • 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 product meets the requirements specified. There are dozens of types of system testing, including usability testing, regression testing, and functional testing.

API testing is a type of software testing where application programming interfaces (APIs) are tested to determine if they meet expectations for functionality, reliability, performance, and security. In simple terms, API testing is intended to reveal bugs, inconsistencies or deviations from the expected behavior of an API.

SDLC deals with development/coding of the software while STLC deales with validation and verification of the software.

  • Smoke testing
  • Sanity testing
  • Integration testing
  • Regression testing
  • Localization testing
  • User acceptance testing

 

  • Performance testing Usability Testing
  • Security Testing
  • Installation testing
  • Recovery testing

Functional testing Non-functional testing
Performed before non-functional testing Performed after Functional testing
Based on customer requirements Based on customers expectations
Describes what the product does Describes how the product works

 

Static testing: During Static testing method, the code is not executed, and it is performed using the software documentation.

Dynamic testing: To perform this testing the code is required to be in an executable form.

Test design, scope, test strategies, approach are various details that Test plan document consists of.

  1. Test case identifier
  2. Scope
  3. Features to be tested
  4. Features not to be tested
  5. Test strategy & Test approach
  6. Test deliverables
  7. Responsibilities
  8. Staffing and training
  9. Risk and Contingencies

Benefits of Automation testing are:

  1. Supports execution of repeated test cases
  2. Aids in testing a large test matrix
  3. Enables parallel execution
  4. Encourages unattended execution
  5. Improves accuracy thereby reducing human-generated errors
  6. Saves time and money

Verification: It is a static analysis technique. Here, testing is done without executing the code. Examples include – Reviews, Inspection, and walkthrough.

Validation: It is a dynamic analysis technique where testing is done by executing the code. Examples include functional and non-functional testing techniques.

  • It is a cheaper way of testing when compared to automated testing
  • Analysis of product from the point of view of the end-user is possible only with manual testing
  • GUI testing can be done more accurately with the help of manual testing as visual accessibility and preferences are difficult to automate
  • East to learn for new people who have just entered into testing
  • It is highly suitable for short-term projects when test-scripts are not going to be repeated and reused for thousands of times
  • Best suited when the project is at the early stages of its development
  • Highly reliable, since automated tests can contain errors and missed bugs

The debugging categories:

  • Backtracking
  • Cause elimination
  • Program Slicing
  • Fault tree analysis
  • Brute force debugging

  • Error – When a program is unable to compile or run due to coding mistakes it is termed as an error.
  • Failure- If the end-user is unable to program due to any issue, it is termed as a failure.

A latent bug is a bug that is present in the system from previous iterations or releases. It is a low priority bug. It includes those bugs that remain dormant or unhidden.

A golden bug is a bug that appears in every iteration or release, affecting the major module. It is a high priority bug as it may affect the critical functionality of the system.

Traceability matrix is the document with the help of which the relationship between test cases and requirement specifications is shown. It helps to ensure transparency and completeness of the software testing products.

Steps are:-

  • Bug investigation
  • Bug assignment
  • Bug fixing
  • Bug retesting
  • Bug closing and reopening

CAST stands for Computer-aided software testing which is an automated process, technique, and tool used by a computer to test software apps and programs. CAST’s performance is equivalent to thousands of users working at a time as the CAST-based tools evaluate the code using the testing tools and built-in software testing solutions.

Share   Share