Tags: , , | Categories: QA Interview Questions
Posted by trainer on 10/3/2012 3:10 PM |

1. Explain the difference between QA, QC and Testing
Quality Assurance
  • Ensure the implementation of processes, procedures and standards in context to verification of developed software and intended requirements.
  • Focuses on processes and procedures
  • Process oriented activities
  • Preventive activities
  • Subset of Software Test Life Cycle (STLC)

Quality Control
  • Ensure the verification of developed software with respect to documented (or not in some cases) requirements.
  • Focuses on actual testing by executing Software with intend to identify bug/defect through implementation of procedures and process.
  • Product oriented activities.
  • It is a corrective process.
  • QC can be considered as the subset of Quality Assurance.

Testing
  • Ensure the identification of bugs/error/defects in the Software.
  • Focuses on actual testing.
  • Product oriented activities.
  • It is a preventive process.
  • Testing is the subset of Quality Control.

2. The tester’s only task is to find bugs?
Finding bugs in the Software is the task of testers but at the same time they need to be domain experts of the particular software. Developers are only responsible for the specific component or area that is assigned to them but testers understand the overall workings of the software, what the dependencies are and what the impacts of one module on another module are.


3. Testing is an expensive activity in the SDLC?
No. Pay less for testing during software development or pay more for maintenance or correction later. Early testing saves both time and cost in many aspects however, reducing the cost without testing may result in the improper design of a software application rendering the product useless.


4. Testing is a time consuming activity in SDLC?
No. During the SDLC phases testing is never a time consuming process. However diagnosing and fixing the error which is identified during proper testing is a time consuming but productive activity.


5. What is a Test Plan? What does it include?
A Test Plan is a document describing the scope, approach, resources, and schedule of intended testing activities. It identifies test items, the features to be tested, the testing tasks and who will do each task (roles and responsibilities) and any risks and its solutions.

A Test Plan includes Heading, Revision History, Table of Contents, Introduction, Scope, Approach, Overview, different types of testing that will be carried out, what software and hardware will be required, issues, risks, assumptions and sign off section.
or
A Test Case is a document that describes step by step process how to test the application. A Test Case includes Test Case ID, Steps Description, Expected Output, Actual Output, Pass/Fail, Remarks.


6. How many Test Cases did you write in your last project?
I wrote about 1000 Test Cases in my last project. (The reasonable number of Test Cases varies from 500 to thousands. The number 1100 test cases can be completed in 6 month project duration).


7. What documents did you refer to write the Test Cases?
Requirement document. (NOTE: It can also be Use Cases or Design Document) (Note: It depends company to company. In some companies, they use ‘Use Cases’. In some companies, they use Requirement Documents and in some companies, they use Design Document. However, in practical scenario, most of the companies have requirement document at least).


8. Did you have a situation where you did not have any documents (no requirement document, no Use Cases, or no Design Document) and you had to write the Test Cases? How did you write the Test Cases?
Yes. I have been to that kind of scenarios several times. There were companies where they had no documents at all. In that case, I had to discuss the application scenario and functionalities with the Business Analysts or developer. I kind of prepared a document in consultation with Business Analysts and Developers and then started writing Test Cases.


9. Have you worked with the Uses Cases before?
Yes. I have written Test Cases using Use Cases.


10. Can you tell me what a Use Case is?
A use case is a document that describes the user action and system response for a particular functionality.


11. What is a Use Case and what does it include?
A Use Case is a document that describes the user action and system response for a particular functionality. It includes cover page, Revision History, Table of Contents, Floe of Events (normal flow and alternative flow), Exceptions, Special Requirements, Preconditions and Post-conditions.


12. What is Software Development Life Cycle?
The systems (or software) development life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application.

It includes the following different stages:
  • Requirement phase
  • Design phase
  • Coding (programming)
  • Testing
  • Release (Production)
  • Maintenance (Support)


13. What is Business Requirement Document (BRD)?
It is a document that describes the details of the application functionalities which is required by the user. This document is written by the Business Analysts.


