Szoftver tesztelésKrisztián Gyula TóthA Pannon Egyetemen fejlesztett felhő alapú workflow rendszer (ORENBI) back-end oldali fejlesztése alapján a Műszaki Informatikai karon tartott tanszéki szeminárum során előadott prezentációnk. A prezentáció témája, hogy bemutassa a teszt vezérelt fejlesztést (TDD), tesztelési elveket, a különböző teszt típusokat (unit, integration, end-to-end) és rámutasson a teszt írás és így az automatizált tesztek fontosságára a saját tapasztalataink átadásával.
Süllyedünk! Ütközés a tesztelési jégheggyel (Teszt & Tea Meeup Budapest, 2018...Gáspár NagyA teszt automatizálási piramist Mike Cohn vezette több évvel ezelőtt. Bár sokan hallottak már róla, mégis kevesen vannak akiknek az eredeti formájában alkalmazni is tudják. Ennek egyik oka az lehet, hogy a piramis segít leképezni a teszteket az őket megvalósító technológiára (unit, integrációs, UI), de abban, hogy mire szolgálnak ezek a tesztek (tesztelési célok) nem adnak segítséget. A tesztelési jéghegy (testing iceberg) ezt az aspektust próbálja meg megjeleníteni a piramisban.
Az előadásban a tesztelési jéghegy ötletét és részleteit vizsgáljuk meg. Megnézzük, hogy a "víz alatti" tesztek hogy tudják támogatni a jéghegy csúcsán álló, az üzleti követelményekre fokuszáló teszteket. Azt is megnézzük, hogy hogyan lehet a teszteket a piramis szintjei között mozgatni és végül, egy-két ötletet adnunk arra, hogy hogyan lehet a teszt automatizálási piramis hasznunkra a saját projektjeinkben.
Mobil Weekend - A tesztelői csapat evolúciójaCsaba SzabóA Mobil Weekend konferencián előadott prezentációm. (Budapest, 2015 Szeptember 17).
http://mobilweekend.hu/event/session/110494
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...Gáspár NagyA tesztelés szerepe folyamatos kihelyezést használó projektekben
Egységtesztek automatikus generálása forráskódbólZoltan MicskeiA lefedettségi metrikákat nemcsak a tesztkészlet kiértékelésére lehet használni, hanem arra is, hogy a forráskód alapján olyan teszteseteket származtassuk, amik magas lefedettséget érnek el. Az ilyen technikák hasznos kiegészítői lehetnek a fejlesztői és tesztelői eszköztárnak. Az előadás bemutatja a forráskód alapú tesztbemenet-generáló módszereket és egy konkrét .NET-es egységteszt-generáló megoldás, a Microsoft Pex eszközével kapcsolatos tapasztalatokat.
Modell alapú tesztelés: célok és lehetőségekZoltan MicskeiAz előadás bemutatja, hogy miben segíthet a modell alapú tesztelés, milyen felhasználási módjai és támogató eszközei vannak.
Tesztgenerálás a gyakorlatban - Az IntelliTest és ami mögötte vanDávid HonfiEgységtesztek manuális származtatása legtöbb esetben specifikáció alapján történik, ám magas kódfedettség a tesztesetek automatikus generálásával is elérhető. A forráskód alapján történő generáláshoz számos technika és eszköz áll rendelkezésre, amelyek hasznos kiegészítői lehetnek a fejlesztői és tesztelői eszköztárnak. Az előadás bemutatja a forráskód alapú tesztbemenet-generáló módszereket, és egy konkrét .NET-es egységteszt-generáló megoldás, a Microsoft IntelliTest eszközével kapcsolatos tapasztalatokat.
A tesztelés szerepe folyamatos kihelyezést használó projektekben (Microsoft, ...Gáspár NagyA tesztelés szerepe folyamatos kihelyezést használó projektekben
Egységtesztek automatikus generálása forráskódbólZoltan MicskeiA lefedettségi metrikákat nemcsak a tesztkészlet kiértékelésére lehet használni, hanem arra is, hogy a forráskód alapján olyan teszteseteket származtassuk, amik magas lefedettséget érnek el. Az ilyen technikák hasznos kiegészítői lehetnek a fejlesztői és tesztelői eszköztárnak. Az előadás bemutatja a forráskód alapú tesztbemenet-generáló módszereket és egy konkrét .NET-es egységteszt-generáló megoldás, a Microsoft Pex eszközével kapcsolatos tapasztalatokat.
Modell alapú tesztelés: célok és lehetőségekZoltan MicskeiAz előadás bemutatja, hogy miben segíthet a modell alapú tesztelés, milyen felhasználási módjai és támogató eszközei vannak.
Tesztgenerálás a gyakorlatban - Az IntelliTest és ami mögötte vanDávid HonfiEgységtesztek manuális származtatása legtöbb esetben specifikáció alapján történik, ám magas kódfedettség a tesztesetek automatikus generálásával is elérhető. A forráskód alapján történő generáláshoz számos technika és eszköz áll rendelkezésre, amelyek hasznos kiegészítői lehetnek a fejlesztői és tesztelői eszköztárnak. Az előadás bemutatja a forráskód alapú tesztbemenet-generáló módszereket, és egy konkrét .NET-es egységteszt-generáló megoldás, a Microsoft IntelliTest eszközével kapcsolatos tapasztalatokat.
9. A probléma megfogalmazásaA komplex munka minden esetben hibával járA hibák számát és hatását minimalizálni kellKöltséghatékonyságMinden fázisban megfelelő „védekező mechanizmusok”Üzleti tervezésTechnikai tervezésFejlesztésMinőség-ellenőrzésThxTyrael
18. Mi a tesztelésA szoftvertesztelés a szoftverminőség-biztosítás és így a szoftverfejlesztés részétképezi. A tesztelés egy rendszer vagy program kontrollált körülmények melletti futtatása, és az eredmények kiértékelése. A hagyományos megközelítés szerint a tesztelés célja az, hogy a fejlesztés során létrejövő hibákat minél korábban felfedezze, és ezzel csökkentse azok kijavításának költségeit.- Wikipedia
21. KőkorMi az, amit most csinálunk?Lefuttatjukecho, var_dump, trigger_errordebug() függvényProblémákAd hocMódosítások a kódban (korrumpálhat)Nehezen kezelhetőKézzel kell futtatni a bemeneteket
25. A teljesség igénye nélkülVerifikációs teszt (a terméket jól készítettük e el?)Validációs teszt (a megfelelő terméket készítettük e el?)Elfogadási tesztTerhelés tesztBiztonsági tesztKódminőségi tesztekModul/EgységtesztScenario alapú tesztelésGUI tesztelésSeleniumKomplex állapotterek problémája
27. PHP Unit test framerok-ök listájaPHPUnitTestilencePHPSpecBehaviorDrivenDevelopmentLime SymfonyApache-TestOjesDocumentationDriven TestingSimpleTestnem élő fejlesztésSnapTestnem élő fejlesztésAmocknem élő fejlesztés
33. Osztályok tesztelése – az osztály<?phpclassMy_FleetimplementsCountable{protected$ships = array();publicfunctionaddShip($shipName){$this->ships[] = $shipName;}publicfunctioncount(){returncount($this->ships);}publicfunctiongetShip($index){return$this->ships[intval($index)];}}A példa a ZendDevzone-ről származik