How does software testing contribute to the quality of delivered software? [K2]
Correct Answer: C
Explanation Software testing contributes to the quality of delivered software by identifying root causes of defects from past projects and using the lessons learned to improve processes and thus help to reduce the defect count. Software testing is a process of verifying and validating that a software product meets the specified requirements and expectations of the stakeholders1. Software testing can detect defects in the software product and provide information about its quality1. Software testing can also identify root causes of defects from past projects and use the lessons learned to improve processes and thus help to reduce the defect count1. This can be done by using techniques such as root cause analysis, defect prevention, causal analysis, process improvement, etc1. These techniques can help to identify and eliminate the sources of defects in the software development lifecycle and prevent them from recurring in future projects1. Therefore, software testing contributes to the quality of delivered software by identifying root causes of defects from past projects and using the lessons learned to improve processes and thus help to reduce the defect count.
Question 67
Which of the following errors CANNOT be found with structure-based testing techniques?
Correct Answer: A
Explanation Memory leaks are errors that occur when a program does not release memory that it has allocated, causing the system to run out of memory and slow down or crash. Memory leaks cannot be detected by structure-based testing techniques, which are based on the code structure and logic. Structure-based testing techniques can only find errors that are related to the control flow, data flow, or logic of the program. For example, they can find errors such as features that are only partially implemented, data structures that are used before initialization, or division by zero. To detect memory leaks, you need dynamic analysis tools that monitor the memory usage of the program during execution. You can find more information about structure-based testing techniques and dynamic analysis tools in A Study Guide to the ISTQB Foundation Level 2018 Syllabus, Chapter 4, Sections 4.2 and 4.31.
Question 68
A car insurance policy has 3 rates of insurance depending on the age of the driver. For drivers aged between 17 and 25 inclusive they are charged at rate A, drivers aged between 26 and 50 inclusive are charged at rate B and those drivers aged over 50 are charged at rate C. You are designing test cases, which of the following three ages would test all valid equivalence partitions and therefore test rate A, B and C?
Correct Answer: C
Explanation The three ages that would test all valid equivalence partitions and therefore test rate A, B and C are 20, 35 and 65. Equivalence partitioning is a technique to divide a set of possible inputs or outputs into classes that are expected to behave similarly or produce similar results. For each equivalence class, only one test case is required to represent the whole class. In this case, we can identify the following equivalence classes for the age of the driver: Valid age between 17 and 25 inclusive (rate A) Valid age between 26 and 50 inclusive (rate B) Valid age over 50 (rate C) Invalid age below 17 Invalid age above 100 Therefore, three test cases are required to test all valid equivalence partitions, and any value within each class can be used as a representative value. For example, 20 for rate A, 35 for rate B, and 65 for rate C. References: Certified Tester Foundation Level Syllabus, Section 4.4.1
Question 69
What content would be in an incident report if that incident report was based on the IEEE 829 Standard for SoftwareTest Documentation? (i)Identification of configuration items of the software or system. (ii)Software or system lifecycle process in which the incident was observed. (iii)Description of the anomaly to enable reproduction of the incident. (iv)Number of occurrences of the incident. (v)Classification of the cause of the incident for metrics and for reporting purposes. Number of correct answers: 1
Correct Answer: C
* According to the IEEE 829 Standard for Software Test Documentation, an incident report should contain the following information: * Identifier: A unique identifier for the incident report * Summary: A brief summary of the incident * Incident description: A description of the incident, including: * Date: The date when the incident was observed * Author: The name of the person who reported the incident * Source: The software or system lifecycle process in which the incident was observed * Version: The identification of configuration items of the software or system * Test case: The identification of the test case that caused the incident * Execution phase: The phase of test execution when the incident was observed * Environment: The hardware and software environment in which the incident was observed * Description: A description of the anomaly to enable reproduction of the incident * Expected result: The expected result of the test case * Actual result: The actual result of the test case * Reproducibility: An indication of whether the incident can be reproduced or not * Impact analysis: An analysis of the impact of the incident on other aspects of the software or system * Incident resolution: A description of how the incident was resolved, including: * Resolution date: The date when the incident was resolved * Resolver: The name of the person who resolved the incident * Resolution summary: A brief summary of how the incident was resolved * Status: The current status of the incident (e.g., open, closed, deferred) * Classification information: A classification of the cause and effect of the incident for metrics and reporting purposes Therefore, among the options given in this question, only (i), (iii), and (iv) are part of an incident report based on IEEE 829.
Question 70
What type of testing is important after Migration, retirement or enhancement of an existing system?
Correct Answer: D
Explanation Maintenance testing is important after migration, retirement or enhancement of an existing system. defines maintenance testing as follows: Maintenance testing is a type of software testing that occurs after changes have been made to a system in order to ensure that no new defects have been introduced and that the system still meets its original requirements and specifications. Regression testing (A) is important after any change in the system that may affect existing functionality. Operational acceptance testing (B) is important before deploying a system into production environment. System testing is important after integrating all components of a system into a complete system.