Nei primissimi giorni, i test (mainframe e batch job days), i tecnici del sistema scrivevano una serie di dati di test che avevano calcolato a mano i risultati, ma fornivano solo un piccolo sottoinsieme di programmatori. I programmatori hanno scritto il codice e le suite di test sono state eseguite contro il programma e l'output è passato ai sistemi che hanno restituito i risultati pass / fail.
Naturalmente stavamo anche utilizzando strumenti di analisi statica come lint , (in Unix da 1979), per individuare le aree che richiedono attenzione specifica.
Un po 'più tardi, quando i programmatori hanno avuto accesso diretto ad alcuni hardware, scriveremmo i tuoi cablaggi di test & stub per testare il nostro codice. Alcuni team avevano un processo in cui gli sviluppatori testavano il codice degli altri e per alcuni progetti in cui molti sottoprocessi avevano interfacce comuni un cablaggio di test generico poteva essere implementato per consentire la standardizzazione dei test e risparmiare il tempo di ogni sviluppatore che creava il proprio scheletro di test per ogni processo , L'ho fatto io stesso in più di un team.
Alla fine degli anni 19xx, abbiamo , stavamo usando framework di test come Testbed LDRA , (fondato 1975) & IBM Rational Test RealTime per codice critico di sicurezza C.