continuous integration for android – how google does it

Post on 22-May-2015

331 Views

Category:

Software

8 Downloads

Preview:

Click to see full reader

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?

TRANSCRIPT

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

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!

top related