浅谈产品测试
内容
o为什么要测试
o影响软件测试过程的因素
o测试的内容
o测试的深度
o测试中可能遇到的困难
为什么要测试
o面临的问题
o希望的结果
o希望的改进
o测试的代价
o客户抱怨使用不方便
o工程人员经常抱怨产品不稳定
o市场人员客户使用遇到的问题不能得到及时的解决
o开发人员经常在工作过程中被电话打断
o开发人员测试自己的产品发现不了问题
o工程人员测试发现不了底层的问题
o产品的测试只停留在表面
o产品修复Bugs后经常因为疏忽产生新的Bugs
o……
希望的结果
o产品卖给客户后不再有任何的回复
o客户发现的问题自己解决
o产品性能一流,稳定性好,方便易用
o源源不断的客户
o……
希望的改进
o经过测试后主动要求客户提供反馈以不断完善产品,进而保证下个客户或者下个产品不出现问题
o总结所有出现的问题并形成知识库,如果再出现相同问题,客户、市场人员、工程人员参考知识库就可以解决
o不断的测试再测试
o回归测试
o……
测试的代价
o开发周期的延长
o测试资源的配置
o产品的不断Delay
oBugs怎么总没完没了啊……
o你产品再不出来就没有市场啦……
影响软件测试过程的变化因素
o开发过程
o软件风险
o客户参与
o测试流程
o测试人员的技能
o其它因素
n测试工具是否充足、有效
n测试预算
n测试日程安排
n来自管理层的指导
n测试人员的工作态度
n等等
开发过程
o开发软件可以遵循多种不同的流程。从随机的、极不统一的流程到结构化的、可预期结果的流程,软件开发流程可以划分为多种成熟度级别。
o如果开发流程是比较成熟的、可以预期结果的,测试人员就可以更好的进行测试,因为在测试以前他就已经能够全面了解开发过程的长处和弱点,进而着重对弱点可能导致的缺陷进行测试。
软件风险
o被测试软件的风险可以从高到低进行分级。软件工程领域有许多种风险模型可以用来进行分析,但它们的基础都是相似的,即那些涉及大笔资金流动的系统、对企业成败起决定性作用的系统、以及规模庞大同时结构复杂的系统使用的软件,被视为是高风险的。
o相对于低风险的软件,测试人员应该将更多精力放在高风险的软件上。
客户参与
o质量保证协会(QAI)的研究结果表明,客户和终端用户的参与是影响软件发展流程效率最重要的因素。
o更多的参与有利于降低软件开发的成本,同时提高软件质量。
o在较少用户参与的条件下开发出的软件更容易遇到诸如客户不满意之类的问题,因为在开发过程中软件极少有机会直接面对客户和终端用户,进而缺少及时的用户反馈和设计改进。
o软件测试人员受益于较多用户介入的软件开发流程,因为被测试软件通常都会有相对较好的设计质量。
测试流程
o与软件开发流程相似,软件测试流程也可以从随意、极不标准到高度结构化、协调统一进行分级。
o软件测试流程的随意性越大,测试人员有效开展工作的难度也就越大;相反,如果测试过程比较规范,测试人员就可以更多的依赖流程本身发现缺陷,提高效率。
o测试人员的技能
o软件测试人员的个人能力对软件测试过程有显著的影响。
o因为对不同被测系统的测试流程不尽相同,而且测试流程通常也不会被十分详细地记录在文档之中,所以测试流程一般不会详尽包括那些有经验的测试人员熟知的工作步骤。这就要求根据测试流程进行测试的必须是一些具备一定的专业能力的人员。
o退一步讲,就算有详细的文档描述软件测试,如果测试人员能力不足、或没有接受过系统的培训,他仍然不能有效的利用这些文档进行测试。
测试的内容
o白盒测试/DVT/单元测试
o黑盒测试/BVT测试
o单元测试/集成测试
o性能测试(压力测试)
o易用性测试
测试的深度
o为什么要有测试的深度
o测试的时机/里程碑
o产品发布时机
测试中可能遇到的困难(1)
o学会如何说不
o解决两难问题
o软件的质量不符合要求
o拖延的产品的发布计划
n对可接受的质量级别达成一致
o满足不断变化的需求
n建立测试标准
n不断修正测试标准来适应各种变化
o测试“扔过墙的”的软件-与开发人员的直接交流
o分配测试时间
n让测试人员也参与制定项目计划
n为测试制定计划和预算
n将需要测试的各个部分划分好优先级
测试中可能遇到的困难(2)
o与客户保持交流 — 与客户和用户的互动
o使管理人员了解测试 — 管理介入软件测试
o无工具测试 — 涉及大量重复性劳动时尽量使用/制作测试工具
o与开发人员保持良好关系
n由开发人员和测试人员组成的统一的项目团队,使成功和失败都不会只归咎于开发与测试之中的某一个
o获得软件测试培训
n获得基本的测试知识体系
我们测试的流程
o专业测试人员的工作:
n参与客户需求/产品设计的全程讨论,更好的了解并熟悉产品的体系结构和具体的内容细节
n编制具有极大重复性劳动的测试工具
n维护(编制/升级/使用)Bugs管理器
n撰写产品测试文档,编写测试示例
n实时提交测试的结果(Bugs)
n测试分析报告
n产品建议
o编码者的工作
nDVT ( Design Verify Test )
nEat DogFood
o自动化测试体系的构建