There are two strategies when it comes down to writing reusable test cases:
Modularization is a function-based method of test design where testers categorize functionality to be tested into reusable modules. Testers break down test caes into logical, manageable functions, or modules. These modules are isolated to create independent tests that can then be recombined or reused to make larger master test cases to achieve complex end-to-end testing scenarios.
Parameterization is when you replace hard-coded input values that are hard to change with paramters. Test parameterization allows you to use modules to run the same test over and over again using different values, making it easy to share modules between multiple test cases.