求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
目录
软件测试
1.教程
2. 软件测试原则
3. 软件开发生命周期(SDLC)
4. 软件测试命周期(STLC)
5. 软件测试的类型
6. 测试成熟度模型
7. 测试级别
SDLC 模型
1.瀑布模型
2.螺旋模型
3.混合模型
4.原型模型
5. V模型/V和V模型/验证和验证模型
测试的类型
1.手动测试
2.自动化测试
手册的类型
1.白盒测试
2.黑盒测试
3.灰盒测试
白盒技术
1.数据流测试
2.控制流测试
3.分支覆盖测试
4.语句覆盖率测试
5.决策覆盖率测试
黑盒技术
1.决策表
2.全对测试
3.黑盒测试中的因果图
4.状态转换技术
5.用例技术
黑盒的类型
1.功能测试
2.非功能性测试
功能类型
1.单元测试
2.集成测试
3.系统测试
非功能性的类型
1.性能测试
2.易用性测试
3.兼容性测试
测试用例开发
1.测试文档
2.测试场景
3.测试用例
测试技术
1.错误猜测技术
2.等效分区技术
3.边界值分析
测试管理
1.测试计划
2.测试用例审查过程
3.需求可追溯性矩阵
缺陷跟踪
1.软件测试中的错误
2.Bug生命周期
3.测试中bug的严重性和优先级
4.测试环境
5.缺陷管理过程
其他类型的测试
1.回归测试
2.冒烟测试
3.健全性测试
4.静态测试
5.动态测试
6.负载测试
7.压力测试
8.恢复测试
9.探索性测试
10.可视化测试
11.验收测试
12.Alpha 测试
13.Beta 测试
14.数据库测试
15.主机测试
16.Adhoc测试
17.全球化测试
18.变异测试
19.安全测试
20.可访问性测试
21.结构测试
22.批量测试
23.可伸缩性测试
24.稳定性测试
25.峰值测试
26.负面测试
27.正面测试
28.耐久性测试
29.可靠性测试
30.Monkey测试
31.敏捷测试
32.组件测试
33.GUI测试
34.测试策略
软件测试工具
1.软件测试工具
2.测试管理工具
3.缺陷/Bug跟踪工具
4.自动化测试工具
5.性能测试工具
6.跨浏览器测试工具
7.集成测试工具
8.单元测试工具
9.移动测试工具
10.GUI测试工具
11.安全测试工具
12.渗透测试工具
差异
1.自动化测试与手动测试
2.负载测试与压力测试
3.冒烟测试和健全性测试之间的差异
4.系统测试和验收测试之间的差异
5.质量保证与质量控制
6.静态测试与动态测试
7.验证和确认测试
8.Alpha 测试和 Beta 测试
9.黑盒测试与白盒测试与灰盒测试
10.全球化测试和本地化测试之间的区别
11.测试用例与测试场景
12.测试计划 VS.测试策略
13.边界值分析和等价划分之间的差异
14.SDLC VS.STLC
15.Bug, Defect, Error, Fault 和 Failure之间的区别
16.测试和调试之间的区别
17.前端测试 VS.后端测试
18.HLD和LLD的区别
19.BRS vs SRS
20.正面测试和负面测试之间的区别
21.自上而下和自下而上的集成测试之间的区别
22.用例和测试用例之间的区别
23.Monkey 测试 VS Gorilla 测试
24.Stubs和Drivers之间的区别
25.组件测试和单元测试之间的区别
26.软件测试和嵌入式测试之间的区别
27.GUI 测试和可用性测试之间的差异
28.SDET和Tester的区别
29.桌面应用程序测试、客户端-服务器应用程序测试和 Web 应用程序测试之间的区别
30.主动测试
31.什么是API
32.自动化测试
 
 
目录
Bug生命周期
来源:Javatpoint     翻译:Linda (火龙果软件)
1465 次浏览
5次  

1. 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的状态为重新打开(未修复)并影响另一个模块时,我们必须准备新的bug报告。

