首页 > 其他分享 >哎呀,当时怎么没有想到 | 京东云技术团队

哎呀,当时怎么没有想到 | 京东云技术团队

时间:2024-02-18 14:33:05浏览次数:32  
标签:需求 场景 验证 哎呀 覆盖度 测试 京东 团队 测试环境

在我们的测试工作中,是不是经常遇到这样的情形,发生了线上问题,产品、研发或者测试同学一拍脑袋:当时怎么没有想到,怎么给漏掉了呢?明明是一个非常简单的事情,用大拇指都能想到的验证场景,为何当时就漏测了呢?但实际情况是,逃逸到线上的缺陷,疑难杂症式的极端异常的问题很少,大部分都不复杂且可以在设计和开发中规避,或者在测试过程中被识别出来。针对此类问题,从测试覆盖度的角度,本文试图解释一下为何会发生这样的事情,以及如何有效规避。

 

一. 为什么经常会发生测试场景覆盖不全的问题

高质量的测试覆盖率是确保产品质量和用户体验的关键因素,但为何会经常发生测试场景覆盖不全的问题,这里面既有主观因素的缺失,也有客观因素的限制,具体包括:

1. 主观原因

粗心大意:认为需求非常简单,没有认真分析验证场景及异常流程、分支流程,没有识别隐藏的细节,或者对于存在的风险,存在侥幸心理,不去进一步求证或验证。 •经验主义:思维固化,认为老办法同样可以解决新问题,没有进一步思考对测试场景、测试数据、验证方式的不同之处。 •需求理解不充分:测试用例只覆盖到了产品PRD里的显式功能,没有覆盖隐性需求,只进行了黑盒测试或者黑盒测试覆盖的场景不足。 •业务知识不足:只看到了需求本身,没有看到背后隐藏的业务的真正诉求,知其然不知其所以然。 •开发知识欠缺:无法熟读代码,无法通过参加代码评审识别出研发代码改动之处及可能影响的范围,望码兴叹,无法熟练进行白盒测试,或者自动化测试代码健壮性较差,无法起到自动化回归的作用。 •信息互通不到位:与项目组其他成员沟通不到位,遗漏重要信息或没有对齐颗粒度,你以为的实际不是你以为,导致遗漏重要验证场景。 •用例颗粒度太大:编写用例的过程也是自己梳理信息的过程,用例颗粒度大,自然梳理的过程就不会太精细,自然遗漏验证场景的几率就会更大(虽然探索式测试的理念是不要求编写详细的测试用例,而是在测试过程中不断调整、优化或细化,但目前我们目前的环境不太适合探索式测试,因为绝大部分需求都要求快速上线,大部分需求都存在挤压排期的现场,在测试阶段很难有充足的时间进行探索式测试)。 •测试专业技能薄弱:测试专业技能、经验不足,力所不及,自然无法保证测试的充分性及验证场景的全面性。

2. 客观原因

项目周期紧凑:目前很多需求都无法按照研发测试的正常排期进行交付,倒排期和赶工是常态,测试很难有充分的时间思考验证场景,新功能的测试往往只能覆盖主要路径,而忽略了一些边界情况和异常情况。 •需求变更频繁:迭代快、变更快也是产品常态,往往一期还没有上线,二期三期就要评审了,没有经过线上真实环境、数据和客户的反馈,产品方案、技术方案存在的缺陷可能无法识别到。 •投放渠道众多:尤其是针对C端用户的拉新和促活活动,投放渠道非常多,涉及到不同在不同的环境运行,如App环境(iOS、安卓、鸿蒙)、H5环境、小程序环境,同时涉及到不同设备、不同环境、不同操作系统版本、不同浏览器的打开、回流、引导下载等操作,兼容性测试覆盖不足可能导致在某些环境下出现问题。 •流量情况悬殊:各个投放渠道流量差异较大,若上线前没有对各渠道的流量有充分的预估,没有进行压测,在高并发、大数据量或复杂业务场景下,性能问题可能无法被及时发现,从而导致线上问题。 •测试环境仿真度低:目前普遍存在系统之间测试环境不联通、测试环境数据不全等问题,导致测试环境的仿真度较低,可能出现测试环境无法模拟真实环境,或测试环境无法覆盖全部验证场景的情况。

 

