I've been thinking on this issue a little bit more ...
Well, the smart extended self scan can be of some use but it also have some problems. One is that it will take some time to complete and the other is that it doesn't show a graphic display of the surface/problems and as the test is done internally by the drive (like the secure ATA erase) you don't have any way to know by looking at the screen how bad the surface looks like (or not).
While using MHDD you can just read some sectors on the start then at the middle then at the end to see if they read at all, and dispose of the drives that are "slow" or showing lots of delays, the s.m.a.r.t. will not display in a graphical way like victoria or mhhd at the present LBA what is the state of the block of sectors and the speed taken to access them.
Also a Write/Read test will test the pcb and sata/ide interface while an internal self scan test will not do so as the drive is doing it's tests internally.
At the end of the day it's just a question of how much time you will want to spend for each drive and if you are willing to refund or provide another drive to a client that claims the drive you sold them is defective i think the tolerance in testing would be lower, or you can just run a surface verify and check s.m.a.r.t. and if the drive have other issues that are found later by a user the drive can just be replaced.
I think that if i were in your position i would just do as stated on my first reply, mhdd scan + secure erase + mhdd scan and check s.m.a.r.t. but even so could take some considerable amout of time.
As for the question of how to be sure that the drive is ok i think that no-one can be sure of that no matter how much testing you do. It's just a question of testing more and more and with diferent set of tests and as much time you have to waste on that the more clear it will be if the drive is in a "good" condition or more close to a "perfect condition". You can't be sure or you can't reach that perfect state where you have 100% confidence that the drive is ok, but the more you test it with different tests the more close you are to have some confidence that the drive is in "good shape".
Yesterday i've taken a look to the HRT manual and the options to scan the drive for defects, as i normally only use MHDD and Victoria for that as already stated (ok, and spinrite) and for you to have an idea there are 2 major type of tests :
Pysical test - Is when you test the rive with VENDOR SPECIFIC COMMANDS that know the exact location of C/H/S at the drive level (this is not the same as logic C/H/S that was used to access sectors on older drives and those values would be set on bios). Here we are talking about real location at the platter level, bypassing the LBA translator. This type of test requires firmware tools and are specific to brand/model as it will use VSC and it can be found on the expensive firmware tools.
Advantage of testing this way is that you can find out very quickly if one head is not reading/writing or if there is a scratch on the platter preventing one entire track or zone of tracks to read/write, etc ...
To ilustrate this is the type of testing that you would be able to do with firmware tool and specific vendor commands for instance on AVV2 IBM/Hitachi drive :

