开源藏宝图 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
开源软件定制的软件工程学 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
目 录 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
认识一下 CoSign http://www.ossxp.com
单点登录平台
9
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
认识一下 CoSign http://www.ossxp.com
登录成功,显示服务列表
10
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
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
目 录 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
定制的需求 http://www.ossxp.com
不说中国话,以及改说中国话的问题
14
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
定制的需求 ( 续 ) http://www.ossxp.com
需要增加邀请码认证
需要客户 / 亲朋无须注册即可访问
增加邮件地址登录
既可以用 ID 登录,也可以邮件地址登录
双因子认证
来自于 OpenSesame 的需求
请求认证因子的或运算
来自于邮件列表审核的授权需求
其它痒痒的小问题
认证因子的本地化
登录对话框无关认证方式的隐藏
15
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
需求管理 http://www.ossxp.com
使用项目管理工具来记录需求
16
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
需求管理要点 http://www.ossxp.com
需求以功能的方式建立
设置里程碑,让团队看到目标
每个功能都归属于某个里程碑
一个里程碑不要包含太多功能。
快速迭代:小步快跑
程序员开发,提交说明要引用
到需求编号
See #123: 实现 xxx 的部分功
能 ...
Fixes #123: 完成 xxx 功能的
全部实现 ...
17
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
需求管理要点 ( 续 ) http://www.ossxp.com
甘特图:为功能需求设定预期的开发时间
18
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
需求的变更历史 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 19
看看 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
目 录 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
Let's hack... http://www.ossxp.com
在部署路径中,直接修改页面模板
hacking...
如何保存部署目录的现场修改?
使用版本控制系统
Hg, Git 等最适合用做 on the spot 版本控制
修改导出为 patch 文件
现场修改不等于定制开发
现场修改是不完整的代码修改
现场修改是临时性修改,会被新的部署覆盖
22
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
目 录 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
自有项目开发和二次开发区别 http://www.ossxp.com
开发模式的区别,导致版本控制上的区别
24
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
定制开发中的版本控制 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
Subversion 好坏说 http://www.ossxp.com
优点:
基于路径的授权,适合企业应用
在公司纷纷将代码开源的背景下,严格授权是否具有实际意义
代码评审,结对编程等实践,实际上源码已在公司内部开源
适合原生代码的版本控制
缺点:
不适合现场 hacking 的版本控制
受网络限制,分处异地团队的协同,以及移动办公受限
分支合并的成本高
不适合用做二次开发的版本控制
27
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
什么样的版本控制,是定制开发需要的 呢? 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
Thank you, OpenSource http://www.ossxp.com
从来就不会只有唯一的包治百病的解决方案
每个解决方案都会在适于特定环境
选择开源,很多时候是在选型
换手机时,幸福的烦恼:太多的选择
29
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
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
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
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
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
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
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
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
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
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
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
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
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
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
目 录 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
Bug 迟早来相见 http://www.ossxp.com
最近发现的一个 Bug (#165) ,记录在缺陷跟踪系统中
重现方法:
登录后,更换 IP 地址
访问单点登录界面
提示重新认证
点击切换用户
显示空白页面
( 段错误 )
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 49
Debug 过程好辛苦 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 50
代码改动却一点点 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 51
目 录 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
假如之前就实施 代码评审 / 代码复查? http://www.ossxp.com
针对代码提交建立评审任务
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 53
代码评审发现错误 http://www.ossxp.com
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 54
结对编程是更好的复查? http://www.ossxp.com
结对编程来自敏捷软件方法的 XP
代码复查是“小鸡”,结对编程是“猪”
投入不同,产出必然不同
事不关己,高高挂起:代码复查很容易流于形式
结对的代码质量是最高的,评审是实时在进行
如何选择?
工作在同一个地点,选择结对
开发者分处异地,选择代码复查
如:大多数开源项目
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign 55
目 录 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
运行测试用例 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
OVER? http://www.ossxp.com
辛苦写的单元测试仅供一个人把玩?
加入软件集成,即所为冒烟测试
Next...
67
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
目 录 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
持续集成 http://www.ossxp.com
重复性劳动,交给机器去做
避免集成环境差异破坏产品
能够让拥有部分代码的提交
者及时发现集成错误
测试用例在集成中自动运行
及时的反馈
交付构建给测试团队
69
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
持续集成:自动构建 http://www.ossxp.com
代码变更的自动构建,或手动构建
70
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
持续集成:开发和测试的接口 http://www.ossxp.com
构建结果,是开发的输出和测试的输入
71
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
持续集成:测试用例在集成时自动执行 http://www.ossxp.com
单元测试失败,导致的集成失败
72
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
持续集成:测试用例在集成时自动执行 http://www.ossxp.com
单元测试失败,导致的集成失败
73
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
目 录 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
测试过程管理 http://www.ossxp.com
减少测试过程的随意性
编写测试用例
测试用例的维护
整个测试生命周期管理
测试计划
测试需求
测试用例
测试报告
75
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
测试用例维护 http://www.ossxp.com
测试套件和测试用例:让测试过程可重复
76
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
测试报告 http://www.ossxp.com
测试用例覆盖度
77
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
目 录 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
文档 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
编译后的文档 http://www.ossxp.com
HTML 文档的 CSS 样式
82
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
编译后的文档 http://www.ossxp.com
图片放大——灯箱效果
83
北京群英汇信息技术有限公司 Project Management inspired by open source practice —— Hacking CoSign
个人文档习惯 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