1. What is Software Testing?
Software testing is a process of evaluating a software application to identify any bugs, errors, or missing requirements. It ensures that the software meets the specified requirements and is of high quality.
2. Explain the difference between Verification and Validation.
Verification focuses on whether the product is being built correctly, while validation focuses on whether the right product is being built. Verification ensures that the software conforms to specifications, while validation ensures that the software meets the user's needs.
3. What do you understand about bug leakage and bug release?
- Bug Leakage: When a bug is discovered by an end-user, that should have been caught in earlier builds/versions of the application, a bug leakage occurs. Bug leaking refers to a fault that exists during testing but is not discovered by the tester and is subsequently discovered by the end-user.
- Bug Release: When a particular version of the software is released with a collection of known bugs/defects, it is referred to as a bug release (s). Bugs of this type are frequently of low severity and/or priority. When the company can afford the existence of a bug in the released software rather than the time/cost of repairing it in that version, this is done. In most cases, these bugs are disclosed in the Release Notes.
4. What do you understand about Traceability Matrix (TM) in the context of quality assurance?
A Traceability Matrix is a document that connects any two baseline documents that require a many-to-many link to ensure that the relationship is complete. It's used to keep track of requirements and make sure they're being met on the present project.
The following are the three major components of a traceability matrix:
- Forward Traceability: This matrix is used to determine whether the project is progressing in the appropriate direction and for the correct product. It ensures that each specification is applied to the product and that each specification is adequately tested. It connects test cases to requirements.
- Backward or reverse Traceability: It is used to verify that the present product is still on track. The goal of this form of traceability is to ensure that we are not expanding the project's scope by adding code, design features, testing, or other activities not stated in the requirements. It connects requirements to test cases.
- Bidirectional Traceability: This traceability matrix ensures that all criteria are covered by test cases in both directions (forward and backward). It examines the impact of a change in requirements caused by a work product defect, and vice versa.
5. What do you understand about defect leakage ratio in the context of quality assurance?
Software testers utilise defect leakage as a metric to determine the effectiveness of Quality Assurance (QA) testing. It's the ratio of the total number of flaws attributed to a stage (which are captured in subsequent stages) to the sum of the total number of defects captured in that stage and the total number of defects assigned to a stage (which are captured in subsequent stages). Defect leakage is a metric that counts the percentage of faults that leak from one testing stage to the next, as well as demonstrating the effectiveness of software testers' testing. The testing team's worth, on the other hand, is only confirmed when defect leaking is small or non-existent.
6. Explain what is a testware in the context of quality assurance.
Testware is a collection of software created for the specific purpose of software testing, particularly software testing automation.
For example, automation testware is created to run on automation frameworks. All utilities and application software that work together to test a software package but do not necessarily contribute to operational purposes are referred to as testware. As a result, testware is only a working environment for application software or portions thereof, rather than a static configuration. It contains artifacts created during the testing process that is needed to plan, develop, and execute tests, such as documentation, scripts, inputs, expected outcomes, set-up and clear-up processes, files, databases, environment, and any other software or tools used during testing. Both verification and validation testing methodologies are used to create testware. Testware, like software, consists of codes and binaries, as well as test cases, test plans, and test reports. Testware should be preserved and faithfully maintained under the direction of a configuration management system.
7. What are the various artifacts to which you refer when writing test cases?
Following are the various artifacts that we can refer to while writing test cases :
- Specification of functional requirements.
- Document that explains what the requirements are.
- Wireframes.
- Use Cases.
- User Stories.
- Acceptance criteria.
- User Acceptance Testing Test cases.
8. How do you figure out how much testing each piece of software requires in the context of Quality Assurance?
The Cyclomatic Complexity can be used to determine how much testing each piece of software requires in our application. The technique aids in the identification of the three questions listed below for the programs/features.
- Is it possible to test the feature or programme?
- Is everyone aware of the feature/program?
- Is the feature/program trustworthy?
We can use this technique to determine the "level" of testing required for our application. It is standard practice to consider a piece of functionality to be complex if the cyclomatic complexity result is greater than or equal to a certain number, and to conclude as a tester that the piece of code/functionality requires in-depth testing. If the Cyclomatic Complexity result is a lesser value, we conclude as QA that the functionality is of lower complexity and adjust the scope accordingly. Understanding the full testing life cycle is critical, and we should be prepared to suggest modifications to our approach if necessary. The goal is to deliver high-quality software, so a QA should take all necessary steps to improve the testing process and the manner the testing team conducts the tests.
9. Code Snippet: Sample Test Case
// Test Case: Verify login functionality
1. Open the login page.
2. Enter valid username and password.
3. Click the 'Login' button.
4. Verify that the user is successfully logged in.