Answer to Question 1
If the cost is not identified in the early stages, some rework of the deliverables produced in the preceding stages must be done. Also, the later the error is found, the more people are affected by the error. At very late stages, it will cost money to communicate the details of a defect, distribute and apply software fixes, retrain end-users for a product that has been sold to hundreds of customers.
Answer to Question 2
White-box testing is a software testing in which the software unit has expected input and output behaviors, but whose internal workings are known, and all possible logic paths through the software are tested. Black-box testing is a form of software testing in which input is provided to the program and the output is verified against the expected output, and if they are the same, the software passes the test. The tester does not need to know anything about how the software works.
White-box testing involves testing all possible logic paths through the software unit with thorough knowledge of its logic and whose internal workings, unlike the unit in black-box testing, are known. Black-box testing takes place without the tester having any knowledge of the structure or nature of the actual code.