How do you know if your starter is bad?

You can have a starter current draw test performed. This can be done with the starter motor in place.

Find a shop that has an ammeter at a minimum (or an appropriate test meter) or a starter/alternator repair shop. The current draw will vary based on a number of factors; engine temp, engine wear, type of oil in the engine, etc.)

The engine should be disabled to prevent it from starting. (remove the fuel pump relay, ECM fuse, etc.) When the engine is cranked over you should see (on average) about a 125-140 amp current draw during the steady cranking phase of this test.

There will be a high current surge when the starter motor is first activated and this may be in the 300 or more amps range. This surge should only last a second or so.
If the steady cranking current draw is up in the 175 amps or higher range the starter is likely failing; often due to worn bushings.