Casi di test comuni per lo strumento di convalida dello schema XML

0

Ho appena scritto il mio primo validatore di schema XML basato su SAX (Java), in cui si passa un URL dello schema (che punta al file .xsd ) e un'istanza XML e si determina se quell'istanza è valida o meno oppure no.

Ora sto cercando di scrivere diversi test unitari per il validatore (persone TDD, I know , lo so!) e mi chiedevo quali fossero i motivi comuni per cui XML non ha convalidato la convalida.

Ci sono così tanti elementi e attributi in questo schema, potrei letteralmente scrivere migliaia di casi di test. Ho pensato che qualcuno qui potesse sapere come semplificarli tutti in un set gestibile.

    
posta herpylderp 17.04.2012 - 17:06
fonte

2 risposte

1

Potresti voler generare più tipi di errori generici , piuttosto che errori specifici degli elementi (a meno che tu non abbia elementi specifici che in realtà hanno bisogno di quel tipo di test) . Alcuni di quelli che consiglierei, appena in cima alla mia testa:

  • Elementi nell'ordine errato.
  • Elementi mancanti mancanti.
  • Lunghezze di stringhe non valide sugli elementi con un limite di lunghezza.
  • Valore elemento non valido per un tipo enum.
  • Aggiungi figli quando il genitore ha xsi:nil="true" .
  • Non avere figli quando sono richiesti elementi figli.

Questi sono i tipi di errori di convalida che ho riscontrato più frequentemente sul mio progetto corrente. Possono succedere a quasi tutti gli elementi, quindi non importa se lo schema ha decine di elementi o migliaia.

    
risposta data 17.04.2012 - 17:12
fonte
0

Vedi che ci sono molti test in attesa di essere scritti - molto bene! Porta ordine nelle tue idee di possibili test e ottieni un piano come questo:

Analizza ogni tag / attributo e pensa a cose che potrebbero andare storte (per lo più nessuna sottotagola / attributo quando dovrebbe esserci l'una o l'altra direzione) e come dovrebbe funzionare (spesso ci sono solo due o tre modi che rendono senso per il tuo xsd specifico). Ciascuno di questi casi dovrebbe diventare un test particolare.

Quindi è molto bello pensare ad altre condizioni (sono molto dipendenti dal tuo xml e da quello che ti serve / lo usi):

  • Se hai nomi: dovrebbero essere unici (forse in gruppo o su tutti)
  • Tutti i nomi utilizzati sono definiti e viceversa (il secondo forse non è così importante - ma un buon avvertimento è l'oro)
  • Altre combinazioni di "se hai questo tag / attributo ne hai bisogno anche di un altro in un altro posto!"
  • Forse come un certo ordine nel tuo xml (in un primo momento i sottotag di base e poi combinati di un certo tipo).
risposta data 17.04.2012 - 22:08
fonte

Leggi altre domande sui tag