Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mobile meetup talk 2013.05.29 Testing mobile apps

376 views

Published on

A short introduction to Jenkins and testing on iOS and Android

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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!

×