注2:

  • 每当我们发现bug并且开发人员修复它时,我们必须检查一轮影响区域。

  • 如果旧 bug 已正确修复,请将状态更改为“关闭”。

  • 如果我们在影响区域发现bug,则报告为新bug。

  • 如果旧bug未正确修复,请将状态更改为重新打开。

  • 或者,如果我们发现 bug 影响区域,则将状态更改为“新建”或报告为新 bug。

 

3. Bug的另一个状态

一旦我们准备了bug报告并将其发送给开发人员,开发人员将接受bug并开始进行必要的代码更改,这些更改将成为bug生命周期的积极流程。

可能存在服务条件,开发人员可能不会进行必要的代码更改,而是根据情况,这将成为bug生命周期的负流或状态。

以下是 bug 生命周期的不同状态:

  • 无效/已拒绝
  • 重复
  • 推迟/推迟
  • 无法修复
  • 不可重现
  • RFE(请求增强)

3.1 无效/已拒绝

当测试工程师因为误解需求而编写了不正确的bug报告时,开发人员将不接受该bug,并将状态指定为无效并将其发回。(有时开发人员也可能误解要求)。

任何不被开发人员接受的bug都被称为无效bug。

Bug无效状态的原因

由于以下原因,发生了bug的无效状态:

  • 测试工程师误解了要求
  • 开发人员误解了要求

让我们看一个测试工程师和开发人员误解需求的示例,如下图所示:

3.2 重复

当不同的测试工程师多次报告相同的bug时,称为重复bug。

Bug重复状态的原因

以下是重复状态的原因:

  • 共同特性:例如:

    假设我们有测试工程师P和Q正在测试软件,测试工程师P和Q将测试他们的功能,如登录应用程序。

    在这里,测试工程师P输入有效的用户名和密码,然后单击登录按钮。

    一旦P点击登录按钮,它就会打开一个空白页面,这意味着它是一个bug。

    之后,P 为特定bug 准备bug报告并将其发送给开发人员。

    然后测试工程师Q也登录了应用程序并得到了相同的错误。Q 还准备了一份bug报告并将其发送给开发人员。

    一旦开发人员都得到了两个测试工程师的bug报告,他/她就会将bug报告发回给Q并说它是重复的。

  • 依赖模块

    如下图所示,测试工程师想要撰写邮件,因此首先,测试工程师需要登录,然后只有他/她才能撰写邮件。

    如果在登录模块中发现bug,测试工程师将无法执行进一步处理,因为组合模块依赖于登录模块。

  • 避免重复bug 如果开发人员收到重复的bug,那么他/她将转到bug存储库并搜索bug,并检查bug

    是否存在。 如果存在相同的bug,则无需在报告中再次记录相同的bug。

或者

如果bug不存在,则记录bug并存储在bug存储库中,并将其发送给开发人员和测试工程师,将其添加到 [CC] 中。

注1:

  • 通常,我们不会在存储库中搜索每个bug来检查重复性。

  • 为了节省时间,我们只搜索具有共同特征和依赖特征的bug。

注意2:每当我们比较两个bug报告以确定它是否重复时,我们应该始终查看两件事,如下所示:

  • 导航步骤应相同。

  • 除了关闭状态之外,任何其他状态都应该存在,我们不应该记录bug,否则它将成为重复的bug,如下图所示:

 

3.3 不可重现

开发人员接受该bug,但由于某些原因无法重现。

这些是开发人员在完成测试工程师在bug报告中给出的导航步骤后无法找到它的bug。

Bug不可重现状态的原因

该bug状态不可重现的原因如下:

  • 不完整的bug报告--测试工程师没有在报告中提及完整的导航步骤。
  • 环境不匹配--环境不匹配可以用两种方式描述:

    • 服务器不匹配
    • 平台不匹配

服务器不匹配:测试工程师正在使用不同的服务器(测试服务器),开发人员正在使用不同的服务器(开发服务器)来重现bug,如下图所示:

