在测试人 员提交软件缺陷报告后,最不希望看到的这些缺陷被开发人员忽略,尽管你坚信这一定是软件缺陷,而罪魁祸首就是这些缺陷不可重现!一旦出现这样的情况,测试 人员会很被动,开发人员也会对测试人员有意见。这就使得关系本来就不怎么融洽的测试人员和开发人员之间的关系更加紧张;对于整个时间紧凑的项目来说,无异 于是火上浇油。为了减少这种尴尬情况的出现,非常有必要分析一下软件缺陷不能重现的原因。

1. 测试环境不一致

从广义上来说,保证或影响软件的任何因素都是环境,例如,系统的构造版本、应用服务器的类型和版本、浏览器的语音和版本等。

以下就是我们会遇见的错误:某个B/S(Web应用)架构的系统软件运行于IE8上,出现了JS(Java Script)脚本错误导致页面浏览异常的软件缺陷,把IE8降级到IE6或7后,此软件缺陷就自动消失了。

2. 测试配置不一致

程序运行都是基于一定的配置条件下进行的,包括被测系统参数设置、基础数据完整性、业务流程完整性等,比如,我们曾经在某数据库产品测试过程中,由于在安装界面中选择了非默认路径进行安装,结果导致该数据库物理备份会恢复功能出错,而对方在核对缺陷时按照默认路径进行了安装,因此缺陷总是无法重现。

3. 内存泄露

某些系统长期运行后出现速度慢的原因是开发人员未养成回收内存的习惯。这类错误在短期内不会出现,但当系统长期运行时就会出现,并且由此会引发一系列的问题。

4. 数据接口不匹配

一般只有在查看源代码后才能发现。某些类型的数据会被系统自动转换,有些数据被截断或被强制转换成另外一种数据类型时,会出现一些潜在的错误。

基于以上测试过程中出现的软件缺陷不能重现的原因,我们提出如下一些解决策略,以更好地从源头上减少不可重现软件缺陷的出现。

1. 测试环境配置充分细致

测试人员在测试前,严格核对系统的运行环境配置要求,并充分考虑系统在线运行后的环境变化,做好测试环境配置的全面规划,注意细节。另外可以使用Ghost对硬件或某个分区进行镜像备份。

2. 捕获系统日志,分析异常信息

测试人员应养成记录系统错误日志的习惯,保留系统在出错时的真实状态。比如将IE浏览器高级选项设置为“显示每个脚本错误的通知”。

3. 监测系统状态,异常及时告警

在实施系统测试过程中,我们必须充分关注系统运行状态的变化,一旦系统运行状态发生较大的波动,势必会对后期的业务执行带来较大的影响。因此,系统运行监测的一个重要内容是需要及时反馈系统运行异常,并提供异常报告。

4. 测试数据翔实,易于追溯

测试数据是软件测试的 核心,很多情况下,测试人员为了缩短测试周期,在实际测试前并没有充分编写足够的测试数据,也没有记录这些测试数据的执行顺序和运行轨迹,一旦程序在某个 节点出现问题,我们无法判断其产生的过程和引起这个缺陷的具体测试数据,对我们进一步分析软件缺陷产生的原因会造成一些不必要的障碍。

正是基于此我们强调在软件测试开始前,我们必须制定完整的测试用例,辅以详细的测试数据,并明确测试数据的操作步骤和每一步的预期结果,这样,一旦软件出现问题,我们可以很快进行重现和定位。

附录1:常用正交表

(1)L4(23)
(2)L8(27)
(3)L12(211)
(4)L9(34)
(5)L16(45)
(6)L25(56)
(7)L8(4×24)
(8)L12(3×24)
(9)L16(44×23)
干货分享

如果你已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的,都可以关注我【软件测试小dao】,公众号内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

