Posts

Showing posts from August, 2016

Functional GUI Testing Automation Patterns

Image
Introduction The process of developing an automated functional test solution for a specific program is not much different from the process of creating the same program. Automated testing is a rather young area which is going through a lot of advancement, improvement and standardization. New tools are created to interact with the system under test (SUT). Currently there is a wide selection of methodologies and approaches to software development: Object-oriented programming, functional programming,  Domain Driven Design ,  Test Driven Design ,  Behavior Driven Design , etc. These approaches have specific declarative concepts and theorems which simplify definition processes of the initial system architecture, understanding of the system, and exchange of knowledge between developers etc. I will be targeting mainly the test automation of GUI (Graphical User Interface) applications, when the system under test (SUT) is represented as a black box for the automation develo...

Boosting the quality of your tests through proven design patterns and principles.

Introduction of Selenium WebDriver Page Object Automation design pattern

Image
In my new series of articles “ Design Patterns in Automated Testing “, I am going to present you the most useful techniques for structuring the code of your automation tests. In my examples, I am going to use  Selenium WebDriver . However, the patterns are abstract structures, and they can be implemented with any similar automation framework or programming language. One of the most popular patterns in Web Automation is the so called  Page Object Pattern . To understand the primary goal of the pattern, first you need to think what your web automation tests are doing. They navigate to different web pages and click/type on/in various elements. The  Page Object Pattern  wraps all elements, actions and validations happening on a page in one single object-  Page Object . I am going to show you two ways how you can use this pattern. Through the usage of the built-in Page Objects in  Selenium WebDriver  and via manually created classes. Page Object Patter...