Per verificare se si dispone di test sufficienti o meno, è possibile verificare la copertura del codice e la copertura della filiale indotta dai test (magari utilizzando uno strumento di copertura, magari manualmente rivedendo i percorsi del codice o utilizzando un debugger).
Se si arriva alla conclusione, i test per le sottoclassi offrono una copertura sufficientemente alta per il codice delle classi di base, quindi aggiungere ulteriori test ovviamente non porterà molti vantaggi. D'altra parte, se ci sono percorsi di codice che puoi testare solo aggiungendo test specifici usando direttamente la classe base, allora dovresti seguire questa strada.
Un altro possibile motivo per "testare direttamente la tua classe base" è che vuoi testare una funzione specifica di quella classe "in isolamento". A volte può essere più semplice progettare i casi di test direttamente per un metodo specifico, invece di testare solo quel metodo indirettamente chiamando i metodi delle sottoclassi che usano quel metodo.
Si noti che quando si ha una classe base generica per cui lo scenario di utilizzo tipico è per derivare una sottoclasse, la classe base è probabilmente astratta. Quindi per testare una classe di questo tipo è necessario fare una derivazione comunque. Per questa situazione, testare "la classe base direttamente" potrebbe significare aggiungere una derivazione speciale solo a scopo di test, ovviamente.