Un programma combina istruzioni in sequenza e decisioni condizionali; testare input diversi verifica i percorsi previsti.
La sequenza è il flusso di istruzioni nell’ordine scritto, salvo modifiche dovute a strutture di controllo. Una variabile può essere inizializzata, usata in un’espressione e aggiornata; seguirne il valore riga per riga aiuta a prevedere l’output. Se il dato cambia, possono cambiare le istruzioni successive.
La selezione usa una condizione booleana per scegliere le istruzioni da eseguire. In uno schema se/altrimenti, se la condizione è vera si percorre un ramo, altrimenti l’altro. In Python l’indentazione delimita il blocco; un rientro errato può modificare il comportamento o produrre errore. La sintassi varia tra linguaggi.
Un test fornisce input e confronta il risultato con quello atteso. Per una soglia non basta provare il caso ordinario: sono utili valori inferiori, superiori e proprio sul confine. Un test riuscito non dimostra correttezza per ogni input, ma rivela difetti e chiarisce il comportamento osservato.
Esempio didattico originale: un programma assegna tariffa ridotta se età < 12, ordinaria altrimenti. Testare 11, 12 e 13 verifica i due rami e il confine. L’esempio assume età intera non negativa e non definisce altre agevolazioni; in un’applicazione reale le regole vanno precisate prima della programmazione.
- La sequenza determina l’ordine di esecuzione.
- La selezione esegue percorsi diversi secondo vero/falso della condizione.
- Test ordinari e di confine aiutano a trovare errori, non dimostrano correttezza assoluta.
Metti alla prova quello che hai letto
Con età < 12, quale input entra nel ramo altrimenti?
- 12
- 11
- 0
- Ogni valore minore di 12
Soluzione e spiegazione
12. A 12 la condizione è falsa, quindi si esegue il ramo altrimenti.
Fonti
- 7.2 Programming Language Constructs — OpenStax
- if statements — Khan Academy
- Test Generation using Combinatorial Testing — NIST / Virginia Tech
Nota editoriale
Confronto assistito documentato; revisione docente necessaria
Programmazione modulare e iterazione non sviluppate. Proposta editoriale, non prescrizione del syllabus.