Domanda

Ho questa grande idea di impiegare fondamentalmente qualche attacco di forza bruta per testare / verificare che la mia applicazione web non va in crash.

Non fatemi il test di unità, e roba del CIO, questo è qualcosa di completamente diverso.

Quello che sto facendo, e quello che sto chiedendo aiuto con è quello di creare un intelligente ricerca esaustiva, che esplorano parti dello Stato programma.

Quello che ho è una pagina web con cose che posso fare, facendo clic è una cosa, l'immissione di testo è un altro, alcuni input come pulsanti radio e elenchi a discesa sono costretti a certi valori. cose piuttosto semplice. Quello che io alla fine con un insieme finito di eventi e valori e quello che voglio modellare è una progressione di Stato. Forse questo è l'ottimizzazione FSM in un certo senso, ma l'obiettivo è quello di passare sistematicamente attraverso permutazioni arbitrarie di eventi e valori e vedere cosa succede.

Quando un problema è trovato voglio provare e provocare tale errore con il minor sforzo possibile per essere in grado di presentare un chiaro caso di test.

Ciò si riferisce ai metodi di verifica formale e sto chiedendo aiuto o intuizione da parte di persone con esperienza.

È stato utile?

Soluzione

Che cosa si vuole fare suona un po 'come modello-controllo , da un lato e generazione automatica di test case dall'altra (in quest'ultima categoria approfittare Concolic test , una tecnica per evitare tempo con percorsi di esecuzione irrealizzabili) sprecare.

Modello controllo sarebbe il metodo preferito se si assume l'applicazione web è corretta e vuole dimostrare che è. Ma nel caso di un avvertimento, potrebbe essere necessario lavorare per capire se il problema è reale o meno. Test di generazione caso è orientata verso bug-finding: non prova che si app è corretto, ma se si rileva un problema, ti dà un vettore di input per la produzione in modo che lei non c'è bisogno di chiedersi se il problema è reale.

Non sono a conoscenza di eventuali strumenti esistenti per applicazioni web, ma questo non significa che non esistono.

Altri suggerimenti

Sembra che si desidera un fuzzer. Peach è uno di questi strumenti.

ricerca esaustiva può essere compito non banale per la risorsa limitata (memoria, spazio), ma con molte tecniche il problema può essere ridotto, come si astrazione codice (es: sostituire le classi driver di database con stub), un'esperienza è presentato in questo carta:. Controllo astratta modello di applicazioni Web con Java PathFinder (Vinh Cuong Tran, Yoshinori Tanabe, Masami Hagiya, Università di Tokyo)

Se si guarda a una sorta di verifica formale del FSM come i modelli, Java PathFinder ha un'estensione di verificare UML diagrammi di stato scritte in Java + annotazione (dipende dal Javapathfinder VM):

http://babelfish.arc.nasa.gov/ trac / JPF / wiki / progetti / JPF-statechart

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top