This deck was my sharing in MOPCON 2015. I told about some tips of continuous delivery in mobile development environment and what we did in Taiwan Yahoo. How to make a success strategy for mobile continuous delivery.
3. MOPCON 2013 tech talk deck
http://www.slideshare.net/anistarsung/mopcon-share
What I Done in MOPCON 2013
4. MOPCON 2014 tech talk deck
http://www.slideshare.net/anistarsung/mopcon-2014-best-
software-architecture-in-app-development
What I Done in MOPCON 2014
12. Continuous Delivery (CD) is a software engineering
approach in which teams keep producing valuable
software in short cycles and ensure that the software
can be reliably released at any time.
Continuous Delivery
Wikipedia
“
”
13. Automatic execute tasks to deliver production
Continuous Delivery Pipeline
Task A Task B Task C Release
Commit Automation
Production
Candidate
14. Continuous deliver productions
with version control
Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Commit A Candidate A
15. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Task A Task B Task C
Commit A Candidate A
Commit B Candidate B
16. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Commit A Candidate A
Each change should trigger
next task
17. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Commit A Candidate A
Each change should trigger
next task
18. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Commit A Candidate A
Each change should trigger
next task
19. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Commit A Candidate A
Each change should trigger
next task
20. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Task A Task B Task C
Commit A Candidate A
Commit B Candidate B
21. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Task A Task B Task C
Commit A Candidate A
Commit B Candidate B
22. Continuous Delivery Pipeline
Task A Task B Task C
Commit Automation
Production
Candidates
Task A Task B Task C
Commit A Candidate A
Commit B Candidate B
23. Continuous Delivery Pipeline
Commit Automation
Production
Candidates
Task A Task B Task C
Commit B Candidate B
Someone should be notified if
any part of pipeline fail
28. Everyone is responsible for the development
Everyone is responsible for the quality
Everyone is responsible for the delivery process
Quality Control
31. Mobile Continuous Delivery Pipeline
Commit Testing
Production
Candidate
Commit
Stage
Acceptance
Testing
Non-functional
Testing
Build and Test locally
Commit code after passing necessary testing
32. Creating a pull request for your code change
Pre Commit of CD pipeline
33. Pull request should be reviewed by senior developers
DON’T merge it without code review
Pre Commit of CD pipeline
34. Merge if PR can be built successfully and passing test
Pre Commit of CD pipeline
35. Mobile Continuous Delivery Pipeline
Commit Testing
Production
Candidate
Commit
Stage
Acceptance
Testing
Non-functional
Testing
Build and run Unit Test remotely
Commit Stage should be short and fast
40. Unit test’s code coverage is important as well
Commit Stage of CD pipeline
41. Mobile Continuous Delivery Pipeline
Commit Testing
Production
Candidate
Commit
Stage
Acceptance
Testing
Non-functional
Testing
Asserting feature delivery is user expected
Implement Smoke Test and Function Test
42. Smoke Test - Checking foundational function is workable
Acceptance Test of CD pipeline
43. Functional Test - Checking major features is expected
Separated Test Case by priority - P0, P1, P2
Acceptance Test of CD pipeline
44. Writing Test Case for functional test
Acceptance Test of CD pipeline
TC13
Favorite store add
Given User launch the store app When User
add a store on store page Then User can
view store in favorite store
ID:
Subject:
Description:
45. Writing Test Case for functional test
Acceptance Test of CD pipeline
TC13
Favorite store add
Given User launch the store app When User
add a store on store page Then User can
view store in favorite store
ID:
Subject:
Description:
1
2
3
46. Acceptance Test of CD pipeline
Given User launch the store app When User
add a store on store page Then User can
view store in favorite store
Description:
1
2
3
47. Make functional test stable
iOS: Accessibility
Android: id
Acceptance Test of CD pipeline
storeBanner
storeTitle
itemNum
48. Mobile Continuous Delivery Pipeline
Commit Testing
Production
Candidate
Commit
Stage
Acceptance
Testing
Non-functional
Testing
Assert App works at non-functional level
Performance Test and Stability Test
49. Performance test - Checking for App’s performance
Cold start time
Refresh time
CPU, Memory, Battery usage
Security
etc
Non-functional Test of CD pipeline
50. Stability test - Checking for App’s stability
Using Monkey Test to probe it
Non-functional Test of CD pipeline
52. Making App alive in hard condition:
1. No crash in 5 hours
2. Trigger touch per 100 ms
3. Multiple touchs
4. Keep crazy
5. Avoid dead loop
Non-functional Test of CD pipeline
58. Culture is the key factor to success or fail CD
Everyone is responsible for the quality
Plan stories with feature and testing
No accusing, trust members
Inspire innovation in your team
Building success team
70. Anistar Sung
APAC Yahoo Engineer Manger
http://www.facebook.com/anistarsung
http://blog.riaproject.com
anistarsung@gmail.com
cfsung@yahoo-inc.com
More information
71. Yahoo Related Sessions
Anistar R1/R2/R3 SAT 13:00
Harry R2 SAT 14:00
Howard R1 SUN 10:15
Roger R3 SUN 11:15
Tips of Mobile Continuous Deliver
Unleash The Power of Design
Apple Watch 開發
如何建⽴立⾏行動⽣生態圈