In this talk, we provide solutions that we developed to handle test smells and have a more robust test automation environment. They are lessons learnt from our experiences which are applicable to any type of test automation project or may give the audience an idea to develop their own solutions.
Motivation: Our QA team is responsible for automation of test cases. As a daily activity, we are supposed to implement and automatically execute tests.
At some point, we realized that we had additional tasks such as maintenance, refactoring and analysis of failing tests, which were blocking us from implementation stories. We had too many complaints in our retrospective meetings about this situation. Everyone was sick and tired of maintenance issues and team was not happy.
Challenges: Test smells were one of our biggest pain points in our test automation project which caused instabilities in test results and created a huge maintenance burden.
Environment: As our solutions are based on the real-life experiences, we provide insights about the real system under test which is a cloud-based open IoT operating system built on a microservice architecture. It is a big project developed by 600 people in 10 globally distributed sites which brings additional challenges to test process management.
Solutions: We provide our solutions that we developed to overcome different types of test smells. The solutions we cover in our talk are:
- Polling mechanisms: For handling asynchronous microservice calls
- Helper classes: For reusable test codes to decrease the maintenance effort
- Clean up code: For deleting created objects to decrease the unnecessary load in the system and for eliminating test dependency problems
- Test annotations: For controlling the order of test executions and group related tests
- Test execution tools: For scheduling test executions and automated test results reporting
- Test history: For detection of the flaky tests requiring maintenance
- Wide test data: For including different values such as corner cases and boundary values
- Static test code analysis: For increasing the code quality and preventing possible test smells
• Attendees will be able to understand effects of tests smells in automation projects
• Attendees will be able to implement ways to achieve robustness of test suite
• Attendees will be able to reduce manual effort on testing
• Attendees will be able to realize cost of bugs coming from production environment
• Attendees will be able to implement some solutions to find bugs in early stages
• Attendees will have insights for improvement of rapid automation and adaptation