This morning, on a usual check on WhatsApp, I found this message-
VW generates pollution equal to 10 Auto Rickshaws.... that's y the name... DAS Auto??
(If unfamiliar, do check the meaning of Auto Rickshaw to catch-up on humor here)
I always find it fascinating the way people manage to keep pace of their humor with the events happening around the world. Whether it could be attributed to talent or immense availability of time- is a discussion for a different time. My focus with this post is to shed some thoughts around the news that's grabbing headlines these days. On surface, it can be attributed as a story of the auto car major Volkswagen's decline. Beyond the esteemed company's decline, this story is also about the rise of a certain kind. Intriguingly, it brings forward the subject of rise of software in our day-to-day lives. I will come back to this point in a bit as before that i will try and summarize in simple terms on what is currently happening with Volkswagen.
In single line, Volkswagen installed a software program in its vehicles which helped it cheat the emission test. Elaborating further, it had been doing so since 2009 using a software that is notoriously labelled as "defeat device". I am sure there are a lot more layers to it but at the surface level, the software could sense that the given vehicle is under emission test and once it sensed that, it altered the configurations so that it could give favorable emission numbers and when it detected that it’s not under test i.e. during regular driving it turned itself off and let the emissions as high as 40 times the allowed norms to go up in the air.
Over the next few months, this saga will be assessed and analyzed from the various angles. While that will happen, I wanted to take this opportunity to analyze this from the Software testing point of view. Listed below are three points that occupied my mind after delving deeper into this story-
First my mind goes back to the curious story of Maggi noodles in India. One of the statistics that I had heard was that this legendary noodles brand did not lose the profitability in a single quarter for a period of close to 30 years. But recently that trend got broken and Maggi brand observed its first non-profitable quarter. The main cause was the sensation caused through negative lab test results which was done by an Independent agency. It showed the presence of excess lead in Maggie noodles rendering it in the state of being considered almost inedible by customers.
Let’s hold on to this example for a bit and switch to the software world. Over the last many years, we have ceded a lot of things that we use on a day-to-day basis to an irreplaceable phenomenon called as software. Check this example of how work desk has changed over the years and has been replaced by software. While this move towards “softwarization” (if I can take the liberty to invent this new word) of the world has certainly had its own benefits primarily in making human race more productive, on the contrary, the examples such as Volkswagen's recent case also suggests that it has also left us quite vulnerable too.
There has been too much focus on preventing the software from hackers with bad intentions (and these efforts are 100% justified) but do we really have enough focus of protecting the software from the bad intentions of its own creator?
There were some protection mechanisms in the case of Maggi noodles but probably not so much in the case of Volkswagen case. Much unlike a physical thing like Maggi noodles, which leaves a trail behind, a software, with its own intelligence hardly leave any traces of malicious intentions.
Intel says that an estimated 31 billion devices will be connecting the population of roughly 4 billion people by 2020, which will make it roughly 7 devices per person in just 5 years from now. In such a world, what factors would make you trust your device manufacturer? Among other things, these companies will arguably be able to even predict most intimate of human functions like how many breaths you take in a minute.
Winning the trust in this situation is paramount and it should lead to rise of Independent and credible testing to certify the ethical functioning of the software. As much as the software producing company owns the quality of the software, it will help to have Independent bodies run by credible partners who would protect the interests of consumers as well as the potential impact of environment. Taking the cue from the Separation of powers doctrine, which simply states that the Govt. in command cannot be in-charge of the Supreme Court at the same time - the Independent testing function can help to prevent the ethical mishaps related to the software.
#2 Evolution of testing Invisible Software
I recently wrote about how software of the future will be invisible to the user. To elaborate further, the companies like Google, Microsoft et-all are embracing invisibility of software as a conscious strategy towards making user experience more meaningful and minimalistic. As an example, since the time I have migrated to Windows 10, I have started to use Bing more than Google. This is primarily not by choice but driven by ease that Microsoft has brought in to search anything I want without necessarily having to type google.com or bing.com. If we look at the role of software in Volkswagen's case and in any other automobile for that matter, it’s hidden at best. As a layman driving a car, I wouldn't know the role of software except, perhaps the one running on the dashboard, which I can see. Automobiles these days, it is said, runs as high as 20 million lines of code, most of which we hardly see in action. On a lighter note, while referring to automobiles, we can easily say that- earlier there were "cars' on the road, now there is 'code' on the road. The larger point that I am trying to make is that we are not far off from the world where probably everything will be run by Software but its existence will be hidden and invisible. In the case of Volkswagen too, the software dictated how much pollutants will reach the environment without the knowledge of the driver riding the car. When we talk about testing such software that's hidden, we probably are talking about a paradigm shift in the way software testing is largely conducted where with UI being the main point of verifying the tests. I know i am generalizing a bit here and not all software is tested this way but still a vast majority of popular testing methods work that way. Fundamentally, testing then should move to it's building blocks which is the APIs. Apart from the normal testing methods, testing the APIs both at a singular level, then at Integration level and if possible at the system level should form one way to test such a complex system.
#3 Testers taking high stand on Integrity, Ethics
I am reminded of a case when I had to correct a test engineer who had gotten into the habit of marking the test as pass without even testing the scenario. Intentionally writing the result of the test without actually doing it would fall under the delinquency of professional ethics violation. Before I seem like digressing here, I understand what happened with Volkswagen was not exactly the same but somewhere it is a gigantic case of ethical violation. The specifics of the case are not yet known fully as there are independent component manufacturers involved in building an automobile and the assembling company mostly owns how the components integrate and talk to each other. I am not sure if any tester in Volkswagen could have sensed the wrongdoing earlier but what I do know that it takes guts of steel to raise the voice in case one knows about such violations. It becomes more so difficult if anyone from the top is driving the same. I don't want to speculate too much here but I do want to put a word here that one of the most underrated skills of a tester is his or her Integrity or moral compass. Integrity doesn't get tested in happy times when things are going as intended but it surely does get tested in tougher times. One must build courage to do the right thing how-so-ever difficult it may sound.
Marc Andreessen once said in 2011 that Software is eating the world, and as the world has seen in past few years, there is no denying this statement. The cases like Volkswagen's just gives a twist to these immortal lines like "Software is eating the world, albeit in a wrong way". Given the potential impact of Volkswagen's misdeeds on the environment, it can also be said that "Bad Software can eat the world, quite literally". Taking this case as a wake-up call, we probably need to get up and take charge before we give too much of charge of our lives to software. I presented the views here from the point of view of software testing and I am sure there are other ways to restore faith too.
What do you think?