Two teams own two services that talk to each other. How do you stop one breaking the other without running both together in a shared environment?
Contract testing has each side verify itself against a shared description of the interaction, so consumer expectations are checked against the provider's real behaviour without the two ever running together. Mismatches surface in each team's own pipeline, not in a shared environment days later. It also connects api testing to the point an interviewer is testing.