I have recently started working in a team that tests Retail applications such as EPOS (end point of sale - tills) I would like to automate this testing and would like to ask if anyone has any experience in this area and if any has any ideas/comments on this? I am in the progress of setting up a virtual environment to make automation possible, and am now at the stage of thinking which automation tool to use and how long this is going to take etc. I'm thinking currently of Selenium Webdriver if possible as this can be coded in Java which will make everything much more user friendly and editable by less experienced testers. Any ideas/help welcome. :) Thanks,
I spent about 7 years testing a large, complex application that included point of sale with tills in its feature set so I have some experience in the area.
Here's some things I'd consider in your situation:
Virtual environments are great for this kind of thing, provided you have the server and/or cloud space for them. The thing to watch for is that automation can be very I/O intensive, which tends to be a bottleneck in automation at the best of times.
My advice is to start by automating basic transaction processing in POS software - start the software, select something, pay for it, check database and wherever else information gets stored, shut everything down. This kind of thing grows exponentially depending on the different kinds of sales supported (does everything have a single button, menu navigation in the POS system, is there extra data being entered like weight for produce sales), the complexity of the tax support, the number of ways the system can be configured, and so forth.
I'd strongly suggest data driving and modularizing your tests:
This is going to take you a long time to make it work. I can offer a starting point in the form of a test data management app (which is still very much in alpha but will let you create all your test data in a database with semi-decent web front-end. I'm using it to drive the tests I'm writing with a bastardized framework that starts with Microsoft Coded UI testing - environment requirements are SQL server 2008 (express will work) and dot net 4.5) (In case you hadn't noticed, I'm a BIG fan of data driving tests so that new tests are a case of adding data, not adding code).
You mention being concerned that your less experienced testers be able to create new tests - in my view the best way to do this is to have a data framework that your automation consumes. It takes a lot more time up front to set up, but can be done with most automation tools, and once it reaches a reasonable maturity level, adding new tests requires little if any coding. The framework I'm developing is coupled with data to the extent that to add a new test involving data entry to a web form the only technical knowledge required is how to find the text field ID and the button ID (I'll get to other types of web component...) - basically right-click on the page, pick view source, and find the field I'm looking to automate, then put its ID into the database and I've got my automation. The coding I'm doing to support this is pretty... interesting (and would probably give programmers fits - but it's a start, and I'm doing this part time).
That's my advice for what it's worth - if your tested apps are simpler than the things I've had to deal with, feel free to ignore all of it.