• 0
  • 0
分享
  • 我的5次测试遗漏解决方法及事后分析——软件测试圈
  • 曼倩诙谐 2023-04-21 11:50:33 字数 2007 阅读 1120 收藏 0

  最近项目发补丁,笔者所负责的模块进行回归测试。提供的补丁版本在回归测试前已经进行过一些时日的测试,并且发现的故障也已经修复完成。但是情理之中意料之外的是,已经测试完成的功能陆陆续续又发现了几个故障,让笔者不得不检讨和怀疑自己。那么,这些故障为什么会测试遗漏呢?

  经过笔者对比和总结,复测发现的故障主要出现在以下情况:

  ·交互模块测试不充足,导致其他模块引用笔者测试模块时发现故障;

  ·测试样本数据量小,无法触发大数据量场景下的故障;

  ·非正常途径获取测试版本,导致故障未能及时发现;

  ·版本升级,兼容性测试不足;

  ·忽略一般类打印错误,导致数据残留;

  那么,所述的这几种测试遗漏场景,具体是什么样的情况呢?在测试中可以如何尽量避免呢?

  1.交互模块测试不充足,导致其他模块引用笔者测试模块时发现故障

  此类故障在笔者回归测试的时候出现过两次。笔者负责的测试模块功能是大数据转储和查询。出现的两次故障一次是上层模块引用查询功能时,后台报错不存在的查询字段;一次是模拟数据测试,查询模拟的数据时搜索不到结果。

  经过开发人员分析,两个故障属于代码异常故障。其一是代码异常拦截,导致字段查询失败;其二是存在相同字段时转储异常,导致模拟数据中部分字段未能正常存入。

  那么,从测试角度分析,为何会出现这两个故障呢?其一是笔者在测试时只关注自己模块功能、接口等是否正常,从已知的场景中分析、编写测试用例进行测试,未能与其他模块进行联调测试;其二是笔者不曾模拟过出现问题时的模拟数据,选用常见数据进行拓展模拟,忽略了测试样本多样性。

  那么,可以如何避免这类故障的出现或尽早发现这类故障呢?联合测试,我想是一个十分有效的办法。由于精力和时间以及经验和知识等局限性,测试人员特别是团队测试人员往往难以避免的只关注或重点关注自己模块的功能可用性和健全性,可能会忽略其他交互模块的调用方式和多样性数据传递。因此,加强联合测试可以多脑联合扩大测试场景,提升测试效果。

  2.测试样本数据量小,无法触发大数据量场景下的故障

  此类故障笔者在回归测试的时候出现过一次,主要出现在数据转储时。此前笔者为了能够快速地进行自动化回归测试,转储测试使用的数据量不是很大。因此,发现的转储功能故障基本处于代码合入时。但回归测试时,大数据量的冲击导致转储过慢、转储报错等问题频现。

  那么,可以如何避免这类故障的出现或今早发现这类故障呢?建立大数据量测试环境或性能测试环境。保持一个长期稳定的性能测试环境用于大数据量转储和查询测试。这样,可以让常规化测试通过的版本在版本发布前经过性能测试环境的过滤。

  3.非正常途径获取测试版本,导致故障未能及时发现

  此类故障笔者在回归测试的时候出现过一次。现象时将发布版本进行基本回归测试,发现竟然存在基本功能故障。经过思考和分析,发现问题出在笔者之前测试时环境上的版本不是笔者从流水线正常获取的,而是开发人员调试过的版本。也是由于笔者的偷懒,没有在之后拉取正规版本进行测试,导致这个基本功能故障在版本回归测试时才发现。

  那么,可以如何避免这类故障的出现或今早发现这类故障呢?一定要正规途径获取版本,不要试图偷懒。只有这样,我们才能保证我们发布版本与测试版本一致。

  4.版本升级,兼容性测试不足

  此类故障笔者在回归测试的时候出现过一次。由于基础环境升级,联合测试时笔者负责模块出现了接口功能故障。而之前测试时未能发现的原因是笔者使用的老版本基础环境测试,到这升级后出现接口不兼容。特别是参数调用和返回结构发生了改变。

  那么,可以如何避免这类故障的出现或今早发现这类故障呢?定时更新测试环境,尤其是基础环境,或者使用项目上提供的自动化测试环境进行测试。这样能够“紧跟潮流”,获取最新基础环境信息,及早发现故障。

  5.忽略一般类打印错误,导致数据残留

  此类故障笔者在回归测试的时候出现过一次。其现象是在进行版本卸载重装时发现数据残留。而此类故障并非笔者在回归测试时首次发现,其实在之前测试中隐隐约约也见过类似错误,但是笔者并未深究。直到回归测试时,笔者方式重视起这个问题,认真排查后发现时卸载时java环境变量未能成功获取导致数据残留。由于卸载时控制台输出错误未能明显标注(比如加粗、红色),所以笔者未能很快发现打印输出的错误。

  那么,可以如何避免这类故障的出现或今早发现这类故障呢?测试一定要小心谨慎,不能放过任何可疑行为。一旦我们在测试过程中发现某些可疑输出,即使是偶现,我们也一定要提高警惕,认真排查。

  说了这么多,不知道正在阅读的你有什么收获呢?本文只是笔者从自身角度将最近测试工作中的一些心得分享出来,希望浅薄之语能对你有所启发和帮助。



