To answer this question, you need to understand the concept of the development life cycle and the implications of discovering faults at different stages.
Option A) The documentation is poor, so it takes longer to find out what the software is doing.
This option is incorrect because the quality of documentation does not directly affect the cost of fixing a fault. While poor documentation may make it more challenging to understand the software, it does not directly contribute to the increased cost of fixing faults later in the development life cycle.
Option B) Wages are rising.
This option is incorrect because the cost of fixing a fault is not directly related to rising wages. While wage increases may contribute to overall project costs, they do not specifically drive up the cost of fixing faults.
Option C) The fault has been built into more documentation, code, tests, etc.
This option is correct because as the development life cycle progresses, the fault becomes embedded in various aspects of the software, such as the documentation, code, tests, etc. Fixing the fault at this stage requires identifying and correcting all the affected components, which can be time-consuming and complex. Additionally, fixing a fault later in the development life cycle may require retesting and revalidating various aspects of the software, further adding to the cost.
Option D) None of the above.
This option is incorrect because option C correctly explains why discovering faults later in the development life cycle is more expensive.
Therefore, the correct answer is C) The fault has been built into more documentation, code, tests, etc. This option is correct because as the fault becomes embedded in various aspects of the software, fixing it later in the development life cycle requires addressing and correcting multiple components, leading to increased costs.