Sunday, July 7, 2019

Software QA Interview Questions and Answers

1. What is the difference between Quality Assurance, Quality Control and Testing?

Quality assurance is process oriented. It is a process of planning, defining and setting the quality standards of the projects. QA assures whether quality is achieved in an effective and efficient way. The primary responsibility of the QA team is process definition and implementation, training, audits and selection of tools.

Quality control is product oriented. Quality Control is the process of detecting bugs by inspecting and testing the product and providing suggestions to improve the quality of the software. The role of QC includes technical reviews, software testing and code inspections. The methods used by Quality Control are usually established by the quality assurance.

Testing is a subset of QC and is an integral part of QC. It is the process of finding bugs in the product so that they get fixed.

2. What are the roles of software quality assurance engineer?

The roles of software quality assurance engineer are as enlisted below:

  • Tracking the development process of a product from start to end
  • Assessing the quality of specifications and technical design documents
  • Ensuring software development process doesn't sacrifice quality
  • Planning and implementing strategies for quality management and testing
  • Helping the software development team to identify problems early in the process

3. What are the different types of software testing?

  • Unit testing
  • Integration testing and regression testing
  • Smoke testing
  • Functional testing
  • Performance testing
  • White box and Black box testing
  • Alpha and Beta testing
  • Load testing and stress testing
  • System testing

4. What is negative testing?

Negative testing verifies if the application handles improper user behavior correctly. It ensures the system should handle invalid input or unexpected user behavior.

For example, the system should display a proper message and not the technical message, in case the user enters any invalid data in a text box.

5. Explain Verification and Validation. Explain difference between Verification and Validation.

Verification is a static mechanism of verifying documents, design, code and program. It checks if the software conforms to specifications.

Verification uses methods such as reviews and meetings, walkthroughs, inspection etc. and it is done by QA team.  

Verification is done at the starting of the development process and helps in understanding the product in a better way and thereby, reducing the chance of failure.

Validation is a dynamic mechanism and is the process of validating and testing the actual product. It checks if software meets the customer expectations and requirements.

Validation uses methods like black box testing, gray box testing, and white box testing etc. and it is done by testing team.

6. What are the different verification techniques?

Verification techniques are static in nature and are carried out by QA team. There are 3 verification techniques:

WalkthroughInspection and Review

Walkthrough is an informal process in which the author of the s/w product explains the product for others to come out with observation. It is more of a spreading information kind of session than seeking corrections.

Inspection is more formal than walkthrough. It is a thorough word-by-word checking of a software product with the intention of locating defects and checking for conformance to relevant standards.

Review is a method during which software design is examined by the individual other than the author who has produced it for comment or approval.

7. What is the difference between Load and Stress testing?

Load testing measures the system behavior under the expected load. It actually checks response time when the application is subjected to more than usual load and is done to see if the application can sustain the increased load. Load testing helps to identify the behavior of the application under load.

Stress testing is done to test the insane limits of an application. In this testing, load is increased gradually on the server till the time it crashes down. It helps to identify the breaking point of the system.

8. What is a Test Plan?

A test plan is a technical document describing a systematic approach to testing a specific system. 

The test plan serves as a blueprint to conduct software testing. It outlines the testing strategy, testing scope, testing approach, testing objectives, resources required for testing, Test Estimation and schedule of a software testing effort.

9. What is a use case?

A use case is a methodology that defines interactions between external actors and the system to attain particular goals. Each use case describes the interactions the actor has with the system in order to achieve a specific task.

10. Define Use Case Testing.

Use case testing is a software testing technique which captures the series of interactions that has occurred between 'actors' and 'system'. 'Actors' represents user and their interactions.

11. What is Regression Testing?

Regression Testing is performed when there is change in existing code. It is done to ensure that a code change does not impact the existing functionality of the product.

12. What is Traceability Matrix?

Traceability matrix is a table type document that is used to trace requirements during development of software application. Each requirement in the traceability matrix is connected with its respective test case so that, tests can be carried out sequentially according to specific requirements.

It helps the development team to be sure that the software completely meets the customer's requirements and all the requirements have been captured in the test cases.

13. Why is Automation Testing preferred over Manual Testing?

  • Automation Testing uses automation tools to execute test cases which is significantly faster than a manual approach.
  • In Automation Testing, Test scripts are reusable, fast and everyone can check test execution results.
  • Automated testing helps you to find more bugs compare to a human tester.

14. When is test automation not desirable?

  • When the test case only needs to run once or twice
  • When human observation is the most important factor to measure how user-friendly the software is for users.
  • When the test cases have extreme complexity. In such case, the insight of the tester is the only important factor.

15. Why is Performance testing necessary to be done for any application?

Performance testing verifies the behavior and response of an application under various situations and helps to know application stability, scalability, speed etc.

Performance testing is required because of following reasons: 

  • It helps to validate the speed, accuracy and stability of the software.
  • It authenticates the responsiveness, scalability and reliability features of the software.

16. Explain CMMI. Explain the Advantages of implementing CMMI.

CMMI stands for Capability Maturity Model Integration and was developed by Software Engineering Institute (SEI). 

CMMI is based on the principle that the processes of developing a product determine the quality.

CMMI offers various guidelines for process improvement. 

CMMI is divided into 5 levels:

Level 1: Initial
Level 2: Managed
Level 3: Defined
Level 4: Quantitatively Managed
Level 5: Optimized

Advantages of CMMI

  • Improved process helps improve the organization’s control over execution of projects
  • A disciplined process helps meet the stiff project deadlines and enables On Time Delivery
  • It also leads to effective management and increased cost savings as defects are resolved earlier in the development lifecycle.

17. What is Agile testing and what is the importance of Agile testing?

Agile Testing takes place in an environment where requirements keep changing according to the need of the customer. In this model, the testing and development activities are concurrent and the testing takes place throughout the development of the software. The testing team keeps receiving frequent small codes from the development team for testing.  

Agile methods are best suited for the project that requires frequent inspection by client so teams and stakeholders can assess and re-prioritize as needed to deliver the most value.

No comments:

Post a Comment

Get max value for identity column without a table scan

  You can use   IDENT_CURRENT   to look up the last identity value to be inserted, e.g. IDENT_CURRENT( 'MyTable' ) However, be caut...