I haven't seen any data about how long modern drives in practice can maintain data when unplugged, and whether passing over the drive with tooling helps or hinders. (i.e. I haven't found a study where someone wrote stuff to 1000 hard drives and checked if the stuff was damaged after 6 months, 1 year, 2 years) The SpinRite (or badblocks, or other drive test) would tell you something went wrong with the drive, but it won't be guaranteed to fix the data.
If you're using multiple drives in an array instead of individual drives as backup, (make sure you have ECC RAM!) you can do a
scrub operation on the array.
https://wiki.archlinux.org/index.php/Btrfs#Scrub
Unlike a drive test, the scrub can check if the data is damaged and then restore from the redundant copy in your disk array. I mention ECC RAM because if your RAM is unstable when you do a scrub, the scrub software will freak out and think everything is damaged, ruining your data in the "repair" attempt.