Mobile meetup talk 2013.05.29 Testing mobile apps

270 views
222 views

Published on

A short introduction to Jenkins and testing on iOS and Android

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
270
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mobile meetup talk 2013.05.29 Testing mobile apps

  1. 1. En enklere hverdagmed en butler@cutehacks
  2. 2. whoamiHenrik Hartz (@hhartz)Utvikler hos Cutehacks ASiOS, Android, Windows Phone, Qt
  3. 3. Hva er Jenkins?● Jenkins er en server som automatiserer jobber● Vi bruker Jenkins til å○ bygge siste versjon○ kjøre enhetstester○ lage pakker til distribusjon● Jenkins gir oss○ friksjonsløs bygging○ enklere release○ rask tilbakemelding
  4. 4. Manuell arbeidsflytTesterRepoUserManualbuildAppStoreDupull /mergeManualbuild
  5. 5. Automatisk arbeidsflyt● commit
  6. 6. Automatisk arbeidsflytTestergitUserAppStoreDu Jenkins Auto test
  7. 7. Jenkins Dashboard
  8. 8. Jenkins Jobb
  9. 9. Testflight
  10. 10. Hva trenger du?● Mac mini - lar deg gjøre iOS og Android● Jenkins installasjon - http://jenkins-ci.org/● Git repo - http://github.com● Testflight konto - http://testflightapp.com● (HipChat - http://hipchat.com)
  11. 11. Takk for meg!@hhartzhenrik@cutehacks.com
  12. 12. Linker● http://jenkins-ci.org/● http://www.sailmaker.co.uk/blog/2013/04/02/advanced-jenkins-for-ios-and-mac/● https://wiki.jenkins-ci.org/display/JENKINS/Building+an+Android+app+and+test+project
  13. 13. Trips og ticksÅ ha tester er alltid lurt!● Test for negative resultater / forventede feil● Alltid test før release!● Få Jenkins til å klage i chat-rom ;-)Jenkins kan trenge et klapp på ryggen av og til● for lite permGen til MavenBruk tjenester for å teste server og App in the wild også● Rollbar● Pingdom● Crittercism
  14. 14. Komme i gang med Jenkinsbrew install jenkinslaunchctl load /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plistkonfigurere http://localhost:8080/● server● plugins● jobb
  15. 15. Hva er enhetstester?● Verifikasjon av logiske kodeenheter● Minimalt av tilstand og kompleksitet● Bygges opp av forventede sannheter● Enkle aksiomer, sant/usant, null/!null
  16. 16. Skrive unit-tester; iOS- (void) test_0003_1_LoginUsingPassword{AFHTTPRequestOperation *operation =[Backend loginEmail:testEmail withPassword:testPassword];STAssertTrue([self waitFor:operation], @"operation timed out");STAssertNil(operation.error, @"Login failed: %@", operation.error.description);// check the user has the predefined dataSTAssertTrue(backend.user.ID > 0, @"User ID is not >0");STAssertTrue([backend.user.primaryEmail isEqualToString:testEmail],@"Email is different from what we registered");}
  17. 17. Skrive unit-tester; Androidimport junit.framework.TestCase;public class BaseModelTest extends TestCase {/*** Test that a null item does not equal a non-null item.*/public void testEqualsNull() {DummyModel d1 = new DummyModel();DummyModel d2 = null;assertFalse(d1.equals(d2));}/*** Test an item equals itself (reflexsive property).*/public void testEqualsSameObject() {DummyModel d1 = new DummyModel();assertTrue(d1.equals(d1));}
  18. 18. Resultater!

×