平台不匹配:测试工程师使用不同的平台(window7和谷歌浏览器),开发人员也使用不同的平台(windowXP和IE浏览器)。

  • 数据不匹配

    测试工程师使用的不同值,而测试和开发人员使用不同的值。

    例如:

    对管理员和用户提出了要求。

    即,两者都对同一登录模块使用不同的值。

  • 构建不匹配

    测试工程师将在一个构建中发现该 bug,而开发人员将在另一个构建中重现相同的 bug。该错误可能会在修复另一个bug时自动修复。

  • 不一致的bug

    该bug在某个时候被发现,有时它不会发生。

    不一致bug的解决方案:

    一旦我们发现bug,首先截取屏幕截图,然后开发人员将重新确认bug并修复它(如果存在)。

3.4 无法修复

当开发人员接受bug并且也能够重现时,但由于某些限制而无法进行必要的代码更改。

无法修复bug状态的原因

以下是无法修复bug的限制或原因:

  • 无技术支持:我们使用的编程语言本身没有解决问题的能力。
  • 该bug位于代码(框架)的核心:如果bug很小(不重要且不影响应用程序),开发负责人表示可以在下一个版本中修复。

    或者,如果 bug 很严重(经常使用且对业务很重要),并且开发主管不能拒绝该 bug。

  • 修复bug的成本不仅仅是保留它。

注意:

  • 如果任何bug很小,但开发人员无法修复它,这意味着开发人员可以修复,但该bug正在影响现有技术,因为它存在于代码的核心中。

  • 每个无法修复的bug都是小bug。

3.5 延期/延期

延迟/推迟是由于时间限制而将bug推迟到未来版本的状态。

由于时间限制,在初始构建中未修复 bug 的延迟状态。

如下图所示:

Bug ID-B001 bug在初始版本中发现,但不会在同一版本中修复,它将推迟,并在下一个版本中修复。

Bug ID-B0024、B0025 和 B0026 是在构建的最后阶段发现的bug,它们将被修复,因为这些bug是次要bug。

注意:

  • 所有小bug都不能延迟,但所有延迟的bug都是小bug。

  • 只要没有将来的版本,那么推迟的bug将仅在维护阶段得到修复。

3.6 RFE(请求增强)

这些是测试工程师以bug报告的形式对应用程序增强给出的建议。RFE 代表 请求增强。

正如我们在下面的示例图像中看到的,测试工程师认为应用程序或软件的外观和感觉不好,因为测试工程师正在以最终用户的身份测试应用程序,他/她将状态更改为RFE。

如果客户说“是”,则状态应为“修复”。

如果客户说“否”,则状态应为“关闭”。

4. Bug报告模板 (excel)

bug报告模板如下:

让我们看一个bug报告的例子:

在这里,我们描述了bug报告的一些重要属性。

bugID:它是分配给bug的唯一编号。

测试用例名称:当我们发现bug时,我们会向相关开发人员发送bug报告,而不是测试用例。它用作测试工程师的参考。

严厉程度:它是bug对应用程序的影响。它可以是阻塞、关键、主要和次要。

优先权:在这种情况下,我们必须决定必须首先修复哪个bug。它可以是 P1/P2/P3/P4、紧急、高、中和低。

地位:可以分配、无效、重复、延迟等的 bug 的不同状态。

记者:在此,我们将提及发现该bug的人的姓名。它可能是测试工程师,有时可能是开发人员、业务分析师、客户等。

日期:它提供发现bug的日期。

发布/构建版本:它提供发生bug的版本号,以及应用程序的构建版本。

平台:提及平台详细信息,我们确切地找到了bug。

描述:在这里,我们将解释特定bug的导航步骤,预期和实际结果。

附件:附上我们捕获的bug屏幕截图,因为它可以帮助开发人员查看bug。

5. 手动bug报告的缺点

以下是手动bug报告的缺点:

  • 耗时
  • 在搜索bug报告中的每个bug时,这将是一个耗时的过程
  • 人为bug的可能性,bug可能会重复出现,bug报告中提到了bug的数据,并bug了要添加到bug。
  • 报告中的内容
  • 没有安全性
  • 任何人都可以更改或删除它
  • 繁琐的过程
  • 没有集中式存储库

 

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



1465 次浏览
5次