Component validation without source code is very difficult because there is no way of assessing how the component handles exceptions (and this is rarely defined in a component specification). The only validation method that can be used is black-box testing so static techniques cannot be used. Component specifications are rarely complete and this increases the problems of black-box testing. Formal specifications would help because they would precisely define what the component was supposed to do and its actual behaviour could be compared to the specification. However, formal specification rarely cover all exceptions and they do not help with testing performance, dependability or other non-functional characteristics.