It’s hard to believe how far we’ve come … from our first chapter on installing Appium to becoming a full-fledged automation tester! Congratulations on sticking with it. You know the important terminologies of Appium and ready to work with any appium project.
Of course, your journey into the world of Automation and Appium testing has only really begun. The tools and techniques are constantly evolving, just as you need to. Your learning doesn’t finish with this book.
In this chapter we’ll leave you with some closing thoughts on how you can continue to grow your testing knowledge.
One aspect of becoming a better automation engineer is to keep improving on certain areas within testing. These include:
Automation is not the testing panacea. If you can’t test well manually, automation isn’t going to help. Automation delivers you the power to automate manual tasks, so you must use it wisely. If you don’t understand application under test very well then you will likely not create the more important test cases – moreover, getting bogged down into automation complexities can lead you to miss some high priority production bugs.
Check whether the app has been tested manually or not: Automation might not cover all the corner test cases so it is always advisable to test the application manually end-to-end before moving to automation.
Check the element locators: This is the second fundamental thing you have to ensure before starting automation. There are some cases where the developer has not assigned unique locator identifiers to UI elements so you can’t perform actions on it – which forces you to use things like xpath which are very brittle. If there are no unique locators for a UI element then you need to contact the developer in order to to have IDs assigned.
Domain and the importance of the application: If you know the domain of application you can get an idea about the user types and how those users typically use the application. This can help you focus your automation scenarios. We believe that QA should be wearing a Product Management hat.
User behavior: It would be great to focus your automation tests based on actual user behavior. If you have App analytics, check out which screens and journeys are most being used by the user base.
Application platform: You should be aware of the application platform( Android/iOS.) so that you can design the automation framework properly.
Knowledge of database and APIs: In order to perform database and API testing you need to get comfortable with these technologies.
Existing Bugs: It is a best practice to create automation test cases around bugs which were previously discovered.
While this book focused on automation testing, it does not mean you should not perform manual testing at all. Manual testing always provides one extra layer of surety and there is a rule in automation that “100 % automation cannot be achieved”. There are some areas in the application that cannot be automated, and manual testing is the only way to test your application completely. You can find a great article about when to use automation testing and manual testing here
Programming is the key to success in automation testing. Usually coding becomes the bottleneck for manual testers if they don’t know programming and programming concepts.
It helps to have knowledge of various programming languages including Java, C#, Python, PHP or Ruby. You don’t need to be an expert coder, but you need familiarity with the concepts.
Moreover, Database knowledge will also to validate database operations and queries, so it is helpful to be familiar with SQL and even NoSql.
Having knowledge of programming concepts and algorithms knowledge helps you in many ways especially when you are dealing with complex automation scenarios. The more you use programming concepts in your automation framework the more maintainable the architecture will be, and the more likely you will be able to more easily tackle complex automation.
For example, in the page object model chapter, you have seen that we have extensively used the inheritance in order to make test cases and page objects simpler.
Don’t just start automating. Go into this with a strategy of what you hope to achieve (faster testing, regression testing, high risk areas?) and a plan for getting there.
Your plan should include selecting the right candidate application for automation testing, the right automation tool and language, the DevOps environment and integration needed, and all of that considering the resources (quantity, time and skill) at your disposal. Ultimately, you also need to validate the ROI behind your automation initiative.
There is a fine article written here which provides detailed information about how you can create the best automation strategy for your project.
As we said, the world of Appium and automation is constantly changing. There are a great many online resources you can leverage to further your knowledge:
1. The Appium Pro blog should be one of your first bookmarks. It is written by the Appium project founder and maintainer, Jonathan Lipps. This blog contains a massive amount of advanced concepts of Appium so this is our first recommendation: AppiumPro
2. The mobile testing cloud providers as discussed in this book all have good information when it comes to automation testing. These include:
3. This blog provides an innovative solution for testing they are focusing on the website but the concept of testing remains the same for any platform: Testing reality
4. This world is full of information about testing and if you really want to take a deep dive into automation testing then this website contains Top 75 automation testing blogs:
We hope you have enjoyed learning more about Appium and Automation testing generally. This is an exciting time to be a test engineer and especially to be involved with automated testing. 2019 will see great advancements in the application of AI technology to the testing space, and will likely require even more sophisticated test engineers. You’ve taking a great first step by reading this book, now go out there and automate!
Start delivering a better mobile experience and make your app better everywhere!