In a lot of software development teams, test automation code is treated much less carefully than production code. It is expected to just work. Mindless copy and paste of setup code from one test case to another is seldom seen as problematic, scripts duplications are widely accepted, and things are named randomly. This always leads to problems: gaps in assertions become pretty non-obvious; consolidating long-running test suites becomes a cumbersome task; magic numbers need to be changed all ac...