Modern cars are equipped with more and more functions, and these can also be controlled using a smartphone app. This digital connection is often useful, but has been known to also occasionally run on users’ nerves.
Recently, new functions for MyŠkoda were primarily associated with electric mobility; developers were secretly working on the implementation of functions that were primarily related to charging the Enyaq iV electric car basically all of last year. “Although the app is simple from a user’s perspective, the hidden side of it is actually very complicated. It’s not just about the app itself, i.e., the user interface, but the whole ecosystem,” explained Milan Mitošinka, the head of mobile development in the Prague-based company.
“You need to deal with connectivity, servers, databases on the servers, integration, encryption and so forth,” he added; it’s a long road before the first car reaches the customer, and on that road all the functions that must be available to users need to be meticulously tested. “In this case, the aim is to implement the essential functions, while non-essential ones can be added later,” noted Mitošinka in the context of priorities.
And he said that it’s actually the test application that was a very demanding matter. “Our task is to simulate all possible situations that could occur in practice, even if they are highly unlikely or unintended,” he continued.
Testing needs to really consider everything, including the app’s pairing with the given vehicle (which can be done with several possible procedures, depending on the type of vehicle and its equipment), the sending of basic information such as the kilometer counter or whether the car is locked or not, as well as testing active functions which allow, e.g., users to control the charging or air conditioning of their Enyaq iV or to activate its lights and horn. “Basically it’s about meticulously processing data; we compare what the car does with what the app shows,” said Viktoria, a tester whose main task consists of debugging and testing.
Testing can take place in several ways, but in practice it often includes “juggling” a large number of mobile phones and cars. “Of course, we have multiple vehicles at our company where we can directly test the functionality. But if needed, we can have a specific car with concrete functions delivered from Mladá Boleslav. And, we can also simulate some of the functions,” explained Viktoria. Testing covers diverse configurations of cars, equipment sets as well as on-board systems, which could each have different functions and support diverse means of communication.
Most functions are tested statically, but many also need to be tested while driving. And when one needs to find a root cause for a problem in such a situation, it can be a really big headache. “While working, the girls look like traveling hackers,” said a laughing Mitošinka, describing how the two Cleverlance testers search for bugs on the road. “One drives, the other has a laptop on her lap and operates several smartphones,” he said.
And we really need a lot of phones. “We try to test various versions of the system, we test the app on phones with different screen sizes and in the case of Android we also try to cover the diverse user interfaces offered by individual manufacturers,” said Viktoria, who clarified that they use dozens of phones during their work. And it is precisely in the phone where users could encounter the first problem: communication with some older types of vehicles is done exclusively by cable and the MirrorLink interface, however far from all Android phones support that. If theirs doesn’t, the user is out of luck. “We’re searching for other solutions, but for now this is the only way to go,” explained Mitošinka.
Another issue could lie in the communication between the vehicle and the car manufacturer. That’s because it is necessary to ensure that the apps can also deal with short-term communication outages caused by signal loss or planned infrastructure maintenance. “When receiving our company Enyaq, this in fact gave us quite a scare,” explained Viktoria. Switching from the so-called anonymous mode, in which the car doesn’t send some data based on the driver’s instruction, was not reflected in the app. “Both I and my colleague were worried that there’s a bug in the app. But it was in fact just caused by a minor connection error – the command simply did not reach the app from the car, and repeating the process after a while resolved the issue,” explained the tester.
It is her job to make sure that, aside from such technical outages, the app really works the way it should. “On the internet there are dozens of jokes about how programmers perceive testers, but at our company we’re a really good and friendly team. Our programmers know that it’s our job to search for problems, and we try to make it as easy as possible to fix these by examining and describing the situation in as much detail as possible,” said Viktoria. The set of mandatory test is then rerun for each new version of the app that is ready for release.
You might be wondering – where do bugs occur most often? “The most common cause of problems is that we’re dealing with a situation that the app did not consider before. At that point the app receives some data that it doesn’t know what to do with,” described Viktoria, adding that these cases are usually fairly easy to fix. The number of really “difficult” problems is rather low. “When testing we of course also need to test that the app does what it should, but also that it doesn’t do anything it shouldn’t”, she added.
That’s why, aside from the development version of the app where some security measures can be circumvented for instance due to simulation (testing that the kilometer counter values are being sent correctly is easier to simulate than to find cars with different values), the production version of the app that users get also undergoes testing. That one has all the security measures, for instance making sure that nobody can interfere with the communication between the car and the app in a way which would cause further problems.
“Our goal is thus to get a completely problem-free app, one which would ideally do what it should in all possible situations. It’s a difficult task, but I believe that with our latest versions we’re really close to that goal,” said Viktoria, concluding our look under the hood.