|
本帖最后由 shtrong 于 2013-6-24 20:18 编辑
如需PPT,可微信向我索取:WXshtrong
在<新测试主管的几件事>这个文章评论中,有提到提高合作团队(开发、业务等)的质量意识。曾经我也给项目其他角色人员进行过测试相关的培训,以下是培训内容,分享给各位。
为什么需要软件测试?
软件开发依赖于人的经验。
同一个功能,一百个人负责开发会有一百种代码实现。而工业产品生产不同,只要确定一个物理模型即可创建成千上百个几乎完全相同的产出物。除此之外,经验性过程控制跟预定义过程控制还有很大的区别:
1. 过程无法预先定制;
2. 结果不可预知;
3. 过程不可重复;
4. 不断升级,不断改造;
5. 带有一定的探索性;
因此,软件测试是软件研发活动中必要的环节。
与项目中其他角色达成一致?
测试活动是研发活动中重要组成部分。
测试工作是透明于项目组和项目经理的。
测试目标:尽可能多的发现潜在的bug,保证产品功能的完整实现,平衡研发成本和收益。
我们在项目阶段由测试主导的活动一般会采用什么样的方式。{注:指有独立测试团队的研发模式}
项目中的测试工作?
#1 项目测试leader的工作
类似于系统分析人员,主导项目中的测试工作。
包括但不限于以下较为重要的四点:
1) 功能测试分析
2) 测试计划、资源的协调等
3) 非功能性测试分析,如性能分析、安全测试分析等
4) 项目测试管理。
#2 测试用例的管理
针对于项目测试功能点的用例版本库的新增和维护。
其中同时维护一份自动化用例「功能用例是基于步骤的,自动化用例是基于流程的」,如果有可能,在项目测试阶段,同时会设计和更新主功能自动化脚本。
#3 测试报告
1) 测试日报,反馈每天测试工作的进度偏差,风险预警等。
2) 项目正式发布前,采用项目专家评审的方式,完成质量评估报告。
3) [可选]代码走查报告等。
#4 缺陷管理
每个公司都有自己的缺陷管理工具,常见的有IBM的CQ,HP的QC以及开源的bug free等。
需要跟其他角色提前沟通并定义的两个参数含义。
严重程度:用来衡量bug对用户或系统所带来的影响程度。
优先级: 建议bug fix的先后顺序,避免测试工作的阻塞,提高测试效率。
其中:严重程度和优先级采用的是相对值;优先级不完全取决于严重程度。
#5 漏测保证措施
只通过业务加前期的系统分析并不一定能够覆盖100%的测试验证点。
一般在测试中后期,会采用代码覆盖率分析等方式对测试遗漏点进行排查,加上最后一道屏障。
同时部分项目中,在前期可能就采用了持续集成,以提高每次代码提交了质量,同样为质量保障措施之一。
#6 自动化、性能测试
自动化会根据项目的实际情况分为ui、api、class级别的测试。
性能测试根据测试分析过程中的性能潜在风险及业务需要来决定。 |
|