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?