0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测试工作中的哎呀,当时怎么没有想到

京东云 来源:jf_75140285 作者:jf_75140285 2024-09-06 09:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

1. 主观原因

粗心大意:认为需求非常简单,没有认真分析验证场景及异常流程、分支流程,没有识别隐藏的细节,或者对于存在的风险,存在侥幸心理,不去进一步求证或验证。

经验主义:思维固化,认为老办法同样可以解决新问题,没有进一步思考测试场景、测试数据、验证方式的不同之处。

需求理解不充分:测试用例只覆盖到了产品PRD里的显式功能,没有覆盖隐性需求,只进行了黑盒测试或者黑盒测试覆盖的场景不足。

业务知识不足:只看到了需求本身,没有看到背后隐藏的业务的真正诉求,知其然不知其所以然。

开发知识欠缺:无法熟读代码,无法通过参加代码评审识别出研发代码改动之处及可能影响的范围,望码兴叹,无法熟练进行白盒测试,或者自动化测试代码健壮性较差,无法起到自动化回归的作用。

信息互通不到位:与项目组其他成员沟通不到位,遗漏重要信息或没有对齐颗粒度,你以为的实际不是你以为,导致遗漏重要验证场景。

用例颗粒度太大:编写用例的过程也是自己梳理信息的过程,用例颗粒度大,自然梳理的过程就不会太精细,自然遗漏验证场景的几率就会更大(虽然探索式测试的理念是不要求编写详细的测试用例,而是在测试过程中不断调整、优化或细化,但很多需求不太适合探索式测试,这些需求要求快速上线,排期被严重挤压,很难有充足的时间进行探索式测试)。

测试专业技能薄弱:测试专业技能、经验不足,力所不及,自然无法保证测试的充分性及验证场景的全面性。

2. 客观原因

项目周期紧凑:目前很多需求都无法按照研发测试的正常排期进行交付,倒排期和赶工是常态,测试很难有充分的时间思考验证场景,新功能的测试往往只能覆盖主要路径,而忽略了一些边界情况和异常场景。

需求变更频繁:迭代快、变更快也是产品常态,往往一期还没有上线,二期三期就要评审了,没有经过线上真实环境、数据和客户的反馈,产品方案、技术方案存在的缺陷可能无法暴露和识别。

投放渠道众多:尤其是针对C端用户的拉新和促活活动,投放渠道非常多,涉及到不同的承接环境,如App环境(iOS、安卓、鸿蒙)、H5环境、小程序环境,同时涉及到不同设备、不同环境、不同操作系统版本、不同浏览器的打开、回流、引导下载等操作,兼容性测试覆盖不足可能导致无法识别到特定设备下的功能或体验问题。

流量情况悬殊:各个投放渠道流量差异较大,若上线前没有对各渠道的流量有充分的预估,没有进行压测,在高并发、大数据量或复杂业务场景下,性能问题可能无法被及时发现,从而导致线上问题。

测试环境仿真度低:目前很多系统之间存在测试环境未打通、测试环境数据不全等问题,导致测试环境的仿真度较低,可能出现测试环境无法模拟真实环境或测试环境无法覆盖全部验证场景的情况。

二. 如何提升测试覆盖度

为了尽量避免因测试场景覆盖不足所导致的线上问题,需要针对以上客观和主观原因进行分析,并制定行之有效的对策。总结来说,在测前、测中及测后,提升"内因",把控“外因”,避免“三拍”。

wKgaombaXr6AdCfOAAN9w_h8Eoc445.png





1. 内因

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

测前:充分理解,不盲目拍胸脯保证

◦测试工作不是始于测试执行之时,而应前置到需求阶段,测试同学应具备基本的业务Know-How,充分理解业务逻辑及研发逻辑,面对具体的业务需求,不仅停留在功能实现层面,更应理解此需求背后的业务诉求。在前置编写及评审测试用例的时候,与产品、研发充分沟通产品逻辑及技术实现方案是否与业务逻辑及真正的业务诉求保持一致,充分讨论业务风险和技术风险。总之,绝不能不求甚解、掉以轻心,应不懂就问,多沟通,多讨论风险,敢于发问,敢于质疑。

