Computer Knowledge
Software Testing and Quality Control
2,292 Questions
Software testing and quality control questions cover testing methodologies, unit testing, and defect management. These concepts are crucial for the computer knowledge sections of competitive exams. Practice these questions to understand verification and validation processes thoroughly.
Quality control typesUnit testing purposeSoftware vulnerability testingTest planning tasksLoop testing criteriaTest harness functions
Software Testing and Quality Control Questions
-
All the below
-
a way of empowering people in the organization
-
the analysis performed by executing the program code
-
a powerful way of expressing yourself to make your presence felt
C
Correct answer
Explanation
Dynamic assertions analyze program behavior during actual execution, testing runtime conditions, variable states, and control flow. This contrasts with static analysis, which examines code without running it. Dynamic analysis validates what the code does, not just its structure.
-
All of the following
-
Activities involved
-
Users/Customer served
-
Deficiencies noted
-
Procedure used to perform work
A
Correct answer
Explanation
Complete test deviation documentation requires capturing the full context: activities performed (what was done), users/customers affected (who experienced it), deficiencies found (what went wrong), and procedures used (how it was done). This ensures reproducibility and traceability.
-
It can help identify error-prone parts of the process
-
It cannot be applied; there is no normal variation in software
-
It cannot be used to identify similar types of failures
-
It cannot be applied; software failure expose the root cause directly
A
Correct answer
Explanation
Root cause analysis (RCA) in software development focuses on identifying systemic weaknesses or error-prone stages in the process (like requirements gathering or coding phases) to prevent defects, rather than assuming software failures are unresolvable or self-evident.
-
Developers are not as careful as testers
-
Developers are generally not willing to put in the effort required to find faults in their
-
No-one can adequately test their own work
-
An independent person may find faults more quickly.
C
Correct answer
Explanation
Independent testing prevents cognitive bias where developers unconsciously avoid test cases that might reveal faults in their own work. The psychological attachment to one's code creates blind spots - you see what you intended to write, not what actually exists. Option A is incorrect about developer care; option B oversimplifies motivation; option D describes a potential benefit but not the fundamental reason.
-
We cannot run the test
-
It may be difficult to repeat the test
-
It may be difficult to determine if the test has passed or failed
-
We cannot automate the user inputs
C
Correct answer
Explanation
Expected results define the pass/fail criteria for a test. Without them, we have no objective basis to judge whether the actual behavior matches requirements, even if we can execute the test inputs and observe outputs. This makes it impossible to determine whether the test passed or failed.
-
2 is a valid reason; 1,3,4 & 5 are not
-
1,2,3,4 are valid reasons; 5 is not
-
1,2,3 are valid reasons; 4 & 5 are not
-
All of them are valid reasons for failure
D
Correct answer
Explanation
Failures can originate from errors anywhere in the software lifecycle, including testing execution, the software code, the design, environmental variables, or incorrect documentation. Therefore, all options listed are valid reasons for a system failure.
-
Execution
-
Design
-
Planning
-
Check Exit criteria completion
C
Correct answer
Explanation
Detecting faults during the planning phase is highly cost-effective because requirements and design issues can be resolved on paper before any code is written. Fixing defects later during design, execution, or exit criteria validation requires expensive code rework, regression testing, and redeployment cycles.
-
Monitoring progress of tests runs
-
Identifying test activities
-
Planning for rework and retest cycle
-
Estimating total effort to report faults
A
Correct answer
Explanation
Test estimation is a planning activity that occurs before test execution, involving forecasting resources, schedules, and scope. Monitoring test progress happens during execution and control, which is after estimation. Options B, C, and D are all valid estimation activities (identifying tasks, planning rework cycles, estimating defect reporting effort).
-
Report on deviations form the project plan
-
Sign the system off for the release
-
Raise incidents on faults that they have found
-
Provide information for risk analysis and quality improvement
B
Correct answer
Explanation
Test managers coordinate testing but should not unilaterally approve releases. Sign-off requires broader stakeholder involvement including business owners and project managers to avoid conflicts of interest and ensure adequate testing. Options A, C, and D are appropriate test manager responsibilities for transparency and quality improvement.
-
an error
-
a fault
-
a failure
-
a defect
C
Correct answer
Explanation
A failure is the observable incorrect behavior that occurs during system execution - what end-users actually see when the software doesn't work as expected. A fault or defect is the bug in the code that causes the failure. An error is the human mistake that leads to the fault. The key distinction: fault is in the code, failure is what the user experiences.
-
requirements
-
documentation
-
testcases
-
improvements suggested by users
D
Correct answer
Explanation
Incidents are formal reports of defects or failures in the software system that require investigation and resolution. Requirements, documentation, and test cases can all have incidents raised against them if they contain errors, ambiguities, or issues. However, user suggestions for improvements are enhancement requests or feature requests, not incidents - they don't represent a deviation from expected behavior.
-
Poor quality software
-
Poor software and poor testing
-
bad luck
-
insufficient time for testing
B
Correct answer
Explanation
When users find faults after release, it indicates both that the software had bugs (poor quality) AND that the testing process failed to catch them (poor testing). If testing were thorough, users wouldn't discover these faults. Option A blames only the software; Option D blames only time constraints. The reality is both software quality and testing effectiveness were inadequate.
-
to show that system will work after release
-
to decide when the software is of sufficient quality to release
-
to find as many bugs as possible before release
-
to give information for a risk based decision about release
D
Correct answer
Explanation
Testing provides information to stakeholders about the quality of the software, including known defects, risks, and test coverage. This information supports a risk-based decision about whether the software is ready for release. Testing cannot guarantee the system will work (A), doesn't directly decide when to release (B), and while finding bugs (C) is important, it's not the MAIN purpose - the information gathered enables informed release decisions.
-
Faults in program specifications are the most expensive to fix
-
Faults in code are the most expensive to fix.
-
Faults in requirements are the most expensive to fix
-
Faults in designs are the most expensive to fix
C
Correct answer
Explanation
Requirements defects are the most expensive to fix overall because they affect everything downstream - design, code, testing, documentation, and user experience. A single requirement error can invalidate entire features, requiring rework across multiple phases. While design and coding defects are also costly, they're usually more localized. The earlier a defect is found in the lifecycle, the cheaper it is to fix; requirements defects found late are exponentially more expensive.
-
Code Logic
-
Code Coverage
-
Memory leaks
-
All of the above
D
Correct answer
Explanation
Running testdrv -p executes a full diagnostic check on test units, verifying the code logic, measuring overall code coverage, and identifying potential memory leaks. Because the testing framework validates all three criteria during this parameter execution, selecting all of the above is the correct choice.