Scaling test case management - reusable test library vs project-specific

We’re managing test cases across 12 projects and facing significant duplication. Similar test scenarios exist in multiple projects with slight variations. We’re debating between building a central reusable test library versus keeping project-specific test cases.

The reusable library approach promises reduced maintenance cost through parameterized templates, but we’re concerned about governance complexity and the extension model needed to handle project-specific variations. How do teams handle similarity detection to identify candidates for the shared library?

Looking for experiences with both approaches - what are the practical tradeoffs at scale?

Template versioning follows semantic versioning principles. Minor updates (like adding optional parameters or improving documentation) are backward compatible and auto-propagate to consuming projects. Major updates that change test logic require explicit project opt-in.

When a major template update is released, consuming projects get notified but continue using the old version until they explicitly upgrade. This prevents breaking changes from cascading unexpectedly. The template owner is responsible for maintaining the previous major version for at least two release cycles to give projects time to migrate.

Angela, how do you handle template versioning when the core template needs to change? If 8 projects are using a template and you need to update it, how do you manage the impact across all consuming projects?

The governance question is crucial. We established a test library council that reviews and approves new templates. Each template has an owner responsible for maintenance and versioning. When projects need to extend a template, they submit a request explaining why the core template doesn’t meet their needs.

This governance overhead is worth it because it prevents the library from becoming bloated with overly specific templates. We also track template usage metrics - if a template is only used by one project, it gets moved back to project-specific test cases.