Presentazione Testing automatizzato

3,021 views

Published on

Presentazione test automazzito in J2EE

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,021
On SlideShare
0
From Embeds
0
Number of Embeds
112
Actions
Shares
0
Downloads
79
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Presentazione Testing automatizzato

  1. 1. TESTING Angelo Lupo angelo.lupo@manydesigns.com
  2. 2. Introduzione Perchè non tutti i programmatori utilizzano i test automatici – Mancanza di tempo – Troppo bravo per introdurre errori – Se cambiano i requisiti del software devono anche cambiare i test – Non ha mai provato test automatizzati – Scarsa cultura aziendale sui vantaggi del testing automatizzato
  3. 3. Testing manuale Vs testing automatico Test manuali – Lunghi da eseguire – Facile inserire errori – Difficilmente ripetibili – Non si riesce a tenere traccia dei test fatti – Ogni programmatore segue una pro- pria “politica”
  4. 4. Testing manuale Vs testing automatico Test automatici –Aumentano la produttività –Favorisco il refactoring ed il merging –Danno garanzie di qualità –Con strumenti di code coverage di supporto al testing è possibile stimare il grado di robustezza dell'applicazione testata
  5. 5. Tipi di test automatico Testing funzionale ● – Verifica le funzionalità del software – Validazione delle specifiche – Controlla che il software esegua quanto è stato richiesto in fase di progettazione Regression Test ● – Sono i test che verificano il corretto funzionamen- to del programma dopo aver apportato apportato nuove modifiche (Es. Cambio API, Database,etc.) Testing prestazione ● – Misura le prestazioni del software
  6. 6. Panoramica strumenti testing Junit ● ● testNg ● Selenium ● Fitnesse ● Cobertura ● HttpUnit, JpdfUnit,ecc
  7. 7. Esempio Junit public class HelloWord { public String getHelloWord() { return quot;Hello, worldquot;; } public static void main() { Hello h = new Hello(); System.out.println(h.greet()); } } public class TestHelloWord extends TestCase { HelloHord hello = null; protected void setUp() { HelloWord hello = new HelloWord(); } public void testHelloWord() { assertEquals(hello.getHelloWord, quot;Hello, worldquot;); } protected void tearDown() { hello = null; } }
  8. 8. Esempio HttpUnit ServletUnitClient client = sr.newClient(); String url = quot;http://127.0.0.1/Indexquot;; System.out.println(url); WebResponse resp = client.getResponse(url); assertEquals(quot;Codice risposta.quot;, HttpServletResponse.SC_OK, resp.getResponseCode()); WebLink link = resp.getLinkWith(quot;Reportquot;); assertNotNull(quot;Reportquot;, link); resp = link.click(); assertEquals(quot;Codice risposta.quot;, HttpServletResponse.SC_OK, resp.getResponseCode());
  9. 9. Esempio selenium import com.thoughtworks.selenium.*; ● public class AndTest extends TestCase { ● private Selenium sel; ● public void setUp() { ● sel = new DefaultSelenium(quot;localhostquot;, ● 4444, quot;*firefoxquot;, quot;http://www.google.comquot;); ● sel.start; } ● ● public void testGoogle() { ● sel.open(quot;http://www.google.com/webhpquot;); ● sel.type(quot;qquot;, quot;hello worldquot;); ● sel.click(quot;btnGquot;); ● sel.waitForPageToLoad(quot;5000quot;); ● assertEquals(quot;hello world - Cerca con Googlequot;, ● sel.getTitle()); } ● ● public void tearDown() { ● sel.stop(); ● } ● } ●
  10. 10. Organizzazione dei test Sezione di inizializzazione del test ● – Creazione delle connessioni – Creazione del database – Creazioni file – Importante fare in modo che il test parta sempre da uno stato not. Test vero e proprio ● Sezione di chiusura del test ● – Chiusura delle connessioni – Cancellazione del database e dei file
  11. 11. Organizzazione dei test MockObject ● Per testare una singola classe è necessario rendere – tale classe indipendente dalle altri classi. La classe va testata “da sola”. Un mockObject è appunto un oggetto che rispetta la stessa interfaccia dell'oggetto che “sostituisce” e permette di testare una classe in isolamento. Grazie ai mockObject non è possibile solamente – testare l'output di un metodo ma anche l'interazione delle classi con altre classi. Esistono dei framework per creare mockObject. –
  12. 12. Esempio Cobertura
  13. 13. Problematiche Testare un applicazione web può rivelarsi un ● impresa ardua : Incompatibilità dei browser – Web 2.0 – Creare ambiente di test spesso è oneroso in termini ● di tempo. La creazione di un database di test puo' richiedere diversi minuti

×