When you appear for the QTP interview or selenium interview, you may be asked some common software testing interview questions.
In below paragraph, you will find frequently asked software testing interview questions and their answers asked in different software companies like TCS, cognizant(cts), Tech Mahindra, Infosys, Wipro, TCS, Syntel, Capgemini, Cybage, Amdocs, IBM etc.
1.What is software testing?
Software testing is the process of validating and verifying the software product.
Objective of the software testing is to check that software under test meets the requirements in System Requirements Specification (SRS) and the
expectations of the end users.
Software testing gives the information about the quality of the software.
There are different software testing lifecycle models based upon the SDLC like waterfall, agile, extreme, incremental etc
2. What are software testing types?
Every testing activity that Test team does will have a specific objective. Based upon this objective we can categorize the testing as mentioned below.
Installation testing - Testing done to check that software system can be installed on the desired platform seamlessly.
Compatibility testing - Testing which checks that system is compatible with different hardware and software products.
Smoke testing - Most critical test cases are selected and run to check that important modules of the system work or not.
Sanity Testing - Testing few test cases from every module to determine if it is ok to proceed with further testing.
Regression testing - Testing the system to verify that the fixes done by the developers are working as expected and there are no new defectd induced
Acceptance testing - Testing done from end user perspective
Alpha testing - Alpha testing is actual testing by developers/potential users/customers/ an independent test team at the developers' site
Beta testing - Beta testing is done by acutal customers at their own location or site. Developers are not involved.
Functional Testing - We test the feature or functionality of the system
Non-functional testing - We test scalability, performance and security of the system.
Destructive testing -Testing used to cause the system to fail. It checks the robustness of the system when invalid inputs are given.
Software performance testing -Testing used to check the system stability and scalability under many transactions with large volume of data
Usability testing - Testing is used to test the ease of use from end user perspective.
Accessibility testing - Testing to check if users with some disabilities can access the system easily
Security testing - Testing used to test how secure the system is. We also try to find out any vulnarabilities in the system.
Internationalization and localization - Testing to check if system is working as expected in different geographic settings.
3. Explain software testing lifecycle?
1.Requirements analysis
2.Test planning: Test strategy, test plan, testbed creation.
3.Test design and development: Test scenarios, test cases, test datasets and automated test scripts are created in this phase.
4.Test execution: Manual and automated execution of test cases is carried out.
5.Bug logging: Defects are logged.Development team decides which defects should be fixed, rejected etc After defects are fixed, testers again try to retest the defect and again reopen the defect if it is not really fixed.
6.Test Reporting :Test metrics and summary reports are generated.
7.Test Closure :Testing ends when the exit criteria is met and learnings from testing could be used as a reference for new software projects.
4. What is the difference between manual testing and automation testing?
Manual testing involves testing of the software without any automation software. Human effort is required to execute the test cases.
In automation testing we use software tools like QTP, selenium to automate the test execution process.
In manual testing we need manual efforts while in automation testing initial efforts are required to develop the automation script. In regression execution, we can use
automation testing to execute the test cases day and night without manual intervention.
5. What is automation testing?
Automation testing is nothing but use of softwares ( like QTP, Selenium) to test the application under test.
Automation testing helps minimise the manual effort. It saves efforts and cost to execute the test cases.
Advantages of automation testing-
It helps in reduction of testing execution time
Human Efforts are also saved
It is accurate in calculating the output values.
Overall it helps in reduction of cost of testing.
6. What is black box testing ?
Black box testing is also called as specification based testing. Black box testing is a testing in which we don't know internal details like code structure of the software.
We give the input to the system and verify the output produced by system. We don't worry how the system calculates the output as long as system is giving correct output.
Here is the list of black box testing methods.
Equivalance partitioning
Boundry Value Analysis
State transition Diagrams
Decision Tables
Orthogonal Array Testing
Use Case Testing
7. What is white box testing?
Unlike black box testing, in white box testing we know the internal details like code, algorithms of the software.
We try to test the internal structure is working as expected. This is generally done by the developers of the software.
In white box testing, we find out below test metrics.
code coverage = no of coverage items exercised/total number of coverage items * 100
code coverage finds out which part of the code has been executed by the test suite.
Statement coverage = no of statements exercised/ total number of statements * 100
Decision coverage = no of decision outcomes exercised / total number of decision outcomes * 100
Cyclomatic complexity = no of branches in the code + 1
8. What is grey box testing?
Grey box testing is a combination of black box testing and white box testing.
9. What is the difference between static and dynamic testing?
In static testing, We try to find the defect in the system without executing the software. For example, review of the code by peers, Finding the cyclomatic complexity
of the code.Static testing involves code review, walkthrough, inspection, data flow, control flow of the system
In dynamic testing, we execute the software. We provide some input and verify the output. So we can find the run time errors in dynamic testing
Dynamic testing involves white box(structure based/glass box), black box (Specification based), expereince based testing.
10. Explain unit testing.
Unit testing is done by the developers of the software. Testers are not involved in unit testing. Unit testing is the method in which smallest part of the system are tested.
Usually smallest part of the system is function or procedure or class methods in object oriented programming.
Stubs may be created for the unit testing the code.
Almost all programming languages have unit testing frameworks that are used by the developers to test thier code.
For example - Junit is a unit testing framework in Java.
11. Explain Integration testing.
Integration testing is generally done after unit testing. After the small modules have been tested, they are grouped together to form the system.
Integration testing is used to verify that different modules have been integrated seamlessly and there is no defect while integrating the modules/components.
The objective of the integration testing is that all the modules/components are interacting with each other correctly.
Types of integration testing are :-
1. Top-down -> Top level integrated modules are grouped together and sub-system is tested.
2. Bottom-up -> Bottom level integrated modules are grouped together first and sub-system is tested.
3. Big Bang -> In Big Bang approach, all modules are integrated together and then testing is done.
12. Explain System testing.
System testing is done after integration testing. This is used to verify that system works as expected and meets the expected requirements.
System testing is a black box testing.
Here is the list of types of system testing.
Functional Testing
Performance testing - Load testing, Volume testing, Stress testing, Scalability testing
Compatibility testing
Security testing
Sanity testing and Smoke testing
Exploratory testing
Ad hoc testing
Regression testing
Installation testing
Maintenance testing
Recovery testing.
Accessibility testing
Usability testing
13. What is the difference between functional testing and non-functional testing?
Functional testing means testing the software to verify that software adheres to the functional requirements.
While non-function testing involves other aspects of the software like accessibility, usability and performance testing.
14. What is security testing?
Security testing means testing the software from security perspective. It verifies that the system complies to the security standards and
there are no loopholes in the system.
15. Explain usability testing.
Usablity testing is used to test ease of use of the software.
16. Explain performance testing.
Performace testing includes load testing, volume testing and stress testing.
17. Explain exhaustive testing with example.
Exhaustive testing means testing the software with all possible permutation and combination of the input.
18. What are different software testing tools in market?
We can have different software as mentioned below to test the softwares.
QC
QTP
bugzilla
Test Track
Test Complete
Test Studio
Jira
Loadrunner
Winrunner
19. What are the automation testing tools in the market?
Here is the list of automation testing tools in the market.
QTP
Selenium
Test Complete
20. What is Quality Center and what are the different modules in it?
Quality center is a test management software from HP. It involves below modules.
Requirements
Test Plan
Test Lab
Defects
21. What is selenium?
Selenium is an open source web application testing tool. Selenium provides APIs in different languages like .net, java, python, perl, ruby etc.
We can test websites on different web browsers like Internet explorer, firefox, chrome, safari using selenium.
22. What is the differnece between selenium and QTP?
QTP is functional automation testing tool that can be used to test applications developed in variuos platforms like .net, Java, peoplesoft etc.
It is not a open source software.It is the most popular automation testing tool in the industry as of now.
Selenium is an open source web application testing tool. Selenium provides APIs in different languages like .net, java, python, perl, ruby etc.
We can test websites on different web browsers like Internet explorer, firefox, chrome, safari using selenium.
23. What are the different software testing artifacts?
Here is the list of common testing artifacts.
Test cases
Test execution report
Defect report
Incident report
Test Plan.
Test Summary Reports
24. Explain software defect and software failure.
Software defect is an unwanted condition in the software which when executed may result in the system failure.
25. What is the difference between test case and test script?
Test case is detailed stepwise description of how we can verify the requirement manually.
Test script is the automated version of manual test case.
26. What do you mean by dynamic program analysis?
Dynamic programming analysis means testing the program while executing it.Dynamic program analysis helps in understanding time and space complexity of the program. We can also find memory leaks in the program while executing the program.
27. What is Pair testing?
Pair testing is a testing type in which 2 team members work together to test the application.
28. What is high priority defect?
High priority defect is the defect which must be fixed as soon as possible.
29. What is high severity defect?
High severity defect is the defect which can cause huge loss if it is available in the system.
30. What is the difference between re-testing and regression testing?
Re-testing is used to check that defect is really removed after developers fixed it.
While regression testing is used to check that post-modification of software, no new defects were induced in the system.
31. What is boundry value analysis?
Developers tend to make mistakes while designing the code to check boundry conditions.
Boundry value analysis can be used to find the defects found at the boundry values.
Example - Consider education grading system.
If student scores more than 75%, his grade is distinction while if he scores between 60% and 75%, his grade is first class.
In this scenario, we test the software using boundry values like 59,60,61,74,75,76 to check that software provides correct output.
32. When should we stop testing?
Below is the list of factors that help us determine when we should stop testing.
For every testing project, we have the exit criteria.
We execute the all the test cases that test all requirements of the system.
We try to find the the defects in the system.
When we have a confidence about the quality of the software, then we may stop the testing.
All stakeholders in the testing project must give green signal to stop the testing.
We have also time and budget constraints so we focus on the most important functionalities of the software.
33. What is test coverage?
Testing is done to check that all our functionalities are working as expected or not.
Test coverage is the metric that gives us idea about how many functionalities have been tested
Test coverage can have below types.
Code Coverage
Decision Coverage
Functionality Coverage
************************************************************************
Please note that if you are staying in USA, UK or Australia, and searching for a testing job there, above testing questions and answers will help you crack the interview.
You can visit
QTP Master page to learn QTP.
Please give your inputs, suggestions, feedback to Us about above Software testing topic. We value your thoughts.If you want to ask any question, you can comment it below.