摘 要:本文简要分析了无法重现的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临时文件的设置

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。

软件测试无效bug分析,(一)Bug不能重现的原因分析及其对策相关推荐

  1. 出现无效字符_网站出现死链的原因分析 - 最蜘蛛池租用

    原出处:最蜘蛛池 原文链接:网站出现死链的原因分析 - 最蜘蛛池 死链接是无效链接,外链是seo日常工作的重要组成部分.死链是网站建设中的一个专业术语.它是指那些不能输入的网页链接.在日常的网站操作中 ...

  2. Java基础学习总结(143)——SimpleDateFormat线程安全问题重现、原因分析及解决方案

    分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 一.SimpleDateFormat作用: 进行时间的格式化输出和解析(注意:Sim ...

  3. 软件测试Bug,你是怎么找bug的?bug分析的正确打开方式......

    目录:导读 前言 一. bug详细 二.获取bug具体数据 三.有效的管理bug 四.做好bug分析工作 五.深入bug分析 六.总结 前言 Bug严重级别(Severity,Bug级别):是指因缺陷 ...

  4. 软件测试——基础篇(软件测试的生命周期和BUG的概念)

    目录 一.软件测试生命周期 1. 软件生命周期 2. 软件测试生命周期 二.BUG 1. 如何描述一个BUG 2. BUG的级别 3. BUG的生命周期 一.软件测试生命周期 1. 软件生命周期 软件 ...

  5. 高效精准分析定位系统BUG,让你无所不能

    项目版本上线发版后,经常会收到领导.产品.研发.业务.用户等反馈过来各种各样BUG,令人心惊胆战,措手不及 这时领导会第一时间找你沟通,让其定位排查原因,解决处理 很多测试人员第一反应: 需求没说这样 ...

  6. 软件测试(基础)· 软件测试的生命周期 · 如何描述一个 Bug · Bug 的级别 · Bug 的生命周期 · 争执 · Bug 评审

    一.软件测试的生命周期 软件测试的生命周期 & 软件开发的生命周期 二.如何描述一个 Bug 三.如何定义 Bug 的级别 四.Bug 的生命周期 五.发生争执了怎么办? Bug 评审 一.软 ...

  7. 缺陷定位 | 如何精准效率分析推测BUG定位(二)

    点击上方"蓝字",轻松关注我们 明天就是除夕了,很多人都回到了老家,吃上了妈妈做的饭菜,这时候应该是最幸福的时刻,我也用年前上班仅剩的几小时把 缺陷定位(二)分享给大家,希望大家能 ...

  8. 软件测试的生命周期以及bug描述

    软件测试的生命周期:需求分析-测试计划-测试设计/开发-测试执行-报告评估 需求分析:深入了解需求,分析需求,验证需求.    目的:去掉不合理的需求,从需求中提取出测试点. 测试计划:计划时间,人员 ...

  9. bug生命周期bug跟踪处理

    一.BUG BUG:软件的缺陷 1.BUG的定义:----与软件测试的目的对应 软件的BUG,狭义概念是指软件程序的漏洞或缺陷,广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节.或 ...

最新文章

  1. 「 每日一练,快乐水题 」540. 有序数组中的单一元素
  2. 使用Objects判断对象是否为空,并返回对应信息
  3. 一家企业为何使用多家公司的防火墙
  4. 文本检测大满贯!自适应文本区域表示改进形状任意的文本检测
  5. Linux系统安全概述-sudo授权-pam认证机制-对称加密-非对称加密-md5-数字证书
  6. hadoop fs ,hadoop dfs 和 hdfs dfs的区别以及HDFS的shell操作
  7. Apache Spark技术实战之1 -- KafkaWordCount
  8. What decide the USB OTG port as host or device
  9. WEB渗透测试思维导图
  10. yolov3训练实现火焰检测(pytorch)
  11. Python利用requests库爬取百度文库文章
  12. 详解DAO类(数据库操作对象)
  13. sis最新ip地址2020入口一_【新版教材】2020最新人教版高中化学教材必修一电子课本...
  14. 8、Java中XML表示衣服尺码信息的文档编写
  15. 整数解(韦达定理解法)
  16. Apache FOP2.6 SVG导出PDF配置,解决中文字体变成####
  17. python自定义标识符的使用区分大小写吗_Python中的标识符是不区分大小写的
  18. ubuntu16.04 安装显卡驱动
  19. XTP中CXTPReportControl中合并单元格
  20. unity算法面试_Unity笔试面试题目分享

热门文章

  1. 单片机定时器精准定时_通过51单片机定时器/计数器实现精确延时
  2. jenkins 报错 code=exited, status=127
  3. 迅视财经 华为重申:绝不造车!
  4. “耳朵人艺术”敲响了中国,也叫醒了世界
  5. 使用pymysql连接数据库
  6. java许愿墙_许愿墙的实现
  7. javascript学习(1)随机点名应用
  8. 学板绘的绘画技能提升步骤?
  9. 华云数据蝉联中国大数据50强 入选《2022数字化转型生态建设百佳案例》
  10. 供应链厂商信息-2014