Sequenze, selezioni e test dei programmi

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?

  1. 12
  2. 11
  3. 0
  4. Ogni valore minore di 12
Soluzione e spiegazione

12. A 12 la condizione è falsa, quindi si esegue il ramo altrimenti.

Fonti

  1. 7.2 Programming Language Constructs — OpenStax
  2. if statements — Khan Academy
  3. 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.