I have read some basic definition of what Test Automation Framework is but I wish to know in easy words and more practical example.
Lets say.
I own a company that makes different kinds of products made on different platforms for different purposes. E.g. Spotify Web Version, Google Map apps on ipad /Android and Ebay.com on several platforms.
Now since all these products are of different nature and prurpose on different platform. How do we implement a test Automation framework that covers all these.
PS: Aim of question is to understand what is actually meant by framework in test automation and how can it be implemented for products worlds apart?
Test Automation framework is a set of guidelines like coding standards , test-data handling , object repository treatment etc... which when followed during automation scripting produce beneficial outcomes like increase code re-usage , higher portability , reduced script maintenance cost etc.
Mind you these are just guidelines and not rules; they are not mandatory and you can still script without following the guidelines. But you will miss out on the advantages of having a Framework.
Most widely known framework are :
Data driven framework DDF- testing app with multiple set of data (segregates test data from test script)
Keyword/Action driven framework – not only segregates test data from test script but also keep some set of reusable code (keyword/ action perform on web element like click, send keys, select, navigate, wait etc) in external files.
TDD- test driven development- where testing drives the development of product. Iterative approach in which :Add test- watch test fails- write code to pass the test- run test again till it passes- refactor.
BDD-It is Business Driven Development approach. Focused on business behavior; the “Why” behind the code. It makes use of a simple, domain-specific scripting language in which collaboration is easy between Business & Technology teams. Test Automation using BDD focuses on validating the acceptance criteria of User Stories.
I would recommend you to go with Hybrid Testing Framework, which is a combination of more than one above mentioned frameworks. The best thing about such a setup is that it leverages the benefits of all kinds of associated frameworks. For re-usability purpose go ahead with combo of BDD with DDF or BDD with Keyword.
For detail undestanding: https://www.cs.colorado.edu/~kena/classes/5828/s12/presentation-materials/ghanakotagayatri.pdf