My friends and former colleagues at Voyage have released their self-driving car testing process as an open-source repository on GitHub.
Their website also includes concise explanations of the core features:
The framework is currently modest, as expected for a first release, but helpful. And the point of the exercise is to engage the self-driving car community in building out a robust, open-source solution to autonomous vehicle testing.
What gets me really excited about this is the potential to create a path toward test-driven development for autonomous vehicles.
The Ruby on Rails world, which was my world for years, is fanatical about testing. They love testing so much. One of Rails’ engineers most beloved development principles is Test-Driven Development.
TDD is the process of designing and developing your code using tests first. The mantra “red-green-refactor” is familiar to any Rails engineer, as TDD requires:
- Writing a test case
- Verifying that the application fails the test case (red)
- Writing the application code to pass the test case
- Watching it pass (green)
- Fixing and improving the application code (refactor)
- Verifying that the application code still passes the test case
Rinse and repeat.
I loved this cycle as a Rails engineer and I love the idea that a public testing framework for autonomous vehicles could provide a red-green-refactor cycle for autonomous vehicle developers.
Take a self-driving car scenario. Watch the virtual driver software fail. Write the code to pass the scenario. Watch the virtual driver pass. Refactor. Verify that the virtual driver keeps on passing that test case forever.
Of course, we don’t need a public, open-source testing framework to do this. Any self-driving car engineer anywhere can use TDD by themselves. But a public test suite would take a lot of the work out of TDD, by pre-specifying the hurdles that developers need to clear.
Hopefully that would lead to safer self-driving cars, sooner.