• 0
  • 0
分享
  • 项目上线第一天就报BUG!我总结了这3点经验教训!——软件测试圈
  • 曼倩诙谐 2024-08-07 11:18:19 字数 1545 阅读 484 收藏 0

  本次上线的项目属于OA系统中的一个子模块。OA系统,百度百科上解释,Office Automation(简称OA),即办公自动化,是将计算机、通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术,代替办公人员传统的部分手动或重复性业务活动,优质而高效地处理办公事务和业务信息,实现对信息资源的高效利用,进而达到提高生产率、辅助决策的目的,最大限度地提高工作效率和质量、改善工作环境。笔者所在公司的OA项目提供已授权的同事浏览各家公司首页、申请单据、审批单据等功能。本次谈及的项目模块即包含给公司首页浏览、公司专题配置以及模块编码功能。

  产品提出的需求是在A部门的公司首页增加专题配置、增加单据年度编码配置。首先对需求进行分析:

  需求场景1:

  A部门未增加专题配置,浏览首页

  需求场景2:

  A部门增加专题配置,启用专题,浏览首页

  需求场景3:

  A部门增加专题配置,禁用专题,浏览首页

  需求场景4:

  A部门增加专题配置,启用专题后删除,浏览首页

  需求场景5:

  A部门增加专题配置,禁用并删除该专题配置,浏览首页

  需求场景6:

  A部门未增加单据年度编码配置,新增单据

  需求场景7:

  A部门增加单据年度编码配置,启用配置并跨年结转,新增单据

  需求场景8:

  A部门增加单据年度编码配置,启用配置并跨年不结转,新增单据

  需求场景9:

  A部门增加单据年度编码配置,不启用配置,新增单据

  需求场景10:

  A部门增加单据年度编码配置,禁用并删除配置,新增单据

  进行业务场景分析后,接着设计相应的测试用例,覆盖到以上场景。但是大家没有意识到部门之间首页会有相互影响。

  在开发提测后,笔者在测试环境进行全面的测试。测试场景7时,发现比较有意思的bug:增加单据年度编码配置,设置跨年结转,并启用了该配置。在新增转年的第一张单据时,抛出了异常,随即反馈给开发。开发通过代码跟踪,发现分支中没有涵盖上一年编码为空值的情况,增加了这一异常分支,该bug被彻底修复。

  测试环境通过后,已到下午,逼近上线时间,预生产环境没有再验证,流转到预生产环境产品验收环节,产品验收通过后该项目上线。上线后第一天,产品经理给A部门配置好专题并启用,随后上午其他部门曝出首页加载报错的问题。开发人员查找原因,最后找到分支没有考虑专题配置为空的情况,紧急修复后再次发版。

  分析原因,日后笔者要在以下三个方面加强。

  ·首先是测试用例的覆盖率。线上出了问题,团队首先想到测试人员把关不严。当然也有产品验收不到位的因素以及开发人员代码漏洞的原因。从我们自身出发,测试用例除了涵盖当前需求,还需要评估对周边业务的影响。从本案例中可以看出,bug埋藏点均在代码分支仅考虑variable != 0的情况,未考虑variable=0、NULL或空的情况,这也可作为测试工作中着重检查点之一。

  · 其次,需要深入了解OA业务,从点到面,点面结合,避免一井之蛙的思维。除了当前需求部门之外,再检查下其他部门页面,尤其是预生产环境坚持做验收工作。如果重复性高,可加入自动化手段,测试时间不够就需要及时和上级沟通。

  · 最后一点,也是笔者认为最重要的,与各方多沟通。本项目案例中,开发同学提测时提到首页业务多,不确定影响,可能会有问题。测试人员在测试过程中应该多找开发沟通,推动开发自测,与产品经理沟通,推动业务需求确认。作为测试工程师,既能考虑到项目的美好,又该有项目失败的心理准备,才能磨练内心强大,这也是测试工程师的必修之路!


作者:枫叶    

来源:http://www.51testing.com/html/19/n-7801819.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 简介有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理。现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 json 格式的,我们在做判断时候,往往只需要提取其中几个关键的参数就行,这时候我们就需要 json 来解析返回的数据了。首先来说一下笔者为何要单独写这么一篇,原因是:python 里面 bool 值是 True 和 False,json 里面 bool 值是 true和 false,并且区分大小写,这就尴尬了,明明都是 bool 值。在python里面写的代码,传到json里,不用说肯定识别不了,所...
            0 1 2373
            分享
          •   Google的人工智能聊天机器人巴德(Bard)在经历了乏善可陈的发布之后,已经逐渐变得越来越有用。现在,该机器人的 YouTube 整合功能得到了方便的升级,这样它就可以分析单个视频,为观众提供特定的信息--比如关键点或食谱成分--而无需按下播放键。这可能是一个非常有用的工具,但也可能让创作者更加担心人工智能的生成影响了他们的观众观看时长。  尽管早在 9 月份推出 YouTube 扩展功能时,Bard 就已经具备了分析 YouTube 视频的能力,但现在聊天机器人可以为你具体解答与视频内容相关的问题。  公司在 Bard 的更新页面上写道:"我们正在为 Bard 理解 You...
            0 0 1029
            分享
          •   一、稳定性测试的要点  1、长时间的以正常的业务负载进行运行(最低为用户实际使用时的负载量,如果用户实际负载量低于最优负载量,也可以使用最优负载量)。  2、稳定性的测试数据(用户实际使用负载量)来源于运营数据。  3、稳定性测试时,需要针对不同的业务操作,并且模拟不通的用户,进行长时间的稳定性测试(并行执行所有脚本,因为要模拟实际用户使用场景,不同的用户在线所做的动作肯定不一致)。  二、性能测试的监控的关键指标  1、系统指标:与用户场景和需求相关的指标  用户并发数:某一物理时刻同时向系统提交请求的用户数。  平均响应时间:系统处理事务的响应时间的平均值,一般在3s左右。  吞吐量:...
            0 0 591
            分享
          • 1、添加线程组--在测试计划上右击-添加-Threads-线程组线程数:登录用户人数Ramp-up Period:5s内5个人完成登录,隔一秒就开始登录下一个人循环测试:可以设定请求次数,此处是5个人循环两次,发送10个http请求2、添加http请求默认值--在线程组上右击-添加-配置元器件-http请求默认值这是下边sampler相同信息的集合,添加http请求默认值之后,sampler中此项信息可以空白,jmeter执行时会自动获取3、添加sampler-http请求-登录界面4、添加sampler-http请求-登录-携带用户名和密码可以看到-登录界面和登录携带参数的请求网址是不一样的...
            14 14 2301
            分享
          • 前言例如:测试工程师面试题目1、软件的生命周期有哪些阶段?① 需求阶段分析和学习阶段,团队去查看这个需求是不是可测的。② 计划阶段辨别出哪些活动和资源和测试的目标时匹配的,辨别并追踪这些测试的指标、计划。③ 分析阶段通过需求文档等条件辨别测试条件,追溯到需求。④ 设计阶段概述测试条件;获取测试数据;搭建环境;跟踪测试指标。⑤ 编码阶段创建详细的测试用例,进行编码。⑥ 运行和维护阶段⑦ 总结阶段检验完成度和用户满意度。2、测试的整个流程有哪些① 需求评审阅读需求,理解需求,查看是否有不符合逻辑的需求,明确测试周期。② 测试计划根据项目计划和开发人员的时候指定测试计划,包含测试内容、测试规划、测试...
            1 1 3076
            分享
      • 51testing软件测试圈微信