软件测试使用各种俗语描述软件出现的问题,通用术语如下:
由于软件内部逻辑复杂,运行环境动态变化,且不同的软件差异可能很大,软件失效机理可能有不同的表现形式。
但是总的来说,软件失效机理描述:软件错误->软件缺陷->软件故障->软件失效
软件错误:是指在软件的生存期内的不希望和不可接受的认为错误,其结果是导致软件缺陷的产生。软件错误是一种认为过 程,是一种外部行为。
软件缺陷:软件缺陷是存在于软件(文档、数据、程序)程序那些不希望或不能接受的偏差,如少一逗点、多以语句。其结果 是软 件运行在某一特定条件时出现软件故障,这时称软件缺陷被激活。
软件故障:是指软件在运行中产生的一种不希望和不可接受的内部状态,例如,软件处于执行一个多余的循环过程时,沃恩说 软件出现了故障,此时若无适当措施加以及时处理,便产生软件失效。显然软件故障是一种动态行为。
软件失效:是软件在运行时产生的一种不希望或不可接受的外部行为结果.
综上所述:软件错误是一种人为错误,一个软件错误必定会引发一个或多个软件缺陷,当一个软件缺陷被激活时,便会产生一个软件故障,同一个软件缺陷在不同的条件下被激活,可能会产生不同的软件故障;软件故障如果没有及时的容错措施加以处理的话,便不可避免地导致软件失效;同一个软件故障在不同的条件下可能会产生不同的软件失效.
按照一般定义:只要软件出现的问题符合一下5种情况的任何一种,就叫做软件缺陷:
1、软件未能达到产品说明书中标明的功能
2、软件出现了软件说明书中指明的不会出现的错误
3、软件功能超出了软件说明书指明的范围
4、软件未达到软件说明书虽未指出但应达到的目标
5、 软件测试人员认为软件不好理解、不宜使用、运行速度慢,或最终用户认为不好使用
给软件错误和缺陷划分严重性和优先级的通用原则是:
1、表示软件缺陷所造成的危害的恶劣程度
2、优先级表示修复缺陷的严重程度与次序
严重性:
1、严重:系统崩溃、数据丢失、数据毁坏
2、较严重:操作性错误、错误结果、遗漏功能
3、一般:小问题、错别字、UI布局、罕见故障
4、建议:不影响使用的瑕疵或更好的实现
优先级:
1、最高优先级:立即修复、停止进一步测试
2、次高优先级:在产品发布前必须修复
3、中等优先级:如果时间允许应该修复
4、最低等优先级:可能会修复,但是也能发布
一般的严重性和优先级的划分用数字1~4表示,有的用小数字代表级别高,而有的用大数字代表级别高。同样的错误和缺陷,在不同的开发过程或软件的不同部分,优先级和重要性有所不同,要具体情况具体分析。
软件测试的主要目的在于发现软件存在的错误(bug),如何处理测试中发现的错误,将直接影响到测试的效果。只有正确、快速、准确地处理这些错误,才能消除软件错误,保证要发布的软件符合软件需求设计的目标。在实际的软件测试过程中,被一个发现的BUG都要经过测试、确认、修复、验证等管理过程,这是软件测试的重要环节
3.1 错误跟踪管理
为了正确地跟踪每一个软件错误的处理过程,通常把软件测试发现的每一个错误作为一条记录输入指定的错误跟踪管理系统。
作为一个错误跟踪管理系统,需要正确记录错误信息和错误处理信息的全部内容:
(1) Bug记录信息
主要包括以下几项内容:
(2) Bug处理信息
正确的错误数据权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误不能从数据库中删除。
3.2 软件错误的状态
软件错误的主要状态包括一下内容:
新消息(New):测试中新报告的软件Bug
打开(Open):被确认并分配给相关开发人员处理
修正(Fixed):开发人员已完成修正,等待测试人员验证
拒绝(Declined):拒绝修改Bug
延期(Deferred):不在当前版本修复的错误,下一版修复
关闭(Closed):Bug已被修复
3.3 错误管理流程
错误管理的流程可以概况为以下几项内容:
1、如果确认是错误,分配给相应的开发人员,设置状态为“Open”
2、如果不是错误,则拒绝,设置状态为“Declined”
1、如果不是错误设置状态为“Declined”
2、如果是错误,则修复并设置状态为“Fixed”
3、如果是不能解决的错误,则留下文字说明并保持状态为“Open”
4、对于不能解决和延期解决的错误,不能有开发人员自己决定,一般要通过某种会议(评审会)才能通过认可
1、如果问题解决了,置错误的状态为“Closed”
2、如果问题没有解决,则置状态为“Reopen”
错误流程管理遵循一下原则:
1、为了保证错误处理的正确性,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错误,书写的测试步骤是否准确,书写的测试步骤是否准确,可以重复。
2、每次对错误的处理都要保留处理信息,包括处理姓名、时间、处理方法、处理意见、Bug状态
3、拒绝或者延期处理的错误不能由程序员单方面决定,应该由项目经理、测试经理和设计经理共同决定
4、错误修复后必须由报错误的测试人员验证,确认已经修复后,才能关闭错误
*加强测试人员和程序员之间的交流,对于某些不能重复的错误,可以请测试人员补充详细的测试步骤和方法,以及必要的测试用例