功能测试中遇到不可重现软件缺陷的解决策略相关推荐

  1. cuda 9.0 安装torch 0.4_PyTorch geometric 安装中libcusparse.so.10 error的解决策略

    准备工作(自己的电脑): OS: Ubuntu 16.04 Python version: 3.6 PyTorch version: 1.6.0 CUDA version: 10.1 安装流程(pip ...

  2. 关于web安全测试在功能测试中的应用

    关于web安全测试在功能测试中的应用 一.安全基本概念 1.1实施安全评估 1.1.1资产等级划分 1.1.2威胁分析 1.1.3风险分析 1.1.4 安全方案 1.2 安全原则 二.我的安全测试模型 ...

  3. 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法

    title: 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法 tags: grammar_cjkRuby: true --- 右键单击项目,properties-- ...

  4. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...

  5. 使用webpack打包后,vscode中vue代码变白色的解决办法

    使用webpack打包后,vscode中vue代码变白色的解决办法 卸载vetur,重装vetur

  6. Pentaho部署文档校验过程中遇到的一些问题和解决对策

    为什么80%的码农都做不了架构师?>>>    Pentaho部署文档校验过程中遇到的一些问题和解决对策 1.quartz.EmbeddedQuartzSystemListener发 ...

  7. php中隐藏网址,是否隐藏前台网址中的index.php文件名 解决方法

    是否隐藏前台网址中的index.php文件名,解决方法如下: 第一步:先在网站后台设置隐藏前台网址中的index.php文件名(如图所示). 如果空间不支持,就要按下面步骤操作. 第二步:可以通过UR ...

  8. 在一个有返回值的方法中,用block回传的解决方法

    在一个有返回值的方法中,用block回传的解决方法 参考文章: (1)在一个有返回值的方法中,用block回传的解决方法 (2)https://www.cnblogs.com/dsp-ios/p/64 ...

  9. 开发chrome 插件, background.js中 console log 看不到解决方法

    开发chrome 插件, background.js中 console log 看不到解决方法 参考文章: (1)开发chrome 插件, background.js中 console log 看不到 ...

最新文章

  1. AttributeError: ‘NoneType‘ object has no attribute ‘span‘
  2. 【分块】#6283. 数列分块入门 7(区间乘法、区间加法、单点查询)
  3. java软件字如何放大_放大Java Swing应用程序
  4. 四轴PID控制算法详解(单环PID、串级PID)
  5. python发邮件脚本详解_Python发送邮件脚本
  6. 计算机c盘能分区吗,电脑C盘怎么分区
  7. 2018web前端面试题总结
  8. css中关于transform、transition、animate的区别
  9. 转载:从地理学透视中国现代化
  10. display函数怎么使用_使用Python写一个小游戏alien invasion!
  11. 【报告分享】 百度2021国潮骄傲搜索大数据报告-百度x人民网(附下载)
  12. 冯乐乐之三,SHADERLAB入门
  13. w10计算机右键管理,电脑右键新建菜单管理,win10右键新建菜单管理-
  14. java基础jdk,jre,jvm作业-答案
  15. config配置中文解释
  16. 生产追溯系统方案——Namisoft
  17. 流行音乐即兴伴奏——常用和弦
  18. yun2win即时通讯云-最安全的即时通讯云服务
  19. Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值
  20. IOS13如何屏蔽更新,快看这里!!!

热门文章

  1. 行星轨迹制作_探知宇宙!八大行星手工制作,和孩子一起探索宇宙奥秘,宝宝妈收 !(附教程)...
  2. 与君共勉之--施一公教授的演讲
  3. ubuntu chromium代码编译
  4. 用图片实现滚动条样式
  5. html转成16进制数,16进制转换(十六进制,二进制(包含小数)相互转换)
  6. 周末乐一个,转个无节操的活动
  7. 美拍作者页视频的保存的方法
  8. C语言100题打卡—第3题
  9. 魔漫相机任晓倩:我是这样说服马云投资千万美金的
  10. 王咏刚《AI的产品化和工程化挑战》