Lookout iOS developer Stephanie Shupe presented at the Grace Hopper Celebration of Women in Computing on October 10, 2014. She explains the processes that Lookout has used to successfully scale its mobile app.
29. Unit Testing
2014
describe(@"+isExpired:",
^{
context(@"when
date
occurred
in
past",
^{
beforeEach(^{
subject
=
[NSDate
dateWithTimeIntervalSinceNow:-‐10];
});
it(@"should
return
expired",
^{
[[theValue([NSDate
isExpired:subject])
should]
beYes];
});
});
context(@"when
date
occurs
in
future",
^{
beforeEach(^{
subject
=
[NSDate
dateWithTimeIntervalSinceNow:1000000];
});
it(@"should
return
not
expired",
^{
[[theValue([NSDate
isExpired:subject])
should]
beNo];
});
});
});
30. Integration Testing
context(@"when
a
request
is
made
with
malformed
data",
^{
it(@"should
return
an
error",
^AsyncBlock
{
Request
*request
=
[Request
new];
2014
...
expect(error).toNot.beNil();
expect(httpResponse.statusCode).to.equal(500);
[client
enqueueRequest:request];
});
});
31. Automated User Interface Testing
§ Automates Manual Tests
§ Test the same app you submit to the
marketplace
2014
32. Automated User Interface Testing
Run Tests
Generate
Screen shots
Linguistic
Verification
2014
Quality
Assurance
33. Automated User Interface Testing
§ Open Source
§ Interacts with UI Elements
§ Tests can be written in Ruby, Java, ObjC
2014
https://saucelabs.com/appium
35. Automated User Interface Testing
2014
Language
English
Japanese
Russian
German
Spanish
French
Device Resolution (px)
480x320
960x640
1024x768
1136x640
1334x750
1920x1080
2048x1536
OS Version
iOS 6
iOS 7
iOS 8
36. Automated User Interface Testing
6 languages
x
7 supported device resolutions
x
3 supported OS Versions
126 Combinations
2014
40. Continuous Integration
− pre- or post- code check in
§ Run test suites
§ Report back status
§ Code Review plugin support
2014
§ Build project
http://jenkins-ci.org/
51. Tools for any size team
Process / Tool 1 dev 2-4 devs 5+ devs
Version Control l l l
Planning Tool m m l
Unit Testing l l l
Code Review Tool m l
Integration Testing m l
Automated UI Testing m m l
Continuous Integration m l
Localization Tool m
Code Style Guideline l
Release Process l
2014
52. Lookout’s Mobile Dev Toolbelt
Process / Tool What Lookout Uses
Version Control Git
Planning Tool JIRA
Unit Testing JUnit, Kiwi
Code Review Tool Gerrit
Integration Testing Robotium, Specta
Automated User Interface Testing Appium
Continuous Integration Jenkins
Localization Tool Web Translate It (WTI)
Code Style Guideline Google / Apple code style guidelines
Release Process Wiki documents
2014