Automated Testing Advice
My company is moving from manual to automated testing. I'd like some advice please.
1. We do highly configurable web based software as well as mobile apps. Are there any tools that people can recommend?
2. Before we start automating, should our manual suite be up to date so that these can be used as a reference point (or for any other reason that I'm not aware of)?
Some areas of our system have very few test cases due to time constraints when doing the user stories.
3. Key word driven testing - does this relate to manual as well as automated testing?
Thanks in advance for your help.
1. I think it depends on how integrated with dev you want to be. I generally prefer to use the same tools dev use and opt for a simple unit testing framework that builds using the normal dev tools, with the goal of getting devs to run automated tests often before checking in code. If your QA organization exists as a separate entity you may opt for a test dev environment that's easier to work with. My preference for web and mobile app has been Selenium, with a customized layered framework on top of a unit test framework. But you may opt for something like cucumber or jbehave if you don't like building up the framework yourself.
2. Depends on your work flow. I have worked many years integrated with dev and we just automate either features we're releasing or bugs that are in the process of being fixed. In some aspects that is better in that you avoid maintaining stale test cases. But if you are not highly integrated with development, you'll want to make sure your test repo is clean, and the requirements being tested are clear. This is so that you will have a clear idea what to automate and avoid unnecessary automation of unuseful, stale, or incorrectly spec out test cases.
3. Personal preference, some like keywords, some hate it, some have business people involved in the process, some don't. My experience is Product Managers don't like reviewing or create test cases, so I prefer to do everything in code because I can use code refactoring tools to speed up refactoring. When you add layers like keyword testing or behavior driven design (like cucumber), it adds complexity and you tend to have more layers you need to refactor. My preference has been to use straight unit testing framework but with well composed function and good code docs. It's a trade off between readability and speed of development/refactoring. I generally favor the latter, but I do see the merits and would appreciate business folks getting more into the test automation.
Last edited by dlai; 10-06-2015 at 09:16 AM.
Thanks for your reply David.
You have to prepare your requirements and compare with your team skill sets. It would be better, if you have one or couple of automation experts and then start implementing automation.
1. There are so many tools with different languages support. As David said, pick the language based on development language of your product. Will be useful to utilize unit testing frameworks
2. Your (manual) test cases should be up-to date regardless of automation.
3. You have evaluate, whether do you need PageObjects model OR Scriptless/codeless/keyword driven approach based on your requirements. Assume that you have few automation experts and majority of team is manual testing and do not have coding experience. Then you can go for Script-less approach. But your automation experts should able to provide solutions as per on-going requirements. Also Script re-usability is important, not only the actions and data like element locators/identifiers, application variables etc