Alcune note sul testing

Testing: esercitare il programma con dati di test per verificare che il suo comportamento sia conforme a quello atteso (definito nella specifica)

Oracolo: output atteso, quello che ci si aspetta che il programma produca

Malfunzionamento: comportamento del programma diverso da quello atteso

Obiettivo del testing: individuare malfunzionamenti

Testare il programma con tutti i possibili dati di test è impraticabile, quindi l’obiettivo è individuare classi di dati di test, selezionare un caso di test da ogni classe ed evitare classi di test ridondanti

Test suite: un insieme di casi di test per un programma

Testing e debugging

Un malfunzionamento di un programma è causato da un difetto (errore, bug) nel codice

Debugging: individuazione e correzione del difetto che ha causato il malfunzionamento

Più alta è la fase in cui si introduce il difetto, maggiore è la difficoltà di rimuoverlo

La ricerca di un difetto può essere fatta inserendo nel codice sorgente punti di ispezione dello stato delle variabili

Flussi (stream)

In C il termine stream indica una sorgente di input o una destinazione per l’output

Gli stream spesso rappresentano file memorizzati da qualche parte (hard disk o altri tipi di memoria a lungo termine), in altri casi sono associati a periferiche (schede di rete, stampanti, ..)

Per automatizzare il test si possono usare i file per leggere dati di input e scrivere dati di output