A bit of software that does something specific is sometimes called a service provider. Something that needs that service is a service consumer. If a client wants data from an API the API is the provider and the client is the consumer. This communication is done under a contract - a set of specifications by which the consumer uses a provider.
CDC testing is where you write the tests from the consumer’s point of view. It has various advantages in terms of running automation, where “running automation” means to execute a series of events on a computer that may or may not have an understood purpose and “advantages” means executing those events efficiently. Not be confused with advantages for testing, which is a concern that may or may not have overlap with the former. i.e. it benefits the development project that contains the “tests” and only via that may it benefit actual testing.
It is a form of mock testing, which is testing on a partially non-real system while pretending that you’re not and assuming that it doesn’t matter.
Because the idea stems from a coding mindset from coding theory by coders usually this is written and performed by coders. Because they are technically testing (I do not here encode the quality of testing in the word “testing”) then they are also testers. Because they are part of the development of a project they are also developers like coders and testers. I don’t know what a QA is.
The only specific tool I know of is Pact. There’s no reason you can’t do it with any tool or language that interfaces with your tech stack. The tools used for CDC are also written in a language.
NB. I don’t use CDC, this is just all I know of it, I’m sure someone will correct me.