Of course you don't want to use expensive tools so let's forget about the drive internal way to address sectors and let's go for a test that can be used with universal tools or tools that use only standard ATA commands to test any drive.
We will call that a logic test. Now you have very very old drives that can't be accessed by LBA (like the 40 MB IBMs or que Conner here :
viewtopic.php?f=1&t=15709 )
You are going to test those at LOGIC C/H/S instead of LBA. As stated this is drives that will not respond to LBA addressing but the addressing type of C/H/S is a logic one, not internal. You are still using ATA standard (not vendor specific) and you are still requiring to tranlate the Logic C/H/S intro physical C/H/S (the drive does that itself of course). Those are really very old drives and i doubt you will have to test any of those, i'm just leaving this here in case you have some really small capacity drives you must be aware that you will need special procedure if they are too old to support LBA (let's say any drive with more then 1GB will most likely support LBA). In any case this is how you would test it in HRT at C/H/S LOGIC (again don't confuse with pysical C/H/S) :
Attachment:
aa.png [ 11.94 KiB | Viewed 18966 times ]
You can't test more then 8 GB this way but you can test very old drives that don't support LBA without a PC-3000 ISA
Finaly you have LOGIC test in LBA and that is what you will use for all of your recent drives :
Now while there is the possibility to test sector by sector like this :

The majority of tools like MHDD or Victoria will do BLOCKS of 256 sectors at a time, instead of sector by sector, but that is good enought.
Just be aware that each of those blocks on the graph of victoria or mhdd will be 256 sectors and not a single sector, but at the end of the day what counts is that all the drive is tested anyhow.
Now for the more extensive tests (instead of a simple verify) you could use the following HRT method,
1 - Write Forward (it will write to all sectors) and on each sector it will write it's position as well.
2 - Scan forware (verify).
3 - Read + Check (this reads the sector itself, send the data back to the acrd and checks if the sector number (lba) matches the sector number that it was written on the Write Forward pass.
4 - Seek + Do will do a very cool thing. You will have to disable cache so that the test is reliable (and data is not fetched from cache instead), now the heads will be positioned far from the sectors to be read/written first and only then the action of read/write will be done. This will stress the drive as the heads will be moving all over the place (even if you are writing/reading sequentially) and it will look like the drive will be accessing the platter from random points as the heads will be moving all over the place. This tests the reliability of the drive and it will heat it up as it will simulate "extreme" activity like if you were doing a random read/write to random sectors (as the head will be seeking to/from all over the platter).
This of course take a huge amount of time, but again it's allways a matter of time versus how much do you need to be close of knowing how good the drive actually is.
Now HRT have a cool concept of "Defecto-Scope" as well, in LOGIC translation.
This requires HRT card and i don't know of any alternative software (freeware or not) that will do this but as it uses ATA standard commands there must be something simmilar to this out there.
Defecto-Scope tests a range of LBA (or entire drive by default at LOGIC translation but on "Steps".
First STEP it will act as MHDD/Victoria and will test BLOCKS of 256 sectors. This is fast way to test and you can use write or verify only. Very is very fast.
Now Defecto-Scope draws a graph as it's testing the drive and shows the access speed needed to verify (or write) each block, a little bit like MHDD and Victoria but it displays a graph for the entire drive while on MHDD you can only see some squares for a portion of the drive. Testing on my old IBM right now it will look like this when the scan finish and the drive is fully tested :

Now, if the graph goes up to MAX that means that you have bad sectors. The graph shows on horizontal line the LBA space and on vertical the time needed to access blocks. If it goes up to max (500) those can be considered bad sectors or very slow sectors. On my drive just a little portion of blocks are a little bit way higher then the rest of the drive blocks, and they are still fast enought not to be considered "BAD". Yet as defecto-scope ends you have STEP 2 !!!!
Those blocks that are "slower" but are not yet bad are tested again but this time at SECTOR LEVEL.
You define a CRITICAL TIME (or use a default) and the defecto-scope will just pick up the LBAs from the first test that were considered "SLOW BLOCKS" and will pick up those LBA ranges and test sector by sector using your criteria of CRITICAL TIME to consider a sector "good" or "slow".
Here is my drive :

Sectors are now tested one by one and on my example if it takes more then 20 ms to access a sector it will be placed on a list and you can simply re-locate them and swap by spares, or even better place them on P-List and re-format the drive if HRT supports that option for the model of the drive you are testing.
But all of this is as i stated, takes a long time and if you have 1000 or more drives you might not want to have 1 drive at a time consuming space for 1 day on a slot of your firmware tool, so you will have to be a little far away from the idea of "to be certain that a drive is ok" and more near the idea of "i can verify all the sectors so i should be ok" ....
HRT and VICTORIA also do a cool PCB and BUFFER test. It checks the quality of PCB interface lines to interface RAM as it uses write and read buffer commands to send data from the tool to the drive and check if the data on RAM of the drive is still the same or got damaged :
In case of problems you will see ssomething like this (HRT) :
Attachment:
cc.png [ 30.15 KiB | Viewed 18966 times ]
Again VICTORIA for windows does the same test and with this you can have more confidence on PCB ram.
At the end of the day it's a question of how much time you want to invest to be "know more" about the real state of the drive and the more you are willing to test the more close you will be of knowing (at the expense of time) of how good the drive will behave (or not) when re-used on a system
