SlideShare uma empresa Scribd logo
1 de 18
En enklere hverdag
med en butler
@cutehacks
whoami
Henrik Hartz (@hhartz)
Utvikler hos Cutehacks AS
iOS, Android, Windows Phone, Qt
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
Manuell arbeidsflyt
Tester
Repo
User
Manual
build
App
Store
Du
pull /
merge
Manual
build
Automatisk arbeidsflyt
● commit
Automatisk arbeidsflyt
Testergit
User
App
Store
Du Jenkins Auto test
Jenkins Dashboard
Jenkins Jobb
Testflight
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)
Takk for meg!
@hhartz
henrik@cutehacks.com
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+te
st+project
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 Maven
Bruk tjenester for å teste server og App 'in the wild' også
● Rollbar
● Pingdom
● Crittercism
Komme i gang med Jenkins
brew install jenkins
launchctl load /usr/local/opt/jenkins/homebrew.
mxcl.jenkins.plist
konfigurere http://localhost:8080/
● server
● plugins
● jobb
Hva er enhetstester?
● Verifikasjon av logiske kodeenheter
● Minimalt av tilstand og kompleksitet
● Bygges opp av forventede sannheter
● Enkle aksiomer, sant/usant, null/!null
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 data
STAssertTrue(backend.user.ID > 0, @"User ID is not >0");
STAssertTrue([backend.user.primaryEmail isEqualToString:testEmail],
@"Email is different from what we registered");
}
Skrive unit-tester; Android
import 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));
}
Resultater!

Mais conteúdo relacionado

Destaque

Netwerken bij MarCom Noord-NL 09 04
Netwerken bij MarCom Noord-NL  09 04Netwerken bij MarCom Noord-NL  09 04
Netwerken bij MarCom Noord-NL 09 04derkeimers
 
Community Mobilization: Indonesia MITRA TB Project
Community Mobilization: Indonesia MITRA TB ProjectCommunity Mobilization: Indonesia MITRA TB Project
Community Mobilization: Indonesia MITRA TB Projectjehill3
 
Savior Skin Template
Savior Skin TemplateSavior Skin Template
Savior Skin TemplateMarcMooney
 
Sgp Final
Sgp FinalSgp Final
Sgp FinalAmirjon
 
Polynomials
PolynomialsPolynomials
Polynomialsnina
 
@Tim_Official: Il Customer care va su Twitter
@Tim_Official: Il Customer care va su Twitter@Tim_Official: Il Customer care va su Twitter
@Tim_Official: Il Customer care va su TwitterLUCA BARTOLINI
 
Strategisk Innovationsagenda e-hälsa i hemmet
Strategisk Innovationsagenda e-hälsa i hemmetStrategisk Innovationsagenda e-hälsa i hemmet
Strategisk Innovationsagenda e-hälsa i hemmetDag Forsén
 
Powers of 10
Powers of 10Powers of 10
Powers of 10Earl Cote
 
Differentiated instruction presentation
Differentiated instruction presentationDifferentiated instruction presentation
Differentiated instruction presentationb l
 
Save the Children’s Community Case Management Initiative
Save the Children’s Community Case Management InitiativeSave the Children’s Community Case Management Initiative
Save the Children’s Community Case Management Initiativejehill3
 
Rendement uit Google met SEA & SEO
Rendement uit Google met SEA & SEORendement uit Google met SEA & SEO
Rendement uit Google met SEA & SEOWieger Waardenburg
 
Vad är QR-koder?
Vad är QR-koder?Vad är QR-koder?
Vad är QR-koder?Dag Forsén
 
2009 IAITAM Conference - Stockman
2009 IAITAM Conference - Stockman2009 IAITAM Conference - Stockman
2009 IAITAM Conference - Stockmansstockman
 
Laerdal: Helping Save Lives
Laerdal: Helping Save LivesLaerdal: Helping Save Lives
Laerdal: Helping Save Livesjehill3
 

Destaque (19)

