Autonomous vehicles are a marvellous collection of technologies, both in hardware and software. With Sensible 4 technology, the vehicles are able to drive autonomously in various weather conditions, guided by a collection of sensors, sophisticated computing systems, and an autonomous driving software stack.
All this is installed to a Toyota Proace van, strolling silently (yep, they’re electric) on the testing loop of Sensible 4 at Espoo, Finland. The vehicle is a vanishing point of thousands of hours of planning, scrum dailies, development, and mechanical engineering that needs to be tested.
And I’m sitting behind the wheel, making sure the vehicle drives as it should. A lot has happened before I got this seat, let’s go through that first.
Regression Testing to the Max
Developing autonomous vehicle software is a complex task, and most of it is made on top of existing code. Whatever new features are being developed, they need to work with existing pieces of software and hardware. To be sure that the whole package still works as intended, it needs to be tested intensively.
The procedure where the full software stack is being tested after developing relatively small new features is called regression testing. Most of the testing done at Sensible 4 is regression testing. The heavy lifting of this work is done automatically, deep inside the computers with no human assistance.
But to really know if the new feature actually works or if the bug is fixed, one has to test it on a moving chassis of software with four wheels – the autonomous test vehicle.
They Offered Me a Test Engineer Position
Usually I do technical marketing, definitely not at one of our Proace vehicles, but some time ago our Testing Team Lead happened to ask if I’m interested in testing these things. Being a kind of a fan of electric mobility, vehicle automation and software, how could I have refused this kind of an offer?
I had my training and here I am now, sitting behind the wheel of an autonomous Toyota Proace. For a while, my title is Autonomous Vehicle Test Engineer.
Am I also a Driver? Well, not precisely, as the vehicle drives most of the time by itself. On the other hand, I do drive the vehicle manually in and out of the garage and I’m also the legal driver of this vehicle. Meaning, should something go south, I’m the guy bearing responsibility.
Safety Above Everything
My first and foremost job is to make sure that autonomous driving is safe. The vehicle is, after all, a prototype with possible faults and there are other vehicles and pedestrians on the test track. I keep my eye on the road, and I’m prepared to take control of the vehicle at any time.
There’s also an Autonomous Driving Engineer sitting next to me, in the passenger seat. His job is to do any needed tweaks for testing the software and also follow any messages the computer may give while driving.
Testing is a lot more than just driving around the flat parking lot. I find myself reading the test case documentation, setting up plastic foam plates representing an adult, a child, or a pet on and next to the vehicle’s planned trajectory.
Does the vehicle stop where it should? Let’s try and test. Let’s measure the distance to an obstacle. And then let’s do it again and again, for some ten or twenty times. Report back to developers the vehicle’s behaviour and the results of the test.
It’s Expensive but It Needs To Be Done
Testing with real vehicles requires people and vehicles, so it is expensive compared to automated software tests. This is the reason why the high pass rate of the tests is expected, as most of the code brought to test vehicles has gone through so many layers of simulations and automated testing.
Also, testing on real vehicles is always subject to environmental factors. Even though the test rounds are intended to be as identical as possible, there are always some changes in the environment: weather, the sun’s angle in the sky and even the friction of the road changes as the snow and ice melt during the day. As a test engineer, I need to understand these changes and try to figure out if they have any effect on the tests and communicate them back to the people working on the code.
After a long day of test engineering the vehicle I feel the load of testing. Not that it would be physically intensive, but the cognitive load of staying alert takes its toll. But it’s definitely worth it. Taking part in testing is a very concrete way to make future mobility happen. It also helps me in my normal marketing job to know how these vehicles actually work and perform in various conditions.
I enjoy the work of a test engineer. This is the closest one can get to autonomous mobility today. Or literally inside it.