6. 开源藏宝图 http://www.ossxp.com
ProjectMgmt
_,-> (Redmine) <-._ * Redmine * CoSign
_/ _ Trac
_/ _ Mantis
VCS CI TestMgmt
(SVN,pySvnMager -> (CruiseControl) -> (Testlink) * Subversion * GOsa
Git ...) pySvnManager
Git (topgit,gitosis)
o o o / o o
/| /| | /| /| * Testlink * CruiseControl
/ / / / /
+----------------------------------------------------+ * MoinMoin * Nutch
| Search Engine | MediaWiki Lucene
+----------------------------------------------------+
| Knowledge Base Communication | * WordPress
| (Moin+WordPress) (Mailman+IM?) | Typo
+----------------------------------------------------+
| UserMgmt + Single Signon | * Mailman
+----------------------------------------------------+ phpBB
SMF
6
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
7. 开源软件定制的软件工程学 http://www.ossxp.com
文档
理
管
试 on
测
ha the
管理 ck s
需 求 in po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
元
元
跟踪
测
测
缺 陷
试
试
代码评审
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 7
8. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 8
9. 认识一下 CoSign http://www.ossxp.com
单点登录平台
9
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
10. 认识一下 CoSign http://www.ossxp.com
登录成功,显示服务列表
10
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
12. CoSign 的原理 http://www.ossxp.com
参见
CoSign 2.x 协议介绍
http://blog.ossxp.com/2010/03/824/
CoSign 3.x 介绍及与 CoSign 2.x 的协议比较
http://blog.ossxp.com/2010/03/831/
12
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
13. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 13
14. 定制的需求 http://www.ossxp.com
不说中国话,以及改说中国话的问题
14
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
15. 定制的需求 ( 续 ) http://www.ossxp.com
需要增加邀请码认证
需要客户 / 亲朋无须注册即可访问
增加邮件地址登录
既可以用 ID 登录,也可以邮件地址登录
双因子认证
来自于 OpenSesame 的需求
请求认证因子的或运算
来自于邮件列表审核的授权需求
其它痒痒的小问题
认证因子的本地化
登录对话框无关认证方式的隐藏
15
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
16. 需求管理 http://www.ossxp.com
使用项目管理工具来记录需求
16
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
17. 需求管理要点 http://www.ossxp.com
需求以功能的方式建立
设置里程碑,让团队看到目标
每个功能都归属于某个里程碑
一个里程碑不要包含太多功能。
快速迭代:小步快跑
程序员开发,提交说明要引用
到需求编号
See #123: 实现 xxx 的部分功
能 ...
Fixes #123: 完成 xxx 功能的
全部实现 ...
17
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
18. 需求管理要点 ( 续 ) http://www.ossxp.com
甘特图:为功能需求设定预期的开发时间
18
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
19. 需求的变更历史 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 19
20. 看看 CoSign 最终的实现 http://www.ossxp.com
需要增加邀请码认证
只需知道邀请码,如 test123
增加邮件地址登录
如 jiangxin@moon.ossxp.com
双因子认证
其它应用自动登录:如 wiki
访问 : https://weblogin.moon.ossxp.com/opensesame/
请求认证因子的或运算
邮件列表审核授权:
http://list.moon.ossxp.com/mailman/admindb/dev
实现过程大揭密
即将拉开大幕 ...
20
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
21. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 21
22. Let's hack... http://www.ossxp.com
在部署路径中,直接修改页面模板
hacking...
如何保存部署目录的现场修改?
使用版本控制系统
Hg, Git 等最适合用做 on the spot 版本控制
修改导出为 patch 文件
现场修改不等于定制开发
现场修改是不完整的代码修改
现场修改是临时性修改,会被新的部署覆盖
22
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
23. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 23
24. 自有项目开发和二次开发区别 http://www.ossxp.com
开发模式的区别,导致版本控制上的区别
24
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
25. 定制开发中的版本控制 http://www.ossxp.com
使用 Subversion 的卖主分支管理定制开发
X 合并冲突(所有的 hack 混杂在一起的合并,痛苦有谁知?)
|
58 O 导入上游新版本 v3.x AMD /branches/upstream/*
|
57 O hack 55: M /trunk/src/zzz
|
...
|
4 O hack 02: A /trunk/include/bbb
|
3 O hack 01: M /trunk/src/aaa
|
2 O 建立卖主分支 cp /trunk /branches/upstream
|
1 O 导入上游版本 v2.x A /trunk/*
25
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
27. Subversion 好坏说 http://www.ossxp.com
优点:
基于路径的授权,适合企业应用
在公司纷纷将代码开源的背景下,严格授权是否具有实际意义
代码评审,结对编程等实践,实际上源码已在公司内部开源
适合原生代码的版本控制
缺点:
不适合现场 hacking 的版本控制
受网络限制,分处异地团队的协同,以及移动办公受限
分支合并的成本高
不适合用做二次开发的版本控制
27
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
28. 什么样的版本控制,是定制开发需要的 呢? http://www.ossxp.com
每个 Hack 拥有一个独立的分支
每个分支的产出是一个补丁文件
不需要所有 Hack 都合并到一起的分支,因为徒增烦恼!
分支合并的成本高,不如补丁来得直接
补丁队列 (patch queue) 的管理
quilt 是最通用的补丁列表管理工具
quilt 的输入
源码目录
补丁文件:每个补丁即为对源码的一个 hack
补丁队列: series 文件,即补丁文件安装的先后次序
quilt 两种最主要的用法
quilt push
quilt pop
28
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
29. Thank you, OpenSource http://www.ossxp.com
从来就不会只有唯一的包治百病的解决方案
每个解决方案都会在适于特定环境
选择开源,很多时候是在选型
换手机时,幸福的烦恼:太多的选择
29
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
30. Hg/MQ 为定制做版本控制:一人独享式 http://www.ossxp.com
实际上是两个 Hg 库完成的版本控制
版本库 1 版本库 2
O'(patch2 cont.)
| series
O (patch2) + patch1
| +-- > patch2
O (patch1) - patch3
| - patch4
O (v2.x)
/
O O
|
O
30
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
31. Hg/MQ 的工作过程 http://www.ossxp.com
初始状态
series
- patch1
- patch2
- patch3
- patch4
O (v2.x)
/
O O
|
O
31
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
32. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qpush
series
> patch1
- patch2
O (patch1) - patch3
| - patch4
O (v2.x)
/
O O
|
O
32
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
33. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qpush
series
O (patch2) + patch1
| > patch2
O (patch1) - patch3
| - patch4
O (v2.x)
/
O O
|
O
33
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
34. Hg/MQ 的工作过程 http://www.ossxp.com
modify
O' modify... series
O (patch2) + patch1
| > patch2
O (patch1) - patch3
| - patch4
O (v2.x)
/
O O
|
O
34
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
35. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qref
O' modify...-__ series
O (patch2) __ + patch1
| --> patch2
O (patch1) - patch3
| - patch4
O (v2.x)
/
O O
|
O
35
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
36. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qref
series
O'(patch2) + patch1
| > patch2'
O (patch1) - patch3
| - patch4
O (v2.x)
/
O O
|
O
36
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
37. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qpush -a
O (patch4)
|
O (patch3)
| series
O'(patch2) + patch1
| + patch2'
O (patch1) + patch3
| > patch4
O (v2.x)
/
O O
|
O
37
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
38. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qpop -a
series
- patch1
- patch2'
- patch3
- patch4
O (v2.x)
/
O O
|
O
38
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
39. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg pull upstream
series
- patch1
- patch2'
O (v3.x) - patch3
/ - patch4
O (v2.x)
/
O O O
| |
O O O
39
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
40. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qpush
series
O (patch1) > patch1
| - patch2'
O (v3.x) - patch3
/ - patch4
O (v2.x)
/
O O O
| |
O O O
40
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
41. Hg/MQ 的工作过程 http://www.ossxp.com
$ hg qpush -a
O (patch4)
|
O (patch3)
|
O'(patch2')
| series
O (patch1) + patch1
| + patch2'
O (v3.x) + patch3
/ > patch4
O (v2.x)
/
O O O
| |
O O O
41
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
45. Git + Topgit 演示 (1) http://www.ossxp.com
查看 topgit 分支
$ tg summary
r t/auth_log_for_fail2ban [PATCH] t/auth_log_for_fail2ban
r t/autotools_for_setup [PATCH] t/autotools_for_setup
r t/bugfix_cosign_httponly_quirk [PATCH] t/bugfix_cosign_httponly_quirk
r t/bugfix_no_retry_report [PATCH] t/bugfix_no_retry_report
r t/custom_cosign_path [PATCH] t/custom_cosign_path
r t/factor_admin [PATCH] t/factor_admin
r t/factor_invite [PATCH] t/factor_invite
r t/factor_ldap [PATCH] t/factor_ldap
r t/include_macro_for_templates [PATCH] t/include_macro_for_templates
r t/javascript [PATCH] t/javascript
r t/message_localize [PATCH] t/message_localize
r t/message_translation [PATCH] t/message_translation
r t/multi_language [PATCH] t/multi_language
r t/new_factor_with_flag_3 [PATCH] t/new_factor_with_flag_3
r t/real_remote_user [PATCH] t/real_remote_user
r t/services_template [PATCH] t/services_template
r t/static_htmls_to_templates [PATCH] t/static_htmls_to_templates
45
...
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
48. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 48
49. Bug 迟早来相见 http://www.ossxp.com
最近发现的一个 Bug (#165) ,记录在缺陷跟踪系统中
重现方法:
登录后,更换 IP 地址
访问单点登录界面
提示重新认证
点击切换用户
显示空白页面
( 段错误 )
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 49
50. Debug 过程好辛苦 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 50
51. 代码改动却一点点 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 51
52. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 52
53. 假如之前就实施 代码评审 / 代码复查? http://www.ossxp.com
针对代码提交建立评审任务
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 53
54. 代码评审发现错误 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 54
55. 结对编程是更好的复查? http://www.ossxp.com
结对编程来自敏捷软件方法的 XP
代码复查是“小鸡”,结对编程是“猪”
投入不同,产出必然不同
事不关己,高高挂起:代码复查很容易流于形式
结对的代码质量是最高的,评审是实时在进行
如何选择?
工作在同一个地点,选择结对
开发者分处异地,选择代码复查
如:大多数开源项目
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 55
56. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 56
66. 运行测试用例 http://www.ossxp.com
$ cd tests
$ make
cc -c -o check_lang.o check_lang.c
cc -o check_lang check_lang.o ../cgi/lang.o -lcheck
cc -c -o check_subfile.o check_subfile.c
cc -o check_subfile check_subfile.o ../cgi/subfile.o ../cgi/lang.o -lcheck
$ make check
Running suite(s): Language
100%: Checks: 5, Failures: 0, Errors: 0
PASS: check_lang
Running suite(s): Subfile
100%: Checks: 2, Failures: 0, Errors: 0
PASS: check_subfile
==================
All 2 tests passed
==================
66
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
67. OVER? http://www.ossxp.com
辛苦写的单元测试仅供一个人把玩?
加入软件集成,即所为冒烟测试
Next...
67
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
68. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 68
69. 持续集成 http://www.ossxp.com
重复性劳动,交给机器去做
避免集成环境差异破坏产品
能够让拥有部分代码的提交
者及时发现集成错误
测试用例在集成中自动运行
及时的反馈
交付构建给测试团队
69
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
70. 持续集成:自动构建 http://www.ossxp.com
代码变更的自动构建,或手动构建
70
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
71. 持续集成:开发和测试的接口 http://www.ossxp.com
构建结果,是开发的输出和测试的输入
71
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
72. 持续集成:测试用例在集成时自动执行 http://www.ossxp.com
单元测试失败,导致的集成失败
72
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
73. 持续集成:测试用例在集成时自动执行 http://www.ossxp.com
单元测试失败,导致的集成失败
73
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
74. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 74
75. 测试过程管理 http://www.ossxp.com
减少测试过程的随意性
编写测试用例
测试用例的维护
整个测试生命周期管理
测试计划
测试需求
测试用例
测试报告
75
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
76. 测试用例维护 http://www.ossxp.com
测试套件和测试用例:让测试过程可重复
76
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
77. 测试报告 http://www.ossxp.com
测试用例覆盖度
77
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
78. 目 录 http://www.ossxp.com
文档
理
管
试 on
测
ha the
求 管理 ck s
需 i n po
g t
持
续 版
集 CoSign 本
成 upstream 控
制
单
单
踪
元
元
陷跟
测
测
代码评审 缺
试
试
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 78
79. 文档 http://www.ossxp.com
关于文档的需求
需要哪些文档?用户手册和管理员手册
文档格式有几种? HTML, PDF
写可维护的文档?纯文本写文档,进行版本控制
文档的版本?版本要随着软件走
可行的文档方案
reST : 《The Definitive Guide to Pylons 》
markdown: 《The Git Community Book 》
Docbook : 《Version Control with Subversion 》
群英汇的方案
reST + 自行开发的 Docbones
特色:
HTML 输出增加灯箱效果
HTML 输出的样式表定制
PDF 输出的中文和格式规范化 79
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
82. 编译后的文档 http://www.ossxp.com
HTML 文档的 CSS 样式
82
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
83. 编译后的文档 http://www.ossxp.com
图片放大——灯箱效果
83
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
84. 个人文档习惯 http://www.ossxp.com
你是如何记笔记的?
blog ? wiki ? mindmap?
FreeMind-MMX
freemind.sf.net
freemind-mmx.sf.net
84
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign