测试改进分析
测试改进的策略主要有三点:
首先是要改进新功能测试的策略。
一般来说,每次短期的迭代都有新的功能加入产品中,因此针对新功能的测试方法,在短期迭代周期中需要改进。不需要编写测试用例,直接基于对需求的理解梳理出测试场景,按照测试场景来验证新功能。
即使一定要写测试用例,可以不用太详细,只要保证用例能够覆盖各个功能点即可。
持续性验证包括单元测试和集成测试两个阶段,它们都是输入准备好的数据,验证输出结果,从而覆盖所有业务流程。易于察觉流程式的功能问题:逻辑混乱、输出不合理等。
测试人员和开发人员工作保持同步,可以参与代码审查,从而更好地理解系统的实现,也更容易发现问题。
同时可以实施组合交互性测试、探索性测试和用户场景测试,更高效地发现缺陷。
其次是改进回归测试的主要策略。
由于每次迭代基本都会增加新功能,回归测试覆盖范围在不断扩大,而每次迭代计划完成时间不变,这样使得留给验收测试的时间极其有限,所以回归测试必须采用自动化测试。
敏捷模式下执行回归测试时,可以让开发人员配合再做代码关联分析,明确本次回归测试需要关注的重点模块,从而缩小了测试范围;开发人员、业务人员、需求分析人员可以利用空闲时间参与到持续回归测试过程中来。
最后是改进自动化测试策略。
一般软件开发项目中,花在获取客户要求和沟通需求设计两方面的时间已经占据了一大部分,而对于敏捷开发而言,注重的是短周期迭代开发,这样就严重压缩了编写和调试自动化脚本的时间,尤其对新功能的测试很难用自动化测试完整地去实现。此时,需要使用正确的策略来加快自动化测试的速度。
质量研究
敏捷开发模式的特点是迭代与增量、快速响应变化。敏捷测试要求质量保证体系做到有成效、有效率、响应变化,敏捷测试要求测试人员 “尽早地和不断地测试软件”。
敏捷模式
敏捷模式注重的主要体现在以下五个方面:
对于增量的检验,需要经过验收阶段。
在理想的敏捷开发过程中,每个迭代开发完成后会产出一个可交付的版本。根据以往的测试经验,能够交付高质量的版本离不开测试人员的验收。倘若忽视了验收测试阶段,严重的缺陷就不可避免了。
此时,就需要专业的测试人员来进行功能验证,而且这些测试一般是敏捷开发团队由于考虑不周或者没时间完成或者受限于设施配置而无法实现的。测试人员会尽可能地模拟真实用户的操作习惯,九成的情况都是要手动测试完成。
所以,手动测试对增量部分的检验是不可或缺的。敏捷测试需要一位能够担任测试执行、业务验收、用户感受等多阶段的职责的手工测试人员,他在测试团队里起到举足轻重的作用。
尽量压缩验收测试的时长。
每个迭代版本的开发时间都不长,验收测试往往没有多少时间去执行,那就要想方设法去压缩验收测试时长。
要想缩短时间,可从以下两方面思考:
如果开发代码的质量本身就很高,这样可以节省大量用于修复缺陷的时间;
从测试角度来看,就要优化测试手段,提高测试效率。
对于传统的验收测试,测试人员会编写测试用例,模拟用户执行测试用例,查看输出结果,再与预期结果比较,得出测试结果。而且编写测试用例花费的时间长,一旦需求变更,维护文档的时间也相应地拉长。
以人为本:敏捷发展模式注重个体能动性。
测试工作也要尽量发挥测试工程师的灵感。如果仅仅按照设定的测试用例,按照测试步骤一步一步地执行,主观能动性就得不到发挥。在敏捷的过程中,没有精确的产品设计作为参考去写符合规范标准的测试用例。
提高敏捷测试效率。
要保证产品原有功能的质量,就要提高测试效率。最好在每天的产品开发过程中,都能参与进去进行测试,以免出现回退问题。因此,高效的自动化回归测试将为原始功能提供最好的质量保证。
及时收集用户反馈,响应变化。
要及时通知用户软件更新,与团队进有效的沟通,并能够建立机制及时跟踪用户反馈的问题,以免发生遗漏。
敏捷开发项目的团队结构
敏捷团队的工作会因为功能互相分隔的小组变得难以开展。敏捷开发注重的是人与人的交流,这需要团队成员紧密合作,不管他们是在虚拟环境中工作还是在同一个地方工作。
独立的质量保证团队。
许多组织,为了得到客观的产品质量评价,都设立了独立的质量保证团队。希望质量保证团队与开发团队独立开来,其原因有:
拥有独立的检查和审计角色很重要。
对于产品的质量,独立的质量保证团队能够给出客观的评审意见,不带有色眼镜。
测试人员不能和开发人员过分亲近,要不然会被开发人员的思维方式带偏,不能站在客户的角度评价。
测试人员和开发人员不能由同一个上级来管理,因为管理者一般会认为提交开发代码比提交测试代码优先级更高。
我们提议重组人员结构,即使还有一小部分人认为独立的测试团队是必要的。与其让测试人员在编码完成后开始测试,把测试团队分离开来,不如让整个团队都视作质量保证团队,提供学习培训来帮助测试人员职业发展和分享思路。
如果敏捷开发团队经理由测试质量保证经理来担任,大家可以培训测试人员除测试外的其它技能,从而推动测试人员往更高、更强、更能适应各种环境的方向发展。
敏捷项目团队。
我们常常认为敏捷项目组是跨职能的,因为每个团队里的成员都带有不相同的职业背景。传统的跨职能团队和敏捷团队之间的区别是以整体团队运作努力的方式,成员不止“代表”他们在团队中的职能,只要项目或永久团队存在,他们就是团队的真正成员。
因为项目的规模不同,项目团队的结构也可能不同。大的项目或许多项目的组织可能同时成功地使用了矩阵类型结构,来自以不同职能区域的人组合形成一个虚拟团队,他们仍然向每个人的组织汇报。
在大的组织中,一批测试人员可能从一个项目转移到另一个项目。一些专家,例如安全、性能或者质量保证测试人员,可能同时服务于几个团队。如果启动一个项目,那么请确认工作需要的所有资源,在开始前确定需要的测试人员数量和技能,测试人员在团队开始时加入,一直工作到项目结束,那时,他们将转移到下一个项目。
测试人员是团队的一部分,所以他们每天的工作与项目团队的其他成员的工作一起被管理,测试人员可以在更大的测试人员社区中发表想法,更大的测试人员社区包含大的组织中不同项目团队的测试人员,所有的测试人员可以分享知识和想法。
在执行业绩审核的组织中,质量保证经理可能推动审查并从项目团队获得意见。任何新团队都需要时间来构建,如果项目时间较短或者团队是不断变化的,组织需要意识到在每个项目的第一个或第二个迭代中,新的队成员将加入团队并适应互相合作的环境,应在需要的时候重构组织,还要记得把客户也纳入组织中,最好的团队是学会一起工作和建立起彼此间信任的团队。
质量工作角色。
在那些刚刚从传统模式转变为敏捷模式的团队中,人们依旧把敏捷QA(Quality Assurance)的职责等同于测试员的工作,觉得只要开发完项目代码后,QA只要负责执行测试,挖掘出缺陷就行。
事实上,敏捷QA不仅仅是测试软件,更重要的是确保软件的质量和过程的质量。在敏捷项目开发过程中,敏捷QA经常会在不同的开发阶段与敏捷团队中的不同职能担当协作,从需求分析阶段开始介入软件开发过程,这样可以对不同开发阶段进行质量评估并改进开发活动,帮助项目预防缺陷,提高整个团队的质量保证意识。
而现在团队中只设定了测试员这个角色,没有质量保证的职能,这样就会导致开发过程的各个环节的质量得不到保障。
资源分享
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】