- 软件测试的生命周期(软件测试的流程)
软件测试生命周期:
(1)需求分析:测试人员了解需求,对需求进行分解,得出测试需求;
(2)测试计划:根据需求编写测试计划/测试方案;
(3)测试设计、测试开发:测试人员适当了解设计,设计测试用例;
(4)编码阶段:测试人员一般不需要编码,但是白盒测试人员可以计划执行单元测试,完善化测试用例以及调整测试计划和方案;
(5)测试执行阶段:根据测试用例和计划执行测试,记录、管理缺陷,测试完成后编写测试报告;
(6)测试评估(运行维护):对遗留bug,软件遗留问题,以及解决方式,软件质量的评估; - 怎么描述一个bug,怎么定义bug的级别
一个合格的bug描述应该包括以下几个部分:
(1)发现问题的版本:开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障,并且版本的表示也有利于统计和分析每个版本的质量;
(2)问题出现的环境:环境分为硬件环境和软件环境,如果是web项目,要描述浏览器版本,客户机操作系统等等,如果是APP项目,需要描述机型、分辨率、操作系统版本等,详细的环境描述有利于故障的定位;
(3)错误重现的步骤:描述问题重现的最短步骤;
(4)预期行为的描述:要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的,如果是依据需求提出的故障,能写明需求的来源是最好的;
(5)错误行为的描述:描述错误的现象,crash等可以上传log,UI问题可以有截图;
(6)测试数据:测试过程的数据
(7)功能模块
bug的级别:
bug的定义每个公司都不一致,在定义级别之前需要查看公司规范
(1)Blocker(崩溃):也就是==阻碍开发或者测试工作,系统不能运行了;==例如出现系统崩溃,死机,死循环,导致数据库数据丢失,主要功能丧失,基本模块缺失等问题,例如代码错误,死循环,数据库发生死锁,重要的一级菜单功能不能使用等,这种问题在测试中较少出现,一旦出现立即终止当前版本测试;
(2)Critical(严重):系统还能运行,但是不稳定了,继续运行下去的话可能会导致更严重的问题;系统主要功能部分丧失,数据泄露(很严重的问题,不要将用户的敏感信息写入到日志中),直播画面扭曲,密码明文显示;
(3)Major(一般):功能没有完全实现但是不影响使用,也就是性能方面不好,例如操作时间长,查询时间长;
(4)Minor(次要):界面、性能缺陷,不影响操作系统的执行,用户体验不好,比如错别字,界面格式不规范,界面显示重叠,不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐; - bug的生命周期
每个公司,每个工具对bug生命周期的定义都是不一致的,例如:
如图:
- 产生争执怎么办
1、先检查自身,若测试人员发现在写完一个缺陷后,好像 还有很多关于bug的信息没有表达出来,或者很难用书面语言表达出来时,应该在提交bug后马上找相关的开发人员解释刚才录入的bug,确保开发人员明白bug描述的意思;
2、站在用户角度考虑问题,让开发人员了解bug对用户可能造成的困扰;
3、bug定级有理有据;
4、提高自身技术和业务水平,不光要提出问题,最好也能提出解决方案;
5、开发人员不接受时,不要争吵:如果经过多轮沟通,但是开发人员仍然不接受,此时可以发起bug评审,bug评审应该包含这两个方面:决定如何处理bug和分析缺陷产生的原因,找出预防的对策;