Automation Standards - gits5213/InterviewProject GitHub Wiki
Welcome To Automation Standards!
- What is Framework?
- Test Automation Framework
- What language do we select to build Automation suites?
What is Framework?
A framework is considered to be a combination of set protocols, rules, standards and guidelines that can be incorporated or followed as a whole so as to leverage the benefits of the scaffolding provided by the Framework.
Test Automation Framework
A “Test Automation Framework” is scaffolding that is laid to provide an execution environment for the automation test scripts. The framework provides the user with various benefits that help them to develop, execute and report the automation test scripts efficiently. It is more like a system that has created specifically to automate our tests.
In a very simple language, we can say that a framework is a constructive blend of various guidelines, coding standards, concepts, processes, practices, project hierarchies, modularity, reporting mechanism, test data injections etc. to pillar automation testing. Thus, the user can follow these guidelines while automating application to take advantages of various productive results.
The advantages can be in different forms like the ease of scripting, scalability, modularity, understandability, process definition, re-usability, cost, maintenance etc. Thus, to be able to grab these benefits, developers are advised to use one or more of the Test Automation Framework.
Moreover, the need of a single and standard Test Automation Framework arises when you have a bunch of developers working on the different modules of the same application and when we want to avoid situations where each of the developers implements his/her approach towards automation.
Note: Take a note that a testing framework is always application independent that is it can be used with any application irrespective of the complications (like Technology stack, architecture etc.) of the application under test. The framework should be scalable and maintainable.
Advantage of Test Automation framework Reusability of code Maximum coverage Recovery scenario Low-cost maintenance Minimal manual intervention Easy Reporting
Types of Test Automation Framework
- Module Based Testing Framework
- Library Architecture Testing Framework
- Data Driven Testing Framework
- Keyword Driven Testing Framework
- Hybrid Testing Framework
- Behavior Driven Development Framework
https://cdn.softwaretestinghelp.com/wp-content/qa/uploads/2014/11/Test-Automation-Frameworks-1.jpg
Behavior Driven Development Framework
Behavior Driven Development framework allows automation of functional validations in easily readable and understandable format to Business Analysts, Developers, Testers, etc. Such frameworks do not necessarily require the user to be acquainted with the programming language. There are different tools available for BDD like cucumber, Jbehave etc. Details of BDD framework are discussed later in Cucumber tutorial. We have also discussed details on Gherkin language to write test cases in Cucumber.
https://cdn.softwaretestinghelp.com/wp-content/qa/uploads/2014/11/Test-Automation-Frameworks-11.jpg
Though the above pictorial representation of a framework is self-explanatory we would still highlight a few points.
Object Repository: Object Repository acronym as OR is constituted of the set of locators types associated with web elements. Test Data: The input data with which the scenario would be tested and it can be the expected values with which the actual results would be compared. Configuration File/Constants/ Environment Settings: The file stores the information regarding the application URL, browser-specific information etc. It is generally the information that remains static throughout the framework. Generics/ Program logics/ Readers: These are the classes that store the functions which can be commonly used across the entire framework. Build tools and Continuous Integration: These are the tools that aids to the capabilities of the framework to generate test reports, email notifications and logging information.
What language do we select to build Automation suites?
One must note that, roughly 90% of the concepts once you learn in a specific language are also applicable to entirely different languages. When one is familiar with the core basics (program design, control structures, Object Class, OOPs Concept,Collection, data structures, and basic operation of a programming language), developing similar skills with another language simply boils down to understanding the syntactical nuances.
The answer to this question is less straightforward. Some factors have to be considered:
-
The current language being used by an enterprise for development (Front-end (UI) | Back-end (API's)): If an organization has everyone using Javascript (UI) | Java (API's), then that should be the ideal language to use.
Introducing a new language isn’t easy. Using a language that QA testers are already comfortable with, is the most convenient choice. It is also much harder to operate automation using a new language.
-
Local support for the programming language should also be considered. If local developers are experienced with a particular language, then that language is a better choice for QA teams. In case testers require help with the language, defects, or development tools, it becomes easier to make use of the already available in-house expertise.
-
For individuals who haven’t programmed before, using script-friendly languages like Python, Ruby etc. could be the best way to go. They have an easy learning curve, and also allow Selenium tests to be written quickly and with less code.
-
Java is the most commonly used language, While there is no doubt Java has been going strong over the years and therefore must be doing a whole lot of things right, it will be a mistake to think there is no other language as good as Java.