Software Testing is the activity to check if the developed software system match the expected customer needs and to ensure that the software system is defect free. Software testing helps identify bugs in the system, gaps and any missing requirement. We had looked at types software testing and let's see the most asked software testing questions. Software testing is divided into two categories:
- Functional Software Testing.
- Non-functional Software Testing.
During the interview you will be asked questions such as the following. Remember this is not the full list as the list can grow very big. Bu this gives you an idea of what kind of questions to expect.
1. What is software testing?
This is the process to evaluate the functionality of a software application with an intent to establish whether the developed software meets the client’s expectation/specified requirements.
2. What is STLC (Software Testing Life Cycle)?
A sequence of activities conducted to perform software testing. OR. It is the testing process which is executed in a systematic and planned manner.
3 State and explain the phases of the Software Testing Life Cycle
- Requirement Analyses – In this phase, requirements are analyzed to identify the type of tests to be conducted. Testing priorities are established. The testing matrix is prepared using a requirement traceability matrix. Identify test environment tools. Team members work together to understand the requirements in detail. In some instances, the business analyst or implementing consultant may conduct testing.
- Test planning – To prepare a test plan and determine the test strategy. Selection of test tools. Estimation of test cost. Resource planning and define responsibilities.
- Test case development – Create test cases and test numbers. Create automation scripts using automation tools e.g., Selenium: review and baseline test cases and scenarios. Create sample test data.
- Environment setup – The test environment determines the software and hardware conditions under which the software product is tested. This can be done simultaneously with the test case development phase. Smoke testing is required on the build.
- Test execution – Tester conduct testing based on the test plan and test cases prepared. They document test results and bugs identified. They map bugs to a requirement. Bugs are reported to the development team for fixing.
- Test cycle closure - Testing team analyzes test artifacts and identify what to implement in the future. They outline the lessons learned. They share best practices for future projects. Test closure report and test analysis report prepared and published.
4. State and explain the four main levels of testing
- Unit testing – Unit testing is done to check whether the individual modules of the source code are working as expected. Testing each and every module of the whole system separately by the developer in the developer’s environment (IDE). Also called Module testing or Component testing.
- Integration testing – Integration testing is the process of testing the compatibility or data transfer between multiple unit tested modules. Individual modules are not integrated until all the modules are ready.
- System testing – It is black-box testing. The whole integrated system is tested. This is also known as the end to end scenario testing. Ran to ensure the software works in all intended target systems.
- Acceptance testing – It is carried out to obtain customer sign-off so that the software can be delivered and deployed to the client. Three types of Acceptance testing are; Alpha testing, Beta testing, and Gamma testing.
5. Explain Black Box testing and White box testing software testing approaches
Black box testing is a software testing technique in which the testers validate and verify the functionality of the software without looking at the internal code structure. The testers provide inputs and expect outputs from the software under the test. It is also called behavioral testing and can be applied to every testing level.
White box testing is a software testing technique in which the testers validate and verify the internal code structure of the software under testing. It requires programming skills to design test cases. It’s usually done at unit level testing.
6. Explain Functional testing and Non Functional testing
Functional testing, as the name suggests, revolves around the functional aspects of the system or subsystems and how efficiently the system executes its functions. This testing is carried out by specifications provided by the client or use cases provided by the design team. Prior to conducting non-functional testing, functional testing should be carried out. E.g.
- White Box Testing: Includes testing the internal structure of the system code.
- Black Box Testing: Based on the test objective, derive test cases.
- Unit Testing: Identify bugs and errors right from the start of the development life cycle.
- Smoke and Sanity Testing: Compare the system with specifications to make sure it's functioning accordingly.
- Integration Testing: Test individual software components to verify the interaction between various interfaces.
Non-functional testing is done against the non-functional requirements, or which are not covered in functional testing. Non-functional requirements tend to be those that reflect the productivity, quality, stress of the system, specifically from the user’s perspective. E.g.
- Compatibility Testing: Performed to ensure compatibility of a system, application, or website
- Configuration Testing: Testing an application with multiple combinations of software and hardware to find out the optimal configurations
- Load Testing: Determine a system’s behavior under both normal and anticipated peak load conditions.
- Performance Testing: Evaluating the quality or capability of a product.
- Recovery Testing: Determine how quickly the system can recover after it has gone through system crash or hardware failure
- Security Testing: Determine if an information system protects data and maintains functionality
- Scalability Testing: Measure its capability to scale up or scale out in terms of any of its non-functional capability.
- Stress Testing: Stretches software to its limits and checks its durability.
7. Explain Verification and Validation in software testing
Verification is the process to ensure that whether we are building the product right, i.e., to verify the requirements which we have and to verify whether we are developing the product accordingly or not. Activities involved here are Inspections, Reviews, Walk-throughs.
Validation is the process, whether we are building the right product, i.e., to validate the product which we have developed is correct or not. Activities involved in this are Testing the software application.
8. What is Test Suite?
Test Suite is a collection of test cases. The test cases are intended to test an application.
9. What is Test Scenario?
Test Scenario gives the idea of what we have to test. Test Scenario is like a high-level test case.
10. What is Test Case?
Test cases are the set of positive and negative executable steps of a test scenario, which has a set of pre-conditions, test data, expected results, post-conditions, and actual results. Click here for more details.
11. What is Test Bed?
An environment configured for testing. Test bed consists of hardware, software, network configuration, an application under test, other related software.
12. What is Test Environment?
Test Environment is the combination of hardware and software on which the Test Team performs testing.
13. Explain the Top-Down Approach and Bottom-Up Approach software testing approach.
Top-Down Approach – Testing takes place from top to bottom. High-level modules are tested first and then low-level modules and finally integrating the low-level modules to a high level to ensure the system is working as intended. Stubs are used as a temporary module if a module is not ready for integration testing. Bottom-Up Approach – It is a reciprocate of the Top-Down Approach. Testing takes place from bottom to up. Lowest level modules are tested first and then high-level modules and finally integrating the high-level modules to a low level to ensure the system is working as intended. Drivers are used as a temporary module for integration testing.
Good luck in programming. Everything is possible with dedication and determination. Just feel confident during your interview. We wish you best luck to have a good interviewer and all the very best for your future endeavor. Happy coding:-)