14. What is Software Testing Life Cycle (STLC)?
The testing of software has its own life cycle. It starts with study and analyzing the requirements. Here is the software testing life cycle:

  • Requirement Study
  • Test Planning
  • Writing Test Cases
  • Review the Test Cases
  • Executing the Test Cases
  • Bug logging and tracking
  • Close or Reopen bugs

15. What is Business Design Document?
It is the document which describes the application functionalities of the user in detail. This document is the further details of the Business Requirement Document. This is a very crucial step in the SDLC. Sometimes the Business Requirement Document and Business Design Document can be lumped together to make only one Business Requirement Document.


16. What is Code Generation or Program?
Coding is the process of translating the Business Design Document into the machine readable form. If the design is done in a detailed manner, the Code Generation can be done without much application. Programming tools like Compilers, Interpreters and Debuggers are used to generate the code thru different high level language like C, C++, Pascal, Java.


17. What is a Module?
A ‘Module’ is a software component that has a specific task. It can be a ‘link’ which can go inside to its component detail.


18. What is meant by Walk-thru meeting??
Before start working on a module and/or after accomplishing the testing of a module, the tester calls a meeting to disseminate his findings or to share his queries to other tester or leads of the company working on the same application that is called the Walk-thru meeting.


19. What is Build?
When each of the different modules of software is prepared, they are put in a single folder by the Configuration Management Team (CMT) and it is called the ‘Build’. In other word, the developers put their code in the shared location (folder) and all those codes (modules) are combined together so that it is a complete application that works.


20. What is meant by the Build Deployment?
When the Build so prepared by the CMT is sent to different Test Environments, it is called the Build Deployment.


21. What is Test Strategy?
A test strategy is an outline that describes the testing portion of the software development cycle. It is created to inform project managers, testers, and developers about some key issues of the testing process. This includes the testing objective, methods of testing new functions, total time and resources required for the project, and the testing environment.

The test strategy describes how the product risks of the stakeholders are mitigated at the test-level, which types of test are to be performed, and which entry and exit criteria apply. (source: Wikipedia)

The test strategy is created based on development design documents.. It is written by the Test Manager or Lead.

The following are some of the components that the Test Strategy includes:
  • Test Levels
  • Roles and Responsibilities
  • Environment Requirements
  • Testing Tools
  • Risks and Mitigation
  • Test Schedule
  • Regression Test Approach
  • Test Groups
  • Test Priorities
  • Test Status Collections and Reporting
  • Test Records Maintenance
  • Requirements traceability matrix
  • Test Summary

22. Are Test Plan and Test Strategy same type of document?
No. They are different documents. Test Plan is a document that collects and organizes test cases by functional areas and/or types of testing in a form that can be presented to the other teams and/or customer where as the Test Strategy is a documented approach to testing. Test Plan is prepared by the tester whereas the Test Strategy is prepared by the QA Manager or QA lead.

Both are important pieces of Quality Assurance processes since they help communicate the test approach scope and ensure test coverage while improving the efficiency of the testing effort.


23. What does the Test Strategy include?
It includes introduction, scope, resource and schedule for test activities, acceptance criteria, test environment, test tools, test priorities, test planning, executing a test pass and types of test to be performed.


24. What are different types of software testing?
Different types of testing carried out are:
1) Unit testing
2) Shakeout testing
3) Smoke testing (Ad-hoc testing)
4) Functional testing
5) Integration testing
6) Regression testing
7) System testing
8) Load testing
9) Stress testing
10) Performance testing
11) User acceptance testing
12) Black box testing
13) White box testing
14) Alpha testing
15) Beta testing


Note: Except the Shakeout testing and Unit testing which are respectively done by the CMT and Coder/Developer, all other testing are done by the QA Engineer (Tester).

Unit testing:
It is a test to check the code whether it is properly working or not as per the requirement. It is done by the developers (Not testers).

Shakeout testing:
This test is basically carried out to check the networking facility, database connectivity and the integration of modules. (It is done by the Configuration Team)

Smoke testing: It is an initial set of test to check whether the major functionalities are working or not and also to check the major breakdowns in the application. It is the preliminary test carried out by the SQA tester.

