IMO, you need to test with the minimum Python version that you want to support.
Example of why:
In Python 3.10, PyType_GetSlot will start accepting more types. This change affects semantics but not ABI, and it is backwards compatible.
If you use the 3.9 Stable ABI but don't actually test against 3.9, you won't find code that relies on the new behavior.
IMO, you need to test with the minimum Python version that you want to support.
Example of why: In Python 3.10,
PyType_GetSlot
will start accepting more types. This change affects semantics but not ABI, and it is backwards compatible. If you use the 3.9 Stable ABI but don't actually test against 3.9, you won't find code that relies on the new behavior.