* -Conditions Apply
Looks like an attractive festive seasonal sale offer advertisement? Exactly I meant that. But wondering why such title here? Read further.
Most of us on seeing such attractive advertisements go to the sale with lot of planning and enthusiasm to get many items cheaper. But on entering the shop any item we pick will always have zero or very minimal off plus lot of conditions attached to it. [Huh, now you realize that the advertisement says UPTO 80% and a tiny astrix attached to it]
Similarly GUI automation tool advertisement also say it can reduce regression testing cost by up to 80% or such similar tag lines, just by showing a login page automation. I was shown with the similar login screen example in almost every session, demos or presentation I participated. Mostly it goes like this
The presenter would ask to give the login screen of our application. The he would record a script to input the login details, after a successful login he validates the home page. Now he will go and alter the script so that it validates for incorrect login details. Then he shows data parametrization options for many data and proudly says we have automated so many scenarios for a login page in no time. Unfortunately, managers who do not have automation experience were made to think that automation could be so simple and will recommend such GUI tools. Because they see something like 80% cost reduction at that point.
But the first thing I do on seeing such demo is to enable remember password option and then run the script, now the script fails because it can’t find the login page. Presenters will mostly reply that we need to apply some conditional statements to handle that (Now did you get the first condition applied?).Fine, then my application opens a Change Password page on password expiry, the script fails because the script always checks for home page after login. Presenter will think for a while and would say that we need to handle this with some conditional statements. (Now did you see the second condition applied?)Fine, then my application some time gives a full page banner about new announcements or new feature added, like how our online banking starts displaying investments plans or new service offers. Yes you readers got it correctly this is the third Condition applied. Manager also by this would have realized that the offer is not really worth 80% he might recalculated to 60%.
Next, here is another big question I ask, what if all the three of the above appears or two of them appear at any given point of time. Such cases we need to consider the order in which they appear also. Can we automate them in no time?
No, we can’t automate them just like that. We need to write functions, conditions checks and also loops, realize that this is getting into kind of programming by itself. So we now not only write the script but need to be tested as well. [We all know very well that as per D’cruz Defecto Injection law (DDIL) bug count increases exponentially for every conditional block coded. Hey wait don’t Google for DDIL because it do not exist. Then wondering why I mentioned that, because I want you guys to read Pradeep’s post Black Viper Testing]
Now calculate how many such conditions would need to be handled while automating the entire application. Manager realizes that he definitely needs to rethink on the offer that the tool will return. Now did you realize that the festival sales offer and GUI automation tools offer are the same? But wait I got one difference between them, in festival sale Up To 80% means 0 to 80% but in automation this can even go negative 🙂
A good amount of Regression Checks could be automated, but that need a solid approach, planning and good investment (both time and resource). Successful automation can’t be done as a sideline activity with testers who don’t have technical or programming skills.