I haven’t been in QA for the last couple of years but I recently wanted to automate some UI testing that I’ve been doing manually.  When I found out that Selenium IDE no longer supports the latest version of Firefox, I went to look for similar tools and although Ghost Inspector is my favorite, I ended up using a tool called SnapTest for this particular project I was working on.  Here are my thoughts on both of these tools, and why you should use them.

What both Ghost Inspector and SnapTest do

I don't always automate UI tests but when I do it's because it will save me 50 hours for spending 5

Both Ghost Inspector and SnapTest lets you create and manage UI tests that check specific functionality in your website.

I don’t always automate UI tests, but when I do, it’s because I find myself repeatedly doing the same user acceptance tests on releases, multiple times a day.  I’ve been in situations where we were so focused on one feature that we missed going back and checking to make sure the basic functionality was still working from start to finish, so I wanted to have automated smoke tests in place for peace of mind.

UI testing is at the top of the agile test pyramid (as illustrated by Graham Russell’s Blog):

QA triangle

Your QA reflects this, right?

And although you need in-depth technical knowledge for unit and integration testing, you don’t necessarily need a whole lot for UI testing — anyone can go to a site and submit a form to see if it works.  At my previous job, that’s what made Ghost Inspector so appealing — the learning curve was low and it could be adopted quickly without needing to install and configure a bunch of software.

Both Ghost Inspector and SnapTest are offered as Chrome extensions, where you can record actions within your browser, make assertions, then run it back repeatedly.  Both are great Selenium IDE alternatives and can generate code that you can run in Selenium, so you don’t have to worry about not having ownership of your code.  The main difference is that Ghost Inspector can run tests in the cloud (and thus, you can schedule them to run any time), while SnapTest generally runs from your browser (although you don’t need the window focused for the tests to run).

Check out both sites for a summary of what they do; below is just my opinion on both of them.

SnapTest

The reason why I chose SnapTest over Ghost Inspector for this particular project was because I wanted something I could use to test locally, and I didn’t want to ngrok tunnel into my network.  SnapTest has a “private mode” feature (still in beta at the time of this writing), that allows you to not keep any data in the cloud.

It has all the essential features I needed but in comparison, Ghost Inspector is better at targeting the more ideal CSS selectors (id instead of name[1234567890], for example).  Also note that when you use the Import feature, it overwrites all your existing tests.  My tests also got wiped after I installed a newer version of Chrome, but that might be because I’m using the Private Mode feature.  Fortunately, I’ve been exporting my code and backing it up regularly so it didn’t really affect me.

The UI is not the prettiest but it’s intuitive to use, and it’s easy to organize test suites and rename steps.  Repeatable sub-routines can be organized as a “component.”  I think the only major qualm I have is that the Pause feature has some quirks and when it ultimately fails because of that, I’m unable to resume where it left off. It seems they’re still very much a startup, but overall it’s a solid product and I look forward to the updates they’re working on in their roadmap.

Ghost Inspector

Ghost Inspector

Ghost Inspector

There’s loads of clear and concise documentation on their site, and they can integrate with other tools like Slack.  Even before they had been acquired by Runscope, I was advocating for its use at my old job (where our automated QA was still nascent at the time).  Ghost Inspector has come a long way since then, and although I haven’t used it recently, I’m glad to see they’re still improving the product.

Ghost Inspector also has screenshot capturing and comparsion functionality, and video recording of the tests so that you can view playback.  As mentioned before, tests run in the cloud so you can schedule them to run and forget about it (until you get an email saying your test failed).  There’s also a setting for displays so you can test in different screen sizes, and also geolocation options to test from different locations around the world.  Last but not least, it’s also easy to manage an account within a larger organization, and share your tests with other team members.

Conclusion

Both Ghost Inspector and SnapTest work in a pinch and the former can also be leveraged for more robust automated UI testing.  Although you don’t need to be super technical to be able to use either tool, knowing HTML/CSS/JS will let you take advantage of their more advanced features.  In any case, it’s imperative to have a scalable testing strategy in place with a plan to remedy failing tests.

You won’t be able to automate all UI testing.  However, for evergreen features of a website, setting up these tests will not only cut down on unnecessary manual testing but leave room for exploratory testing and give you some peace of mind.  You’ll still need to spend time on maintaining the tests but that time is still significantly less than would be required for manually testing in the long-term.

I’ve taken a look at other tools such as Screenster and Squish, but I didn’t like either of them for various reasons. Hopefully this article helps someone that’s been looking for a Selenium IDE replacement; if you found it helpful, just “Like” this post!

Comments

comments