• 0
  • 0
分享
  • 这些测试中的奇怪问题你见过吗?——软件测试圈
  • 曼倩诙谐 2021-04-30 10:24:21 字数 1455 阅读 1300 收藏 0

  测试过程中,无论案例怎么设计、怎么执行,都需要测试人员有一定的敏感度去发现问题,测试人员的经验积累无论对于案例的设计、测试执行还是缺陷的发现都有很重要的意义,所以接下来我想给大家分享一些我自己在测试中遇到的经典或非经典场景。

  1 需求了解不到位

  有些问题其实并不算很难或很复杂,只是需要测试人员在测试前仔细阅读需求,明确需求要求实现的功能、需求给定的请求和应答报文字段、需求阐明的业务规则,所有需求里明确写了的内容在测试中应当务必保证覆盖。我在测试中遇到的问题有返回报文字段和需求不一致,业务规则要求取值范围大于等于固定值,在实现中变成了大于固定值等等情况。相关场景多是疏忽没有仔细阅读需求所致,有时候是由于任务多次分解,最后一个接收到代码任务的人没有接触到需求直接完成了代码工作,这种场景就需要测试人员足够细致耐心,如果测试环节无法发现,很有可能相关问题就会逃逸到生产上,再次修复成本更高,甚至可能已经产生了负面影响。

  2 查询条件是否包含等于

  涉及到查询交易中查询条件如何设置需要认真按需求完成,例如上一个问题中提到过的内容。但是也有其他场景,这次遇到的并不是开发代码问题,而是我在测试中对代码逻辑没有充分了解所以将正常逻辑误判为缺陷,开发同事在拒绝缺陷后又解释了相关场景和逻辑,我认为还是很有意义的一种场景,可以写下来给测试小伙伴们参考。在某交易明细查询中,查询条件有一个是20位时间戳,格式例如:20210101102533760702,在查询过程中,当上送时间戳字段的时候,返回的是时间戳大于该值的结果,不包括等于该值的场景,原因是该交易一般取上一次返回的时间戳为查询条件进行续查,如包含等于的场景会导致数据出现重复。由此可见,是否需要包含等于需要视应用场景而定,避免按自己的理解想当然,同时,相关场景如果不确定或未事先沟通的话,最好充分了解后再确定处理方案。

  3 空格在交易中的影响

  空格分全角空格和半角空格,我测试中遇到过两种情况。一种是一致性校验的过程中,一方数据混入了空格,需要额外进行处理;另外是在查询过程中,查询条件输入的值包含空格,需要考虑是否进行处理。以上两种情形,对空格的处置需要考虑多种情况,全角空格、半角空格、空格在数值前(例:  20210101)、空格在数值中(例:2020  0101)、空格在数值末尾(例:20210101  ),其中,空格在数值末尾和半角空格的场景相对比较常见和易于处理,另外几种场景则需要根据需求及应用场景充分考虑、适当处置,避免影响交易执行或交易成功率。

  4 数据校验的适当性

  在用户注册交易中,个人用户常常需要使用身份证号进行注册,通常大家默认身份证号为18位数字,第7位到第14位为8位年月日,但是实际中,有可能出现15位身份证号码,如果按18位且7-14位为日期进行校验,有可能拦住部分用户注册,导致用户注册失败。因此,在类似的数据校验中,校验规则应当松紧适宜,如果输入要素规则明确,可以适当细化校验规则,在输入的要素规则不明确的前提下,校验规则不应过于具体,以保证数据校验的适当性,避免出现上述问题。

  以上是我在近期的功能测试工作中遇到的我认为值得分享的事例。测试工作需要我们常常保持警惕,细致耐心完成工作任务,同时,在未完全明确的场景中,充分沟通也是非常重要的,提高事前沟通成本总好过大量精力花在时候修改上,沟通成本并不会减少,还要承担重复劳动修改代码的成本。


作者:邵永恰   

来源:51Testing软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   引言  知乎有个话题“软件测试的工资高还是开发者的工资高?”软件测试和软件开发门槛有差异,在职业起步阶段收入也会有一定的差异,这算是行业内公开的秘密。但随着工作年限的增加,经验的逐步积累,软件开发和软件测试的收入基本会持平。  尤其是在国内大的互联网公司,测试和开发的收入基本没有差距,纯粹的“软件测试”岗位已经逐渐变少,更多的是“测试开发工程师”岗位,像阿里社招基本上都是“测试开发”,薪酬也基本和开发工程师持平。  所以,如果你想从事软件测试相关的工作,好好的规划自己的职业发展道路,必然会获得行业顶薪。  通常情况下,在大的互联网公司,软件测试的发展道路大概有三个方向:管理路线、技术路线、...
            0 0 875
            分享
          •   【缘起】:“云计算”三个字在IT圈内的人士眼中绝对不陌生,至少听过见过不下数十次,近百次,甚至更多,但倘若要刨根究底这三个字背后的技术含义,势必会难倒不少人,说不清道不明的当不在话下。本次分享就带圈内人士们一起组队揭开“云计算”背后的神秘,从此不再做云端“盲人”,身在“云端”深处而浑然不知。  1.“云”深不迷茫  云计算可视为一种服务,以互联网为媒介,提供数据存储,数据访问及相关大数据计算等功能。之所以称之为“云”,一是因为它不会在我们本地个人计算机上存储任何数据,其二是由于该服务属于“on-demand service”,即按需服务,更接地气的说法是“点播业务”,仅根据用户需求提供服务...
            2 2 1565
            分享
          • 一、jmeter简介Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以;Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。二、jmeter安装首先需要安装jdk(最好是最新版的);其次去官网下载最新的jmeter版本;然后配置jmeter的环境变量;最后双击jmeter.bat或者在“命令提示符”输入jmeter,运行jmeter。具体安装步骤请自行网上查看三、设置jmeter的中文界面进入jmeter的bin目录,找到“jmeter.properties”文件,打开文件搜索“language”,将“#langu...
            0 0 1215
            分享
          • 读者提问:『什么是探索性测试,测试方法有哪些 ?』阿常回答:一、探索性测试的概念探索性测试是一种强调测试人员同时开展测试学习、测试设计、测试执行,并根据测试结果反馈及时优化的测试方法。探索性测试,是事先不进行计划和设计的一种特殊类型的测试,由有经验的测试人员根据实际情况,凭借自身的测试经验和对系统的认识来进行测试。本质上是敏捷,可以很好地应用于敏捷项目。二、探索性测试的方法1、上一版本测试法如果当前产品构造是对先前版本的更新,先运行先前版本上支持的所有场景和测试用例。2、恶邻测试法在缺陷横行的代码区域,测试人员应该多花时间测试。3、博物馆测试法对于旧代码和累积许久未执行过的用例,确保...
            0 0 1095
            分享
          •   为什么要进行自动化测试  开始正文前,我们必须先统一认知,充分认识到自动化测试的必要性,随着被测系统越来越大,逻辑越来越复杂,测试的工作量也会倍增,这必然会暴露出测试资源与测试生命周期的冲突,因此为了更快、有效、可靠的对被测系统进行测试,需要引入自动化测试。  而另一方面,当下测试开发岗位是目前软件测试的主趋势,也是升职加薪的必要手段,因此自动化测试必须要尽快实施。  分层做自动化  选择做自动化,首先要明确目标,自动化是分层的,目前主流认为,自动化测试主要分为UI、SERVICE、JUNIT 三层。  所以我们做自动化的第一步要确认,自己要做针对哪一层的自动化,每一层自动化要做的事情如下...
            15 16 1132
            分享
      • 51testing软件测试圈微信