SlideShare a Scribd company logo
1 of 42
Download to read offline
一个从 1到100000用户
的开源项目
如何 不经意的创造一个流行的开源项目
关于主讲人
Dan	
  Cuellar
• 毕业于卡内基梅隆大学计算机系
• Appium项目发起人
• 供职于 FOODit,任软件测试工程总监
• 曾供职于Microsoft,	
  Zoosk,	
  and	
  Shazam
测试任务中最困难的5个字:
以及类似的
不完美的解决方案
什么是APPIUM
• 基于Selenium	
  JSON-­‐wire	
  协议的,可以控制原生或混合 iOS	
  
及 Android	
  应用的实现。
• 移动应用功能测试领域最流行的开源框架。
APPIUM 哲学
• 使用标准化模块化的APIs	
  和技术;
• 支持多样语言
Java,	
  C#,	
  Python,	
  Ruby,	
  Objective-­‐C,	
  node.js,	
  PHP,	
  以及更多
• 测试中不修改应用本身;
• 免费并开源;
如何工作? UIAutomation /	
  
UIAutomator
Appium
Server
Test	
  脚本
JSON-­‐Wire	
  Protocol	
  Request
JSON-­‐Wire	
  Protocol	
  Response
HTTP
为世人所知
为世人所了解
• 解答了论坛中所有关于该项目的问题;
• 解答了StackOverflow中所有关于该项目的问题;
• 在尽可能多的会议中发表演讲;
• 积极向感兴趣的公司介绍我们;
• 活跃在 Twitter及其他社交媒体。
失控是好现象
• 志愿者们自发提交了Android支持
• 代码被移植到了其他语言
• 我甚至曾经一度不能提交修改 (!)
• 我曾经因为其他演讲者已经发表了关于
Appium主题演讲,而被大会拒绝接纳。
扩展性
• 最终,	
  你无法亲力亲为回答所有问题
• 人们可以从已经丰富了的论坛中学习,开源社区也可以回答他们;
• 你无法测试或评估每一次提交
• 单元测试是必要的
• 你已经不知道appium中正在发生什么
• 撰写高质量的发布说明
• 附加高质量的提交说明
发起一个开源项目
你不应该:
• 使用非开源的技术
• 用电子邮件共享代码
• 缺少文档
• 忘记公开你的讲演文档
• 仅私下交流遇到的问题
正确的做法:
• 全程使用开源技术
• 把代码放到 GitHub
• 撰写文档
• 共享你的演讲文档及视频
• 在论坛中公开得回应问题
出现分歧时
• 事先约定一致认可你们的思想及目标将会很有帮助
• 这里面不涉及等级、权威
• 分歧和冲突最好公开讨论解决
• 辩论会带来更好的解决方案
• 透明化的解决方案能令最终用户更好得理解你们的决定
• 动手写代码的人,一般有做决定的主动权
当和平已经遥不可及
• 失去一些开发者是个损失,但也不是什么大不了的
• 除非他们彻底退出开源世界,	
  他们的工作成果依然可以被大家共享
• 存在多个类似的项目并不是一件坏事
• 竞争带来进步
• 用户喜欢有可选择
总之,	
  最了不起的那个会胜出
一些数字
在过去的3年里
• 在GitHub上收到超过2,000个👍,	
  1,500	
  Forks
• 超过100个贡献者及 5,000次提交
• Appium 1.0	
  被下载超过150,000	
  次
• 有超过3,000个问题被解决
第一条由机器人发出的TWITTER
APPIUM机器人是如何工作的?
• Calibrate	
  the	
  robot	
  to	
  map	
  points	
  in	
  the	
  physical	
  world	
  to	
  points	
  on	
  a	
  
device	
  screen
• Run	
  an	
  app	
  on	
  the	
  device	
  with	
  Appium that	
  can	
  tell	
  you	
  what	
  
coordinates	
  are	
  being	
  touched
• Touch	
  three	
  places	
  on	
  the	
  device	
  and	
  record	
  the	
  physical	
  and	
  device-­‐
centric	
  coordinates
• Build	
  a	
  matrix	
  to	
  translate	
  any	
  point	
  between	
  the	
  two	
  systems
• Intercept	
  touch	
  actions	
  with	
  the	
  AppiumServer	
  and	
  send	
  them	
  to	
  
the	
  	
  robot
数学原理
APPIUM为何成功?
• 从第一天开始,	
  我们就有一个清晰的指导思想和目标
• 尽可能多的吸纳成员,	
  使我们成为一个活跃的社区
• 支持尽可能多的语言和平台
• 使用已经存在的、大家熟悉的工具
• 我们所有的决定都是为了使我们成为一个活跃的社区
• 我们为之奉献
• 去出席参加每一个可以与我们相关的会议、论坛
• 在第一年里,我们机会回答了社区中每一个问题
支持的语言和平台
我们参加的会议
多种语言的网站
支持MAC和WINDOWS
我的习得
“Life	
  can	
  be	
  much	
  broader	
  once	
  you	
  discover	
  one	
  simple	
  fact:	
  
Everything	
  around	
  you	
  that	
  you	
  call	
  life	
  was	
  made	
  up	
  by	
  people	
  that	
  
were	
  no	
  smarter	
  than	
  you	
  and	
  you	
  can	
  change	
  it,	
  you	
  can	
  influence	
  it,	
  
you	
  can	
  build	
  your	
  own	
  things	
  that	
  other	
  people	
  can	
  use.
Once	
  you	
  learn	
  that,	
  you'll	
  never	
  be	
  the	
  same	
  again.”
-­‐Steve	
  Jobs
更多
• 网站:	
  http://www.appium.io
• Slack:	
  appium.slack.com
• 论坛:	
  discuss.appium.io
