The Test Driven Development (TDD) methodology suggests you to write a test first, run it to see it fail, write just enough code to get that test to pass, run it to see it succeed, then repeat, taking a step back occasionally at this point to refactor. One goal of TDD is to make you think about the API of the software you are writing, which you do by writing the tests that call into the API. Another goal is to ensure you get full test coverage of the production code you write.
But what if you can just ask an AI to write a function, then ask it to write the test for that function? Should you ask the AI to write the test first or the function first? Should you ask the AI to write the complete function and test rather than work in small steps a la TDD? Do you lose anything by not writing the tests yourself? But wait, if you have an AI at your disposal, should you be asking the AI to write proofs instead of tests?
This talk will show the ways AI can been applied to Scala development today, and imagine the future possibilities.