Does the front-end based test automation work? Definitely it does, and it works well, when designed and implemented properly. In this course, we will learn how to do it.
When you ask the people involved in the test automation „what is the main problem of this technology“, the answer would be very likely „the maintenance“. Yes, it‘s right. We struggle with the changes of the tested system, which makes our tests obsolete. These changes are natural during the project, but for test automation engineer, they are a kind of nightmare: they causes maintenance overhead, which can sometimes even lead to failure of the test automation project.
Using a naive approach to test automation, this overhead is simply too high. So, after learning the basics in this course, we will soon move from these naive approaches to more advanced structuring of the tests. And together with that, we will learn a number of various methods, which are in place to minimize this overhead. Using all of them together, we would be able to write well-structured and economic code, key factor for success of our test automation activity.
In the course, we will use the Selenium WebDriver framework, known and reliable open-source solution for automated tests. Besides the structuring concepts, we will also learn WebDriver API and good patterns, how to combine WebDriver with JUnit framework to run our tests.
All this will be done via interactive practical examples: course participants will be developing their own test code, using prepared examples, with support of two experienced test automation specialists, having the rich background in many test automation projects, development of extensions to Selenium WebDriver framework and technological research in test automation.
The course covers the following subject areas
- What are the specifics, strengths and possible pitfalls of automated tests?
- Economics of test automation
- Which scope is good one? Shall we automate manual test 1:1?
- The first test: arrange-act-assert structure
- Reusable objects: let use them from the beginning
- WebDriver object, Selenium capabilities, the most frequently used APIs
- Handling the different browsers and versions, introduction to automated mobile testing
- Element localization strategies: what is suitable and what is not, how to write good XPaths
- Synchronization of tests with the tested application (incl. AJAXes and other tricky elements)
- Connecting the WebDriver with JUnit / TestNG
- Handling the test fails, collecting the defect report, screenshots
- Structuring the larger test sets: layered architecture
- PageObject and PageFactory design patterns
- More business logic and more element initialization flexibility in PageObject
- Test data parametrization, using data grids
- Larger test set: create a central test data repository?
- Organizing the larger test set: Test suites, subsets by test types, reusable tests
- How to implement longer (E2E) tests: Connection points, handling the test data
- More advanced concepts: Using Java generics to speed-up the development, SmartDriver approach
- Test execution plan, technical ways to schedule and run the tests
- Summary of quick-wins, good and wrong practices
Get you leaflet: Effective Automated Testing with Selenium
Required equipment: own notebook with an up-to date Java development IDE supporting Maven and JUnit (IntelliJ IDEA is preferred, but other IDEs can be used as well). The rest will be installed at the beginning of the training via the Maven. Prepared automated test scripts to customize and develop during the course will be given to participants via shared web folder.
Trainer: Miroslav Bureš
Consultant, trainer and researcher in software testing methods.
I have spent more than 10 years by various software testing jobs: I managed testing of several large transformation and integration projects, managed testing department of Capgemini CZ and SK, cooperated with people around the TMAP methodology, reviewed and consulted the testing processes for a number of companies, set processes for test automation and supervised test automation projects – and also gave a number of testing trainings.
Recently, with a bunch of testing fans, we have relased a new Czech testing book “Efficient software testing”, published by Grada.
The last 5 years I do also research and development work in testing: Machines and proper methods can greatly save time and increase the confidence in our tests – from the test design to the execution of the tests. There is still a lot of work to move these technologies forward. With my PhDs we focus on improving current test automation methods and we do experiments how to aid exploratory testing by a machine support, making it just more efficient. I am also trying to create better algorithms and methods for business workflow testing and data consistency tests.
Besides the industry trainings, I am also talking about my experience in university lectures, spanning from introduction to good testing principles to advanced topics related to test automation and design of thorough and efficient test cases.