Creato da pastuweb.com
Share My Page
My Social Accounts
Account FaceBook Account LinkedIn Account Twitter Account Google Plus Account Git Hub

Il processo di Testing ha lo scopo di identificare la correttezza, la completezza, la sicurezza e la qualità del prodotto sviluppato.

Per fare questo occorrerebbe analizzare il comportamento di un programma per ogni possibile valore assunto dai parametri di input. Non potendo farlo fisicamente, ciò che si cerca di avere un software di qualità misurabile facendo dei test limitati.

Il processo di testing ha lo scopo di ridurre il rischio che un sistema funzioni in modo diverso rispetto alle sue specifiche, a un livello considerato accettabile. -----> il testing ha un significato cautelativo, di fatto si vuole ridurre la probabilità che un bug si verifichi e si vuole ridurre anche l'impatto.

Testing e Debugging sono due concetti spesso confusi l'uno con l'altro, hanno significato diverso.

Lo scopo del testing è quello di mettere in evidenza se un programma ha dei difetti (bug). Lo scopo del debugging è quello di determinare la causa di un eventuale difetto e correggerlo. Di fatto il debugging segue il testing.

difetto (fault) è un bug presente in un programma o in un documento. Può dare origine a malfunzionamenti (manifestazione visibile di un difetto). Un difetto è origine di un errore umano.

Attività di testing è basata su un certo numero di principi:

  • il testing mostra la presenza di difetti
  • effettuare un test esaustivo è impossibile
  • iniziare i test il prima possibile
  • il testing dipende dal contesto
  • i difetti dovrebbero essere la minoranza
  • il testing deve essere fatto da persone con gli skill adeguati
  • il testing deve essere fatto da persone indipendenti
  • il fatto che esista un processo di testing non esime gli sviluppatori dal consegnare software di buona qualità e pre-testato
  • legge di Pareto: il 20% dei moduli contiene l'80%  dei difetti. Il motivo è il fatto che, spesso, un difetto ne produce altri.

Conduzione dei test:

  • disegno dei test
  • preparazione dei test
  • conduzione dei test
  • valutazione dei risultati

Disegno dei test

  • suddivisione per ambito
    • unit testing: si testono solo gli algoritmi e quindi le singole unità di codice cioè le singole funzioni (es: black box, white box)
    • integration testing: l'oggetto di controllo sono le interfacce, vengono usati gli stubs, componenti fittizzi che forniscono elementi vuoti senza la parte di implementazione, come le calssi astratte o le interfacce in Java.
    • system testing: le prestazioni, sicurezza e l'affidabilità
  • suddivisione per scopo
    • test di correttezza
    • test di performance
    • test di sicurezza
    • test di affidabilità
    • test di conformità

Una cosa interessante da sapere è che la modalità black box si differenzia dalla white box perchè, nel caso del black box,si vanno a testare le interfacce, le strutture dei dati, quindi analisi dei casi limite, test di sintassi di input e test casuali. Nel caso dei white box si va ad analizzare il codice vero e proprio, quindi la logica.

Regression testing

Consiste nel verificare l'assenza di difetti su codice già controllato in precedenza, dopo l'inserimento di nuove versioni di software, patches, upgrade e altro. E' una fase di test tipica in metodologie di sviluppo cicliche.

System testing

Viene condotto su un sistema integrato e finale, seguendo la metodologia black-box. Questa fase di test dovrebbe poter mostrare eventuali incosistenze del software nella sua interezza oppure quando viene calato su un determinato hardware, o comunque quando viene installato in un determinato ambiente nel suo complesso.

Di questa categoria fanno parte test come test di carico e di performance, test di usabilità legati ai tempi di risposta del sistema, test di sicurezza e altri ancora.

Average (1 Vote)
The average rating is 5.0 stars out of 5.