Backup Exec test job doesn't reflect the bahaviour of the actual backup job...
This scenario assumes that somebody on-site (non-technical) is feeding tapes, each day, into the single slot tape drive. A very typical scenario for many small business environments.
In Backup Exec 2012 and earlier versions, if you were to run a test job as part of a backup job, the test job doesn't check the tape device to see what media is inserted. Instead, the test job will reference the SQL object for the media that was last used in the drive in most cases causing the job to fail, due to insufficient space or media set restrictions. As the test job has failed the backup job is put on hold.
If, however, you do not run the test job and just let the backup job run, without testing, the backup job starts, the job checks the currently inserted media and detects the newly inserted tape without error. The backup job then completes without any issues.
This behaviour is counter-intuitive, at beast, and possibly down right wrong, and should be changed.
Why does the test job not simply check the currently inserted media, as the backup job will? The fact theat the test job references the SQL object for the last used media means that this is not an accurate test for how the backup job will behave.
A workround exists, by initiating a scheduled inventory of the device. However, the test job should be changed to behave as the backup job it is testing behaves. This is because this is a more accurate test of the job's behaviour.
i.e. The backup job will check the media, with no need for an inventory of the device. Therefore the test job should behave the same.