Netwerken bij MarCom Noord-NL 09 04
Netwerken bij MarCom Noord-NL  09 04Netwerken bij MarCom Noord-NL  09 04
Netwerken bij MarCom Noord-NL 09 04
 
Community Mobilization: Indonesia MITRA TB Project
Community Mobilization: Indonesia MITRA TB ProjectCommunity Mobilization: Indonesia MITRA TB Project
Community Mobilization: Indonesia MITRA TB Project
 
IAC-15.B2.5.1_paper
IAC-15.B2.5.1_paperIAC-15.B2.5.1_paper
IAC-15.B2.5.1_paper
 
Savior Skin Template
Savior Skin TemplateSavior Skin Template
Savior Skin Template
 
Sgp Final
Sgp FinalSgp Final
Sgp Final
 
Manual
ManualManual
Manual
 
Polynomials
PolynomialsPolynomials
Polynomials
 
Treball Filosofia _ ZANTHE
Treball Filosofia _ ZANTHETreball Filosofia _ ZANTHE
Treball Filosofia _ ZANTHE
 
Treball Filosofia _ ZANTHE_PDF
Treball Filosofia _ ZANTHE_PDFTreball Filosofia _ ZANTHE_PDF
Treball Filosofia _ ZANTHE_PDF
 
@Tim_Official: Il Customer care va su Twitter
@Tim_Official: Il Customer care va su Twitter@Tim_Official: Il Customer care va su Twitter
@Tim_Official: Il Customer care va su Twitter
 
Strategisk Innovationsagenda e-hälsa i hemmet
Strategisk Innovationsagenda e-hälsa i hemmetStrategisk Innovationsagenda e-hälsa i hemmet
Strategisk Innovationsagenda e-hälsa i hemmet
 
Plants(2)
Plants(2)Plants(2)
Plants(2)
 
Powers of 10
Powers of 10Powers of 10
Powers of 10
 
Differentiated instruction presentation
Differentiated instruction presentationDifferentiated instruction presentation
Differentiated instruction presentation
 
Save the Children’s Community Case Management Initiative
Save the Children’s Community Case Management InitiativeSave the Children’s Community Case Management Initiative
Save the Children’s Community Case Management Initiative
 
Rendement uit Google met SEA & SEO
Rendement uit Google met SEA & SEORendement uit Google met SEA & SEO
Rendement uit Google met SEA & SEO
 
Vad är QR-koder?
Vad är QR-koder?Vad är QR-koder?
Vad är QR-koder?
 
2009 IAITAM Conference - Stockman
2009 IAITAM Conference - Stockman2009 IAITAM Conference - Stockman
2009 IAITAM Conference - Stockman
 
Laerdal: Helping Save Lives
Laerdal: Helping Save LivesLaerdal: Helping Save Lives
Laerdal: Helping Save Lives
 

Semelhante a Mobile meetup talk 2013.05.29 Testing mobile apps

React for designere - Yggdrasil 2017
React for designere  - Yggdrasil 2017React for designere  - Yggdrasil 2017
React for designere - Yggdrasil 2017Fredrik Jensen
 
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og SolrPresentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og SolrFrontkom
 
Presentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and SolrPresentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and SolrHenrik Akselsen
 
Phonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklerePhonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklereAnders Brenna
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksisHåvard Wigtil
 
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016Geodata AS
 

Semelhante a Mobile meetup talk 2013.05.29 Testing mobile apps (6)

React for designere - Yggdrasil 2017
React for designere  - Yggdrasil 2017React for designere  - Yggdrasil 2017
React for designere - Yggdrasil 2017
 
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og SolrPresentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
 
Presentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and SolrPresentation of Newsfront. Case study using Drupal, Angular and Solr
Presentation of Newsfront. Case study using Drupal, Angular and Solr
 
Phonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklerePhonegap: apputvikling for webutviklere
Phonegap: apputvikling for webutviklere
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
 
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
Lag dine egne native applikasjoner med ArcGIS AppStudio - BK2016
 

Mobile meetup talk 2013.05.29 Testing mobile apps