UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA
Corso di Laurea Magistrale in Informatica
Corso di Controllo della Qualità del Software
Anno Accademico 2008/2009
Chipmunk Computer – Fase 1
Identificazione attività di test e analisi
e strumenti per l’automazione
Analisi Requisiti (1)
Obiettivo:
• funzionalità per la vendita on-line di computer
Requisiti funzionali
• Gestione Account Utente: identificare gli
utenti. Funzionalità di accesso, registrazione,
gestione dati personali, sensibili e degli ordini.
– Interazione con database
– Garantire la privacy e la sicurezza dei dati
Analisi Requisiti (2)
• Gestione Acquisto: si compone di
– Selezione del prodotto: due categorie di prodotti, privati e
azienda; personalizzazione di modelli pre-configurati
– Gestione carrello: traccia attività di scelta durante una sessione
utente
– Gestione pagamenti: acquisto effettivo prodotti scelti
• Sicurezza: transazioni gestite con adeguati aspetti di sicurezza
(protocolli, ecc.)
• Prestazioni: quantità di richieste che possono essere gestite e velocità
nella risposta
• Supporto post vendita: assistenza tecnica
• Architettura logicamente divisa in 3-tier: presentazione,
business logic e data layer
• Progettazione e sviluppo per componenti
• Linguaggio object-oriented: JAVA
Attività di Test e Analisi
1. Analisi: ispezione manuale e analisi automatica in
particolare nelle prime fasi (specifica e design) per la
mancanza di artifact eseguibili.
2. Generazione e gestione dei casi di test automatica e
manuale per i diversi tipi di test identificati
3. Esecuzione casi di test:
– Test Strutturali: verificare la correttezza delle singole
componenti che costituiscono le funzionalità di gestione
account, di ricerca e personalizzazione del prodotto, di gestione
del carrello e gestione dei pagamenti
– Test Funzionali: natura dell’applicazione impone di effettuare
test funzionali web-based (test capture and replay).
– Test di Carico: per valutare l’aspetto critico delle prestazioni del
sistema, soprattutto nella gestione dei pagamenti.
– Test Sicurezza: per valutare la sicurezza dell’intera funzionalità di
acquisto.
Strumenti Automazione (1)
Fonte: opensourcetesting.org
1. Analisi
– FindBugs: analisi statica codice Java
2. Generazione e gestione dei casi di test
– Generazione test case da documenti di specifica


Arbiter
Concordion
– Generazione dati per il testing

Data Generator
– Gestione test plan e test case



TestiTool
TestLink
RTH
Strumenti Automazione (2)
3. Esecuzione dei casi di test
a)
Test Strutturale



b)
Test Funzionale:





c)
TestGen4Web
Canoo WebTest
Adopora
Selenium
Sahi
Test di Carico


d)
Junit
Cactus
Jmock
Apache Jmeter
OpenSTA
Test Sicurezza

