Course Description
End-to-end (aka. E2E) test is a common and very important automated testing method. It starts from the user’s perspective, covers key business scenarios, and tests the entire system through. Its running environment should be as close as possible to the real running environment of the software product. E2E test plays the role of integrated verification system configuration, component dependency collaboration, data integrity, and inter-service communication to ensure the overall availability of the system.
I believe that many people have written e2e tests, but the results are usually not satisfactory. The reasons are as follows:
- The quality of the test code is not high, the test cases are too long, the test code has a lot of duplication, and the necessary abstraction and design are lacking
- Changes in production code will result in a big change of test code
- Running test is unstable, the test environment is not independent, and the test data of different test cases affect each other
- The test data is complex, there are a lot of duplicated code or test case data with unclear causal meaning when preparing the data
- Incomplete test coverage, such as inability to test functions related to system time and scheduled tasks
Through more than ten coding exercises in two days, this workshop systematically explains the solutions to the above problems and pain points (as follows), so that attendees can write effective e2e tests that are easy to maintain and stable.
- How to write highly readable test cases from a “business” perspective via “specification by example”
- How to write browser-based test cases through “layered architecture” and refactoring
- How to write back-end API-based test cases with “full control” of test data
- How to prepare and verify test data simply and effectively
- How to stub the external APIs that the system depends on
- How to control system time in e2e tests
- How to do e2e testing for scheduled tasks
Who is this workshop for?
This course is suitable for testers and developers, or team leaders, who intend to or are currently writing e2e tests. Only basic coding experience is required (e.g. Java, JavaScript, Python, etc.) since most exercises have a demo by trainer first. And there will be a side-by-side support during the exercises.
Course Outline
- Day one
- Check-in
- “Specification by Example” exercises and explanations
- Use Cucumber to write test cases from requirement examples as UI e2e tests
- Test code refactoring and layered architecture explanations and more exercise
- Use Cucumber to write API test cases and refactor
- Day two
- Use cucumber to control test data, write API test cases and refactor part two
- Requirement example code smell explanation
- “How to use docker to setup test running environment” explanation
- Use JFactory to prepare test data explanation and test code refactoring
- Use DAL to verify test result explanation and test code refactoring
- Retrospective and Q&A
Course Highlights
- The programming language used in this course is Java
- The production code technology stack involved in this course exercise: Spring Boot (Backend) , Vue.js (Web Frontend), Android (App Frontend), Database, External Api etc.
- The test code technology stack involved in this course exercise: Cucumber JVM, Mock Server, Selenium, Appium, Spring Data JPA, Docker, etc.
- There will be more than 10 hands-on exercises in this course, and the relevant methods and techniques will be learned through practical exercises throughout the course
- This course will not use Slides in most of time, there will be no handouts, but live written posters will be used instead. A Discord group will be established for communication, questions and answers, and course content supplements before, during, and after class.
Date & Venue
Date: 25 to 26 March 2024
Time: 9am to 6pm
Geeky Base
2549/46 Phahonyothin Rd, Lat Yao, Chatuchak, Bangkok 10900
Google Map
Registration
Price: 20,000 THB
Prices excludes VAT.
The course would be in English with minimum Thai translation as needed.
For registration, please email to Odd-e (Thailand).