Supponiamo, durante i test, di testare come il software gestisce un file "corrotto".Come creare un file "corrotto"
Ho due domande:
1. In generale, come si fa a definire un file "corrotto"? In altre parole, cosa costituisce un file corrotto?
Per fare un esempio:
Si supponga di dover testare un file .pdf "corrotto".
Un suggerimento è semplicemente prendere un file .zip, cambiare l'estensione e testare con quello. Tuttavia, direi che non stai testando come il programma gestisce un "file .pdf corrotto", ma piuttosto come gestisce un file .zip.
Un altro suggerimento è aprire il file e inserire/eliminare byte casuali. Questo suggerimento è ok, ma ci sono alcuni problemi:
- È possibile (anche se improbabile) che le sezioni modificate o rimosse siano irrilevanti. Ad esempio, è possibile eliminare semplicemente una sezione di una stringa enorme, che modificherà i dati, ma non necessariamente corromperà il file.
- È possibile che il file possa essere modificato in modo tale che il programma rifiuta di leggere il file. Ad esempio, se l'intestazione .pdf viene eliminata, forse l'API (o qualsiasi altra cosa tu stia utilizzando) non supererà quel punto e il file non potrà essere testato affatto.
- Simile al primo proiettile: se il file viene modificato in modo drammatico, esiste un argomento secondo cui il file risultante non ha più lo stesso formato dell'originale. Quindi, di nuovo, se dovessi eliminare l'intestazione .pdf, forse quel file non è più un file .pdf. Quindi provare a testarlo non prova un file .pdf corrotto, ma prova invece qualche variazione dispari di un file .pdf.
2. Una volta definito un file danneggiato, come si procede a crearne uno?
Ecco quello che ho pensato finora:
A "lima corrotta" è un file che soddisfi correttamente le specifiche del formato di file, ma che contiene i dati/byte che sono intrinsecamente imperfetto .
L'unico esempio a cui potevo pensare era se si modificava la codifica del file in qualche modo. Si potrebbe quindi applicare questo metodo a file di formato arbitrario.
Grazie per la lettura.
La risposta a queste domande dipende interamente dal particolare formato di file e dai tipi di corruzione che si prevede di gestire con il software. Non vi è alcun punto di test con i vettori di input che non si intende gestire. –