types of compatibility testing in software testing