Mission-critical cloud services require more than 99.9 percent uptime—developers face extreme challenges in this unpredictable, high-stakes environment. Coyote provides developers an intelligent testing solution to help them confidently build reliable asynchronous software on the .NET platform.
Coyote allows developers to write unit tests that can include concurrency and other sources of non-determinism, without having to worry about flakiness. Given such a test, Coyote is able to automatically find deep non-deterministic safety and liveness bugs through intelligent systematic testing; and reproduce these non-deterministic bugs, facilitating easier debugging and quick fixes. Coyote supports the popular asynchronous task-based programming in C#, as well as in-memory actors.
Coyote has been adopted—in production—by a growing number of critical Azure services. User retention has been 100 percent so far, with teams reporting wins in three critical areas: (1) Increased uptime, with fewer to no bugs after production deployment on features systematically tested by Coyote; (2) increased performance enabled by a highly asynchronous design; and (3) time savings when adding new features due to increased confidence in code correctness.
Learn more about Coyote at the project website (opens in new tab), this Tech Minutes series video (opens in new tab) and this Microsoft Innovation demo (opens in new tab).