【软件测试】----- 基础篇

tech2024-07-21  46

目录

一、软件测试的生命周期

二、描述软件缺陷的要素(如何描述一个bug)

三、软件缺陷的级别

四、软件缺陷的生命周期

五、如何发现更多的bug

六、冲突问题的解决(人际关系)


一、软件测试的生命周期

需求分析测试计划测试设计、

测试开发测试执行测试评估

二、描述软件缺陷的要素(如何描述一个bug)

发现问题的版本      开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。      并且版本的标识也有利于统计和分析每个版本的质量。 问题出现的环境      环境分为硬件环境和软件环境,如果是 web 项目,需要描述浏览器版本,客户机操作系统等,      如果是 app 项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。 错误重现的步骤      描述问题重现的 最短 步骤。 预期行为的描述      要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需求提出的故障,      能写明需求的来源是最好的。      要相信:测试人员是最懂需求的。

三、软件缺陷的级别

Blocker(崩溃):     阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧          失,基本模块缺失等问题。     如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立        即中止当前版本测试)。 Critical(严重):    系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功       能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。    如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等  (该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。 Major(一般):    功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。    如:操作时间长、查询时间长、格式错       误、边界条件错误,删除没有确认框、数据库表中字段过多等    ( 该问题实际测试中存在最多) Minor(次要):    界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。    如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标       位置不正确,用户体验感受不好,可以优化性能的方案等 (此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理)

四、软件缺陷的生命周期

New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。 Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。 Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。 Rejected:如果认为不是Bug,则拒绝修改。 Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。 Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。    无效的 bug open->closed open-rejected-closed 测试人员对每一个缺陷的修改必须重新取一个包含更改后的代码的新版本进行回归测试,

       确保相同的问题不再出现,才能关闭缺陷。

对于拒绝修改和延迟修改的Bug,需要经过包含测试人员代表和开发人员代表、

       用户方面的代表(或代表用户角度的人)的评审。

五、如何发现更多的bug

软件测试同样存在二八原则,80%的故障集中于20%的模块,如果某部分问题较多,加强测试广度和深度! 开发人员也存在二八原则,80%的故障集中于20%的开发人员,如果某些开发人员的bug较多,加强他开发模块的测试广度和深度! 多进行逆向思维和发散性的思维 不要局限于用例和需求文档 尽早介入项目, 不要等到开发的差不多了再介入项

六、冲突问题的解决(人际关系)

先检查自身,是否bug描述不清楚      如果能正确地、高质量地录入一个 Bug ,那么基本上已经成功地与开发人员沟通了一大半的关于 Bug 的信息。但是      总有 书难达意 的耐候,这时就需要测试人员主动与开发人员进行沟通了。 如果测试人员发现在写完一个缺陷后,      好像还有很多关于 Bug 的信息没有表达出来,或者很难用书面语言表达出来时,就应该在提交 Bug 后,马上找相关      的程序员解释刚才录入的 Bug ,确保程序员明白 Bug 描述的意思,而不要等待开发人员找自己了解更多的信息。   站在用户角度考虑问题 应该让开发人员了解到Bug对用户可能造成的困扰,这样才能促使开发人员更加积极地、高质量地修改Bug。在争执时,可以问一句:如果你是用户,你可以接受么?BUG定级要有理有据     BUG 定级时,不仅要参考 BUG 级别,还要考虑 BUG 是否会影响到流程,往往用户的 BUG 级别和我们的是有区别的,需        站在用户的角度定考虑定位级别。 提高自身的技术和业务水平. 不光要提出问题, 最好也能提出解决方案     提高自身的业务和技术水平,不但要做到能提出问题,还能够提出解决问题的思路。这样才能更让人信服,在工作中,       你会发现同一个bug ,资深测试工程师提出和初级测试工程师提出,两者的结果完全不同,两者最大的差别是资深测试工     程师往往会提出解决方案。而长此以往,权威性逐渐的建立起来,那么开发人员看到bug 的第一反应,就是这是一个             bug ,而不是这是一个 bug 吗? 开发人员不接受时,不要争吵可能你已经经过了多轮沟通,但是开发人员仍然拒不接受。此时可以发起Bug评审。      Bug 评审要注意的问题 缺陷的评审应该包括以下两个层面 决定如何处理 Bug 分析缺陷产生的原因,     找出预防的对策。      (1) 决定如何处理 Bug 。 这一方面评审需要项目组各个方面的代表参加,通常不可缺少的是测试代表、开发代表、      产品代表。     测试代表主要从 Bug 的具体表现、严重程度等方面提供信息,并提出自己对 Bug 的处理意见。需要注意的是,测试     人员不应该一味地要求对 Bug 进行修改,因为修改可能带来回归的风险,同时带来的是回归测试的工作量,如果时     间比较紧迫,修改后剩余的时间若不足以做一次有效的回归测试,可能不修改是个明智的选择。    开发代表主要从修改缺陷的难度和风险出发,考虑缺陷修改需要付出的代价,以及可能影响的范围、可能引发的风    险等,如果决定要修改,还要讨论出修改的初步方案。产品代表主要从产品的整体计划、用户的要求等方面对缺陷的修       改必要性、缺陷修改的时间和版本提出自己的意见。 这在微软的做法叫“Bug 三方讨论会 ,参加者一般是测试人员、开发    人员和项目经理。     (2) 分析缺陷产生的原因,找出预防的对策。 缺陷评审还应该包括原因分析,找出 Bug 出现的原因,尤其是那些重复出现      的Bug 。应该找出出现错误的根源,并且制定出相应的预防措施,确保同类型的 Bug 不再出现。     例如:有些Bug出现的原因不是简单的 引用为空 之类,而是开发人员的编码不规范或者编程习惯不好而导致,所以必须     建立起正确的编程方式才能预防这些错误的出现,否则只是在玩无聊地重复发现相同的Bug 的游戏。
最新回复(0)