• GitHub:	
  http://www.github.com/appium/appium

More Related Content

Viewers also liked

C:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสอง
C:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสองC:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสอง
C:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสองwashira
 
การฝึกประสบการณ์วิชาชีพ
การฝึกประสบการณ์วิชาชีพการฝึกประสบการณ์วิชาชีพ
การฝึกประสบการณ์วิชาชีพgrit_1
 
นำเสนอการฝึกงาน
นำเสนอการฝึกงานนำเสนอการฝึกงาน
นำเสนอการฝึกงานPalm Jutamas
 
รายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษารายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษาAttaporn Ninsuwan
 
รูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บทรูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บทAekapoj Poosathan
 
Game Based Learning for Language Learners
Game Based Learning for Language LearnersGame Based Learning for Language Learners
Game Based Learning for Language LearnersShelly Sanchez Terrell
 

Viewers also liked (6)

C:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสอง
C:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสองC:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสอง
C:\Documents And Settings\Admin\Desktop\งานนำเสนอฝึกงานกลุ่มสิบสอง
 
การฝึกประสบการณ์วิชาชีพ
การฝึกประสบการณ์วิชาชีพการฝึกประสบการณ์วิชาชีพ
การฝึกประสบการณ์วิชาชีพ
 
นำเสนอการฝึกงาน
นำเสนอการฝึกงานนำเสนอการฝึกงาน
นำเสนอการฝึกงาน
 
รายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษารายงานการปฏิบัติงานสหกิจศึกษา
รายงานการปฏิบัติงานสหกิจศึกษา
 
รูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บทรูปแบบการเขียนรายงานโครงงาน 5 บท
รูปแบบการเขียนรายงานโครงงาน 5 บท
 
Game Based Learning for Language Learners
Game Based Learning for Language LearnersGame Based Learning for Language Learners
Game Based Learning for Language Learners
 

Similar to Creating an Open Source Project: 0-100k Users - China Mobile Summit 2015 - CN

Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本延胜 黄
 
iOS产品如何实现快速版本发布
iOS产品如何实现快速版本发布iOS产品如何实现快速版本发布
iOS产品如何实现快速版本发布Bin Feng
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium昱劭 劉
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409zhengyiwuxian
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)My own sweet home!
 
Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台MOBINODE
 
Android programming and application
Android programming and applicationAndroid programming and application
Android programming and applicationwucc007isme
 
行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用皓仁 柯
 
Mobile app的測試v2
Mobile app的測試v2Mobile app的測試v2
Mobile app的測試v2Mr PM
 
柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试Trinea Trinea
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍36Kr.com
 
豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验drewz lin
 
Tcon分享 芈峮
Tcon分享 芈峮Tcon分享 芈峮
Tcon分享 芈峮mijun_hlp
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0) My own sweet home!
 
110929 kn-手机软件测试
110929 kn-手机软件测试110929 kn-手机软件测试
110929 kn-手机软件测试Zoom Quiet
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现drewz lin
 
Android快速发布&持续集成
Android快速发布&持续集成Android快速发布&持续集成
Android快速发布&持续集成whykill
 
00.exalogic概览
00.exalogic概览00.exalogic概览
00.exalogic概览Meng He
 

Similar to Creating an Open Source Project: 0-100k Users - China Mobile Summit 2015 - CN (20)

Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
 
iOS产品如何实现快速版本发布
iOS产品如何实现快速版本发布iOS产品如何实现快速版本发布
iOS产品如何实现快速版本发布
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
 
Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台
 
Android programming and application
Android programming and applicationAndroid programming and application
Android programming and application
 
行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用行動與雲端科技在圖書館的應用
行動與雲端科技在圖書館的應用
 
Mobile app的測試v2
Mobile app的測試v2Mobile app的測試v2
Mobile app的測試v2
 
Xpp
XppXpp
Xpp
 
柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍
 
豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验豆瓣I os自动化测试实践和经验
豆瓣I os自动化测试实践和经验
 
Tcon分享 芈峮
Tcon分享 芈峮Tcon分享 芈峮
Tcon分享 芈峮
 
Android工作坊
Android工作坊Android工作坊
Android工作坊
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
 
110929 kn-手机软件测试
110929 kn-手机软件测试110929 kn-手机软件测试
110929 kn-手机软件测试
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现
 
Android快速发布&持续集成
Android快速发布&持续集成Android快速发布&持续集成
Android快速发布&持续集成
 
00.exalogic概览
00.exalogic概览00.exalogic概览
00.exalogic概览
 

More from Dan Cuellar

Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Dan Cuellar
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016Dan Cuellar
 
Writing Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of JelloWriting Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of JelloDan Cuellar
 
How to Give a Successful Lightning Talk
How to Give a Successful Lightning TalkHow to Give a Successful Lightning Talk
How to Give a Successful Lightning TalkDan Cuellar
 
Setting UIAutomation free with Appium
Setting UIAutomation free with AppiumSetting UIAutomation free with Appium
Setting UIAutomation free with AppiumDan Cuellar
 
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - ENStarting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - ENDan Cuellar
 

More from Dan Cuellar (7)

Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016
 
Advanced Appium
Advanced AppiumAdvanced Appium
Advanced Appium
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016
 
Writing Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of JelloWriting Well Abstracted Automation on Foundations of Jello
Writing Well Abstracted Automation on Foundations of Jello
 
How to Give a Successful Lightning Talk
How to Give a Successful Lightning TalkHow to Give a Successful Lightning Talk
How to Give a Successful Lightning Talk
 
Setting UIAutomation free with Appium
Setting UIAutomation free with AppiumSetting UIAutomation free with Appium
Setting UIAutomation free with Appium
 
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - ENStarting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
 

Creating an Open Source Project: 0-100k Users - China Mobile Summit 2015 - CN