Why software testing is the real driver of the autonomous cars

Listen on the go!

In the early 1800s, the human race witnessed an astonishing new invention on the roads around them. The invention was then called horseless carriages, which we now call cars. “Horseless carriages” was a transitional term given to the cars while we got adjusted to the fact that we will not need animals to pull our wagons anymore. In the present day, we are experiencing another transition, which we have termed as “driverless cars”.  

Two centuries ago, we did away with the need for four-legged animals for driving us. Today, we are eliminating the necessity of human drivers, thereby, completely relying on the advanced technologies and smart systems for safe commute. Autonomous driving technology is being tested by several industry giants including Google, Tesla, and Uber.  

Elon Musk, CEO at Tesla, expects to put a million self-driving Teslas on the road by the end of this year. In fact, several carmakers and technology companies in the Silicon Valley envisioned 2019 to be an age of driverless cars with thousands of self-driving taxis on the road. There were high expectations and crazy anticipation, but the two fatal accidents involving autonomous vehicles last year became an eye-opener.  

Statista survey revealed that about 27% of the U.S. adults consider autonomous vehicles to be ‘very unsafe’ and 33% of the surveyees think of them to be ‘somewhat unsafe’. Only 8% of them think that autonomous vehicles are very safe. This data paints a concerning yet clear picture of where do we stand as a society in terms of acceptance of these autonomous cars. Had there not been such tragic incidents involving the autonomous vehicles, we might be more open to the concept of being driven by software rather than a human being. 

Sam Abuelsamid, an analyst at Navigant Research, said, “There was this incredible optimism. Companies thought this was a very straightforward problem. You just throw in some sensors and artificial intelligence, and it would be easy to do.” In reality, the main challenge lies in building up a trustworthy software that can drive these sensors and AI technologies, collate the data, and make quick decisions in realtime for self-driving cars to become a reality. 

Technology on wheels and behind them 

Self-driving cars are purely technology-driven and do not require manual intervention for working successfully. That is the ideal situation, anyway. These cars should be aware of their surroundings like manual drivers are. They need to know when to stop, when to go, and when to give way to other vehicles. They cannot be too slow or too fast, which means they need to maintain the pace similar to the other moving bodies on the road. The autonomous vehicles are required to make decisions in real-time and implement them effectively. All in all, the self-driving cars have to mimic a professional human driver in the entirety. To do all of this, these vehicles utilize a range of technologies which can be broadly categorized into LIDAR, Radar, and cameras. Let’s take an example of the technologies that power the Google self-driving car to gain a better understanding: 

  1. Laser range finder: LIDAR, a roof-top mounted rotating camera on top of the Google car is a laser range finder. This camera creates 3D images of the surrounding objects with the help of laser beams. 
  2. Front camera for near vision: The front camera mounted on the windshield allows the car to ‘see’ the objects right in the front, including pedestrians and motorists. It also helps the car detect and record information about road signs and traffic lights to be interpreted by the internal software for making decisions. 
  3. Bumper mounted radar: The four radars mounted on the car’s front and rear bumpers are programmed to help it maintain a distance of at least 2-4 seconds from the other vehicles. 
  4. Aerial that reads precise geo-location: The car has a GPS inertial navigation unit that works with the Aerial sensors at the rear of the car to identify its location. The GPS data collected from the satellites is compared with the sensor data collected previously from the same location to minimize the degrees of uncertainty regarding the actual position. 
  5. Ultrasonic sensors on rear wheels: These sensors help the car identify the obstacles on the rear side while keeping a track on the car’s movement. 
  6. Devices within the car: Altimeters, gyroscopes, and tachymeters measure several parameters to determine the accurate position of the car and enable the car to operate safely. 
  7. Synergistic combining of sensors: All the data collected by the sensors have to be combined and interpreted accurately for safe driving. This is performed by the internal software system of such cars. 

The magic is in the interpretation 

An autonomous car might have all the sophisticated technologies integrated within. It might have all the data that it needs to map the distance from the obstacles and the pedestrians. But what if it misinterprets the available information? What if the software, whose responsibility is to combine the available information and offer accurate interpretations for making real-time decisions, is faulty? We have already seen the result of the ‘what ifs’ in the form of two fatal accidents last year.  

The operability of the self-driving cars does not limit to safety only. It also concerns a seamless flow of traffic. The haphazard, non-intuitive movements of a self-driving car might disrupt the everyday traffic. In essence, self-driving cars should be both safe and practical. It will all depend on how the software in the car perceives the information and interprets the available data. And the ability of this perception and interpretation depends on how well the software is tested.  

Software testing for autonomous vehicles is the only sane way of evaluating them on the safety and practicality parameters. Testing autonomous vehicle systems bestows a degree of trust and certainty regarding the capabilities of the self-driving car. It analyzes and assures that all the systems involved in the decision-making process are working in complete tandem with one another without any anomaliesPre-emptive software testing for self-driving cars identifies any bugs present in the software before the car gets on the road. As all the sensors, radars, and cameras depend on super-fast connectivity, IoT testing of these units also become essential for assessing if all the necessary information is communicated smoothly or not. Testing the AI systems in the autonomous vehicles ensures that the data fed to the system is understood properly and the predictions offered are viable and accurate. This is why not the software, but software testing is the real driver of the driverless cars. 

At Cigniti, we offer holistic software testing, quality engineering, and test automation solutions. Having worked with several global fortune companies, we have rich experience and deep expertise in resolving complex testing challenges. Connect with us and get your software-related issues resolved by our experts.