`
Eileenlml
  • 浏览: 72890 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Bug不能重现的原因分析及其对策

 
阅读更多

 要:本文简要分析了无法重现的Bug的可能产生原因,包括环境不一致、缺少最准确的描述和浏览器的不当设置。针对这些原因,本文给出了相应的对策。通过这些措施,可以重现许多以前认为不可重现的Bug。

关键词:重现;Bug;环境

在测试人员提交bug后,最不希望看到的结果是它们被标记为INVALID,尽管你坚信这一定是Bug。开发人员查看了bug的Description后,最不希望的结果是你无法重现它们,尽管他使用了所有可能的方法去重现它。一旦出现这样的情况,测试人员会很伤心,开发人员也会对测试人员有意见。这就使得关系本来就不怎么融洽的测试人员和开发人员之间的关系更加紧张。这对于关系紧张的测试人员和开发人员来说,无异于是火上浇油。

为了减少这种情况的出现,非常有必要分析一下Bug不能重现的原因。根据我的测试经验,Bug不能重现的原因有:

一、 环境不一致

这是bug不能重新的最主要的原因。在开发人员认为这是无效的bug 里面,估计至少有80%的Bug是因为环境不一致的原因造成的。这既包括开发环境和测试环境的不一致,也包括开发环境和系统的实际运行环境不一致。

Bug产生是有一定原因的,它的重现也需要一定的环境。如果没有相应的环境,那么你可能很难这个Bug。

从广义上来说,保证或影响系软件的任何因素都是环境。例如,硬件的配置、软件的设置、网络的带宽、网速等。通常,环境中的软件因素有:系统的Build、Application Server的类型和Version、Operation System 的语言和Version、浏览器的语言和Version等。

下面是我的一些有趣的经历:某个Bug 只出现在WebSphere 6.0.2.15上,按照开发人员的要求,把WebSphere升级到6.0.2.17 后,此Bug就自动消失了。因此,此Bug是因为WebSphere的版本不一致引起地。

几个图片在某个Build上莫名其妙地消失了,刚开始怀疑是开发人员修改别的Bug而引起的错误。后来经过仔细认真地测试才发现,原来是操作系统的语言搞的“鬼”:测试人员使用的机器的操作系统语言是简体中文,开发人员使用的是繁体中文。

Bug的Description里面缺少重现bug 的最准确的操作,下图是测试系统在增加一个Role时的页面:

图1:增加Role的页面

测试人员在输入某些数据、然后点击Save后,“一不小心”就出现了java.lang.NullPointerException的错误。说一不小心,是因为这是测试人员在无意中发现了,并且出现这个错误后,你再也无法增加任何Role了(当然也无法重现此Bug了)。最糟糕的是,别的与Role有关的许多功能点也无法验证。尽管不知道为什么发生了这个错误,也无法重现此Bug,但考虑到此Bug的严重性,测试人员还是把此Bug提交到Bug库里去了(事后证明这是非常明智的举动)。

在测试下一个Build的时候,我要求测试人员重点关注此Bug。后来在DBA的帮助下找到了产生此Bug的真正原因:输入Role Code后,如果Role Name为空,页面没有进行检查(前台没有检查);但点击Save后,数据需要保存到数据库时,Role所在的Table要求Role Code和Role Name都不能为空。因此就出现了java.lang.NullPointerException这个错误信息。

找到此Bug发生的原因后,我建议开发人员把Role Code当作Role Name,如果用户输入Role Code而没有输入Role Name。经过测试,此Bug就再也不会出现了。

下面是此bug 的完整历史记录:
[Step]
1. Add one Role on Role Manager;
2. Click on "Save" button to save it.

[Result & Memo]
One error message appears: java.lang.NullPointerException. As a result, I could not do any operation on “Role Manager” tab. This bug appears even after I restart the application server.

------- Additional Comment #1 From Jim 2006-11-25 14:08 ------- 
I cannot reproduce this bug. Please describe testing scenario in details + attach error logs.

------- Additional Comment #2 From Mike 2006-12-15 10:28 ------ 
[Step]
1. On ‘Role Manager’ tab, Click on ‘Add’ button;
2. Enter one valid role code and click on ‘Save’ button. Note: you are forbidden to enter any value for ‘Role Name’ in order to reproduce this bug.
Now there is one error message on the page when clicking on ‘Role Manager’ tab.

[Memo]
According to the schema TBCN_WF_ROLE, the ‘Name’ column is forbidden to be null. But there is no code to check it when such occasion happens. For detail information, please view the attached file. 
To avoid this bug happening, I suggest you set the value of “Role Code” as “Role Name” if such occasion happens.

------- Additional Comment #3 From Jim 2006-12-17 18:06 ------- 
Fixed in build # >= 484

二、 浏览器的不当设置

对于Web测试来说,IE的设置又是对重现Bug起着重要的作用。下面的几个图片说明了浏览器的几个关键设置:

图2:Internet临时文件的设置

分享到:
评论

相关推荐

    软件测试bug统计分析图表

    而“软件测试bug统计分析图表”作为软件测试中的重要工具,扮演着至关重要的角色。本文将深入探讨这一主题,从多个角度解析其重要性、作用以及如何通过数据分析提升软件测试效率。 ### 一、软件测试与bug统计 软件...

    软件测试BUG清单分析说明

    例如,每次操作都能立即复现的BUG可得1分,而难以复现的BUG则得分更高。这样的评估有助于识别那些难以捕捉但可能影响广泛的故障。 其次,测试影响度反映了BUG对测试流程的干扰程度。如果一个问题阻止了某个或多个...

    bug数据分析

    其次,**bug的分析要点**主要关注以下几点:**重现性**,能否按照描述的步骤复现bug是验证其真实性的第一步;**影响范围**,理解bug对系统整体功能的影响程度;**原因定位**,通过代码审查、日志分析等手段找出bug的...

    android bugreport 分析

    ### Android Bugreport 分析:掌握核心技能 在深入解析Android bugreport之前,我们先了解其基本概念。Android bugreport是一个全面的系统日志文件,它包含了大量的系统信息,旨在帮助开发者诊断和解决Android设备...

    Uniapp发现的Bug,用于重现project_Uniapp Bug.zip

    Uniapp发现的Bug,用于重现project_Uniapp Bug

    软件测试中常见问题分析及解决对策

    软件测试中常见问题分析及解决对策软件测试我们一般把发现的错误bug(我们也称为缺陷defect)按严重性分为4类:死机(系统崩溃或挂起)、致命(使系统不稳定、或破坏数据、或产生错误结果,而且是常规操作中经常发生或非...

    软件测试中BUG数据分析

    对于开发人员拒绝修改的BUG,可能是由于无法重现、难以捕捉的现象、报告步骤不明确或不易理解,或者涉及较少使用的用户操作。 缺陷分析的关注点包括:分析功能域分布,找出系统的弱点,比如80/20定律指出大部分问题...

    偶然性不可重现的BUG怎么处理?

    一、一定要提交!!1.记得有这么个缺陷,以后再遇到的时候可能就会了解发生的原因。...无法重现的问题再次出现后,可以直接叫程序员来看看问题。  5.对于测试人员来说,没有操作错误这条.既然遇到,就

    bug数据分析 软件工程 测试

    这包括但不限于:识别频繁出错的模块,分析错误发生的时间分布,以及评估修复bug的效率等。 在软件工程中,测试不仅仅是找出bug,更是要通过系统化的测试策略减少bug的产生。这就需要我们运用各种测试方法,如单元...

    Android分析Bugreport开源工具

    ChkBugReport是一个用于分析android的bugreport的开源工具,它可以把你得到的bugreprot导出成适合阅读的html。导出的html文件包含了根据bugreport数据得出的图表和分析结论,主要包括进程内存占用信息、程序ANR或...

    BUG记录模版(带汇总、统计、分析功能)

    总之,"BUG记录模版(带汇总、统计、分析功能)"是软件开发过程中不可或缺的工具,它不仅提供了记录问题的框架,还具备强大的数据管理和分析能力,对于任何软件开发团队来说都具有很高的实用价值。通过熟练运用这样的...

    JAVA代码BUG分析

    BUG通常是指程序中的错误、缺陷或不正常的行为,它可能导致程序崩溃、数据丢失,甚至引发安全问题。在Java编程中,BUG的来源多种多样,包括语法错误、逻辑错误、运行时异常等。 《Java.Bug模式详解.pdf》可能会涵盖...

    多轮测试BUG统计分析BUG趋势

    自己做的一个Bug统计图,大家相互参考,相互学习!

    内核208天bug分析

    标题:“内核208天bug分析”描述:“腾讯大神写的内核timer调试笔记,典型的208天才重现一次的bug调试技巧” 知识点: 1. 内核bug现象:从描述中提到这是一个典型的内核bug,该bug表现形式为每208天重现一次,这种...

    Bug报告模板.docx

    本文将对 Bug 报告模板的主要组成部分进行详细介绍,并对每个部分的作用和重要性进行分析。 提交人 提交人是指提交 Bug 报告的人员,通常是软件测试工程师或质量保证工程师。他们负责发现和记录软件中的缺陷,并将...

    bug分析举例

    Project Fabre将bug分析分为几个层次:完全未进行bug分析、进行了bug分析但效果不佳、认识到bug分析的一定效果并且体验过这种效果、进行了bug分析并取得了一定效果但仍有相同bug的出现。通过这些不同级别的分析,...

    版本验收与放行标准,主要明确了软件测试中对BUG等级的制定与分析

    3. 一般级别(3 级 BUG):系统功能实现上出现错误,导致某些功能不能正常使用,或者系统某些功能未能实现,但对系统其他功能没有严重影响的 BUG。 4. 轻微级别(4 级 BUG):系统的重要和基本功能都已实现,BUG ...

    check bugreport自动分析bugreport工具

    自动分析bugreport的工具,github开源项目

    bug记录内容,填写模板,通知单描述

    很多不能重现的bug都是因为缺少日志,开发人员就会返回去找测试人员要日志信息。如果日志文件不大的话,比如十几行,那么可以直接把日志信息粘到bug单里,如果日志很大的话,那么最好单独粘到一个文件里,如txt格式...

Global site tag (gtag.js) - Google Analytics