I've done a search about backwards compatibility and there's not a lot of information about it. The most informative article I've found was one about how Subversion handles backwards compatibility. While it mentions what steps to take to ensure that software stays backwards compatible or what could break it, I'm more interested in how to test that this is the case.I could imagine that one could run the test suite of the previous release and check that all tests pass, but even so there might be problems with tests failing because, while APIs stay the same, some behavior slightly changes. Most if not all of these tests (including the changes) are already part of the test suite for the new release anyway. Is it possible to check for backwards compatibility in a different way (e.g. static analysis)?
Testing that a library is backwards compatible
testing
If backwards compatibility is valuable to you, then you have to arrange that a) you make it backwards compatible and b) that you know that it is backwards compatible.Static analysis is best done by the compiler and linker/loader. This gives you a large amount of information about the level of compatibility, in the form of warnings and errors.Semantic analysis is done by testing. Running the previous release test suite gives you information. You may need to create a new version of the previous release test suite that has the updated test procedures in place. There is no short cut for this. The important point to note is that you need to carry out this process for each previous test suite for which you want to make claims about compatibility.