Book Description
About This Book Achieving high-quality test automation that brings value- you need to understand core programming concepts such as SOLID and the usage of design patterns. After you master them, the usual career transition is into more architecture roles, such as choosing the best possible approaches for solving particular test automation challenges. You will get an access to more than 20000+ lines of real-world code examples. Who This Book Is For The book is NOT a getting started guide! If you don't have any prior programming experience in writing automated tests through WebDriver, I suggest you to first start with some book about basic programming and basic WebDriver usage. I believe it might be invaluable for the readers that have a couple of years of experience and whose job is to create/maintain test automation frameworks, or to write high-quality reliable automated tests. The book is written in C#. However, I think that you can use the approaches and practices in every OOP language. If you have a Java background (or similar), you will get everything you need, don't worry. Even if you don't get all the concepts from the first read, try to use and incorporate some of them, later you can return and reread them. I believe with the accumulation of experience using high-quality practices- you will become a hard-core test automation ninja! What You Will Learn Learn how to optimize and stabilize your flaky tests. Learn how to handle asnynchronious web pages in your tests. Automatically deal with AJAX and jQuery. Improve Test Readability, Maintainability, Reusability, Extensibility by incorporating 10+ design patterns: Page Object Model, Facade, Decorator, Observer, Strategy, Singleton, Fluent Interface, Template Method, Abstract Factory, Factory Method, Repository, Lazy Load. Learn what are the SOLID principles and how they can improve your test code. We will also discuss other essential programming principles such as composition, DRY, KISS and others. Learn how to asses and choose the best possible design for your framework or library. Learn how the benchmarking your code can help you to speed up your tests. Learn how to design and build your framework to handle test data and different test environments. Learn about high quality code practices and naming convention so that your code get much more understandable.