Over the GUI test automation, Excel and a little VBA
Automated testing via the GUI is a risky business and should be avoided as a testing method (Winrunner, Sikuli, EggPlant, etc...). Most of these tools use Bitmap comparisons to identify the area's that the script should work in, the problem with Bitmap comparison tools are that they can easily fail if the UI changes (just a few pixels can often confuse bitmap comparisons), even when the UI doesn't change repetitive layouts (cell's in a spreadsheet) pose a problem for Bitmap comparison tools.
We often explain to teams that they should use the layer below the GUI (GUI's should be a thin layer on the stack), a command line interface, macro mode, API, etc..., but alot of people struggle with this concept.
Think about using Excel, as a tester I need to automate setting different cell values as part of my test case. I could use an over the GUI tool to simulate the user clicking between cells and set the values, but more often than not a GUI testing tool isn't going to be able to distinguish between one cell and another (give it a go, all cells look the same
), therefore causing this test to fail.
Below is some very basic VBA setting values in a Spreadsheet;
Sub SetValues()
Range("A1").Value = "Test Value Cell A1"
Range("P2").Value = "Test Value Cell P2"
Range("R9").Value = "Test Value Cell R9"
End Sub
This code will set the values of the cell's programatically, therefore removing the need to set the cell values 'over' the GUI and also removing the risk of not setting the correct cells with the correct values.
Over the GUI testing often appears reasonably precise to run with when starting out, but once automated and scaled up (particular if part of your continuous delivery pipeline) you will find it fails more often than not and becomes a QA nightmare.
Continuous delivery, test automation and UA(T)
Everyone talks about UAT, but having a UAT phase is in many ways failure of your development model. Why should a user have to run testing if the requirements were captured correctly through continued engagement throughout the development (using sprint showcase)? Why does a user need to test the software when your automated test coverage should be 100% (unit, functional, GUI, performance, etc..)? Are you building total product or developing against features? Spending hours / days on devising a UAT checklist or strategy?
I have put the (T) of UAT in brackets as part of your continuous delivery model should incorporate the concept of omitting the testing element and instead the user should just be signing off against a deployment to a staging environment.
User Acceptance is an improved model on User Acceptance Testing, it'll minimise the need for User Acceptance and stop you from having to put together a user testing strategy.
I specialise in all things Agile (XP, Kanban, Lean), in particular Scrum. I have a passion for taking on 'problem' projects / teams and turning them into a sucess as well as promoting automated test driven practices.




