Question:- Can we do system testing at any stage?
Answer:- No. System testing should start only if all modules are in place and they work correctly. However, it should be performed before UAT (user acceptance testing).
Question:- Mention the different types of software testing.
Answer:- Various types of Software Testing used by manual testers are as follows: • Unit testing • Integration testing • Regression testing • Shakeout testing • Smoke testing • Functional testing • Performance testing • o Load testing o Stress testing o Endurance testing • White-box and Black-box testing • Alpha and Beta testing • System testing
Question:- What is the difference between a test driver and a test stub?
Answer:- The test driver is a section of code that calls a software component under test. It is useful in testing that follows the bottom-up approach. The test stub is a dummy program that integrates with an application to complete its functionality. It is relevant for testing that uses the top-down approach. For example: Let’s assume a scenario where we have to test the interface between Modules A and B. We have developed only Module A. Here, we can test Module A if we have the real Module B or a dummy module for it. In this case, we call Module B as the test stub. Now, Module B can’t send or receive data directly from Module A. In such a scenario, we’ve to move data from one module to another using some external features called test driver.
Question:- What is agile testing and why is it important?
Answer:- Agile testing is a software testing process that evaluates software from the customers’ point of view. It is favorable 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.
Question:- What do you know about data flow testing?
Answer:- It is one of the white-box testing techniques. Data flow testing emphasizes for designing test cases that cover control flow paths around variable definitions and their uses in the modules. It expects test cases to have the following attributes: 1. The input to the module 2. The control flow path for testing 3. A pair of an appropriate variable definition and its use 4. The expected outcome of the test case
Question:- What is the purpose of the end-to-end testing?
Answer:- End-to-end testing is a testing strategy to execute tests that cover every possible flow of an application from its start to finish. The objective of performing end-to-end tests is to discover software dependencies and to assert that the correct input is getting passed between various software modules and sub-systems.
Question:- The probability that a server-class application hosted on the cloud is up and running for six long months without crashing is 99.99 percentage. To analyze this type of a scenario, what test you will perform?
Answer:- Reliability testing
Question:- What will you do when a bug turns up during testing?
Answer:- 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. • Once we are certain of the full scope of the bug, we can add details and report it.
Question:- Why is it impossible to test a program thoroughly?
Answer:- Here are the two principal reasons that make it impossible to test a program entirely. • Software specifications can be subjective and can lead to different interpretations. • A software program may require too many inputs, outputs, and path combinations.
Question:- How do you test a product if the requirements are yet to be freezed?
Answer:- 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. But we should get all assumptions well-documented in the test plan.
Question:- If a product is in the production stage and one of its modules gets updated, then is it necessary to ret
Answer:- It is suggested to perform a regression testing and run tests for all the other modules as well. Finally, the QA should also carry out a system testing.
Question:- How will you overcome the challenges faced due to the unavailability of proper documentation for testing?
Answer:- If the standard documents like System Requirement Specification or Feature Description Document are not available, then QAs may have to rely on the following references, if available. • Screenshots • A previous version of the application • Wireframes Another reliable way is to have discussions with the developer and the business analyst. It helps in solving the doubts, and it opens a channel for bringing clarity on the requirements. Also, the emails exchanged could be useful as a testing reference. Smoke testing is yet another option that would help verify the main functionality of the application. It would reveal some very basic bugs in the application. If none of these work, then we can just test the application from our previous experiences.
Question:- Is there any difference between retesting and regression testing?
Answer:- 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. • Regression test cases verify the functionality of some or all modules. • Regression testing ensures the re-execution of passed test cases. Whereas, retesting involves the execution of test cases that are in a failed state. • Retesting has a higher priority over regression. But in some cases, both get executed in parallel.
Question:- As per your understanding, list down the key challenges of software testing.
Answer:- Following are some of the key challenges of software testing: The lack of availability of standard documents to understand the application Lack of skilled testers Understanding the requirements: Testers require good listening and understanding capabilities to be able to communicate with the customers the application requirements. The decision-making ability to analyze when to stop testing Ability to work under time constraints Ability to decide which tests to execute first Testing the entire application using an optimized number of test cases
