An automation testing framework is used to organize the code in an efficient way that allows organizations to achieve more than their automation projects. By using such a framework organizations can get more value as their code become:
A framework once written, can be used in multiple projects, not limiting to one single project. By doing so, Eng teams can reduce the effort involved in re-writing the code as it is already available (there is no need to reinventing the wheel..).
Frameworks are written should be scalable so they can be used from small to large projects which can involve multiple technologies/platforms.
Maintainable and Understandable
An automation framework should follow the same standards as any other coding project which means that it must be well documented and follow design patterns so it can be easy to maintain.
Types of frameworks
Different types of frameworks are available out there, the most commonly used automation testing frameworks are”
The use of a data-driven framework is most relevant where the testing effort involves multiple and complex numbers of input test data (e.g customer sign it form which requires a lot of input data to be supplied by the user with multiple fields and permutations).
In the case of the data-driven framework, the test inputs and are usually not implemented in the code itself. Instead, we use an external data source where we import data and use it in our tests (e.g SQL, Excel, or XML).
In keyword driven frameworks both the application objects and test data are coded within the C# class files (instead of using an external source). In this framework, each and every operation is represented as a keyword (e.g SendNotification(), Login(), etc).
The use of such a framework has great benefits as it simple to maintain, edit, and adding new test cases that will use the same keyword. However, to use this framework demands more programming knowledge.
The hybrid framework is the combination of the frameworks above as it allows programmers to pull data from external data sources and also use keywords to perform operations.
Automation testing models
There are different models available that can be used to design and create a framework, the main models are:
Behavioral Driven Development (BDD)
BDD is based on Test Driven Development (TDD) and it aims to close the gap between engineering and business personals. Besides, it also bridges the gaps between testers and developers.
The main tools available to support BDD are SpecFlow (C#), Cucumber (Rubi), Jbehave (Java) and Freshen (PHP).
Page Object Model
In this model, each element in the UI is written in the code (in our case its C#) along with its unique identification property. A Pae Object simply models the objects within the test code. The use of such a model reduces the amount of duplicated code and means that in any case of UI changes, the fix in code will only be applied in one place.
How should you learn selenium?
Like any other new technology, Code language, or any other thing that you want to be good at, the best way is to practice practice, and more practice! learning selenium is a very challenging task but it’s no different from any other thing that you want to learn.
All you need to do here to succeed is to follow my series and practice the examples that I provide in your environment. Although it’s not a guaranty that you become an expert, it’s a great way that may help you become one.
The advantages of selenium
The software industry has some great automated tools that can be used to automate your testing process, selenium is one of the best options available from this list. And why?
Selenium is one of the most common tools that organizations are using today to automate their tests, learning selenium will open new doors and opportunities.
Selenium is a testing suite that provides the answer to the organization's testing needs.
Selenium is built to be agile enough to develop with almost all major programming languages (Perl, Ruby C# Etc.).
There is a huge community that shares knowledge with a variety of Best practices, Articles, and Tutorials.
Selenium allows you to save time with your testing executions due to the ability to run test cases simultaneously.
Because it’s free… remember that you get some great benefits without spending your money.
Selenium can automate tests that can run on all major browsers (Chrome, IE, Firefox, etc.).