Nitko
UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA
Corso di Laurea Magistrale in Informatica
Corso di Controllo della Qualità del Software
Anno Accademico 2008/2009
Progetto – Fase 2
Analisi Strumenti
Classe di Strumenti
• Strumenti test funzionale di applicazioni web
• Esecuzione test cases: approccio capture and replay
• Fase capture
– Interazione utente con elementi pagine web (button, link,
ecc.)
– Registrazione con moduli software proxy-server o stand
alone
– Creazione test case: script in linguaggio specifico del tool
– Conversione script in altri linguaggi
– Gestione test suite
• Fase Replay
– Esecuzione test cases o test suite
– Report
Confronto Strumenti (1)
Documentazione e
Supporto
Ambienti
Operativi
Grado
maturità
versione
Processo
installazione
Grado automazione
Apodora
Sito informativo
incompleto
Tutorial video
Guida html
incompleta
Comandi
IronPython
No guida
installazione
Supporto scarso
Tutti i
browser
Solo
windows
Stabile
28/09/2007
File exe 78.9 MB
Microsoft SQL
Server
Python
Html
Script manuali
Linguaggio
Python
No conversione
Selenium
IDE
Esempi, tutorial,
wiki incompleti
Selenium API
Guida
installazione e
uso
Supporto attivo:
blog, forum
Firefox 2
in poi
Tutti S.O.
Beta
03/06/2008
file .xpi è di
419k
Conversione
(JAVA,ecc.)
Script automatici
Selenium API
Confronto Strumenti (2)
Sahi
Documentazione e
Supporto
Ambienti
Operativi
Grado
maturità
versione
Processo
installazione
Grado automazione
FAQ
Forum
Guida
installazione
Tutti i
browser
Tutti S.O.
Stabile 2.0
Zip 1.42 MB
Java 1.4 o
superiore
No conversione
javascript
Confronto Strumenti (3) Funzionalità
• Apodora
–
–
–
–
–
ObjectSpy : capture
Manteiner: gestione db apodora
Controller: creazione ed esecuzione test cases
Report Viewer: gestione report
Batch Manager: creazione ed esecuzione test suite
• Selenium IDE
–
–
–
–
Test suite / test cases manuali o completamente automatici
Codifica in Html, Java, C#, Perl, Php, Python e Ruby
Controllo completo esecuzione
Report completo: test passati/falliti, info errori, warning, ecc.
• Sahi
– Scrittura script in metalinguaggio
– Esecuzione test suite
– Report html con log errori
Selenium IDE: motivazioni
•
•
•
•
Supporto tutti S.O. , e browser (Selenium RC)
Documentazione buona e supporto presente
Installazione immediata senza software aggiuntivi
Buon grado di automazione: scrittura script in
modo automatico e conoscenza solo delle
Selenium API
• Conversione script JAVA, linguaggio utilizzato per
lo sviluppo Chipmunk Computer, per riuso con
altri framework
• Report chiaro e completo
Selenium Suite
UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA
Corso di Laurea Magistrale in Informatica
Corso di Controllo della Qualità del Software
Anno Accademico 2008/2009
Progetto – Fase 3
Integrazione Strumenti
Analisi Requisiti-riassunto
• Architettura del sistema divisa logicamente in
tre livelli: presentazione layer, business logic
layer e data layer,
• Linguaggio object-oriented: Java
• Progettazione e sviluppo per componenti con la
tecnologia EJB e anche l’uso di servlet secondo
il modello MVC
• Processo di sviluppo iterativo
Goal
• Focalizzare l’attenzione su come le attività di controllo della
qualità del software individuate nella prima fase, si integrano
nelle varie fasi del processo di sviluppo di Chipmunk
computer.
• L’insieme delle attività compongono il nostro piano di qualità
che è trasversale al nostro piano di sviluppo. Per quasi tutte le
attività indichiamo il tool utilizzato per l’automazione.
• L’insieme dei tool compongono il nostro framework per il
supporto dell’intero processo di qualità. Gli strumenti sono
stati scelti in modo tale da creare un ambiente omogeneo e
facilitarne l’integrazione tra essi
Attività di qualità nel processo di sviluppo
• relazione tra il processo di qualità e il processo di sviluppo
• attività di qualità non sono isolate ma trasversali a tutto il processo
• processo di sviluppo influenza le attività di qualità
Strumenti per ogni attività (1)
• Verifica delle specifiche: non sono stati individuati strumenti
efficienti per l’automazione, si prevede che venga eseguita
tramite ispezione manuale.
• Generazione Casi di Test:
– creazione di tutti quei test che possono essere derivati dalle
specifiche (test funzionali).
– strumento Concordion, in quanto tra quei pochi disponibili è
l’unico potente e facile da usare. Inoltre si integra con JUnit,
utilizzato per il test strutturale, grazie al fatto che i casi di
test sono generati in Java ; offre anche una buona
documentazione ed i casi di test generati sono in un formato
leggibile che li rende una buona forma di documentazione
del sistema.
Strumenti per ogni attività (2)
• Analisi Statica:
– utile per analizzare il codice in modo esaustivo alla ricerca di
bug patterns
– tool PMD perché:
• si integra perfettamente in un IDE come Eclipse che
intendiamo utilizzare come ambiente di sviluppo,
• effettua l’analisi statica di codice scritto in Java.
• Test Strutturale:
– JUnit: il più usato e robusto strumento per i test di unità di
codice Java ed è alla base di numerosi altri strumenti.
– Cactus: si basa su JUnit, è specializzato per il codice java lato
server (Servlets, EJBs, Tag Libs, Filters, ...), ed è utile per la
nostra applicazione che sarà sviluppata a componenti Java
(EJB) utilizzando anche le servlet.
Strumenti per ogni attività (3)
• Test Funzionale: Selenium
– Conversione dei test case in altri linguaggi come Java, per il
riuso di tali casi di test con altri framework.
– E’facile da utilizzare e installare, ha un ottima automazione
nella creazione dei casi di test ed è probabile una
– relazione con il tool concordion che genera i test case dalle
specifiche in Java, che potrebbero poi essere eseguiti su più
• Test di Performance: Jmeter
– Test su risorse statiche e dinamiche (come Servlet),
– si presta particolarmente bene all’utilizzo sulla nostra web
application, per testare l’ambiente (web server) che ospiterà
l’applicazione dopo il suo deployment. Questo tool è utile
per valutare i requisiti non funzionali riguardanti le
prestazioni e l’affidabilità della nostra applicazione.
Strumenti per ogni attività (4)
• Test di Sicurezza: Nikto, è un software per trovare diversi tipi di
problemi all'interno di webserver
– Considerata la natura web-based del sistema e la presenza di
un web server, questo tool di scansione risulta utile per
verificare i requisiti non funzionali riguardanti in particolare
la sicurezza del web server coinvolto.
• Test Usabilità: questa attività viene eseguita tramite l’utilizzo di
beta tester
Strumenti per ogni attività (5)
• Test Management e BugTracking:
– Bugtracking: BugZilla
• strumento maturo, robusto e supportato dalla comunità ed adatto
per progetti anche di grandi dimensioni come il ChipMunk Computer.
– Test management: BugZillaTestopia
• un estensione di BugZilla per la gestione dei Test Case che ci
permette di rilevare automaticamente i bug a partire dai fallimenti
dei test effettuati (link tra i bug e test).
– Questi due tool utilizzati insieme formano un ambiente che
supporterà il processo di qualità dalla prima fase di analisi
dei requisiti fino alla manutenzione
Framework
Concordion
Selenium
JUnit
Cactus
Nikto
PMD
Eclipse
JMeter
BugZilla Testopia
BugZilla
Scarica

Test Funzionale - Carmine Carella