How to test hard drive - diskutility reports defective drive as perfectly fine long story
I have an USB drive to copy data between Mac, Windows (personally I don't own any) and PS4 - it is exfat formatted.  Recently I noticed my Mac would freeze when I plug in this disc - also there is a directory in the top hierarchy that I could not open.  Since this drive moves around a lot I suspected an unlucky disconnection caused corruption. Checked the drive and the only partition with disk-utility "first aid" - which report everything is fine.  Despite this in the system log there are plenty of I/O errors.  Looks like I need to trash it.  But I sure had loved it if my mac gave me any warning that I was using a bad drive (I kinda forgive the PS4 that she didn't warn).

So for the future what check should I use?  

I see that there are older questions discussing a similar questions, though they are 5 years old and also some of the link tools are dead now.  Also this question is not about data recovery, but how to asses a drive.

tl;dr What program (on mac) can I trust to check my discs?
I reccomend Disk Drill.  Their diagnostic and monitoring tools are free, but the recovery functionality (if you need it) is what you will have to purchase.

There's also a very robust set of command line (CLI) tools available as open source:  smartmontools.  This is a available as a macOS binary package so you don't need to install via brew or MacPorts.

Important:  One thing to keep in mind when diagnosing external drives is that you have two components:


the drive itself
the USB enclosure


I have had USB enclosure's fail (the USB to SATA portion) that looked like a drive failure.  The best way to get around this is to remove the drive (if you can) and use a separate USB-SATA Adapter.  What you are doing is eliminating one of the components from the diagnostic equation (the USB interface) with a "known working" component.  They are cheap (approx $10) to keep for diagnostic purposes.



That said, a drive diagnostic is not a "quick status check."  To find bad blocks you may need to do a "deep scan" because a bad block isn't reported until the drive encounters a bad block.