compatibility testing in software engineering