目录
1.软件测试的生命周期
2.如何描述一个BUG
3.BUG的级别
1.Blocker(崩溃)
2.Critical(严重)
3.Major(一般)
4.Minor(次要)
4.BUG的生命周期
5.产生争执怎么办?
6.测试的执行和BUG管理
软件测试的生命周期:需求分析→测试计划→测试设计、测试开发→测试执行→测试评估
需求分析:需求是否完整,是否正确
测试计划:软件测试的周期,由谁测试
测试设计:测试开发:写测试用例(手工,自动化测试用用例),编写测试工具
测试执行:执行测试用例
测试评估:根据执行测试结果产出测试报告
一个合格的bug描述应该包括以下几个部分:
1.发现问题的版本
开发人员要知道出现问题的版本,获取对应版本的代码重现故障,并且有利于统计每个版本的质量
2.问题出现的环境
硬件环境和软件环境,web项目需要描述浏览器版本,客户机操作系统等,app项目要描述机型,分辨率操作系统版本等。
提供测试缺陷时的操作系统、浏览器、设备或其他相关软硬件环境的详细信息。这些信息对于复现和定位缺陷都非常重要。
3.错误重现的步骤
详细描述如何重现缺陷,包括具体的操作步骤、输入数据和环境设置等。确保描述清楚,以便其他人可以复现并确认缺陷。
4.预期行为的描述
让开发人员清除什么是正确的,要以用户角度来描述程序的行为
5.错误行为的描述
描述错误现象,如果可能,附加相关屏幕截图、日志文件、测试数据等附件,以更直观地展示和支持缺陷描述。
6.其它
有些公司有其他的要求,例如对故障的分类:功能故障,界面故障,兼容性故障。有些有优先级的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高
7.不要多个BUG放在一起
无法确认是同一段代码造成的故障时,不要将BUG放在一起提交。
对于不同的公司来说,BUG的级别定义也有差异
阻碍开发或测试工作的问题(需要测试打回);造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。
系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试
功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最多)
这一级别的缺陷通常是一些次要的功能问题或界面问题,对整体系统的功能和用户体验影响较小。这类问题可能不会阻止系统的正常使用,但仍然应该修复以提升用户满意度。
每个公司对BUG的生命周期定义也有差异
测试人员应该跟踪一个Bug的整个生命周期,从Open到Closed的所有状态
BUG状态转换图:
NEW:新发现的Bug,未经评审决定是否指派给开发人员进行修改。
Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员
Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证
Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
Rejected:不是一个BUG,拒绝修改
1、先检查自身,是否bug描述不清楚
如果能正确地、高质量地录入一个Bug,那么基本上已经成功地与开发人员沟通了一大半的关于Bug的信息。
2、站在用户角度考虑问题
应该让开发人员了解到Bug对用户可能造成的困扰,这样才能促使开发人员更加积极地、高质量地修改Bug。在讨论时,可以问一句:如果你是用户,你可以接受么?
3、BUG定级要有理有据
BUG定级时,不仅要参考BUG级别,还要考虑BUG是否会影响到流程,往往用户的BUG级别和我们的是有区别的,需站在用户的角度定考虑定位级别。
4、提高自身的技术和业务水平
不光要提出问题, 最好也能提出解决方案提高自身的业务和技术水平,不但要做到能提出问题,还能够提出解决问题的思路。这样才能更让人信服。
5、开发人员不接受时,不要争吵
经过了多轮沟通,但是开发人员仍然拒不接受。此时可以发起Bug评审。评审应该包括以下两个层面
1)如何处理BUG?
这一方面评审需要项目组各个方面的代表参加,通常不可缺少的是测试代表、开发代表、产品代表。
2)分析缺陷产生预防的的原因,找出对策
缺陷评审还应该包括原因分析,找出Bug出现的原因,尤其是那些重复出现的Bug。应该找出出现错误的根源,并且制定出相应的预防措施,确保同类型的Bug不再出现。
1. 打开待测试的系统
2. 打开测试管理工具用例模块,开始执行用例
3. 发现bug!进行复现并确认bug的复现步骤
4. 记录bug
5. 沟通bug
6. 验证以前提交的bug
7. 确认本次测试完成
8. 编写测试报告
如何发现更多的bug?
1.软件测试同样存在二八原则,80%的故障集中于20%的模块,如果某部分问题较多,加强测试广度和深度!
2.开发人员也存在二八原则,80%的故障集中于20%的开发人员,如果某些开发人员的bug较多,加强他开发模块的测试广度和深度!
3.多进行逆向思维和发散性的思维
4.不要局限于用例和需求文档
5.尽早介入项目, 不要等到开发的差不多了再介入项目