二. 如何提升测试覆盖度

为了解决测试场景未覆盖导致线上问题的情况,进一步提升测试覆盖度,需要针对以上客观原因及主观原因进行分析,形成有针对性的对策。总结来说,在测前、测中及测后,提升"内因",把控“外因”,避免“三拍”。

 

 

1. 内因

提升测试覆盖度,“内因”是关键,即可以通过积极的质量策略以及专业能力的提升,大大减少测试覆盖度不足的情况。

测前:充分理解,不盲目拍胸脯保证。 ◦测试工作不是始于测试执行之时,而应前置到需求阶段,测试同学应具备基本的业务Know-How,充分理解业务逻辑及研发逻辑,面对具体的业务需求,不仅停留在功能实现层面,更应理解此需求背后的业务诉求。在前置编写及评审测试用例的时候,与产品、研发充分沟通产品逻辑及技术实现方案是否与业务逻辑及真正的业务诉求保持一致,充分讨论业务风险和技术风险。总之,绝不能不求甚解、掉以轻心,应不懂就问,多沟通,多讨论风险,敢于发问,敢于质疑。 ◦在测试专业能力方面,采用灵活的质量策略,如进行代码覆盖率分析,实时精准测试和探索式测试,贴近生产的测试环境和测试数据、更高覆盖率的的自动化测试,以及适合业务特点的测试工具等等。 •测中:充分识别,不草率拍脑袋决策。在测试执行阶段,按照我们前置测试用例的逻辑,此时应该大部分需求的测试用例已经编写完毕,但随着交付进度的进行,各方对需求的理解不断加深,可能会识别出新的范围、风险或问题,因此,在进行测试用例评审时,应再次就验证范围、风险、异常场景等进行确认,并标注出核心验证点,注测试过程中的问题和风险,及时调整和改进测试策略。还应共识双向的影响范围,即该需求是否影响了其他业务功能或技术模块,其他功能或技术模块是否影响该需求。 •测后:充分总结,不惊慌拍大腿懊悔。测试完成及上线不是终点,除了配合业务进行线上验证及观察线上数据、进行线上巡检之外,还应花点时间回顾一下交付的过程,总结经验教训,主动分享。对于核心的用例,看能否沉淀为自动化的回归及巡检用例。万一出现了线上问题,先尽快恢复业务,再分析原因,进行复盘,总结教训和改进方案。

2. 外因

提升测试覆盖度,“外因”是基础,即通过流程机制的约束及全流程的质量把控,层层把关,互相补位,从机制上降低测试场景遗漏发生的概率。通过规范化的质量活动对需求交付的各个阶段进行质量准入和准出,步步为营,形成强制性的“七道关卡”,只要是严格遵守这套流程机制,上一道关卡遗漏下来的问题,可能会被下一道关卡识别出来,因此,遗漏验证场景的从而导致缺陷逃逸到线上的概率会被大大降低。

 

总结一下,针对如何提升测试覆盖度,“内因”是关键,基本可以解决上述“主观原因”导致的测试覆盖不足的问题,“外因”是基础,基本可以解决上述“客观原因”导致的测试场景覆盖不足的问题。

三. 综述

总结来说,防止线上问题不能停留在口头上,或者简单粗暴地要求测试同学提升测试覆盖度,应该给与更加具体的要求、指导及评价的标准。其关键要素是流程机制确保基本的质量,专业能力进一步增进质量,主观能动性构建持续的高质量,只有不断提升“内因”并把控好“外因”,才能有效防范“漏测”问题的发生,持续交付稳定可靠的产品,并提供更好的用户体验。

作者:京东科技 王先科

来源:京东云开发者社区 转载请注明来源

标签:需求,场景,验证,哎呀,覆盖度,测试,京东,团队,测试环境
From: https://www.cnblogs.com/Jcloud/p/18019265