◦在测试专业能力方面,采用灵活的质量策略,如进行代码覆盖率分析,实施精准测试和探索式测试,维护贴近生产的测试环境和测试数据、更高覆盖率的的自动化测试,以及适合业务特点的测试工具等等。

测中:充分识别,不草率拍脑袋决策。按照我们前置测试用例的逻辑,大部分需求的测试用例在开发阶段或开发之前就已经编写并评审完毕,但随着交付进度的进行,各方对需求的理解不断加深,即使进入到测试阶段,仍可能会识别出新的范围、风险或问题,因此,应不断就验证范围、风险、异常场景等进行确认,并标注出核心验证点以及测试过程中可能存在的问题和风险,及时调整和改进测试策略。还应共识双向的影响范围,即该需求是否影响了其他业务功能或技术模块,其他功能或技术模块是否影响该需求。

测后:充分总结,不惊慌拍大腿懊悔。测试完成并上线不是终点,除了配合业务进行线上验证及观察线上数据、进行线上巡检之外,还应花点时间回顾一下交付的过程,总结经验教训,主动分享。对于核心的用例,看能否沉淀为自动化的回归及巡检用例。万一出现了线上问题,先尽快恢复业务,再分析原因,进行复盘,总结教训和改进方案。

2. 外因

提升测试覆盖度,“外因”是基础,即通过流程机制的约束及全流程的质量把控、层层把关、互相补位,从机制上降低测试场景遗漏发生的概率。通过规范化的质量活动对需求交付的各个阶段进行质量准入和准出,步步为营,形成强制性的“七道关卡”,即上图所示的用例前置、单元测试、冒烟演示、测试执行、产品验证、运营验收及线上灰度验证。严格遵守这套流程机制,上一道关卡遗漏下来的问题,大概率会在后面的关卡被识别出来,因此,遗漏验证场景的从而导致缺陷逃逸到线上的概率会被大大降低。(关于本段内容,可以参阅产品需求交付质量保证的“七重门”



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

三. 综述

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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    6039

    浏览量

    130737
  • 仿真
    +关注

    关注

    53

    文章

    4411

    浏览量

    137677
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式C/C++回归测试四大最佳实践(附自动化测试工具TESSY使用教程)

    嵌入式开发,一次微小的代码改动都可能引发“蝴蝶效应”,如何守护系统的稳健?推荐专业的自动化测试工具#TESSY,源自戴姆勒-奔驰,是嵌入式C/C++单元/集成测试的标杆。
    的头像 发表于 10-31 14:21 191次阅读
    嵌入式C/C++回归<b class='flag-5'>测试</b>四大最佳实践(附自动化<b class='flag-5'>测试工</b>具TESSY使用教程)

    【综述】工作总有规范——测试执行和bug

    关于测试工作的规范,上次讨论了用例部分。本次将继续聊下测试执行期间的规范标准,是主要需要测试执行人员关注的部分。【测试执行】测试执行规范或标
    的头像 发表于 10-24 10:04 267次阅读
    【综述】<b class='flag-5'>工作</b>总有规范——<b class='flag-5'>测试</b>执行和bug

    嵌入式软件测试与专业测试工具的必要性深度解析

    技术。 ‌环境适应性挑战‌:温度、湿度、电磁干扰等环境因素会显著影响硬件性能,导致系统不稳定或故障,这类问题在测试往往超出预期范围。 专业测试工具的核心价值专业测试工具针对嵌入式系
    发表于 09-28 17:42

    有一个转向灯是12V电池供电的产品,那ESD测试工作模式不需要包含24V吧?

    有一个转向灯是12V电池供电的产品,那ESD测试工作模式不需要包含24V吧?*附件:GB∕T 17626.5-2019 电磁兼容 试验和测量技术 浪涌(冲击)抗扰度试验.rar
    发表于 09-16 11:21

    “没什么可测”时,测试工程师可以做什么?

    作为一名软件测试工程师,应该都有过这样的经历:开发人员还在编码,看板上没有测试的任务,没有即将发布的版本,也
    的头像 发表于 09-12 10:03 444次阅读
    “没什么可测”时,<b class='flag-5'>测试工</b>程师可以做什么?

    为什么要做晶振匹配测试

    crystaloscillator为什么要做晶振匹配测试?了解振荡电路的其他元件为什么要做晶振匹配测试?因为要验证测试晶振是否超出频率偏差,晶振在实际工作中的输出频率偏差太大,可能超出
    的头像 发表于 08-12 18:23 470次阅读
    为什么要做晶振匹配<b class='flag-5'>测试</b>?

    请问AIROC™ Bluetooth®测试和调试工具_1.4.2是否支持CYW9RPIWIFIBT-EVK ?

    我想知道AIROC™ Bluetooth®测试和调试工具_1.4.2 是否支持 CYW9RPIWIFIBT-EVK 的Bluetooth®测试? 我查看了该软件的用户指南,在第1.3节
    发表于 06-25 08:09

    一个优秀的射频测试工程师需要具备哪些技能?

    一个优秀的射频测试工程师需要具备哪些技能?在无线技术高速发展的今天,射频(RF)测试工程师是确保通信设备性能与用户体验的关键角色。从复杂的调制方案到无处不在的干扰,从功耗优化到标准合规性,工程师需要
    的头像 发表于 05-16 10:08 1535次阅读
    一个优秀的射频<b class='flag-5'>测试工</b>程师需要具备哪些技能?

    如何在Visual Studio 2022运行FX3吞吐量基准测试工具?

    我正在尝试运行 John Hyde 的书“SuperSpeed by Design”的 FX3 吞吐量基准测试工具。 但是,我面临一些困难,希望得到任何指导。 具体来说,我正在使用 Visual
    发表于 05-13 08:05

    滚珠丝杆在工作中损耗会影响什么?

    滚珠丝杆在工作中的损耗会对设备的性能、精度、寿命和运行稳定性产生多方面的影响。
    的头像 发表于 05-10 17:54 389次阅读
    滚珠丝杆在<b class='flag-5'>工作中</b>损耗会影响什么?

    全自动框架寿命测试机6大突破,助力腾方提升工作效率和提高产品质量

    合作,我司最近成功完成了全自动框架寿命测试机的研制和多轮测试,现已正式交付,投入测试工作中。全自动框架寿命测试机的投入使用,不仅提高了我们的生产效率,还进一步提升
    的头像 发表于 02-06 09:14 604次阅读
    全自动框架寿命<b class='flag-5'>测试</b>机6大突破,助力腾方提升<b class='flag-5'>工作</b>效率和提高产品质量

    使用高速ADC工作中遇到两个很关键的问题求解答

    在最近使用高速ADC工作中遇到两个很关键的问题:一是用DSP产生告诉时钟信号发生畸形(我们需要用DSP-TMS28335给高速ADC提供至少20M的采样频率的时钟信号,但是当DSP产生10K
    发表于 01-24 06:51

    芯科科技Z-Wave设备测试工具介绍

    本篇技术博文将介绍SiliconLabs(芯科科技)提供的Z-Wave设备测试工具,通过使用一个旧的Z-Wave DUT项目来测试Z-Wave设备,以确保设备可以正常工作
    的头像 发表于 01-17 09:39 1041次阅读
    芯科科技Z-Wave设备<b class='flag-5'>测试工</b>具介绍

    光伏连接器的跨界之旅:不仅光伏板的专利,路灯也青睐有加

    光伏连接器还有这种功能奇效你没有想到吧?
    的头像 发表于 01-09 16:47 675次阅读

    Web端TCP/UDP测试工具!小白必学~

    Web端TCP/UDP测试工具,方便大家进行各种基于TCP和TDP的模拟测试。该测试工具不仅支持TCP和UDP测试,还支持SSL,使用极为便捷。 按照如下
    的头像 发表于 01-08 18:17 1996次阅读
    Web端TCP/UDP<b class='flag-5'>测试工</b>具!小白必学~