Testing automation by Robo Test


Robo Test Crawl Graph
To ensure high quality, code review remains the most important.  I carefully inspected my codes and revised them.  For every small revision, I compiled the codes, and launched the app to test right away.  The repetitive process of write code, test, write code, test,... has been necessary since the dawn of programming.  For one day of coding work, that repetitive process can go on for dozens of times.  The programmers' own testing remains the most critical because in many cases only they can see the quality of the codes.

Now with the advancement of technology, there have been automation facilities available on the market.  The market has reached a point that the basic use of such facilities is available for free of charge.  In my case, I use Google Firebase Robo Test for an additional layer of testing.

The Robo Test facility is Cloud-based.  It lets me select one or more specific physical or virtual devices to run my app.  In the above screen-shot, my app is loaded to a physical Google Pixel 3 device with Android version Q-beta-3 installed.  That is a beta version of Android 10.

The robot automatically launched my app on the device, and clicked on various buttons that I coded to navigate the app.  The lines connecting the different screens of the app show how the robot crawled through different scenarios.  I didn't instruct the robot what to do.

The Robo Test facility has the option to let the tester to specify a guidance on how to navigate.  I haven't tried this out yet but it is good that such an option is available.

While this type of automated testing is a convenient feature to detect by chance if there are triggering points of crashes or error messages, the programmer's code review remains absolutely necessary.  This is because programmers can inspect algorithms that loop "n" number of times, and all possible conditions.  For a robot test, "n" is a small or finite number, and the number of conditions it can hit by chance is limited.  In addition to that, the traditional user-acceptance testing will remain necessary in the foreseeable future.  Human-testers understand use cases and apply common sense.

Having said that, will someday Artificial Intelligence be sophisticated enough to replace human-user testing?  Even if A.I. cannot take care of a hundred percent of human work, it is possible that it can replace a large part of it.  I imagine this scenario in a positive way.  In the future, human-testers likely have evolved to become persons who can guide A.I. on how to navigate, look at, listen to, and feel the applications in terms of usage and design.  Practical A.I. will reach a point that it can appreciate aesthetic design and give a star-rating.

Robo Test high-level result with automatic navigation by the robot

Comments

Popular posts from this blog

Finding Median by Stream

Factorial by Different Styles in Java

Reduction by Java Stream