I’ve been writing automated tests at work for about 10 years now. They have certainly evolved over the years. At first, I didn’t put much thought into the code quality and expressiveness of the tests as opposed to the production code. However, I soon came to realize the importance to highly readable and maintainable test code. It needs to be readable, because often the tests can be used as living documentation for the system. The test code needs to be maintainable because systems change over time and updating tests shouldn’t be dragging you down.