Come utilizzare l'automazione per applicazioni di test che coinvolgono calcoli altamente complessi?

StackOverflow https://stackoverflow.com/questions/545842

Domanda

Voglio seguenti cose per testare un'applicazione che coinvolge i calcoli complessi:

  1. Come utilizzare strumenti di automazione di test per i calcoli di test? (Utilizzando strumenti di automazione, come strumenti QTP o open source)
  2. Come decidere la copertura durante il test i calcoli, come progettare casi di test?

Grazie in anticipo, Testmann

È stato utile?

Soluzione

Abbiamo dovuto provare alcuni calcoli molto complessi in un'applicazione abbiamo costruito. Per fare questo abbiamo utilizzato una chiamata utensile FitNesse, che è un test harness wiki (e open source troppo). Funziona davvero bene quando si fornisce dati in un formato stile di tabella.

Abbiamo avuto qualche codice in C # che eseguono alcuni calcoli molto complessi. Allora, cosa che abbiamo fatto è scritto un test harness in FitNesse, e poi abbiamo fornito con un sacco di dati di test. Abbiamo lavorato molto duramente per coprire tutti i casi, quindi abbiamo utilizzato una sorta di verità tavolo interno per garantire stavamo ottenendo ogni possibile combinazione di input dei dati.

Il test imbracatura FitNesse è stato prezioso a noi come la complessità dei calcoli è cambiato nel tempo a causa mutate esigenze. Siamo stati in grado di garantire la correttezza dei calcoli perché i nostri test FitNesse agiscono come una suite di regressione molto bello.

Altri suggerimenti

A volte, è necessario stimare la conclusione prevista, e quindi popolare il banco di prova da una corsa del programma.

Non è così tanto di un peccato mortale, fino a quando sei convinto che sia corretta. Tali prove saranno quindi consente di sapere immediatamente se una modifica del codice rompe il codice. Inoltre, se si sta testando un sottoinsieme, non è così grande di un tratto di fiducia.

E per la copertura? Coprire ogni ramo almeno una volta (cioè, qualsiasi caso o istruzioni di ciclo). Coprire ogni soglia, entrambi i lati di esso (per divisione intera che sarebbero -1, 0, 1 e come denominatori). Quindi aggiungere un paio di più per buona misura.

Per verificare il codice esistente, si dovrebbe supporre che il codice è (soprattutto) corretta. Quindi, basta dargli un po 'di dati, eseguirlo e registrare il risultato. Quindi utilizzare tale risultato registrato in un banco di prova.

Quando si esegue il prossimo cambiamento, l'output dovrebbe cambiare troppo e il test avrà esito negativo. Confrontare il nuovo risultato con quello che ci si sarebbe aspettato. Se c'è una discrepanza, allora vi state perdendo qualcosa -.> Scrivere un altro test per capire cosa sta succedendo

In questo modo, è possibile costruire le competenze su un sistema sconosciuto.

Quando si chiede per la copertura, presumo che non è possibile creare i dati di copertura per i calcoli attuali. In questo caso, basta assicurarsi che tutti i calcoli vengono eseguiti e alimentarli a più ingressi. Questo dovrebbe darvi un'idea di come procedere.

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