Final answer:
Static testing is a cost-effective way to detect and remove defects in software. It makes dynamic testing easier by identifying issues early on. Option A,B are correct.
Step-by-step explanation:
Static testing is a software testing technique that involves reviewing and analyzing code or documentation without actually executing the software. It is done to detect defects and improve software quality.
One of the most true statements about static testing is that it is a cheap way to detect and remove defects. It is an efficient method that can help identify issues early in the software development life cycle, ultimately leading to cost savings.
Another true statement is that static testing makes dynamic testing less challenging. By identifying and fixing defects in the code before the software is executed, the dynamic testing process becomes easier and more focused, as many potential issues have already been addressed.
However, the statement that static testing has less value in testing safety-critical systems because dynamic testing is better at finding defects is not true. In reality, both static and dynamic testing complement each other and are necessary for effective software testing.
While dynamic testing focuses on executing the software and verifying its behavior, static testing focuses on analyzing the code and documentation for potential issues. Both techniques are essential to ensure software quality and safety in safety-critical systems.