preface "testers are poor coders we here that more often than one would think there is prominent shade of truth in this statement as testers mostly code to --get the work done||at times using scripting languages which are vendor specificjust tweaking recorded script the quality of code written is rarely concern and most of the timesthe time and effort needed to do good coding is not allocated to test automation efforts the above scenario changes drastically when one needs to develop one' own testing frameworkextend an existing one or contribute new code to an existing one to retain the generic property of the framework and to build scalable frameworkstesters need to develop better coding skills why write this book wethe authors of this bookare testers we are in no way experts in the matter of design patterns or python we are learners we like object oriented programming we like python language we want to be better coders we have attempted to write this book in very simple languagepicking up simple examples to demonstrate given pattern and being as precise as possible this is done to provide text so that the concept of design patterns can reach to those who are not used to formal programming practices we hope that this would encourage other testers to pick up this subject in the interest better design of test automation what is design patternas per wikipediaa design pattern in architecture and computer science is formal way of documenting solution to design problem in particular field of expertise the idea was introduced by the architect christopher alexander in the field of architecture and has been adapted for various other disciplinesincluding computer science an organized collection of design patterns that relate to particular field is called pattern language in the object oriented worlddesign patterns tell us howin the context of certain problemwe should structure the classes and objects they do not translate directly into the solutionrather have to be adapted to suit the problem context with knowledge of design patternsyou can talk in --pattern language||because lot of known design patterns have been documented in discussionsone could ask www testingperspective com