Software Testing Interview Questions Answers
1. What is software testing?
Software testing is a validation process in which tester has to make sure if a system works as per the business requirements. It qualifies a system on various aspects such as functionality, validation, usability, performance, load, User interface, etc.
2. What is static testing? When does it start and what does it cover?
Static testing is a testing technique where testing is being performed without executing the code. It is usually performed early during the software development life cycle. The main purpose of performing static testing is to avoid code level mistakes. Static testing is more cost-effective than dynamic testing. It is also called Verification.
3. Is it possible to achieve 100% testing coverage? How would you ensure it?
Testing is a never-ending process so we cannot perform 100% testing but we can use various strategies to achieve effective testing. The tester has to make sure that all the functionalities should work with positive and negative data. In order to test, the tester has to prepare a set of test data with the equivalence partitioning, boundary value analysis, and error guessing technique. A tester should also check the performance of the functional flow. Usability, UI, configuration, and compatibility testing also needs to be performed during testing. Important thing is that tester should get confident that the system is fully operational and can deploy it to production.
4. What are unit testing and integration testing?
Unit and Integration testing are performed by developers because they have to check the source code of the units. Unit testing has many names such as module testing or component testing. Many times, it is the developers who test individual units or modules to check if they are working correctly. Whereas, integration testing validates how well two or more units of software interact with each other. There are three ways to validate integration: Big Bang approach Top-down approach Bottom-up approach
5. Can we do system testing at any stage?
No. System testing should start only if all modules are in place and they work correctly. In System Testing, a tester performs Functional Testing, Non-Functional Testing, Smoke Testing, Sanity Testing, and Regression Testing. However, it should be performed before UAT (user acceptance testing).
6. Difference between Bug, Defect and Error.
DEFECT : It can be simply defined as a variance between expected and actual. The defect is an error found AFTER the application goes into production. In other words, a Defect is a difference between expected and actual results in the context of testing. It is the deviation of the customer requirement.
ERROR : An error is a mistake, misconception, or misunderstanding on the part of a software developer. A mistake in code is called an error. Error is usually found by the developer. The error includes syntax error or wrong variable and data type definition, invalid arguments, wrong loop, etc…
BUG : A bug is the result of a coding error. During testing when the tester finds some variation in actual and expected results the tester reports that defect/issue to the development team. The development team verifies the defect and if they accept it then it is called a bug. A bug is the terminology of Tester.
FAILURE : A failure is the inability of a software system or component to perform its required functions within specified requirements. When a product goes live and it is not working as expected and then a problem is reported by many end-to-end customers then it is called a Failure.
7. What is Severity and Priority?
Severity: Severity means how severe a defect is affecting the functionality. It is related to quality standards and that is why it is defined by Tester.
Priority: Priority means how fast a defect has to be fixed. Priority decides the order in which defects should be fixed. It is decided by the developer.
8. In software testing, what does a fault mean?
Fault is a condition that makes the software fails to execute while performing the considered function.
9. Is there any difference between quality assurance, quality control. If so, what is it?
Quality Assurance (QA): Software QA involves the entire software development life cycle, monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed throughout the s/w life cycle and ensuring that problem are found.
Key points of QA :
- - It is work process oriented
- - It is oriented to prevention
- - It measures the process, identify deficiencies and suggest improvements.
- - Output of QA is an input to QC
- - Audits and reviews are the best example of QA.
Quality Control (QC): Software QC involves verifying the product or evaluating a product with the requirement specifications. Main role of the QC is the finding bugs in the software through designing and executing test cases during testing of an application.
Key points of QC :
- - It is work product oriented
- - It is oriented to detection
- - It measures the product, identify deficiencies and suggest improvements.
- - Output of QC is an input to QA
- - Software testing is the best example of QC.
10. What are the key elements to consider while report a bug.
An ideal bug report should consist of the following key points: A unique ID, Defect description: A short description of the bug, Expected Result, Bug Status, Steps to reproduce: They include the detailed test steps to reproduce the bug. They also provide the test data and the time when the error has occurred Assigned to: To whom you assign the bug, Severity, Screenshots
11. How do you test a product without requirements?
If the required specifications are not available for a product, then a test plan can be created based on the assumptions made about the product. We should ask developers or sometimes clients directly in order to understand the system. But we should get all assumptions well-documented in the test plan.
12. What will you do when bug comes up during testing?
When a bug occurs, we can follow the below steps. We can run more tests to make sure that the problem has a clear description. We can also run a few more tests to ensure that the same problem doesn’t exist with different inputs. After getting output for various inputs, we will report a bug.
13. What is the purpose of the end-to-end testing?
End-to-end testing is a testing strategy to execute tests that cover every possible flow of an application from its start to finish. We mainly think about the flow that customer will follow and then we execute the same flow in the testing with different possible inputs. We also check in the database just to make sure whether proper data is inserted or not.
14. What is agile testing and why is it important?
Agile testing is a software testing process that evaluates software from the customers’ point of view. It is favourable as it does not require the development team to complete coding for starting QA. Instead, both coding and testing go hand in hand. However, it may require continuous customer interaction.
15. Why did you choose Software Testing field?
Think and Prepare Your Answer based on two below lines.
1. If you are having interest in the specific field then you can work like a machine
2. It would be good if you say that testing anything is your nature and passion.
Focus on two points for this question 1. Interest 2. Testing as Nature
16. What is Verification?
Verification is a testing technique where testing is performed without executing the code. It is usually performed early during the software development life cycle. The main purpose of performing verification is to avoid code-level mistakes. Verification is more cost-effective than Validation. It is also called Static Testing.
It includes reviews and meetings, walk-throughs, inspections, etc. to evaluate documents, plans, code, requirements, and specifications.
17. What is Validation?
Validation Testing is a testing technique where the testing team executes the project and testing is performed. Validation is done at the end of the development process and it takes place after verifications are completed. It is also called dynamic testing.
We perform different techniques of BlackBox testing like equivalence partitioning, boundary value analysis, error guessing, and white box testing to test the system.
It is also called as dynamic testing.
18. Difference between Test Scenario and Test Cases.
a. Test Scenario: A test scenario is a high-level description of a given situation that needs to be tested. Rather than being a step-by-step guide, test scenarios describe testing needs in very broad strokes.
b. Test Case: A test case is a document, which has a set of test data, preconditions, expected results, and post conditions, developed for a particular test scenario in order to verify compliance against a specific requirement.
19. What is Exploratory Testing?
During the testing phase where there is severe time pressure, an Exploratory testing technique is performed that combines the experience of testers along with a structured approach to testing. We take the help of a senior tester or someone who is having more experience in the same domain of the project in order to perform Exploratory testing.
20. What is retesting and regression testing?
Possible differences between retesting and regression testing are as follows: We perform retesting to verify the defect fixes. But, the regression testing assures that the bug fix does not break other parts of the application. Both the testing executes parallel. Prepare one live example of website and add in the answer.
21. What is Smoke Testing?
a. Smoke Testing is wide and deep testing.
b. The tester needs to perform the basic functionalities of the build once it is given to the testing team. If it fails then the build is declared unstable and it is not tested anymore until the smoke testing of the build passes.
c. Smoke testing is usually documented or scripted
d. Smoke testing is a subset of Acceptance testing
22. What is Sanity Testing?
a. Sanity testing is wide and shallow testing.
b. Sanity testing is more detailed testing than smoke testing.
c. Sanity testing is usually performed to check whether the new functionalities have been implemented and working properly or not.
d. Sanity testing is usually performed to check whether the bugs have been fixed or not.
e. Sanity testing is usually not documented and is unscripted.
f. Sanity testing is a subset of Regression Testing.
23. What is Test Basis?
Test basis is the document containing required information through that we can write test scenarios and test cases. It should be in a detailed format so the tester can easily understand the conditions from which test cases can be derived.
24. What is Requirement Traceability Matrix?
a. Requirement Traceability Matrix is the technique which shows if each requirement has all the respective test cases to make sure if the requirement is covered for testing or not.
b. It is basically used to ensure that all the requirements and change requests are tested or not.
c. Gives Overview of ALL the requirements
d. Shows how requirements are linked to Test Cases
e. Makes sure 100% coverage of requirements
25. What is STLC?
Nowadays, testing itself is a project. The testing of software has its own life cycle. It starts with study and analysing the requirements. There are different phases of the Software Testing Life Cycle.
1. Requirement Understanding
2. Test Planning
3. Writing Test Cases
4. Review the Test Cases
5. Setting up a test environment
6. Executing the Test Cases
7. Bug reporting and tracking
8. Test Cycle Closure activities
26. What is Test Metrics?
Software test metrics is to monitor and control process and product. It helps to drive the project towards our planned goals without deviation.
27. When to stop testing? How do you decide when you have tested enough?
There are many factors involved in the real-time projects to decide when to stop testing.
1. Testing deadlines or release deadlines
2. By reaching the decided pass percentage of test cases
3. The risk in the project is under acceptable limit
4. All the high priority bugs, blockers are fixed
5. When acceptance criteria is met
28. What is Black Box Testing?
Blackbox testing is not a test type but it is a testing strategy. Blackbox testing does not deal with the internal structure and internal logic of an application.
Blackbox testing is also called Functional testing, Behavior testing, and close box testing. A tester should have to test whether the generated output is based on the applied input or not.
29. What is White Box Testing?
Whitebox testing is not a testing type but it is a testing strategy. WhiteBox testing deals with the internal structure and internal logic of the code.
Whitebox testing is also called Structural testing, Glass box testing, Transparent box, and also clear box testing.
The test written based on the white box testing should be considered the statements, Internal logic, code, conditions, loops, and so on.
A tester should know programming concepts to test the internal structure of the code and logic.
30. What is Positive and Negative Testing?
Positive Testing: It is to determine what system supposed to do. It helps to check whether the application is justifying the requirements or not. We test the system by entering positive sets of data.
Negative Testing: It is to determine what system not supposed to do. It helps to find the defects from the software. We test the system with negative sets of data.
31. What is GUI testing?
GUI testing involves testing visible design elements such as the size, colour, font, or formatting of screen features like buttons, menus, icons, and toolbars. It also includes testing more complex aspects of the user interface, including:
1. Image clarity
2. Consistency across fonts, colours, abbreviations etc.
3. Consistency across data types
4. If the font is readable
5. The alignment of images, text, and buttons and their correlation to each other
6. Whether page elements like check boxes are overlapping or not
7. Drop down list boxes
8. If the application is visually appealing
9. If the user interface is easy to understand and interact with
10. Grammar and spelling
11. Whether error messages appear or not
12. Screen resolutions when zooming in or out
32. What is Usability Testing?
Usability testing is the testing where application is being checked from the users’ perspective. Application should be easy to understand, user friendly.
Effectiveness of the system
1. Is the system is easy to learn?
2. Is the system useful and adds value to the target audience?
3. Is Content, Color, Icons, Images used are aesthetically pleasing?
1. Navigation required to reach desired screen/webpage should be very less. Scroll bars shouldn't be used frequently.
2. Uniformity in the format of screen/pages in your application/website.
3. Provision to search within your software application or website
1. No outdated or incorrect data like contact information/address should be present.
2. No broken links should be present.
User Friendliness :
1. Controls used should be self-explanatory and must not require training to operate
2. Help should be provided for the users to understand the application / website
3. Alignment with above goals helps in effective usability testing
33. What is automated testing?
Automation testing is the technique to automate the functionality of the website or mobile application by writing scripts. It helps us to perform retesting and regression testing. It saves time and effort. We can create scripts to perform functional, validation, GUI, performance and API etc...
Selenium and UFT are the functional and regression automation testing tool.
Meter, Neoload, web load are the load and stress testing tool.
Appium is the mobile application testing tool.
34. What is Ad-hoc testing?
Ad-hoc testing is the testing where testing is conducted without planning and documentations. It does not follow any specific way of execution and it is performed to check the application’s functionality randomly. We need to find out bugs after random execution of the functionality or clicking. We don’t create test cases or test design techniques during STLC.
35. How to perform testing on login functionality?
Possible answers to this testing interview question can be :
1. Sign in with valid login, Close the browser and reopen and see whether you are still logged in or not.
2. Test login functionality with the set of negative test data.
3. Session management is important – how do we keep track of logged-in users, is it via cookies or web sessions?
4. Sign in, then log out and then go back to the login page to see if you are truly logged out.
5. Login, then go back to the same page, do you see the login screen again?
6. Sign in from one browser, and then open another tab window to see if you need to sign in again?
7. Login, change your password, and then log out, then see if you can log in again with the old password.
36. What is functional testing?
Functional testing is the testing where system is tested against the functional requirements or specifications. Functions are tested by feeding the input and examining the output. During functional testing, blackbox technique is used in which internal logic of the application is not required.
Typically functional testing involves following steps :
1. Identify the list of functionalities that the webpage is expected to perform
2. Create set of test data(positive and negative) for each functionality.
3. Create test case for each test data.
4. Execute test cases and bug reporting
5. Retesting and regression testing
37. What is acceptance testing?
Testing conducted to determine whether to accept or reject product. It is generally used to validate software product meets a set of agreed acceptance criteria.
Alpha and beta testing are the two types of acceptance testing.
38. How to test search functionality?
First of all tester should know that where the data is coming from. Are they coming from a database? Or some XML files from 3rd party websites?
Once we have this information, we can start comparing the results we see on the result page with the results from the source, e.g. database or xml.
Another option is to generate the data from the admin panel and we can test search functionality from user panel by searching for the same product.
39. Why software testing is required?
Software testing has become a primary task before releasing any software product.
It makes sure that the application does not have any major issues.
It discovers bugs/defects before the delivery, which guarantees the quality of the software.
It ensures that the end-to-end business flow is working & does not result in failure.
It ensures reliability, ease to use & performance.
It reduces the overall level of risks.
It makes the system safe & user-friendly.
40. What is API Testing?
API stands for Application Programming Interface. IT is the middle layer between the presentation layer(user interface)and the database layer. it ensures the communication of data exchange from one software system to another system.
41. What is Testbed in Testing?
A testbed is an execution environment required to perform testing tasks. It mainly consists of hardware-software network operating system, testing tools, management tools, an application under test, application software, etc.
42. What is the document Procedure in manual testing?
Document plays an important role in testing any software product
Following documents are considered during the testing of the project. Generally, the testing team is required to create the following documents during testing.
2.Testscenario & TestCases
43. Difference Between Manual & Automation Testing?
1. Manual testing is preferred when the project is small-scaled, having fewer functionalities. so the tester can execute the test cases once or twice to make sure that the functionalities are working fine.
2. Manual testing requires heavy investment in human resources Manual testing is not accurate as manual testing is more prone to human error.
3. In manual testing sometimes we feel like it is a tedious task because tasters are doing the same activities over and over again.
1. The best part of automation is to create a dynamic script based on functional flow and we can execute it several times.
2. In automation, it doesn't require heavy investment and it takes less time as compared with manual testing.
3. Automation testing is reliable because the script is generated by an automated system. In automation testing, the best part is, you don't need to be in the office to run the script. everything will be executed automatically.
44. Attitude of software testers.
1.Software tester should have a "test to break" attitude.
2.Tester should have the right thought process to think about the behavior of the system from both customer's and client's perspectives.
3.Tester must have a strong desire for quality.
4.Tester must have good communication skills he/she should have the ability to communicate technically with the developer and non technically with client or end-users.
5.Tester should be tactful and diplomatic and should be able to maintain a cooperative relationship with developers and clients.
45. What is system testing?
System testing is performed to evaluate the complete system's compliance with specified requirements. System testing involves functional, Non-Functional, Smoke Testing, Sanity Testing, and Regression Testing.
46. What is test closure activity?
During the process, we submit all documents which we have prepared during the testing to the client. We create a test report document in which we mention all the modules which we have executed, how many test cases got passed/failed, anything we have not executed and we write the valid reason why we have not executed so it is a complete detailed report showing every aspect of the test results.
47. What is the pesticide paradox? How to overcome it?
According to the pesticide paradox if the same tests are repeated over and over again and eventually the same tests will not find any new bugs in the future. So the testing team needs to focus on the different areas of the software where they can find more bugs. So we create new test cases and add them to the existing test cases.
48. What is quality?
The definition for quality is conformance to specification.
Quality means delivering products and services that:
1. Meet customer standards.
2. Meet and fulfilling customer needs.
3. Meet customer's needs and expectations.
49. What is experienced-based testing?
Exploratory testing and error guessing testings are experienced-based testings. In experience-based testing, the testing team needs to study and analyze the product and accordingly apply skills to the product in order to create new test possibilities.
50. What is equivalence partitioning?
Equivalence partitioning is one of the black box techniques. Equivalence partitioning is designed to minimize the number of test cases. Data is divided in such a way that all the inputs giving the same output are categorized in the same Equivalence class.
If the requirements state that a numeric value is input the system and must be within the range of values. identify one valid class inputs which are within the valid range and two invalid class inputs which are too low and which are too high.
51. What is boundary value analysis?
Boundary value analysis is a technique of black-box testing in which input at the boundaries of the input domain are tested test cases are designed to test the boundary values of the input and output domain.
52. 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 their solutions.
What does it include?
A Test Plan includes Introduction, Scope, Approach, Schedule, Process, Strategy, different types of testing that will be carried out, what software and hardware will be required, issues, risks, assumptions, and sign-off section.
53. What document did you refer to to write the Test Cases?
I would prefer to use requirement doc. It can be good if I have use case documents and design documents. (Note: It depends on 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 scenarios, most of the companies have requirement documents at least).
54. 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 Flow of Events (normal flow and alternative flow), Exceptions, Special Requirements, Pre-conditions, and Post-conditions.
55. 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. BA interacts with the client and gets the requirements in detail and specifies them in the requirement document.
56. What is a Module?
A ‘Module’ is a software component that has a specific task. It can be a ‘link’ that can go inside to its component detail.
This document is written by the Business Analysts. BA interacts with the client and gets the requirements in detail and specifies them in the requirement document.
57. What is meant by a Walk-thru meeting?
Before start working in 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. It is an informal meeting carried out to review all test deliverables like test plan, test scenario, test cases, automation scripts, but reports and test results.
58. What is Build?
When all developers complete the coding for the specific module or page, they are put in a single folder by the Configuration Management Tool(CMT) and it is called the ‘Build’. We can also say that when the code of all developers integrates and working for specific tasks.