Functional testing:
It is a test to check whether each and every functionality of that application is working as per the requirement. It is major test where 80% of the tests are done. In this test, the Test Cases are ‘executed’.

Integration testing:
It is a test to check whether all the modules are combined together or not and working successfully as specified in the requirement document.

Regression testing:
When functionality is added to an application, we need to make sure that the newly added functionality does not break the application. In order to make it sure, we perform a repeated testing which is called Regression Testing. We also do regression testing after the developers fix the bugs.

System testing:
Testing which is based on overall requirements specification and it covers all combined parts of a system. It is also a black box type of testing.

Load testing:
It is a test to check the user’s response time of number of users using any one scenario (single business process) of the same application at the same time.

Stress testing:
In this type of testing the application is tested against heavy load such as complex numerical values, large number of inputs, large number of queries etc. which checks for the stress/load the applications can withstand.

Performance testing:
It is a test to check the user’s response time of number of users using multiple scenarios (multiple business process) of the same application at the same time.

User acceptance testing:
In this type of testing, the software is handed over to the user in order to find out if the software meets the user expectations and works as it is expected to.

Black box testing:
It is test where a tester performs testing without looking into the code. OR A testing method where the application under test is viewed as a black box and the internal behavior of the program is completely ignored. Testing occurs based upon the external specifications. Also known as behavioral testing, since only the external behavior of the program is evaluated and analyzed.

White box testing:
It is a test where a tester looks into the code and performs the testing.

Alpha testing:
In this type of testing, the users are invited at the development center where they use the application and the developers note every particular input or action carried out by the user. Any type of abnormal behavior of the system is noted and rectified by the developers.

Beta testing:
In this type of testing, the software is distributed as a beta version to the users and users test the application at their sites. As the users explore the software, in case if any exception/defect occurs that is reported to the developers.


25. What is Negative Testing?
Testing the system or application using negative data is called negative testing, for example, testing password entering 6 characters where it should be 8 characters should display a message. When we test an application by putting negative values (instead of actual values), then the system should not allow the other values rather than the actual value. The system should give an message that the value is not correct. This is called negative testing. Another example is, if a user tries to type a letter in a numeric field, the correct behavior in this case would be to display the “Incorrect data type, please enter a number” message. The purpose of negative testing is to detect such situations and prevent applications from crashing. Also, negative testing helps you improve the quality of your application and find its weak points.


26. What is end-to-end testing?
Similar to system testing, the *macro* end of the test scale is testing a complete application in a situation that mimics real world use, such as interacting with a database, using network communication, or interacting with other hardware, application, or system.


27. What is security/penetration testing?
Security/penetration testing is testing how well the system is protected against unauthorized internal or external access, or willful damage. This type of testing usually requires sophisticated testing techniques.


28. What is recovery/error testing?
Recovery/error testing is testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.


29. What is compatibility testing?
Compatibility testing is testing how well software performs in a particular hardware, software, operating system, or network environment.


30. What is comparison testing?
Comparison testing is testing that compares software weaknesses and strengths to those of competitors’ products.


31. What is acceptance testing?
Acceptance testing is black box testing that gives the client/customer/project manager the opportunity to verify the system functionality and usability prior to the system being released to production. The acceptance test is the responsibility of the client/customer or project manager; however, it is conducted with the full support of the project team. The test team also works with the client/customer/project manager to develop the acceptance criteria.


32. What is the difference between Load Testing and Performance Testing?
Basically Load, Stress and Performance Testing are the same. However, Load testing is the test to check the users’ response time of number of users of any one scenario of the application whereas Performance Testing is the test to check the user response time for multiple scenario of the same application.


33. What was the process of QA testing in your company where you worked for the last time? (or As far as the QA process is involved, what was the testing process in your company?)
The QA testing process that was followed in my last company where I worked was like this: First of all the Business Requirement Document was prepared as per the client’s requirement (with the muck-up screen shots). Then on the basis of the requirement document, Test Strategy, Test Plans and Test Cases were written in sequential order. Once the Build is made and deployed to the different testing environments, where different types of testing were performed to check whether there are any defects.