View
333
Download
8
Category
Tags:
Preview:
DESCRIPTION
How to ensure high quality while developing Android applications? Detailed description of the development process and tools which Google uses: code review, static analysis, automated tests, monkey testing... Experience form using these tools. How applicable are those tools for startups and rapid development?
Citation preview
Continuous Integration for Android – How Google does it
Vladimir Miloševic
Continuous Integration
-Šta je to continous integration?-Šta ovaj proces donosi:
- izbegavanje integracionih problema,-poboljšanje kvaliteta kontinualnom kontrolom,- lakše odrzavanje,-kontrolisanje tehničkog duga.-povecava transparentnost projekta- ranije uočavanje grešaka-poboljšava komunikaciju u timu
Šta dobijamo sa CI
• Uvek postoji bild aplikacije koji može da se instalira
• Najnovija verzija aplikacije je testirana • Možemo lako da ispratimo korake definisane u
Definition of Done
Alati
Findbugs
Lint
Gerrit
Continous Integration
Commit to Gerrit
Build, Run testStatic code analysisResult: +1
Peer review +1
Architect approval +2
Merge
Izmene u kodu
• coding standard https://source.android.com/source/code-style.html
• formatiranje koda android-formatting.xml android.importorder
• refaktoring http://sourcemaking.com/refactoring
Komitovanje na gerrit
• git-repo https://code.google.com/p/git-repo/• format komit poruke:
– kratak naslov,– opis izmena,– zavisnost od drugih izmena,– link na dizajn dokument, user story itd.
Jenkins job
• Trigger on commit, nightly job• Checkout code• Build• Run tests on device or emulator• Run code analysis• Run monkey test
Automatizovani testovi
• Funkcionalni testovi: – Roboelectric– Android Testing
• UI testovi: – UI Automator– Robotium
• Monkey test• Šta testirati, odakle početi
Statička analiza koda
• Lint• Findbugs• Coverity• Protex• Popraviti kritične greške i izbegavati dodavanje
novih
Peer review
• Verifikovanje izmene• Provera da li je neka druga funkcionalnost
pokvarena• Provera kvaliteta koda – coding standard,
formatting, refactoring• Testiranje• Peer review +1
Architect approval
• Da li su svi koraci Definition of Done ispunjeni: – Da li su dodati novi testovi– Da li je napisana dokumentacija– itd.
• Da li se integriše u ispravan branch• Approval +2
Šta je specifično za Android
• Testiranje na različitim uređajima• Cloud remote testing• Deployment faza
Promenite navike
• Pravite male komitove, sa jasno definisanim izmenama funkcionalnosti
• Pišite unit testove • Kod pripada celom timu, ne autorima
Primenjivost u Startup-u
• Kolika je investicija postaviti ovakav proces• Koliko treba održavanja• Koji su benefiti• Kada u projekat uvesti CI
posao@pstech.rs
@PSTechSerbia PSTech PSTechSerbia
praksa@pstech.rs
Thank You!
Recommended