Sunday, August 17, 2014

Big Data application in Software Testing: An Enormous Growth & Research Opportunity

No matter what tools we use, what scripting language, what processes, design patterns, approaches, strategies, types or methodologies we use. Software Testing has always remained the same i.e. being "Function Centric" only. The ways has been different in order to verify and validate the basic functionalities under test but largely the motive has always been the same.

But now the paradigm shift is beginning to take place, which might be seen by some people who likes to think about the future. The shift is towards the way technological applications' are used and how efforts are being invested in order to study the usage or usage patterns of these technological applications by end users. 

For example if there is a mobile app that tells about the latest football match score many people can use it differently as per their preferences. Like a normal football team fan use it to see whether his/her team is winning or not by only checking scorecard in midst of his daily job schedule. A second user can use it to watch live telecast of the match. A third user can use to it bet on teams, A fourth one to track only his/her favorite player and also a fifth one who can use it to see that when the match might finish and at what time he should hit the road (that has the stadium in its path) to reach his home on time to attend his kid's birthday party.

So there can be a lot many use cases where an app can be used differently apart from it's basic functionality. Now most of the companies are today concentrating on this basic functionality that focuses more on their business model and USP of the app itself. This is what is absolutely right as per the today's utilization of their app's service solution. 

But as we are gradually witnessing the role that usage analytics based on Big Data utilization is playing these days, we can say that the days are not far when applications has not only be tested for their basic functionality but also for other logical patterns; the information provided by these applications can be or is being utilized knowingly or unknowingly by the end users. 

In the present day we have seen an exponential rise in analytics tools that can deliver all the hardware/software platforms end users are using, navigational paths, conversion rates, most sold item, least read book chapter, crash analytics, performance statistics, location based usage and many more kind of analytical informations. 

This is just a tip of expanding global industry we are witnessing. The present day scenario is that the tools are good enough to deliver these stats upon some triggers but they are incapable to help us look more into a kind of expandable map of possibilities or provide meaning to this data more precisely. Currently the product managers or developers or testers make sense out of this slightly cooked data to improve there applications. But what I see is an approach that is easy to follow from today itself such that we can use this Big Data more effectively for testing and making products far far better.

Few ways by which we can visualize the possibilities of Big Data based Analytical Testing are:

  • A tool which can draw all the usage patterns of the app, visually depicting all the possible navigational paths for example: paths of the most frequently used UI navigations map etc. Tool should be capable of dynamically assigning paths with respective weights as the app is being used by end users to make a real data real usage based prioritization testing plans/strategies etc.
  • Users' usage patterns based on real time events/occasions sometimes defines usage of applications in unique ways so coverage of those scenarios to provide more value other than the basic functionality. This would require analysis of entry and exit points to the applications and pre and post event analysis.
  • Capture of frustrating or appreciating moments of usage of the applications apart from reviews, ratings, emails etc i.e. conventional methods. 
  • Testing of user desired capability expectations in scenarios the requests can be instantaneous and from unprecedented platforms e.g. if a user does a verbal query from his LG G-Watch for the latest position of a pizza van. But suppose if this feature is only provided on website by that respective company then this might prove to be potential bad customer experience. Although the basic functionality of the app still is functioning perfectly on the website. But still that platform rendered not useful for this customer who is driving and wants to just know the status spoken up by his smart watch. In this case company restricted customer of using real time update just because company never came to know that there might be around 50 users that can do exactly the same thing again or some of them have even tried and failed earlier, making them shift to some other pizza vendors. 
These are only a handful of ways that I have provided in order to make you all think that what all other ways can be there and how we can develop or envision them in order to make software testing more advanced and more useful than its present day applicability. 





Bad practices for a Software Test Engineer

People mostly talk about the good and the best practices but it is also important to know the worst or the bad practices which a Software ...