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.
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. Tester has to make sure if all the functionalities should work with positive and negative data. In order to test, tester has to prepare set of test data with the equivalence partioning, boundary value analysis and error guessing technique. 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 the confident that 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. Once functionality testing is done then tester should go with system 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. Defect is an error found AFTER the application goes into production. In other words Defect is the difference between expected and actual result 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 error. Error is usually found by developer. 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 tester finds some variation in actual and expected results then tester reports that defect/issue to development team. Development team verifies the defect and they accept it then it is called as bug. Bug is terminology of Tester.
FAILURE: A failure is the inability of a software system or component to perform its required functions within specified requirements. When product goes live and it is not working as an expected and then problem is reported by many end to end customers then it is called as Failure.
7. What is Severity and Priority?
Severity: Severity means how severe defect is affecting the functionality. It is related to quality standard and that is why it is defined by Tester.
Priority: Priority means how fast defect has to be fixed. Priority decides the order in which defects should be fixed.
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 to developer or sometime 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 makes sure that the product is designed to deliver all functionality to the customer.
Verification is done at the starting of the development process. It includes reviews and meetings, walk-throughs, inspection, etc. to evaluate documents, plans, code, requirements and specifications.
Verification is also called as static testing
17. What is Validation?
Validation is determining if the system complies with the requirements and performs functions for which it is intended and meets the organization’s goals and user needs.
Validation is done at the end of the development process and takes place after verifications are completed.
It is also called as dynamic testing.
18. Difference between Test Scenario and Test Cases.
a. Test Scenario: Test scenario consists of a detailed test procedure. We can also say that a test scenario has many test cases associated with it. Before executing the test scenario we need to think of test cases for each scenario.
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 testing phase where there is severe time pressure, Exploratory testing technique is performed that combines the experience of testers along with a structured approach to testing. We take help of 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. Tester needs to perform the basic functionalities of the build once it is given to testing team. If it fails then build is declared as unstable and it is not tested anymore until the smoke testing of the build passes.
b. Smoke testing is usually documented or scripted
c. Smoke testing is a subset of Acceptance testing
22. What is Sanity Testing?
a. Sanity testing is the more detailed testing than smoke testing.
b. Sanity testing is usually performed to check the new functionalities have implemented and working properly or not
c. Sanity testing is usually performed to check whether the bugs have been fixed or not
d. Sanity testing is usually not documented and is unscripted
e. 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 cases and test scenario. It should be in detailed format so tester can easily understand 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?
STLC (Software Testing Life Cycle) identifies what test activities to carry out and when to accomplish those test activities. STLC includes Requirement Understanding, Test Planning, Test Designing, Test Environment Setup, Test Execution and bug reporting and 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?
Black Box Testing is a testing method in which testers evaluate the functionality of the software under test without looking at the internal code structure. Tester is responsible to test only the functional behaviour of the web application instead of checking up the internal code and structure.
29. What is White Box Testing?
White Box Testing is also called as Glass Box, Clear Box, and Structural Testing. It is based on applications internal code structure. Tester also needs to test the coding part by checking or debugging the code. Tester should be technical and should have command over programming language.
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 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 logout 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 browser to see if you need to sign in again?
7. Login, change password, and then logout, then see if you can login 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 is Software Testing 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 ensures that the end to end business flow is working and does not result in failure.
It discovers bugs/defects before the delivery, which guarantees the quality of the software.
It ensures reliability, easy to use, and performance.
It reduces the overall level of risks.
It makes the system safe and 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 of any software product.
Following documents are considered during testing of the project.
Generally, testing team is required to create following documents during testing
1. Test Plan
2. TestScenario and TestCases
3. Test Reports
43. Difference between manual and automation testing.
1. Manual testing is preferred when the project is small-scaled, having fewer functionalities. So 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 are more prone to human error.
3. In manual testing, some times we feel like it is a tedious task because testers 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 the part is, you don't need to be in the office to run the script. Everything will be executed automatically.
44. Attitude of Software Tester.
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 customers and clients both the perspective.
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 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 against specified requirements. System testing involves both functional and non functional testings like functionality, performance, load, Stress, Sanity, Regression etc...
46. What is test closure activities?
During this 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 pesticide paradox? How to overcome it?
According to 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 area 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 the quality is "Conformance to specification".
Quality means delivering products and services that:
1. meet customers standards
2. meet and fulfilling customers needs
2. meet customers needs and expectations
49. What are the experienced based testing?
Exploratory testing and error guessing testings are experienced-based testings. In experienced-based testing, the testing team needs to study and analyze the product and accordingly applies his/her skills on the product in order to create new test possibilities.
50. What is equivalence partitioning ?
Equivalence partitioning is one of the blackbox techniques. Equivalence partitioning is designed to minimize the number of test cases. Data is divided in a 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’s inputs which are too low and which are too high.
51. What is boundary value analysis?
Boundary value analysis is a technique of Blackbox 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.