teste automate good2
TRANSCRIPT
Teste automate“Program testing can be used to show the presence of bugs, but never to show their absence.”(Edsger Dijkstra)
Viorica Popescu-Ţeca
“Eu nu gresesc”
Istorie
Primul unit tool a fost dezvoltat la mijlocul anilor 90 de catre Kent Beck pentru Smalltalk
Junit a fost dezvoltat de Beck and Gamma in zborul de la Zurich la Washington
Junit a devenit tool standard de test pentru Java
Junit face parte acum din multe medii de dezvoltarejava(ex:Eclipse, Jbuilder, BlueJ)
O multime de Xunit-uri au fost dezoltate de-a lungultimpului si pentru alte multe linbaje de programare
QUnit
De ce teste automate?
Ne asigura ca am optinut rezultatul asteptat si suntfolositoare si in timp pentru a verifica daca ce am scrismai este conform cu ceea ce s-a cerut
Este mai usor sa fixezi problemele in timp ce lucrezi incala task-ul respectiv
Creezi produse de calitate
Costurile fixarii bug-urilor sunt mai mici cu cat ele suntdescoperite mai repede
In timp maresc productivitatea programatorilor
Fac intretinerea si refacerea codului mai usoara
Arhitectura
Platforma Junit este un pachet de clase care ne inlezneste scrierea testelor pentru codul nostru
Clasa TestRunner ruleaza testele si raporteazarezultatele(TestResults)
Pentru a putea scrie teste avem nevoie si de clasa Assert
Adnotarile:
@Test public void method()
@Before public void method()
@After public void method()
@BeforeClass public void method()
@AfterClass public void method()
@Ignore
@Test (expected = Exception.class)
@Test(timeout=100)
Ex. de methode de test:
assertTrue, assertsEquals, assertNull, assertNotNull(Assert (JUnit API))
assertTrue(error.isError());
assertTrue(viewName.equals("popup_test"));
assertNotNull(users);
Rularea Testelor
Window → Preferences and select Java → Editor →Content Assist → Favorites
Suita de teste
New → Other → JUnit → Test Suite
Directorul testsursa
Clasa ce va fi testata
Test
Selectarea metodei pentru test
Teste parametrizate
@RunWith(Parameterized.class)
@Parameters
Regulile
Regulie sunt folositepentru a adaugafunctionalitatile care se aplica tuturor testelor
De ex. ExternalResourceexecuta cod inainte sidupa metodele de test fara sa se mai foloseasca@Before si @After
EasyMock
ICalcMethod calcMethod = EasyMock.createMock(ICalcMethod.class);