Do I really need to know functional testing if I’m a test automation engineer?
When I first started learning about test automation I didn’t care much about functional testing. I thought being a technical tester meant learning a programming language and mastering tools like Selenium and Cucumber but I was so wrong. In my post 7 things you need to learn before you move to test automation I have listed functional testing best practices as something you need to learn. Now let’s find out why and how functional testing is important to test automation.
100% Test Automation
Do you think all the tests in a regression pack are automated? With constraints on time and budget, it’s not feasible to automate everything. While deciding test cases for automation consider repeatability, risk and business value of automating that test case. The test cases which are not selected for automation need to be run and maintained manually.
Writing Functional Tests
You may not always have a regression pack to automate and will be asked to write your own functional tests. So, knowing how to write good functional tests is vital. Well written test cases are far easier to automate than ones that are poorly written.
When testing features that are likely to change, (either in development or requirements) it is highly likely that you will need to rewrite your test cases and automation scripts. Repeatedly doing this will add constraints on the project, increasing its expense. Therefore, testing these features is best done manually, as is maintaining those test cases.
Some systems are just not feasible enough to be automated. This could be because of complex environments, legacy code base, new technology or a system that requires human interaction which can’t be replicated. In these cases, functional testing saves the day.
Small projects where test cases will be run only once or twice are not good candidates for automation. As the value in automation is achieved over a period of time which includes multiple runs of tests, small projects usually benefit with functional testing as it’s quicker and the costs are low.
Exploratory testing is a functional approach and is often used in tandem with test automation. Exploratory testing is done without test cases and relies on the tester’s creativity, freedom and experience. After a system has gone through a series of automated tests, exploratory testing is used to uncover new defects.
Both test automation and functional testing have their benefits, quite often they work well in tandem. However, many functional testers have concerns about their role becoming obsolete as it can be replaced by automating their tests. While this is possible, there will always be a place for functional testing.
Do you think that there are any exceptions to the points that I have made? Please leave a comment, I’d like to hear your thoughts on this.