(Teszt)automatizálás Bevezető
Órák (…az előadások sorrendje változhat) 1. Bevezető – bemutatkozás, követelmények, kérdések és válaszok 2. Előadás – Unit test in general, 3. Előadás – Unit test, Tools and practices, Test Driven Development 4. Előadás – Build engineering 5. Előadás – Continuous integration 6. Előadás - Continuous integration, Tools and practices 7. Előadás – Automatic Deployment, Coverage-Metrics & Tools 8. Előadás – UI Automation - Introduction and Structure 9. Előadás – UI Automation - Page Object 10. Előadás – UI Automation – Behaviour Driven Development (BDD) 11. Előadás – UI Automation – Mobile devices 12. Előadás – Performance Test
Követelmények és osztályzás • A tárgy házi feladatok megoldásával teljesíthető. • Minden házi feladat 33 pontot ér (kapható pontok 1-33). • Időarányosan 5 db házit adunk ki. Nem kötelező minden házit elkészíteni – de így nehezebb jó jegyet szerezni! • Beadási határidő mindig a kiadástól számított 2 hét. • Megszerezhető összes pontszám: 100 – a fentiekből könnyű volt • Osztályzatok: 050 63 76 89 -
49 62 75 88 100
-1 -2 -3 -4 –5
Vizsgaidőszak első hetében maximum egy darab házi pótolható!
„Modern” SW életciklus modellek • Rational Unified Process(RUP) • Agile • • • •
Agile Unified Process(AUP) SCRUM XP technikák KANBAN
• Ajánlott irodalom: • Rational Unified Process (RUP) Áttekintés http://www.logos2000.hu/it/doc/RUP.pdf • Kanban és Scrum - mindkettőből a legjobbat! http://www.adaptiveconsulting.hu/sites/default/files/KanbanEsScrum_MindkettobolALegjobbat_1.pdf
Miért nincs automatizálás sok projekten? • Folyamatok elégtelen ismerete (mit jelent, mivel jár, mit követel meg) • Agile, • KANBAN
• Nem megfelelő eszközök • Kiválasztás (idő - szakértelem) • Használat, rutin, készségszint elérése (idő – képzés)
• Rövidtávú gondolkodás, hozzáállás, • Elején kell a legnagyobb befektetés és később térül meg. • Projekt Menedzsment piramis • A hibajavítás ára
• Menedzsment ismeretek hiánya • Projekt • Változás • Vonali (motiváció, coaching, mentorálás)
A projektmenedzsment háromszög és társai – a mozgásterünk Képesség (funkciók, szolgáltatások és tulajdonságok)
Idő
Minőség
Funkciók
Erőforrások Ütemterv (anyagi, emberi, …) (idő) Projekt Menedzsment
Pénz
Jó osztályzatok
Minőség Agilis tesztelés
Társasági élet Elégséges alvás Egy lehetséges hallgatói megközelítés
A hiba ára (a javítás így a projekt költsége)
A termékben rejtőző hibák megtalálásának és kijavításának ára az idővel arányosan, szigorúan monoton növekvő módon nő.
Iparági kutatások bizonyítják, hogy egy hiba kijavításának költsége (tesztelési) fázisonként egy nagyságrendet ugrik.
Mit és mikor automatizálunk? Azt és ott, ahol és amikor megéri, de vannak az életciklus modellből fakadó alapvető követelmények és igények is, melyeknek meg kell felelni! • Fejlesztési és tesztelési környezet – állapot • Pillanatnyi helyzet • Bizonyos rendszerállapot, konfiguráció, adatok, adatbázisok át, ill. visszaállítása
• Build • Fordítás gyakorisága • Fordítás sebessége (elosztott rendszerek) • Minőség („smoke test”)
• Strukturális tesztelés • • • • •
Hogyan?, White-box, Kód és Rendszer felépítésére, architektúrára figyel, Komponensek és integrációjuk, Lefedettség
Mit és mikor automatizálunk? • Bürokrácia Csökkentése • Összekapcsolt, együttműködő eszközök, keretrendszerek, • Automatikus riportolás, állapotkövetés
• „Unit test” • Min. >70% lefedettség (mérés) • OOP vs. (unit) tesztelhetőség – koncepció, architektúra – • TDD
• Felhasználói felület tesztelése („UI test”) • „Functional test” • Amikor megéri (tip.: smoke, core funtions, critical path, regression)
• Teljesítmény tesztek (Performance, Load, Stress) • Egyébb „Non-Funcional” tesztek (Security/Vulnerability, stb.)
A SW fejlesztés különböző fázisai – automatizálási lehetőségek és igények Performance
Environment & Build
(System)
User Interface
(Integration)
Unit
Automation needs
Ajánlott irodalom – első órák • Unit test
• Build
• JUnit
• SVN
• http://junit.org/ • http://www.tutorialspoint.com/junit/ • http://xunitpatterns.com/
• http://tortoisesvn.net/
• Ant • http://ant.apache.org/ • http://ant.apache.org/resources.html
• Mocking intro:
• Maven
• http://java.dzone.com/articles/the-concept-mocking
• http://maven.apache.org/ • http://www.maestrodev.com/better-build-maven • http://books.sonatype.com/
• Mockito
• Gradle
• https://github.com/mockito/mockito • http://docs.mockito.googlecode.com/hg/org/mockito/ Mockito.html
• EasyMock • http://easymock.org/
• http://www.gradle.org/
• CI • Jenkins • http://jenkins-ci.org/ • http://isbn.directory/book/978-1-4493-0535-2
• Sonar • http://www.sonarqube.org/
Kérés Légy szíves küldjétek el az alábbi kérdésekre a választ a
[email protected] – ra a jövő hét végéig (szept. 20.) • Miért vetted fel a tárgyat? (2-3 mondat max) • Mit vársz tőle? (2-5 mondat/felsorolás max)
Lehetőség szerint az ajánlott irodalom olvasgatása…
Kérdések és válaszok