Continuous delivery: cél a működő szoftver Visual Studio 4/16/2017 Application Lifecycle Management konferencia Continuous delivery: cél a működő szoftver Csutorás Zoltán, Novák István, Érsek Attila, Kőnig Tibor © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Minőségbiztosítás: Szabadulj meg a műszaki adósságtól! 4/16/2017 Minőségbiztosítás: Szabadulj meg a műszaki adósságtól! Novák István © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Miről lesz szó? Mi is az a műszaki adósság? Forráskód repository létrehozása Kódvizsgálat Automatikus tesztelés Refaktorálás
A műszaki adósság
Műszaki adósság Mindazon tevékenységek, amelyek nélkül egy munkadarab nincs kész/nem megfelelő minőségű Néhány gyakori ok: Üzleti nyomás Megértés hiánya Célok hiánya Megfelelő tesztelés hiánya Gyenge, hiányos dokumentáció Nem megfelelő együttműködés Túl sok párhuzamos fejlesztés Késleltetett, nem megfelelő refaktorálás
Analógiák a pénzügyi adóssággal Kamat: A meglévő műszaki adósság mellett egyre nehezebb a változtatások megvalósítása. Kezelhető műszaki adósság: Folyamatosan törleszthető, kamatokkal együtt „visszafizethető”. Csődhelyzet: Nincs esély a törlesztésre, a törlesztőrészlet és a kamatok is növekednek.
A forráskód tárolása
Kell egy repository… Continuous delivery: minden pillanatban van termék! Több fejlesztési tevékenység egy adott pillanatban Új termékképességek fejlesztése Éles rendszerben talált hibák javítása Refaktorálás „Proof-of-concept” vizsgálatok Kódváltozatok/kódváltozások folyamatos kezelése Milyen változások vannak két állapot között? Fésüljük össze a változásokat!
Microsoft VSO/TFS kódtárak használata Team Foundation VC Centralizált Csak távoli kódtár „Single point of commit” Git Elosztott Lokális/távoli kódtár „Local commit” Pull/Push Nagyobb méretű, hierarchikus csapatok számára előnyös Agilisan dolgozó csapatok számára előnyös (kis és nagy csapatok)
Microsoft VSO/TFS kódtárak használata Visual Studio 4/16/2017 Microsoft VSO/TFS kódtárak használata Team Foundation VC Centralizált Csak távoli kódtár „Single point of commit” Git Elosztott Lokális/távoli kódtár „Local commit” Pull/Push A Microsoft a saját szoftverfejlesztési projektjein fokozatosan a Git használatára tér át! Nagyobb méretű, hierarchikus csapatok számára előnyös Agilisan dolgozó csapatok számára előnyös (kis és nagy csapatok) © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demó Git Repository létrehozása a VSO portálon Visual Studio 4/16/2017 Új Git repository-t hozok létre a portálon, és megmutatom, hogyan lehet a Visual Studióval rákapcsolódni. © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Kódvizsgálat Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
A kódvizsgálat (code review) célja Műszaki adósságok keletkezésének megelőzése, meglévő adósságok csökkentése
Ahogy a kódvizsgálatot ismerjük… A forráskód tüzetes átnézése Konvencióktól való eltérések vizsgálata Rossz kódolási minták felderítése Potenciális bugok keresése Az „ez nem jó, mert…” szemlélet uralkodik Gyakran alacsony a hatékonysága Idő hiányában ezt hagyja el a csapat először…
Folyamatos kódvizsgálat használata #1: A kódvázak kialakítása már a közösen elfogadott konvenciók tükrében történik #2: A csapat a kód kezelése során folyamatosan, azonnal javítja az észlelt hiányosságokat – formalitások nélkül #3: Rendszeres közös kódvizsgálat: a tanulás és megértés legjobb eszköze – csak egy kisméretű kódrészre fókuszál Az „ez így jobb…” szemlélet uralkodik Nagyon jó a hatékonysága Nem kell időhiány miatt elhagyni
Kódvizsgálat fókuszának változása Csapat kommunikációja Segíti-e a kód felépítése annak megismerhetőségét? Az alkalmazott elnevezések használatával megérthetőbbé válik-e a kód? Hogyan érdemes a kódot átalakítani, hogy egyszerűbben kezelhető legyen? „Business domain” kapcsolat Jól tükröződnek-e a kódban az üzleti funkcionalitás entitásai? Könnyen követhetők-e a valós folyamatok a kódban? Helyesen reprezentálja-e a kód az alapvető üzleti koncepciókat?
A Visual Studio (Online) eszközei Statikus kódanalízis Helytelen, nem javasolt programozási minták keresése a kódban Kódmetrikák A kód bonyolultságával és karbantarthatóságával kapcsolatos kalkulációk Ismétlődő kódrészletek keresése Útmutatás a kód átalakításához Helyén kell kezelni ezeket a méréseket!
Demó Kódanalízis, Kódvizsgálat Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Automatikus tesztelés Visual Studio 4/16/2017 Automatikus tesztelés © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Annak ellenőrzése, hogy a szoftver termék megfelel-e a specifikációnak A tesztelés célja Annak ellenőrzése, hogy a szoftver termék megfelel-e a specifikációnak
A tesztelés valódi célja Annak ellenőrzése, hogy a szoftver termék megoldást ad-e a felhasználó (ügyfél) problémájára
Automatikus tesztelés célja A termék ellenőrzését végző tesztek ésszerű automatizálása – elsősorban fejlesztői felelősség Olyan tesztkészletek előállítása, amelyek gyakran és manuális tevékenységek nélkül futtathatók A kód jelentős részét lefedni tesztekkel (100% - epszilon szabály)
Automatikus tesztelés helye Alulreprezentált tesztelés Felhasználói felület Infrastruk-túra kód Felhasználói felület vezérlőlogika Üzleti homlokzat Infrastruk-túra kód Egységteszt Üzleti logika Egységteszt Adatelérés Adatbázis
Automatikus tesztelés helye Visual Studio 4/16/2017 Automatikus tesztelés helye Túlerőltetett tesztelés Felhasználói felület Automatikus felhasználói felület tesztek Infrastruk-túra kód Felhasználói felület vezérlőlogika Egységteszt Üzleti homlokzat Infrastruk-túra kód Egységteszt Üzleti logika Egységteszt Adatelérés Egységteszt Adatbázis © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Automatikus tesztelés helye Visual Studio 4/16/2017 Automatikus tesztelés helye Hatékony tesztelés Felhasználói felület Infrastruk-túra kód Felhasználói felület vezérlőlogika Egységteszt Egységteszt Üzleti homlokzat Infrastruk-túra kód Egységteszt Üzleti logika Automatikus tesztek Adatelérés Adatbázis © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demó Automatikus tesztelés Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Refaktorálás Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Refaktorálás A kód átstrukturálása – a külső viselkedés átalakítása nélkül Cél: a kód minőségének javítása → Megérhetőség, felfedezhetőség, olvashatóság → Komplexitás csökkentése → Tesztelhetőség, automatizálhatóság javítása → Telepíthetőség, migrációs lehetőségek javítása → Egyéb minőségi jellemzők erősítése Az agilis csapatok mindennapjainak szerves része
Hatékony refaktorálás Visual Studio 4/16/2017 Hatékony refaktorálás Elemi refaktorálási lépés Javítás „Baseline” tesztelés Eredmény tesztelése Refaktorálás Tesztelés © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Refaktorálás: a Visual Studio eszközei Automatikus tesztek Teljesítménytesztelés Alkalmazásprofilok készítése Elemi refaktorálási funkciók Partnerek refaktorálást segítő eszközei Jetbrains ReSharper DevExpress CodeRush
Demó Refaktorálás: a tesztelés szerepe Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Összegzés Legyél tisztában a műszaki adósság jelentőségével! A kódvizsgálatot tekints a tanulás eszközének! Készíts automatikus teszteket!
Visual Studio 4/16/2017 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.