Test Segreti

IvanC (940 points)
5 12 19
asked Nov 2, 2019 in HW2 obbligatorio by IvanC (940 points)
Ciao ragazzi, io ho consegnato l' HW2 obbligatorio, poi mi è sorto un dubbio riguardo ai test segreti che verranno eseguiti, quindi solo per una delucidazione: ma sarebbe il caso di implementare nel codice dei 'checks' per controllare eventuali errori  nei dati che verranno forniti al programma  o altre cose del genere ? (spero di essermi spiegato)..:)
459 views

4 Answers

fc-dev (16450 points)
12 20 34
answered Nov 2, 2019 by fc-dev (16,450 points)
Non credo ci siano input non validi nei test segreti...
Da quel che ho capito il senso dei test segreti è semplicemente non farci sfruttare il fatto di avere i test per barare, ma non dovrebbero essere troppo più difficili dei test normali.
Anche perché il testo dell'esercizio specifica chiaramente qual'è l'input della funzione, quindi se la funzione si comporta in modo imprevisto a seguito di degli input errati non è colpa della funzione ma di chi ha dato input non validi.
IvanC (940 points)
5 12 19
commented Nov 2, 2019 by IvanC (940 points)
Anche io la penso così, però ad esempio se il test fornisse una lista vuota? Oppure, un carattere maiuscolo ?  ..il programma non dovrebbe trovarsi pronto per rispondere ad una determinata situazione ?.. E' solo un dubbio che mi è sorto, non so nemmeno se potevo porre questa domanda, speriamo sia come dici tu :)
fc-dev (16450 points)
12 20 34
commented Nov 2, 2019 by fc-dev (16,450 points)
A rigor di logica se il test fornisce una lista vuota di operazioni semplicemente devi ridargli gli stessi piloti che ti ha dato.

Ma se ad esempio la E è maiuscola non vedo come sia colpa del tuo programma quando le specifiche dicevano in modo chiaro che la e era minuscola.

È un po' come se usi una funzione per parsare file JSON e gli dai un file XML.
Non è colpa della funzione se crasha il programma; è colpa di chi gli ha dato un file XML.
Christian (15220 points)
2 4 77
commented Nov 2, 2019 by Christian (15,220 points)
Secondo me dovremmo dividere l'argomento homework dall'argomento lavorativo.

Per quanto riguarda gli homework ho riportato in basso la risposta del professore riguardo la validazione degli input (e cioè che per ora non serve), ma in ambito lavorativo spetterebbe al tuo programma gestire eventuali eccezioni derivate da input non ammessi.

Infatti solitamente prima di iniziare con la logica di business si effettua una validazione dei parametri ricevuti..
Christian (15220 points)
2 4 77
answered Nov 2, 2019 by Christian (15,220 points)

Ciao, ti riporto la discussione dove si è affrontato il discorso (che a sua volta ne referenzia un'altra).

IvanC (940 points)
5 12 19
commented Nov 2, 2019 by IvanC (940 points)
Perfetto, grazie:)
andrea.sterbini (172780 points)
514 935 1789
answered Nov 2, 2019 by andrea.sterbini (172,780 points)
Aggiungo che non sono pensati x stressare i timeout. Saranno di media complessità
plm (18850 points)
7 15 118
answered Nov 2, 2019 by plm (18,850 points)
Gli input sono tutti validi e non sono ne molto semplici tipo i primi esempi, ne tanto grandi come gli ultimi, per cui dovresti riuscire a mantenere il voto attuale senza problemi, l'importante è che il tuo algoritmo non sia basato sui test, ma su un implementazione di un codice che possa risolvere in maniera generale il problema proposto