质问
前京东测试架构师、阿里云MVP、华为云MVP、中国商业联合会互联网应用工作委员会智库专家、中关村智联软件服务业质量创新联盟软件测试标准化技术委员会委员、极*客时间命题专家,极*客时间《接口测试入门课》作者、《研发效能实践指南》副主编、拉钩教育《软件测试第一课》作者,NCUT软件体系结构实验室特邀企业导师、《接口测试方法论》《持续测试》《京东质量团队转型实践》图书作者、《测试敏捷化白皮书》特邀编委、《DB51T1998-2015移动智能终端应用软件(APP)产品通用技术要求及测试规范》编委、多次受邀参与TID、NCTS、MAD、MPD、TICA、DevOpsDys等技术峰会以及参出品人。
展开
-
为平台工程而生的测试报告整合方法:CTRF报告
CTRF 提供了一种JSON格式的测试报告的Schema,从而定义了一种统一格式的测试报告。网址https://github.com/ctrf-io,如下例子所示。"tool": {},},"tests": [],CTRF解决了不同测试工具之间的测试报告的差异性,这也为不同阶段建立使用不同测试工具完成测试后,进行综合的结果分析奠定了基础。results对象是单词测试的核心组件,包含了tool、summary、tests、environment、extra属性。NameType必须简介。原创 2025-02-13 17:33:15 · 69 阅读 · 0 评论 -
Jacoco的XML报告详解
使用jacococli完成jacoco测试报告生成后,会看到有一个.xml结尾的文件,这个就是xml格式的覆盖率报告。除了xml还有csv、html格式的报告,本文进介绍xml报告。原创 2024-09-11 17:39:54 · 1164 阅读 · 0 评论 -
一次利用大模型完成Jacoco code coverage报告合并的尝试
最近有一些需要合并jacoco报告的需求,这个合并远远超出了jacococli提供的mergeapi的能力,所以尝试用大模型来解决该问题。原创 2024-07-05 10:47:24 · 713 阅读 · 0 评论 -
Jacoco的覆盖率原理
虽然JVMTI提供了强大的功能,但是需要注意的是,并非所有的JVM实现都支持JVMTI的所有特性。Probe探针在不影响原来的指令执行流程的前提下插入到两个指令之间,每一个探针都插入在程序的control flow的边中,如果探针被执行了,我们可以确定这个边上的代码就会被执行。JUMP(conditional):反转操作码的语义,然后在条件跳转指令后加探针,然后在探针后添加GOTO指令跳转到原本的位置(这是因为字节码是顺序执行的,所以需要添加一个goto,完成无条件跳转的。原创 2024-07-03 16:14:54 · 398 阅读 · 0 评论 -
线上数据线下使用的数据处理方法:数据脱敏
在信息技术领域,敏感数据是指那些一旦被泄露或滥用,可能会对个人隐私、企业利益或国家安全造成严重影响的信息。这类数据通常包括但不限于:个人信息:如姓名、身份证号、联系方式、住址等。财务信息:如银行账户、信用卡号、交易记录等。商业机密:如产品设计、市场策略、研发资料等。数据脱敏(DataMasking)就是针对敏感信息进行处理的技术,通过对敏感数据的清晰、变形等方法保护了敏感信息的保密性,同时又能够利用这些信息进行质量保证工作的支持。原创 2024-06-26 11:24:05 · 249 阅读 · 0 评论 -
性能测试中关注的指标
这里有这么的的指标,但是并不是每一次性能测试都需要关注,应该依据业务模型、系统实现方式进行选择。原创 2024-06-26 10:09:25 · 372 阅读 · 0 评论 -
流量回放的数据隔离
流量回放的数据隔离是回放得以实施的重要部分,如果没有做好数据隔离,回放后对于数据的污染会是一个灾难性的后果。那么除了上面说的隔离方案外,要成功实施流量回放还需要完成一些外部依赖系统的解耦,还有一些内部资格验证的逻辑约束,这是因为有时候流量回放是通过录制后放大的流量进行的回放,因此有些用户、优惠券、活动资格等都是有约束的,这些对于流量回放标记的数据应该有一些豁免权。原创 2024-06-20 10:43:16 · 297 阅读 · 0 评论 -
破解研发效能度量悖论
在研发效能度量的探讨中,我们面对的不仅是团队成员各自的期望和小心思,还有度量模型本身可能引发的悖论。管理人员渴望数据来评估团队表现,而工程师则希望保持个人不受歧视。这种差异导致了度量模型的设计存在一定的困境,容易使得团队在追求表面上的优秀成绩的同时忽视了实际的研发能力提升。为了短期避免悖论的出现,引入“测谎”指标成为一种方法。然而,这种方法仍然是治标不治本,因为它未能解决度量模型本身的信度和效度问题。我认识到度量模型的信度和效度是关键的。原创 2024-01-29 17:39:20 · 359 阅读 · 0 评论 -
技术债:千里之堤毁于蚁穴
最近读了一篇论文《Prevalence, Common Causes and Effects of Technical Debt: Results from a Family of Surveys with the IT Industry》,论文很长,主要是通过调研了12个国家和地区的开发人员,给出一些技术债务的分析。原创 2024-01-24 09:59:20 · 189 阅读 · 0 评论 -
软件测试是质量需求的交付实践
最近反复被测试有用吗?测试必须测试工程师完成吗?为什么要做自动化测试?自动化测试的价值是什么?等等一系列的问题不断地拷问,索性就把这段时间的思考记录下来了。原创 2024-01-11 22:53:36 · 287 阅读 · 0 评论 -
7 AI系统伦理道德风险之透明度验证
在实现过程中提供可解释性模型,通过可以解释自己的决策过程和推理过程的模型提供AI系统的透明度,然使用者更好的理解系统的决策过程和可信赖度。例如要测试ChatGPT的透明性,需要训练数据的来源、数量、质量、隐私性、版权等问题对数据进行追溯,并且了解GPT3.5模型的实现原理,了解模型的优越性和局限性,然后通过连续的会话是否能够保持会话的准确、完整、一致、无偏见、无误导等属性,同时也要知道ChatGPT遵循了那些法律法规、规则规范等,然后功能测试过程中将如上的一些验证点植入测试用例中进行验证。原创 2023-04-27 14:49:53 · 451 阅读 · 0 评论 -
遗留系统的自动化测试策略和实践方法
本文通过分析遗留系统的问题、痛点阐述了遗留系统可能引起的危害。通过分析开发工程师处解决遗留系统的方法,给出了支持不同方法的自动化测试策略,给出了实施办法。原创 2023-02-14 13:25:00 · 496 阅读 · 0 评论 -
测试环境建设原则和管理实践
测试环境是测试工作的基础,如果在测试过程中需要不断的维护测试环境的正确性才能保证测试工作的正常秩执行,那么测试工作的效率会严重受到影响。基于上述原则建设测试环境,可以帮助测试工程师聚焦于测试工作本身,从而实现更高效的质量保障工作。原创 2023-01-10 10:05:28 · 1183 阅读 · 0 评论 -
分层自动化测试模型深入研究
未来伴随则自动化测试技术的发展,分层自动化测试模型也会不断演进和发展,但是无论如何演进分层模型的依据还是测试投入,因此未来如果智能化测试能够替代人工投入那么分层模型也会有根本性的改变的。原创 2022-12-27 14:29:30 · 599 阅读 · 1 评论 -
从SDLC到DevSecOps的转变
开发&测试阶段:在开发评审阶段完成后,RD将进行针对本次需求的代码开发和自测/联调,这时我们也可以提供一些用来自测安全风险的工具,比如白盒安全扫描工具,将白盒安全扫描工具作为一个插件融入研发流水线中,每次RD在push代码到开发分支后,自动触发流水线进行白盒安全扫描,查看有无安全漏洞,若发现安全漏洞则发送工单提供给安全工程师(Sec)进行Review以确认是否需立即修复,同时安全漏洞也会block测试环境部署及后续合码操作,以此保证自测阶段的安全测试效果。2022年11月22日。原创 2022-11-29 10:11:08 · 494 阅读 · 0 评论 -
测试工程师如何帮助开发域的质量变好
测试工程师如何帮助开发域的质量变好原创 2022-11-22 09:23:48 · 267 阅读 · 0 评论 -
测试智能化系统
测试智能化系统是一个既有传统方法又有特殊的一些方法,但是无论是哪种方法,都还是站在测试视角在考虑问题。原创 2022-11-02 17:58:39 · 911 阅读 · 0 评论 -
服务虚拟化HoverFly入门扫盲
服务虚拟化技术能够用来模拟服务依赖项的行为。它除了可以帮助我们解决外部服务级别依赖所导致一些问题以外,还可以帮助我们测试不受控的服务以及能够解决引起不稳定的外部因素。例如无法与外部服务器通信、外部依赖服务出现了一些问题、公共API访问次数限制、公共APi访问速度限制等等。原创 2022-10-24 13:11:48 · 1264 阅读 · 0 评论 -
持续测试成熟度模型
持续测试成熟度模型原创 2022-10-08 12:04:06 · 520 阅读 · 1 评论 -
持续测试破解自动化测试的行业谜题
谁说自动化测试发现不了BUG?每一个质量保障团队对自动化的投入都会面领着管理者价值拷问,例如自动化测试发现了多少BUG,自动化测试能不能发现BUG等一系列的问题。虽然任何一个内行人都知道自动化测试是必不可少的环节,但是却又很难回答如上的一些问题。原创 2022-09-29 15:32:07 · 414 阅读 · 0 评论 -
软件质量模型详解
基于经验的层次模型由一些质量因素、质量准则和质量度量等组成,这也导致了只能表达质量属性之间的正面的关系,但是对于一些反面的、更复杂的关系却没有能力表达出来基于经验的关系模型能够表达质量属性之间关系,这些关系有可能覆盖正面、反面、中立的关系,但对于一些更为复杂的关系则同样无法表达。原创 2022-09-15 11:57:28 · 1684 阅读 · 0 评论 -
持续测试的实践方法
持续测试并不是什么全新的测试技术、测试方法,而是一种测试实践方法。持续测试侧重于业务风险并提供有关软件是否可以被发布的决策基础。“自动化测试对于连续测试至关重要,但它并非全部。自动化测试旨在生成一组与用户故事或应用需求相关的通过/失败数据检查点。而持续测试侧重于业务风险并提供有关软件是否可以被发布的决策基础。除了将测试用例自动化,持续测试还包括了诸如验证业务风险,应用服务虚拟化和状态化测试数据管理以稳定持续测试;在每个迭代中使用探索性测试来尽早发现阻碍性问题等实践。它不单是意味着使用更多的不同的工具。它要求原创 2022-09-15 11:48:18 · 551 阅读 · 0 评论 -
接口测试关键技术
●协议客户端模拟协议客户端模拟行为的测试技术,这既可以是测试脚本也可以是测试平台,它主要提供一种模拟与被测服务交互的技术手段,提供与被测系统发生交互的基础,从而为接口测试的实现建立基础手段,例如HTTP协议比较常用的方式是代码调取对应的协议访问客户端类,java的HttpClient、Python的requests等,或者利用常规的工具postman等。我们提及的接口测试绝大部分情况下都是指的是自动化接口测试,其实自动化接口测试是两部分技术手段的结合体,这里面包含了自动化和接口测试两方面要素。...原创 2022-07-28 16:39:40 · 646 阅读 · 0 评论 -
测试中的误报和漏报同样的值得反复修正
制品过程中,测试用例执行失败,那么不一定是发现了问题也有可能是外部因素导致的,这就是缺陷误报;在上线后,用户触发了遗漏缺陷,会引起一系列连锁反应,甚至导致资损,这些遗漏的缺陷是因为漏报导致的。那么无论是误报,还是漏报都会导致制品团队的返工,也是最大的浪费。...原创 2022-07-28 11:53:48 · 359 阅读 · 0 评论 -
遗留系统的自动化策略
维基百科遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序,“属于或与以前的、过时的计算机系统有关”,但仍在使用中。通常,将系统称为“遗留系统”意味着它可能已经过时或需要更换。...原创 2022-07-27 17:30:33 · 498 阅读 · 0 评论 -
选好冒烟测试用例,为进入QA的制品包把好第一道关
说起冒烟测试大家都觉得很重要,但是冒烟测试应该如何做呢?原创 2022-07-26 18:05:51 · 727 阅读 · 0 评论 -
测试环境建设的基本原则
测试环境是测试工作的基础,如果在测试过程中需要不断的维护测试环境的正确性才能保证测试工作的正常秩执行,那么测试工作的效率会严重受到影响。再如上的原则之下建设测试环境,会让测试工程师聚焦到测试工作中,从而实现更高效的质量保障工作。https。......原创 2022-07-21 16:44:07 · 470 阅读 · 0 评论 -
分层自动化测试模型变与不变
分层自动化测试模型最早是由Mike Cohn在2009年出版的《Succeeding with Agile》书中的第十六章进行阐述的,他说“测试金字塔是分层测试的一种最佳实践“。金字塔自动化测试模型如上图A所示,从下往上分为单元测试、接口测试、界面测试(其实我更习惯于叫UI自动化)。那么他为什么是金字塔的样子呢?这其实是和每一类自动化测试的投入产出比相关联的。“越早开始测试,发现问题修复问题的成本越低”,这句话决定了在单元测试阶段发现的问题修复成本最低,因此应该加大单元测试的投入,因此在金字塔模型中单元测试原创 2022-07-14 16:01:19 · 391 阅读 · 0 评论 -
持续测试和质量保障的关系
质量保障(Quality Assurance,简称QA)最为根本的含义就是通过一系列的标准化的程序或者流程,保障交付给客户的软件或者服务所应该具有的质量水平。质量保障和实际的测试还是有区别的,质量保障(QA)不涉及软件产品的实际测试方法、过程,质量保障工程师更加专注于帮助公司创建满足业务方期望的流程方法从而提高客户忠诚度,因此可以看出质量保障是面向过程的。软件测试是为了发现软件定义问题和内部存在缺陷的实践方法。因此可以看出软件测试和质量保障是解决不同问题而存在的,那么质量保障和软件测试也不是说完全无关的,在原创 2022-06-23 15:43:28 · 226 阅读 · 0 评论 -
持续测试是一种测试实践
持续测试和自动化测试的关系持续测试是在软件交付生命周期过程中,以防控业务风险为目的,将每一个阶段都通过测试活动进行质量保障,并尽最大可能自动化测试活动,并将测试结果不断的反馈给制品过程的测试实践活动就是持续测试。通过持续测试的定义我们可以知道,尽最大可能自动化测试活动将会是持续测试是否能够落地实践的重要手段。持续测试包含了两部分实践约束:第一部分是每一个DevOps中的阶段都应该有对应的质量保障活动的存在第二部分持续不断的将测试结果反馈到制品过程中进行改进那么如果要实现如上两种重要的实践,自动原创 2022-05-30 09:57:26 · 368 阅读 · 0 评论 -
软件质量模型概述
软件质量模型简介软件测试的目的就是为了“验证产品质量是否满足用户的需求”。但是搞清楚,用户的需求并不是一件容易的事,因此在软件测试行业发展的漫长历史中,需要一种方式能够积累广大测试工程师的经验。这里的经验就是如何验证用户的需求。这也促使软件质量模型的诞生。软件质量模型是一个衡量软件整体质量效果的度量标准,反映软件满足明确或隐含需要能力的特性总和。如果你的测试活动脱离了软件质量模型,那么很有可能会有一些很重要的内容被忽略。软件质量模型发展到现在也经历了很多演进,但是每一种演进都是是为了交付好系统而发展的。原创 2022-05-18 17:50:07 · 2362 阅读 · 0 评论 -
Nokia Scrum Test:这是一个判断团队是不是敏捷的测试方法
Nokia Scrum Test是诺基亚内部的一个简单测试问题列表,用于判断一个团队是否真的在使用Scrum。Nokia Scrum Test分成两部分PART 1: ARE YOU DOING ITERATIVE DEVELOPMENT?你们是否在使用迭代测试问题1:迭代周期必须是限制长度的且少于4周?Yes our iterations are 4 weeks or lessNo问题2:在每个迭代的末尾,软件功能必须被测试并能工作?Yes our features are tes.翻译 2022-04-13 11:27:47 · 372 阅读 · 0 评论 -
变异测试变异算子构思路
变异测试:是一种通过将错误注入代码并查看测试是否检测到错误来评估测试质量的方法。常用的变异算子的构造方法:if条件修改成相反的def checkout(cart): if cart.items: throw Error("cart empty") return checkout_internal(cart)变异测试,修改成如下:def checkout(cart): if not cart.items: throw Error("cart empty") re原创 2022-03-31 15:48:09 · 1259 阅读 · 0 评论 -
SonarQube的代码坏味道
定义CodeSmell就是翻译过来有叫坏味道也有叫代码异味的,这主要是一个和维护性相关的指标,重点的含义是保持这样的代码,会导致代码维护成本越来越高,时间长了会导致很多无法理解的代码留存在项目中,从而可能会引起一些缺陷。等级划分可维护性从A级别到E级别,分别表示了从非常好的可维护性到非常差的可维护性,这是由技术债务比率解决的,技术债务比率计算如下:** 技术债务比率=项目的技术债务的成本/从零开始重写代码所需的成本**A级别:技术债务比率<=0.05B级别:0.05<技术债务比率&原创 2022-02-28 15:17:53 · 3157 阅读 · 0 评论 -
SonarQube的缺陷详解
缺陷的定义SonarQube的对BUG的定义在代码中可以引起一些错误的问题部分。即使现在没有引起一些软件系统的问题,那么也是需要修复的。缺陷的分级从上面的定义我们可以看出来,SonarQube是针对一些代码中潜在的问题进行的扫描,并给出问题确认。SonarQube对缺陷的分级如下:阻塞级别:阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较原创 2022-02-28 12:28:24 · 1647 阅读 · 0 评论 -
CentOS8的源在2021年12月31日停止服务: Failed to download metadata for repo ‘appstream‘: 解决办法
问题最近新安装了一个CentOS8,在做YUM安装一些工具的时候出现了如下问题“ Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”,问题原因因为centOS8于2021年12月31日停止了源的服务,所以不行了。解决办法按照如下命令行操作执行即可:[root@56f295723fa1 yum.repos.d]# sed -i 's原创 2022-02-22 10:15:03 · 1078 阅读 · 0 评论 -
如何设立正确的质量度量
比尔·盖茨曾经说说过用代码行数来衡量软件的生产力,就像用飞机的重量来衡量飞机的生产进度一样。所以找到正确的度量质量的指标我们才能得到正确的质量结果。这就如同被很多人千行代码缺陷率遭到很多人的诟病一样,网上曾经有一个笑话就是说千行代码缺陷率的。某公司有两个开发团队,团队间针对缺陷密度的千行代码缺陷率这个指标做对比,千行代码缺陷率高的团队扣奖金奖励给千行代码缺陷率低的团队。在第一个月团队A的千行代码缺陷率高过了团队B,团队A的小伙伴很不情愿的被扣了绩效,但是团队B的成员却很开始。在第二个月开始的时候,团队A的原创 2022-02-18 11:34:24 · 427 阅读 · 0 评论 -
单元测试发现是问题不是缺陷
近几天被单元测试发现的问题是不是缺陷给困扰了,我一直在想单元测试发现的问题为什么不记录到缺陷管理系统?记录的缺陷管理系统有什么用,会有什么影响?为什么要记录缺陷,到底什么是软件缺陷?缺陷《宋史·李沆传》:“身食厚禄,时有横赐,计囊装亦可以治第。但念内典以此世界为缺陷,安得安满如意,自求称足?”缺陷,汉语词汇,拼音是quē xiàn,本意指欠缺;缺失;不完美。 在晶体学、质检等不同领域又有着不同的含义。出自《宋史·李沆传》。这么看来,缺陷就是一个不好的点,在软件交付过程中的任何部分,只要是不完美,.原创 2022-01-17 12:46:09 · 366 阅读 · 0 评论 -
详解持续测试
持续测试在我开始写这个文章之前,我一直以为持续测试就和持续集成、持续交付、持续部署一样,有明确的阶段性定义的一个概念,当我开始不断的查资料,我得到了无数个持续测试的定义。有的定义清晰,有的定义模糊,每个文章都有自己的定义,那么我讲这些文章的内容的重叠部分尝试用简单的方式描述出来,希望能整理清楚持续测试是什么。持续测试是什么说到持续测试,我发现大部分网站中用的是Tricentis公司的CMO的Wayne Ariola在公司的博客中的Continuous Testing: “Perfect” Soft原创 2022-01-13 20:19:41 · 1260 阅读 · 0 评论 -
静态扫描的新利器
静态代码检查静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。而动态测试是通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标。静态测试被测对象是各种与软件相关的有必要进行测试的产物,是对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态测试可以手工进行,充分发挥人的思维的优势,并且不需要特别的条件,容易展开,但是静态测试对测试人员的要求较高,至少测试人员需要具有编程经验。静态测试主要包括各阶段的评审、原创 2021-12-30 13:44:16 · 871 阅读 · 0 评论