Hi, I would like to ask for some opinions on measuring how "correct" a new implementation of a J2SE class is. Consider if someone develops a clean implementation of fictitious J2SE type java.foo.Bar which is based on their interpretation of the reference API documentation. Like the deliverable code, we can expect the unit test code to also be written based on assumptions made from the reference API. Is this working model good enough to ensure that the resulting type can be used as a one-for-one replacement for the equivalent implementation in the reference distribution ? What about the behaviour that is not adequately captured in the existing documentation ? For example, the precise layout of the result from the toString() method ; the order in which items are returned when iterating through a collection property etc.
It is likely safe to assume that users running an application on alternative class libraries will not be expecting to make many (any ?) changes to that application code if it was previously working as desired. So in the general case then how can subtle behavioural incompatibilities *between* API implementations be discovered, recorded and remedied ? I would be interested in hearing about any tooling or utilities that can help with this issue. Or perhaps this is not an issue at all .....? Best regards, George