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.

MOPCON 2015 - Tips of Mobile Continuous Delivery

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.

  • Be the first to comment

MOPCON 2015 - Tips of Mobile Continuous Delivery

  1. 1. Tips of Mobile Continuous Delivery Anistar Sung
  2. 2. Anistar sung 宋志峰 APAC Yahoo Engineer Manger Introduction
  3. 3. MOPCON 2013 tech talk deck
 http://www.slideshare.net/anistarsung/mopcon-share What I Done in MOPCON 2013
  4. 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
  5. 5. Why we should do testing Is that wasting our time?
  6. 6. The following story is inspired 
 by actual events
  7. 7. SOFTWARE TESTING IS 
 NOT OPTIONAL but it doesn’t have to be a burden
  8. 8. High Quality Fast Delivery Low Maintenance Cost
  9. 9. Continuous Delivery Pipeline How it works with CD pipeline
  10. 10. 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 “ ”
  11. 11. Automatic execute tasks to deliver production Continuous Delivery Pipeline Task A Task B Task C Release Commit Automation Production
 Candidate
  12. 12. Continuous deliver productions 
 with version control Continuous Delivery Pipeline Task A Task B Task C Commit Automation Production
 Candidates Commit A Candidate A
  13. 13. 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
  14. 14. Continuous Delivery Pipeline Task A Task B Task C Commit Automation Production
 Candidates Commit A Candidate A Each change should trigger next task
  15. 15. Continuous Delivery Pipeline Task A Task B Task C Commit Automation Production
 Candidates Commit A Candidate A Each change should trigger next task
  16. 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. 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. 18. 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
  19. 19. 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
  20. 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. 21. 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
  22. 22. Demo Using physical device to be the whistle
  23. 23. TVBS News Visits Yahoo Office
  24. 24. Quality Control
  25. 25. Everyone is responsible for the development Everyone is responsible for the quality Everyone is responsible for the delivery process Quality Control
  26. 26. Mobile Continuous Delivery Pipeline The strategy of Mobile CD pipeline
  27. 27. Continuous Delivery Pipeline Task A Task B Task C Release Commit Testing Production
 Candidate
  28. 28. 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
  29. 29. Creating a pull request for your code change Pre Commit of CD pipeline
  30. 30. Pull request should be reviewed by senior developers DON’T merge it without code review Pre Commit of CD pipeline
  31. 31. Merge if PR can be built successfully and passing test Pre Commit of CD pipeline
  32. 32. 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
  33. 33. Compile source code to build an App Commit Stage of CD pipeline
  34. 34. Writing Unit Test but not like this one Commit Stage of CD pipeline
  35. 35. Using Arrange-Act-Assert pattern to write Unit Test Commit Stage of CD pipeline
  36. 36. Useless unit test sample Commit Stage of CD pipeline
  37. 37. Unit test’s code coverage is important as well Commit Stage of CD pipeline
  38. 38. 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
  39. 39. Smoke Test - Checking foundational function is workable Acceptance Test of CD pipeline
  40. 40. Functional Test - Checking major features is expected Separated Test Case by priority - P0, P1, P2 Acceptance Test of CD pipeline
  41. 41. 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:
  42. 42. 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
  43. 43. 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
  44. 44. Make functional test stable iOS: Accessibility
 Android: id Acceptance Test of CD pipeline storeBanner storeTitle itemNum
  45. 45. 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
  46. 46. Performance test - Checking for App’s performance Cold start time Refresh time CPU, Memory, Battery usage Security etc Non-functional Test of CD pipeline
  47. 47. Stability test - Checking for App’s stability Using Monkey Test to probe it Non-functional Test of CD pipeline
  48. 48. Non-functional Test of CD pipeline
  49. 49. 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
  50. 50. Demo Monkey test in dead loop
  51. 51. Permission
  52. 52. Jump out
  53. 53. Block
  54. 54. Key Success Factor for CD Building a high quality delivery team
  55. 55. 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
  56. 56. Demo XingZhe - Testing script generator
  57. 57. 在沒有很久的很久很久以前, 撰寫功能測試是⼀一件痛苦的事情。
  58. 58. 當介⾯面設計有所改變時, 必須重新撰寫功能測試。
  59. 59. 為此,我們從花果⼭山請來了 傳說中的猴⼦子⺩王孫⾏行者
  60. 60. 透過撰寫Markdown 跟猴⼦子說⼈人話 就可以輕鬆產⽣生測試程式
  61. 61. 因為寫的是⼈人話 使⽤用版本控制也能輕鬆追蹤修訂
  62. 62. 簡單⼀一個 $ make
  63. 63. 就像孫⾏行者拔⽑毛⼀一吹⼀一樣 測試程式就通通產⽣生出來啦!
  64. 64. XingZhe - The Monkey King
  65. 65. SOFTWARE TESTING IS 
 NOT OPTIONAL but it can be a good helper for quality
  66. 66. Anistar Sung
 APAC Yahoo Engineer Manger http://www.facebook.com/anistarsung
 http://blog.riaproject.com anistarsung@gmail.com
 cfsung@yahoo-inc.com More information
  67. 67. 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 開發 如何建⽴立⾏行動⽣生態圈
  68. 68. 請到 104 搜尋 “Yahoo奇摩”
 MOPCON Yahoo 現場攤位 4F Welcome join us
  69. 69. Q + A

    Be the first to comment

    Login to see the comments

  • checkincheckin

    Nov. 17, 2015
  • ssuser43035c

    Nov. 17, 2015
  • freezejonny

    Nov. 18, 2015
  • towelroot

    Nov. 18, 2015
  • anistarsung

    Nov. 18, 2015
  • luckycharmjun

    Nov. 18, 2015
  • TimLee4

    Nov. 19, 2015
  • yeago

    Nov. 20, 2015
  • MichaelNii

    Nov. 24, 2015
  • robhamk

    Nov. 24, 2015
  • perrtang

    Dec. 29, 2015
  • nileshakanawade

    Dec. 30, 2015

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.

Views

Total views

7,382

On Slideshare

0

From embeds

0

Number of embeds

6,045

Actions

Downloads

18

Shares

0

Comments

0

Likes

12

×