作者:刘晓佳Rachel    

来源:http://www.51testing.com/html/08/n-7795708.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   自动化听起来很美,但实践并不容易,许多人将其视为实际结果与需求中提供的预期结果的比较,甚至认为自动化就是一系列重复和可重复的操作。如果仅仅停留在这些肤浅的理解往往会导致自动化测试的失败。  下面我从多个角度探讨测试自动化问题,并提出了一些需要关注的主要因素:工具和技术、需求和风险、维护和安全。  工具和技术  软件测试发展至今,市面上已经有很多商业、免费和开源的测试工具。选择哪种工具取决于对产品当前形态的支持程度以及对产品未来演进持续的支持程度。  除了使用现成的自动化工具,也可以选择自研测试工具。而使用哪种技术实现自动化工具就至关重要。例如,Selenium的早期版本还不支持处理浏览器弹...
            0 0 1007
            分享
          • 1、接口接口可分为:硬件接口、软件接口;(目前仅关注软件层面的接口知识)。接口:指系统或者组件之间的交互点,通过这些交互点可实现数据的交互(数据交互的通道)。1.2、接口类型按照范围划分:系统之间的接口、系统内部的接口。系统之间的接口:多个内部系统之间的交互,内部系统与外部系统的交互;程序内部的接口:方法与方法之间的接口,模块与模块之间的接口;2、接口测试接口测试:是对系统或者组件之间的接口进行测试,主要是校验数据的交换、传递、控制管理过程、以及相互逻辑依赖关系。2.1、接口测试原理模拟客户端向服务器发送请求,服务器接收请求后进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期...
            11 11 3154
            分享
          • 一、软件测试工程师大致有4个发展方向:1、资深软件测试工程师一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。达到这个水平比较困难,这需要了解很多知识,例如C语言,JAVA语言,数据库,数据结构,软件工程,等等,但是你要在一家公司干3 -- 5年的话,在压力中这些技能你都会掌握!2、测试部门管理者小的如组长,大的如测试经理,这需要你有先天的优势,善于交流沟通,善于处理人际关系!不过做两年,你也会成为老油条的!3、测试书籍编写者出书也是很赚钱的,当你在这一行干了几年,积攒了足够的经验,可以把你的经验,具体做过的项目总结出来,现在关于软件测试的书很少,你要写本与众不...
            0 0 973
            分享
          •   前言  报告功能测试的结果相对简单,因为这些测试有明确的通过或失败结果。  报告性能测试的结果就要微妙得多,而且显示这些值的方法有很多——但是作者认为这些方法都没有特别有效。他提出了一种报告方法,使性能测试结果更易于阅读和理解。  有效地报告测试结果  有效地报告测试结果是我们职业的圣杯之一。如果做的好,它能提高项目的质量,并帮助我们专注于真正的问题;但如果做得不好,就会增加混乱,降低测试人员带来的价值。  报告功能测试的结果相对简单,因为这些测试有明确的通过或失败结果,报告性能测试的结果就要微妙得多。  让我们从一个定义开始:为了本文的目的,我使用了一个术语——性能试验,指任何执行度量的...
            0 0 953
            分享
          • Apache JMeter 是一款开源的性能测试工具,可以用于测试 Web 应用程序、FTP 服务器、数据库等各种类型的服务器。本文将以 JMeter 5.5 为例介绍 JMeter 的使用方法。下载和安装由于 JMeter 是使用 Java 开发的,因此在运行之前必须先安装 JDK。您可以在这 JMeter 下载和安装教程 下载 JMeter。JMeter 是一款免安装的软件,下载安装包后直接解压即可使用。在 bin 目录下,Windows 用户运行 jmeter.bat 文件即可启动 JMeter,Unix/Mac OS X 用户则需要运行 jmeter/jmeter.sh。创建测试计划在...
            0 0 1113
            分享
      • 51testing软件测试圈微信