6. my.name // Kazuaki Matsuo
my.role // Test Engineer
my. // @Kazu_cocoa
my. // KazuCocoa
my. // kazucocoa.wordpress.com
let my = Profile()
6
7.
8. Agenda
âAbout our development style
â relationship between
departments
â Dev process / flow
âIce break
â Test strategy
â Test tools / tips
âTesting strategy and what
test we run
â UI Testing
8
23. What I talked
23
â About Cookpad
â Our relationship between departments
â Our role in iOS development
â Our development cycle and process
â Who is going to proceed talking each
topics
24. My role and work
~ Focus on technical activities ~
24
28. â Automated tests
â running tests, judgement the results
â GUI Testing
â HTTP Requests check
â âŠ
â Manual tests
â new features
â difficult to run automatically
â exploratory testing
What we check
in test size L/E
28
29. â Automated tests
â running tests, judgement the results
â GUI Testing
â HTTP Requests check
â âŠ
â Manual tests
â new features
â difficult to run automatically
â exploratory testing
What we check
in test size L/E
29
30. ~ GUI Test / Scenario Test ~
~ L/E size ~
UI Testing
30
31. â Run tests based on scenarios
â We cover over 80% screen transitions
â Frequency we run tests
â arbitrary timing or before release the
app
Test cases
31
32. â Scenario based automated test
â Capture HTTP requests
â Screen captures
â Image diff
Our automated tests
32
33. â Unexpected broken scenario
â Unexpected broken network traffic
â Unexpected broken layout
â Crashes
What we can find out
33
40. â Easy to figure out what kind of
unexpected defects caused
â Regression test
â Humans can do other creative activities,
other tasks and so on while running the
automated tests
Advantage of
automated tests
40
41. â If we run all tests with manual
â Scenario/GUI diff
â It takes around a few hours per a
device at least
â We run several devices per release
â We can reduce human resources to do
this kind of tasks
Costs
41
42. iOS 8.0 8.1 8.2 8.3 8.4 9.0 9.1 9.2 9.3 10.0
iPho
ne
⯠⯠⯠⯠⯠⯠⯠⯠-
iPad ⯠⯠⯠⯠⯠⯠⯠⯠-
iPad
Pro
⯠⯠⯠⯠-
â âŻ: select devices we run tests
â 6~8 devices per a release
â iOS8.0 was removed from Xcode
â Do test partially with manual
Combination
42
44. â We should update scenario every
release
â BTW, other libraries and wrappers
are updated only to solve unstable
environment
â We can update scenario within a day
â Include libraries and wrappers
â We can do other tasks except for
automated test
Maintenance costs
44
47. â What is our motivation to enhance
test automation
â 2014/1~: I joined to Cookpad
â Iâm first test engineer
âTest is not only my activity
âWeâd like to ensure minimum quality
to release the application
Motivation
47
49. â include libraries and scenarios
â Appium 0.18.0 ~>
How long have we
developed this tests?
49
50. â We should define concrete plans to
tests
â What kind of test should we plan?
â We should consider software design,
configuration and so on against
software tests
â I used Mindmap to arrange test targets
How to design tests
50
57. â Backend differ from:
â Appium 1.6.x
â WebDriverAgent for xcuitest strategy
â UIAutomator for appium strategy
â Before Appium 1.5.x
â UIAutomator for appium strategy
â Appium try to solve problems between
iOS <=> Appium Server
â Users only know about interface
against Appium server
Appium
57
59. â XCUITest supports over iOS9
â Cookpad supports iOS8.0
â Lifecycle of XCUITest is same as
XCTest
â So, we canât clean environment
every tests.
â e.g. Permission dialog
â This make tests flaky.
â BTW, we should do XCUITest based UI
Testing in the future.
How about XCUITest ?
59