相关文章

  • 糟糕,被SimpleDateFormat坑到啦!| 京东云技术团队
    1.问题背景问题的背景是这样的,在最近需求开发中遇到需要将给定目标数据通过某一固定的计量规则进行过滤并打标生成明细数据,其中发现存在一笔目标数据的时间在不符合现有日期规则的条件下,还是通过了规则引擎的匹配打标操作。故而需要对该错误匹配场景进行排查,定位其根本原因所在......
  • .NET 团队公布.NET 9开发目标 并发布.NET9的首个预览版
    在一篇博文中我们对.NET9的愿景[1]:.NET团队概述了.NET9的开发目标和最终愿景,涵盖两大重点领域:云原生和智能应用程序开发。它在继.NET8之后,继续强化对云原生应用和性能的支持。.NET9预览版1已经在2024年2月13日发布,与往常一样,.NET9将在整个平台上提供性能、生产力、安全......
  • 团队管理--程序员值班
    值班项目组每天都会面临一些生产问题/咨询问题,需要研发人员去定位处理,要安排人员值班。由谁对接用户并不是说研发值班,就一定要由研发去对接用户。不要让研发直接跟用户对接!!!否则研发人员的工作效率会受到极大的影响,研发每天都会因此浪费大量的时间。解答一个问题,可能又会问多......
  • 05. Git团队协作
    一、团队内协作1.1、邀请成员到团队  使用GitHub进行团队内协作时,我们需要邀请成员到团队内。首先,我们先进入远程库,在点击【settings】选项,选择【Collaborators】选项,然后再点击【Addpeople】按钮。  接着,在弹出的对话框中输入要邀请人的用户名或邮箱,然后点击选择,接......
  • 任务执行器和代码托管平台:提高团队协作效率的利器
    摘要:在现代软件开发中,任务执行器和代码托管平台是不可或缺的工具。任务执行器帮助团队自动化任务的执行和调度,提高工作效率和可靠性。代码托管平台则提供了一个集中管理和协作开发代码的平台,促进团队成员之间的合作和代码质量的提升。本文将介绍任务执行器和代码托管平台的概念、用......
  • 「云原生可观测团队」获选「InfoQ 年度技术内容贡献奖」
    随着云原生、人工智能逐渐成为各行各业的创新生产力工具。可以预见,我们即将进入全新的智能化时代。随着数据成为新型生产要素,云和AI正走向深度融合。云原生通过提供大规模多元算力的高效供给,可观测成为业务创新的核心基础设施,加速智能化创新。这一过程离不开开发者、企业、厂商......
  • 浅谈LocalCache | 京东云技术团队
    1、什么是LocalCache?本地缓存是一种将数据存储在应用程序内存中的机制,用于提高数据访问的性能和响应速度。它通过在内存中维护一个键值对的存储结构,允许应用程序快速检索和访问数据,而无需每次都从慢速的数据源(如数据库或网络)获取数据。2、LocalCache优缺点1)优点•快速访问:Loca......
  • 浅谈LocalCache | 京东云技术团队
    1、什么是LocalCache?本地缓存是一种将数据存储在应用程序内存中的机制,用于提高数据访问的性能和响应速度。它通过在内存中维护一个键值对的存储结构,允许应用程序快速检索和访问数据,而无需每次都从慢速的数据源(如数据库或网络)获取数据。2、LocalCache优缺点1)优点•快速访问:LocalCach......
  • 大文件上传原理及实现方案 | 京东物流技术团队
    ​一、什么是大文件一般,我们传送大文件是指传送大于100M的文件,而普通文件是指小于100M,常见的是20M、30M和50M,两者主要的区别在于文件大小上,还有传送速度上。一般普通“邮件附件”只能发20M、30M,50M的文件,而几百M的照片、文件、设计图等大文件传送起来就不是那么容易了。二、大......
  • IT工单治理野史:由每周最高150+治理到20+ | 京东物流技术团队
    背景相信不少人都值过班当过小秘吧,每天都要在线排查与解答各种各样来自IT或"单聊"的问题,同时还要针对每个问题进行"复盘"分析,在完善系统、提高体验的同时挖掘出其中的雷点,防止某一天突然"爆炸"造成不可控的局面。我们这边在值班小秘每日进行线上问题排查、解答与跟踪,工单量越大耗费......