Написал тут статейку про Contract-Driven Development: https://articles.life4web.ru/python/contracts/
Я немного гуглил, такой термин звучал только от Bertrand Meyer, создателя языка Effel и, главное, самой концепции контрактного программирования. К слову, он преподает в ИТМО и Иннополисе. Концепция кажется немного заброшенной, а зря, ведь столько всего крутого можно сделать на контрактах. Собственно, статья как раз о том, зачем они нужны с точки зрения тестирования кода. Это далеко не единственное применение контрактов, так что я планирую писать про это ещё, с точки зрения типизации, доказательства теорем, пространства решений.