If you google “automation with Python”, one of the search results will likely say “Learn how to automate boring tasks!” Mind the exclamation mark, as if it were one of those infomercials on TV that want to sell you something to scrub your back so you don’t have to bother reaching that far. For what’s the purpose of doing something by yourself when you can purchase an exclusive device to do it for you? Other results will include: “You don’t need programming skills”, “Learn QA automation in just three days”, “Sign up now”. When I see this kind of cyber infomercials, I say they don’t know what they’re talking about.
Applications such as Instagram, Spotify, Dropbox and Amazon use this language to run most of their services not because it’s the easiest thing to do, but because of the simplicity of the semantics, the support from the software community, the wide array of tools available for data analysis and, obviously, its popularity. That’s why people prefer to use this language instead of others that make things more complicated.
Python is a high-level or scripting language, which means that it’s more semantically intuitive since it resembles the human language. This represents an advantage if you want to explore the world of automated testing, because just by reading it (if it’s well written), you can get a grasp on the code.
Python doesn’t require a compiler and is lightly typed, which enables quick execution times and short development cycles, so that upgrades and modifications can be implemented faster. This is what any developer, QA tester or professional dreams of: being able to automate tasks.
A Few Key Points for a QA Tester Using Python
It’s becoming increasingly common in automated testing to prefer Python over other languages, since the learning curve isn’t as steep as with others.
While basic programming knowledge is required to start automating tests with Python, it’s more important to have a good understanding of mathematical logic and to have the following essential skills for any QA tester:
- Ability to think abstractly
- Understanding of the business
- Understanding of how the system works
- An absolute hatred of bugs
There’s an enormous array of tools that support Python, for example: Pytest library, used for writing tests; Selenium, a testing environment to simulate webpage actions in the frontend; Requests library, useful for replicating user requests at the backend. For stress and performance testing, there’s Locust.io, and for mobile, Appium is the adequate framework. These are useful tools if you want to start exploring the universe of process automation. After all, the aim of automation is to increase productivity at work and save time.
We can see now why, when talking about semantics, the adjectives “intuitive” and “pleasant” aren’t synonyms of “simple” and “ordinary”, and why Python isn’t just a device to rub QA testers’ backs. But if you feel like it…
We can’t promise it will be easy,
but it will surely be worth it.