If you are talking about a `Step` or a `Describable` used by one, yes that would be required for backward compatibility with existing Pipeline script. You are advised to write a `JenkinsRule`-based test (which passes against the former code) that defines a script (`WorkflowJob` / `CpsFlowDefinition`) using the affected fields, `buildAndAssertSuccess`, and assert that the settings were used. `SnippetizerTester` (add a test dep on the `tests` classifier of `workflow-cps`) is also helpful for validating unusual or complex cases.
For configuration used in other parts of Jenkins, including build steps in traditional job types (`config.xml`) as well as global/folder/etc. settings, what matters is not these methods but the serial form of fields as determined by XStream, which you can evolve compatibly in various ways such as `readResolve`. Such changes are best tested using `@LocalData`. You also typically want to test via `JenkinsRule.configRoundtrip`.
In any `Describable`, a `@DataBoundSetter` method, or a `@DataBoundConstructor` parameter, must be paired with a getter of corresponding name and identical type. (You can also use `public` fields: `final` to correspond to a `@DataBoundConstructor` param, or nonfinal and marked with `@DataBoundSetter` rather than using a getter-setter pair.) For structures used solely by Pipeline, the getter is required to introspect default values in the syntax generator screen, and I think it is also used when saving step arguments to the build record (visible in certain visualizations such as Blue Ocean and the Pipeline Steps link). For structures used in XML-persisted parts of Jenkins, the getter allows for form reconfiguration.