关于测试:软件测试入门1

1、重点 什么是软件测试软件测试和研发的区别优良的测试人员所具备的素质2、什么是软件测试 软件测试就是找BUG,发现缺点;验证软件产品个性是否满足用户的需要。3、软件测试和软件开发的区别 (1)工作内容开发:通过不同语言,实现用户需要,最终做出软件(写代码)。测试:写测试用例、执行测试用例、测试报告、编写自动化测试用例、开发相干测试工具。(2)技能区别研发:技能深度(须要写出高效的代码)测试:技能广度(外观是否好看、WEB/APP的UI自测试、后端的接口测试、软件性能、平安相干......) 4、软件测试与调试的区别 (1)目标不同 调试(Debug):发现并解决问题 。测试(Testing):发现问题。(2)参加角色不同 测试:测试人员和开发人员来执行,黑盒测试次要由测试人员实现、单元/集成测试次要是由开发人员执行。 调试:开发人员实现。 (3)执行的阶段不同 测试:贯通整个软件生命周期,染指工夫比调试早。调试:开发阶段。(4)伎俩不同调试:剖析代码逻辑、debug......测试:边界值法、等价类划分法...... 5、优良的测试人员所具备的素质技能:测试用例设计能力、编程能力(开发测试工具,自动化测试)、疾速学习的能力(语言,业务)其余:沟通单干、文字表达能力(测试用例、测试文档、形容BUG)、抗压、责任感。

March 1, 2024 · 1 min · jiezi

关于测试:前后端联调测试

前后端联调测试1.为什么要进行软件测试(1) 发现错误和缺点:测试能够帮忙开发团队发现程序中的谬误和缺点,确保软件的品质和稳定性。在软件公布之前,通过测试来辨认和修复问题,能够升高软件在理论运行中呈现问题的危险。(2)进步用户满意度:测试确保软件产品在交付给用户之前,可能满足用户的需要和冀望。这有助于晋升用户对产品的满意度,加强用户对品牌的忠诚度。(3)升高保护老本:晚期的测试能够缩小软件公布后的问题,从而升高保护老本。相比于在软件公布后修复问题,晚期的缺点修复老本要低得多。(4)风险管理:软件测试有助于辨认我的项目中的潜在危险,并在软件公布前加以控制或打消。这有助于确保我的项目按时按质实现。(5)进步软件可靠性:通过继续的测试,能够进步软件的可靠性和可维护性,升高软件出错的可能性。(6) 合乎法规和规范:许多行业都有严格的法规和规范,软件测试是确保产品合乎这些法规和规范要求的重要伎俩。(7)晋升开发效率:测试能够帮忙开发团队更快地发现和解决问题,从而进步开发效率。2.我的项目各阶段设计人员及其工作内容需要阶段:产品,负责需要调研,竞品剖析,产品原型设计需要评审:我的项目所有成员加入,产品经理为大家解说产品需要的逻辑设计阶段:交互设计(ui/ue)架构设计(抉择技术栈)开发阶段: 前端开发:负责实现网页业务逻辑局部的编码后端开发:负责实现服务端业务逻辑局部的编码测试阶段: 测试人员:负责软件实现后的质量检查上线部署,保护: 运维工程师:负责线上服务器的服务部署与保护数据库管理员:负责线上数据库的服务部署与保护3.常见软件开发模型(1) 疾速原型模型:这种模型通过疾速构建软件原型来收集用户反馈,而后依据反馈不断改进原型,直到满足所有用户需要。(2)增量模型:该模型将整个我的项目分解成小的、可治理的片段(增量),每个增量都能够独立开发和测试。这种模型容许开发团队逐渐构建产品,每次减少一部分新性能。(3) 螺旋模型:这是一种危险驱动的模型,它联合了疾速原型化和迭代开发的特点,同时减少了危险剖析和治理。(4) 麻利开发模型:麻利开发是一种以人为外围、迭代、适应性强的开发方法。常见的麻利办法包含Scrum、Kanban等,它们强调疾速响应变动,重视团队合作和继续改良。(5)喷泉模型:这是一种面向对象的、迭代和增量的开发模型,它强调软件开发是一个一直进化的过程,相似于喷泉一直地涌现新的想法和性能。4.bug分类 功能型bug:指产品实现过程种 具体逻辑的实现谬误需要型bug:指在软件项目管理的过程中,需要阶段就埋下了隐患,如未依照需要实现,需要了解谬误或需要未形容分明等状况性能型bug:指软件在很多人同时应用或长时间运行时呈现了响应慢 甚至解体的场景5.发现bug的方法论等价类划分边界值分析法谬误揣测法因果图

February 19, 2024 · 1 min · jiezi

关于测试:什么是软件测试领域的-User-Acceptance-Testing

UAT(User Acceptance Testing)是软件测试畛域中的一种要害测试阶段,通常由最终用户或客户执行,用于确认软件是否满足其预期的需要和冀望。UAT旨在验证软件是否足够稳固、牢靠,以满足最终用户的理论应用需要。在本文中,我将具体解释UAT的概念,探讨其重要性,并通过理论例子阐明如何进行UAT测试。 UAT的概念UAT是软件开发生命周期中的最初一个测试阶段,它是将软件部署到理论生产环境之前的最初一道关卡。在UAT阶段,最终用户或客户将对软件进行测试,以确保它合乎其需要、冀望和业务流程。UAT测试的次要指标包含: 确认软件是否满足业务需要: 最终用户将验证软件是否依照其业务需要进行了开发。他们将核实软件是否执行所需的性能,以反对其日常操作。验证用户界面: UAT测试还关注用户界面的可用性和敌对性。用户界面应该容易了解和操作,以确保用户可能无效地应用软件。查看性能和可靠性: 最终用户会测试软件的性能,包含响应工夫、负载能力和稳定性。他们须要确保软件在理论应用中不会呈现性能问题或解体。辨认潜在问题: 如果在UAT阶段发现任何问题或缺点,它们将被记录并反馈给开发团队进行修复。这有助于确保在软件部署到生产环境之前修复所有问题。用户培训和文档验证: 最终用户还会查看培训资料和文档,以确保它们与理论软件统一,并可能无效地帮忙他们应用软件。UAT的重要性UAT在软件开发过程中扮演着至关重要的角色,具备以下几个要害方面的重要性: 1. 用户满意度UAT测试确保最终用户对软件的性能、性能和用户界面感到称心。通过满足用户需要,软件能够更好地满足业务指标,加强用户满意度,进步用户忠诚度。 2. 缺点预防UAT有助于辨认和解决潜在的问题和缺点,以避免它们进入生产环境。这能够升高后续保护和反对的老本,缩小了业务中断的危险。 3. 业务一致性通过UAT,最终用户能够验证软件是否合乎业务流程和规定。这确保了软件在实际操作中与业务统一,有助于提高效率和准确性。 4. 风险管理UAT有助于升高危险,因为它容许在部署软件到生产环境之前发现和解决问题。这有助于避免潜在的业务中断和名誉损失。 5. 用户培训UAT还提供了培训和文档验证的机会,确保最终用户可能无效地应用软件。这有助于缩小培训老本和进步用户的学习曲线。 UAT的施行UAT的施行通常遵循以下步骤: 1. 预备工作在进行UAT之前,须要进行一些预备工作,包含确定测试范畴、编制测试计划、招募测试人员和筹备测试环境。测试计划应明确列出测试的指标、测试用例、测试数据和测试时间表。 2. 测试执行一旦准备就绪,测试团队(通常是最终用户或客户代表)将执行测试用例。他们将模仿理论业务场景,应用软件执行工作,并记录任何问题或缺点。 3. 缺点跟踪测试团队应该应用缺点跟踪零碎记录所有发现的问题,包含问题的详细描述、严重性级别和重现步骤。这些问题将反馈给开发团队进行修复。 4. 问题解决开发团队将剖析并修复由UAT测试团队报告的问题。修复后的软件版本将从新提交给测试团队进行验证。 5. 验证和验收测试团队将验证修复后的问题,并确认软件是否合乎其需要和冀望。一旦他们对软件感到称心,他们将正式承受软件,并筹备将其部署到生产环境。 6. 文档和培训在UAT实现后,相干培训资料和文档将失去最终用户的验证。如果须要更新或订正文档,将在这个阶段实现。 7. 部署最终用户能够决定将软件部署到生产环境中,以供他们的理论业务应用。 UAT的例子为了更好地了解UAT的概念,以下是一个理论例子 : 场景:电子商务网站 假如一家电子商务公司开发了一个新的在线购物网站,他们心愿确保该网站在上线前通过充沛的UAT测试。 1. 测试计划首先,测试团队会与电子商务公司的最终用户和业务代表一起制订UAT测试计划。他们将明确列出测试的范畴、测试指标和测试用例。测试计划包含以下几个要害方面: 用户注册和登录: 确认用户可能胜利注册和登录到网站,并且他们的个人信息正确保留。浏览商品和搜寻性能: 验证用户是否能够浏览不同类别的商品,应用搜寻性能查找商品,并筛选搜寻后果。购物车和结算: 测试购物车性能,包含增加和删除商品,以及结算过程。付款和配送: 确认付款和配送选项失常工作,用户能够抉择适当的付款形式和配送地址。订单治理: 验证用户能够查看订单历史记录,跟踪订单状态,并勾销订单(如果须要)。用户界面: 查看网站的用户界面是否直观和易于应用。2. 测试执行测试团队的最终用户代表开始执行UAT测试用例。他们应用不同的浏览器和设施,尝试各种购物场景,例如浏览商品、将商品增加到购物车、抉择付款形式,而后提交订单。他们还测试了用户帐户治理性能,如批改明码和更新个人信息。 3. 缺点跟踪在测试过程中,最终用户代表发现了一些问题。例如,他们留神到在某些状况下,购物车中的商品数量不正确,还发现了一个无奈实现订单的谬误。 4. 问题解决测试团队将这些问题记录下来,包含问题的详细描述、重现步骤和截图。而后,这些问题被传递给开发团队进行修复。 5. 验证和验收开发团队剖析并修复了这些问题,并提供了修复后的软件版本。测试团队再次执行UAT测试用例,验证问题是否已解决。一旦他们确认问题已解决,并且网站的所有性能都按预期工作,他们筹备承受网站。 6. 文档和培训最终用户代表还验证了培训资料和用户文档,以确保它们与理论网站统一。如果有任何不统一之处,相干文档将进行更新。 7. 部署最终用户代表决定将该电子商务网站部署到生产环境中,以供实在客户应用。 通过这个例子,咱们能够看到UAT的重要性以及它如何确保软件满足最终用户的需要和冀望。在UAT过程中,问题被及时发现和解决,从而缩小了在生产环境中呈现问题的危险,同时进步了用户满意度。 论断UAT是软件测试畛域中至关重要的一部分,它确保了软件在部署到生产环境之前通过了最终用户的验证和验收。通过UAT,软件开发团队能够辨认并解决潜在的问题,确保软件合乎业务需要和用户冀望。在软件开发我的项目中,不应漠视UAT的重要性,因为它有助于升高危险、进步用户满意度,并确保软件胜利地满足了业务需要。

September 24, 2023 · 1 min · jiezi

关于测试:代码变更风险可视化系统建设与实践

本文整顿自美团技术沙龙第77期《美团亿级流量零碎的品质危险防控和稳定性治理实际》。文章第一局部介绍了软件系统危险与变更;第二局部介绍了代码变更危险可视化零碎的能力建设;第三局部介绍了整个零碎在美团外部实际落地的状况;最初是对将来的布局和瞻望。心愿对大家能有所帮忙或启发。1 软件系统危险与变更变更是软件系统进化的推动力,同时也是孕育危险的温床。如果一个零碎没有了相应的迭代和变更,那这个零碎就会逐步失去了活性和价值。不过,随着零碎进行了变更迭代,软件危险也会缓缓衍生,而躲避变更引发的软件危险在品质保障畛域是一个较大的挑战。通过对上面典型软件系统架构图剖析,咱们可提炼出3大类变更维度: 基础设施变更:次要包含根底硬件变更、运营商网络变更、云服务容器变更、开发语言变更、操作系统变更以及机房集群的变更,这些基础设施迭代极大晋升了零碎底层的服务能力,一旦变更引发零碎危险,其影响面通常也比拟大。零碎内部变更:比方用户流量突增、用户需要变动以及相干三方服务及三方组件变更,这些帮忙零碎一直衍生出新的迭代能力,同时也减少了零碎稳定性危险的产生。零碎外部变更:比方技术人员迭代、新性能公布以及零碎整体架构的降级等,这是驱动系统软件进化的外围变更因子,也是最频繁的变更危险发生地。在这里,咱们先列举了一些比拟常见的、因变更危险所引发的典型线上事变: 内部变更所引发的线上问题,某地的光缆被挖断导致整个服务有很大的影响。代码变更典型问题,谷歌Gmail零碎在公布新性能时产生的副作用而引发的性能上问题。代码变更典型问题,Knight公司在降级一段很老的代码时引发的异样逻辑性能产生。配置变更引发的问题,所引发的“薅羊毛”事件。人员操作变更,研发误操作引发的整个外围数据删除; 能够看到,在理论的工作中,由变更所引发的危险,对业务的冲击十分大。联合美团亿级流量的到家业务状态看,零碎变更引发危险可能性进一步放大,变更危险的“蝴蝶效应”更加凸显,某个单点问题都有可能给整个到家外围业务带来极大的影响。 第一,从到家业务接入方看,美团外部业务包含外卖、闪购、医药等等,内部有泛滥的企业客户。第二,零碎参加相干方较多,包含C端用户、商家、配送骑手及各个平台。第三,业务基于微服务架构模式,各个业务间调用关系简单,外围链路十分长。另外,业务强依赖配置,一旦某个环节产生变更问题,相干方都会受到影响。所以对研发与测试来说,洞察与躲避变更引入的品质危险变得至关重要。 那么,对于变更危险,品质建设外围做功点在哪里?咱们对历史线上问题剖析发现,零碎外部变更引发故障的占比拟高,且变更与代码变更有间接或间接关系。因而,咱们开始围绕代码变更这个外围变更因子,构建了品质建设的做功点。 随后,咱们思考了两个关键问题: 代码变更危险是否可被可视化,晋升测试和研发感知能力。围绕代码变更危险,是否可能构建一套品质保障进攻体系。通过剖析发现,联合下图的代码特色树,咱们就能够更好地感知代码变更的可视化能力。而后通过各叶子节点,将所有相干特色很好地辨认,并且做对应的品质进攻策略。 2 代码变更危险可视化(后羿)零碎建设传统测试模式存在两个典型问题:第一,对于研发开发的代码,短少全面可视化剖析能力;第二,对于代码变更所产生的影响范畴有多大,实际上更多地依赖研发人员和QA的教训。所以,在这样的传统测试模式的典型问题状况下,咱们心愿从3个维度做品质保障建设计划: 第一阶段是代码变更的感知能力,重点解决对于不同的代码状态和不同的代码工程模式,如何可能最大范畴地笼罩到所有的代码变更状况;第二阶段重点做代码特色刻画,将所有变更代码抽离出不同的特色,打上作用标签;第三阶段基于前两个建设能力,构建对应的利用场景生态圈,在不同测试流水线阶段,都可能将代码变更危险的刻画能力嵌入,一直做品质进攻。 而代码变更危险的品质保障建设计划最终的落地状态,是打造一个代码可视化剖析零碎,在到家外部咱们将其命名为后羿零碎。顾名思义,咱们心愿该零碎能像“后羿射日”一样,在品质危险评估和拦挡层面可能做到更加精准,同时晋升品质防御能力。该零碎架构次要分为四层: 第一层是根底组件层。第二层是代码剖析层,重点解决对不同的代码状态都可能做到精准的代码变更剖析和辨认。第三层做特色刻画层,外围解决整个代码的结构化标注和特色化标注。第四层负责构建业务应用层,在不同的场景和环节下,将代码变更可视化能力嵌入到这个环节中,构建一个齐备的品质危险拦挡能力。除此之外,咱们也会引入智能化伎俩,赋能整个零碎。同时,咱们也将外围能力通过凋谢Open API形式,输入到其余的品质效率相干的工具平台上,赋能美团外部的其余工具平台。 总的来说,对于后羿可视化零碎的要害流程,在应用层的透出是通过两个入口进行感知:一是后羿主站;二是工程交付平台。咱们通过异步音讯感知剖析工作和源码下载,获取对应的变更文件、变更办法和变更行号;同时再借助字节码解析能力,解析对应的调用链路变更状况,存储到图数据库里;再对变更代码做特色打标和辨认;最初会产生一份可视化剖析报告,间接给到对应的QA应用。 当然,在整个建设过程中,咱们也遇到了一些技术层面的挑战。 第一个挑战是代码剖析技术。在零碎建设初期,通过AST单剖析能力做代码剖析和辨认,但存在Lambda表达式辨认问题和Java泛型辨认问题,在此基础上引入了ASM字节码剖析技术解决了后面的问题,但ASM也会有本人的Java反射个性相干问题无奈辨认。所以咱们心愿将来引入动态化代码剖析技术,来解决反射类问题。 第二个技术难点是海量关系数据存储问题。在建设之初,通过关系型数据库做存储,但随着零碎的广泛应用,存储了大量调用链路拓扑关系数据,但它的查问性能十分差。所以在此基础上,咱们通过摸索引入图数据库的存储形式,解决了在海量数据关系存储数据的查问性能。 第三个技术难点是代码危险特色多样性,像个性化特色跟咱们的业务有强相关性,比方资损特色、对应的分页特色和多线程特色。针对这种危险特色,咱们之前的开发模式是零碎开发者和业务QA深度沟通对应的辨认策略,但这样的形式沟通效率和开发周期都比拟长。 因而咱们做了整体能力改良,通过开发一套组件化开发框架,将整个开发框架凋谢给各业务线QA,他们能够本人开发定制化开发组件,加载到后羿零碎,实现多样性特色的疾速辨认能力。 3 代码变更危险可视化(后羿)零碎实际接下来,咱们重点给大家介绍零碎的实际利用落地状况。如下图所示,该图为后羿品质保障利用场景生态全景图。目前后羿零碎整体建设了八个外围利用场景: 技术计划层面校准诊断在Code Review阶段能力的加强变更影响面评估接口级的用例举荐配置变更危险诊断能力兼容性危险诊断能力代码特色危险预警凋谢Open API能力 首先技术计划缺失项诊断,在我的项目测试过程中,次要蕴含以下2个痛点: 研发写技术计划时,标准化水平较低。两头反馈的问题对于技术计划更新时效性较差,但咱们发现技术计划对QA来讲是一个关键性的依赖输出,从而导致QA在写测试用例时,往往会遗漏掉一些关键性的变更信息,比方接口定义变更缺失、配置项定义变更缺失、定时工作变更缺失、异步音讯变更缺失以及DB表字段变更缺失,这些信息往往在技术计划里更新不全面。基于这样的状况,后羿零碎通过对代码的辨认,可能真正拿到在本次代码层面上,真正变更了哪些信息,再拉取对应的技术计划做解析,再做要害变更信息项的Diff,从而生成一份技术计划的缺失项诊断报告给到对应的QA,QA能够依据此报告做对应的诊断项卡点拦挡,同时做测试用例的欠缺补充。 第二个利用场景是增强版的Code Review评审新模式,传统的Code Review也面临几个痛点问题: 研发在整个Review过程中更多地聚焦在编码标准和架构设计合理性上。常态化的Code Review模式基于纯文本,它也有几个痛点:第一是无奈针对Review的过程做变更办法的上下游疾速跳转查看;第二无奈做到对变更办法、改变办法的跳转或调用链路的业务逻辑出现。基于这样痛点问题,后羿零碎打造了基于变更链路场景驱动Code Review新模式,外围解决在Code Review阶段可能更早地感知品质危险。其外围做法是后羿零碎在Review一个变更文件时,可能疾速提炼出变更文件里对应的变更办法、变更变量以及这些变更办法和变量上都具备哪些危险特色,从而让QA和RD疾速抓到变更的重点信息。 在此基础上,咱们也提供了变更办法的上下游疾速跳转能力,基于Review过程中做变更办法的疾速跳转,了解整个业务的上下游关系,同时在跳转过程中,可能将跳转的逻辑点实时绘制成调用拓扑图,感知变更办法之间的业务逻辑关系,更好地从整个链路视角评估本次代码变更的影响状况,很好地解决在Code Review阶段的痛点问题。 第三个利用场景是变更影响范畴评估,目前后羿零碎构建了六大变更影响范畴评估能力: 代码根本属性,比方变更了哪些办法;可能反对到HTTP、RPC以及JAR包等不同状态代码工程类型;可能对通用危险特色做辨认,比方事物递归兼容性问题;能够对定制化危险特色做辨认,比方权限、算法特色;能够反对单服务影响,包含办法调用链路,接口特色、音讯特色、工作特色等等;跨端服务的影响面评估,比方一个服务外部的调用链路和在不同的微服务之间的跨端变更点之间的链路影响是什么样子的,都可能做到更精准地影响范畴评估能力。 影响面评估示例: 一个变更接口被影响到了,那么它的上游到底是哪些变更办法影响的?咱们可能很直观地看到这个变更接口上面有哪些新增的和变更办法所影响到的。上游所变更的影响办法之间的链路调用拓扑关系是什么样子?咱们可能通过链路拓扑图,疾速绘制进去对于这个接口上面所有变更办法之间的调用链路。对应的变更办法对于接口两头所有办法的调用链路详情,咱们也可能通过这个能力疾速做评估和刻画。对于一个接口上面所有办法的链路调用关系是什么样子?咱们也提供了一个全办法链路的视图剖析能力。 第四个利用场景是配置变更的危险诊断,在比较复杂的大型业务上,整个系统对配置往往有强依赖关系,比方典型的灰度配置、降级配置以及外部逻辑相干管制配置项,对于整个零碎的影响比拟大,但往往QA和研发人员对于配置危险的把控实际上比拟缺失,认为代码可能更多的是品质保障的重点,所以因为配置所导致的线上问题比拟多,造成的后果比较严重。 基于这样的外围痛点问题,后羿零碎重点从三个层面做了对于配置变更危险的外围能力建设: 在配置的变更辨认剖析层,咱们可能很好地对各种类型配置做精准辨认:是新增还是变更。通过后羿影响面评估能力,拿到配置所影响的接口、影响链路以及对应影响的异步音讯和定时工作。有了影响面评估后,咱们可能更好地通过测试,将变更场景做到笼罩,由此构建了配置变更测试笼罩度量。因为咱们在配置测试过程中对于测试后果的感知能力不强,因而通过基于流量开掘、流量录制能力构建了实时感知配置测试的笼罩状况。在整个流水线层面,通过要害配置变更卡点能力更好地进攻配置变更所引发的一些问题。下图是咱们目前所建设的利用性能页面: 第五个利用场景是服务端兼容性的危险诊断。咱们通过对线上问题做汇总剖析发现,新老兼容性这类典型问题占比拟高,咱们尝试通过后羿零碎解决,QA可能做简略的兼容性问题辨认,比方一个接口的入参返回值有显著的字段新增或类型变动会明确判断进去。 但在兼容性问题剖析上,有一类不太显著的变动导致了兼容性问题,比方入参层面有一些约束条件、由可选字段变成了必选字段,这类变动实际上在整个代码定义层面很难感知到;另外一类是变更参数是通过外部间接调用VO类间接组装进去的,实际上对于QA也很难感知外部间接VO类变动的兼容性危险影响。 所以后羿零碎基于这样的痛点,构建了反射和序列化,从而疾速拿到对应的底层变更VO类所导致的对接口影响能力,给出兼容性接口预警,QA依据这样的剖析诊断报告,进一步评估对应的兼容性和上线程序的合理性安顿。 第六个是接口级自动化用例举荐,对于到家的简单业务,咱们积淀的很多自动化用例怎么用,是全量回归还是选择性筛选,也是比拟大的痛点问题。因而后羿零碎基于所具备的辨认变更办法、剖析影响链路以及对应的接口能力,买通和到家智能代码覆盖率平台所具备的历史流量笼罩状况,可能疾速拿到变更接口和办法,再借助一体化平台,拿到对应的自动化用例,做精准的自动化用例举荐,从而构建了用例举荐整体解决方案。 第七个典型的利用场景是代码品质危险特色预警,咱们在品质建设过程中,往往会遇到一类比拟非凡的场景须要验证,比方资损类场景,除了验证性能外,还须要对资损做个性化危险性能场景验证、异样场景验证、非凡分页逻辑、重试场景验证,但这些场景在整个代码过程中,咱们往往很难发现这些特色危险,从而遗记验证非凡场景状况。 针对这个问题,后羿零碎从两个方面构建了特色危险辨认性能:一是零碎会本人构建通用危险特色辨认策略模型,二是各业务方也会本人打造对应的危险特色辨认策略。 如下图所示(最下侧),是目前曾经具备和将来将要建设的特色辨认能力。有了外围辨认能力后,咱们再将对应的特色在所要验证过程中相应上下游的依赖平台做工具能力整合,对于不同特色构建出绝对应具体测试策略的举荐策略,将这几个能力买通后构建出一套基于代码品质危险特色的体系化品质保障计划。 第八个利用场景的能力是凋谢Open API的赋能能力,咱们心愿将后羿系统分析辨认的信息,通过凋谢API的形式走漏进来,可能给到对应相干工具平台应用。目前在到家范畴内曾经将整个能力凋谢给了接口治理平台、智能代码覆盖率平台、全息零碎、异样测试平台、自主工程交付零碎以及一体化自动化平台这六个外围的效力工具建设平台。 4 将来布局与瞻望联合具体的实际,以及此前总结的教训。将来,咱们将从四个方向做将来品质保障建设: ...

September 22, 2023 · 1 min · jiezi

关于测试:持续测试新范式拨压测一体化

近日,在 TiD2023 品质竞争力大会上,来自阿里云云原生可观测团队的吴垚进行了《继续测试新范式:拨压测一体化》主题分享,本次分享蕴含三局部: 业务连续性对稳定性平台的需要阿里稳定性平台的演进及趋势剖析拨压测一体化的概念及最佳实际 01 如何保障业务连续性 在正式开始明天的话题前,咱们先来聊一聊业务连续性。随着信息技术的疾速倒退和广泛应用,以互联网和金融业为代表的业务翻新和失常运行越来越依赖于信息系统的平安和稳固运行。如何保障信息系统所反对的要害业务性能在故障或劫难产生后能及时复原和继续运作,以缩小故障或劫难可能造成的损失,已成为技术建设和运行保护必须思考的重点课题。 不论是行业企业还是政府机构,对劫难复原和业务连续性建设始终都十分重视,出台多项标准和指定性意见,如金融行业的《信息安全技术信息系统劫难复原标准》(GB/T 20988 – 2007)和《银行业信息系统劫难复原治理标准》(JR/T0044-2008)等规范、标准。同时,业界有十分多对于业务连续性的模型领导企业落地连续性建设,其中最让人熟知的就是 6R 模型。6R 模型详细描述故障从产生到完结的残缺生命周期。纵览模型的整个周期,咱们能够看到,整个周期被划分三道防线从而去保障业务的连续性:事先防控、事中应答、预先重建。业务中断产生前,次要进行事先防控的工作,称为 Reduce(缩小)阶段,即危险缩小阶段。Reduce(缩小)阶段是组织团队进行日常风险管理、IT 运维治理、业务连续性治理等管理工作。 业务中断产生后,进行事中应答工作,并分为 Respond(应急响应)阶段和 Recover(复原)&Resume(重启)阶段。Respond(应急响应)阶段阶段进行人员招集、状况理解和通报、损失评估、故障排查等工作;Recover(复原)阶段次要执行复原预案,包含IT局部的和业务局部以及配套反对职能局部的预案。复原预案执行的启动是在发表故障或劫难后开始。复原预案执行结束后事件稳固,进入 Restore(重建)和 Return(返回)阶段,业务回到失常状态。 在一直总结和复盘稳定性建设的过程中,咱们发现在事先防控、事中应答阶段投入越多,全年故障产生总量也会相应升高。因而,咱们对稳定性建设进行继续投入的同时,明确两个外围需要,即两个防线加固: 第一道防线加固:模仿实在流量做压测,验证零碎容量;故障演练,验证零碎容灾容错能力。 第二道防线加固:感知中断点左移,及时发现业务故障;建设开关预案机制,疾速降级止损。 首先,是第一道防线的加固,即事先防控尽可能拦挡到更多的故障。一方面,在业务上线之前做到充沛的功能测试同时,对要害外围业务进行模仿实在流量的容量测试,也就是压力测试。另一方面,在整个零碎上线之前,对预生产环境或灰度环境进行故障演练。比如说对基础设施层、应用层别离注入故障,察看零碎自愈能力是否合乎预期。所以,第一道防线加固须要确保在零碎上线之前,可能把这个故障提前收敛掉。 其次,是第二道防线的加固,即缩短事中应答所破费的工夫。事中应答的工夫分为两个:感知工夫与 Recover(复原)工夫。针对感知工夫,这给监控和稳定性平台提出了新要求,即让感知点尽量左移,不要等到客户已感知到故障并反馈之后,才进行解决。做到可能提前被动感知到并在探测到故障之后进行疾速的止损。同时,在理论生产过程中,随着各种意想不到的故障越来越多,咱们就须要一套残缺的预案机制。这其实就是 SRE 体系的建设,通过一套残缺的应答机制来应答各种的故障。在阿里实际过程中,咱们设计了开关预案机制,将历史产生的各种故障都形象提炼到预案中。对故障解决的过程中,设计可能动静配置的性能降级开关。在大促时,如果有些业务的容量已达到水位阈值并会影响到稳定性时,能够间接通过动静的开关把对应性能进行降级,保障用户的整个应用体验平顺。 02 阿里保障业务连续性的最佳实际接下来,咱们看一下阿里巴巴及阿里云建设稳定性体系的演进过程,以及如何掂量体系建设的收益。 整个稳定性平台的演进与技术架构的演进非亲非故,次要分为三个大的阶段。 首先,在淘宝刚刚开始时,技术架构次要还是单体利用。随着业务量的减少,PHP 单体利用被 Java 单体利用所取代。直到 08 年时,Java 单体利用也遇到了业务瓶颈,外面的业务逻辑非常复杂,开发人员十分多,迭代效率非常低。尔后,阿里巴巴开始尝试分布式的利用架构拆分并在阿里云呈现后,逐步将外围电商交易系统迁徙上云,以应答规模愈发宏大的业务。2018 年,阿里巴巴根本所有业务都跑在云上,并开始尝试容器化、Serverless 化等云原生化的摸索。 与此同时,随着技术架构的演进,阿里巴巴围绕故障容错、异地多活容灾、容量布局进行稳定性的建设。通过引入调用链路剖析平台、故障演练能力、压测体系等技术手段来晋升稳定性,并将 ChaosBlade 等我的项目进行了开源,并进入 CNCF Sandbox。 与此同时,在反对内外部施行拨压测的过程中,咱们发现测试角色的职责权限在 DevOps 环形图中向右移。越来越多测试团队不止负责上线前的功能测试、性能测试,也就是 Test 阶段。在性能上线后,还要通过拨测被动监控站点,线上业务可用性,也就是 Monitor 阶段。也是基于上述趋势与需要,云原生可观测团队提出拨压一体的概念,以帮忙运维与测试团队更好的进行稳定性建设,这对于团队的收益十分清晰: 晋升业务稳定性:压测验证零碎吞吐量,保障容量稳定性,拨测实时监控线上业务可用性,比业务方提前发现问题,放大爆炸半径。组织提效:测试团队对立负责拨压测,梳理业务测试脚本工作不再须要测试、运维团队做 2 遍;运维团队专一资源监控,线上业务监控交给测试团队。工具提效:拨测压测共用一个平台,一套脚本语法,一组测试数据,晋升工程师幸福感。具体到业务收益,如故障数的缩小、故障复原工夫缩短、进步无故障工夫和生效距离以及缩小了故障解决的人力投入等。 03 拨压测一体化是什么业务流量往往有峰谷效应,高峰期的业务中断能够通过服务端利用监控和告警及时感知,但在业务流量低谷期,如何感知业务中断成为难题。如果参照业务高峰期监控指标配置告警阈值,流量低谷期就不会触发到告警,无奈感知到业务中断,如果告警阈值配置过低,在业务高峰期又会收到大量误告警。针对上述问题以及前文提到的右移,拨测、压测被有机的联合到一起。 (1)什么是拨测拨测试一种零侵入、开箱即用、主动式服务的可用性和性能监控工具,它通过部署在寰球的监测点,模仿实在用户的业务行为,定时对站点发动测试,继续监测业务连续型和网络性能,并掂量用户体验。作为主动式监控服务,不受业务峰谷期的影响,全周期守护业务连续型。云拨测的外围能力和利用场景如图: (2)什么是压测压测是容量布局中不可短少的工具,置信大家也十分相熟了,依据验证的场景不同,压测又能够分为以下几种测试类型: (3)拨压测一体化平台能够看出,拨测和压测都是通过模仿实在用户的行为,来对系统的容量、可用性、性能做测试,从业务场景和零碎架构的角度来看,拨测平台和压测平台有高度的相似性。因而,咱们把拨测压测平台整合为拨压测一体化的平台,对立管控脚本、调度工作和流量。 压测前须要筹备业务脚本,其实拨测也是须要这么一套脚本的。当拨测和压测分为两个平台的时候,同一套业务流程,须要应用两个平台的语法,配置两遍。通过拨压测一体化脚本,其实能够把这个配置脚本的工作减半,一套脚本,既能发动拨测,也能发动压测。 04 拨压测一体最佳实际阿里云网站测速平台反对对 PING、TCP、DNS、网站测速、HTTP 接口、文件下载等场景进行拨测,并反对对 HTTP 接口进行压测。您还能够通过阿里云网站测速平台发动比照拨测,理解两个网站之间的性能差别。上面介绍如何通过阿里云网站测速平台,验证站点可用性和接口性能。 ...

September 21, 2023 · 1 min · jiezi

关于测试:谈谈JSF业务线程池的大小配置-京东物流技术团队

1.简介JSF业务线程池应用JDK的线程池技术,缺省状况下采纳Cached模式(外围线程数20,最大线程数200)。此外,还提供了Fixed固定线程大小的模式,两种模式均可设置申请队列大小。 本文旨在通过一个简化场景(“单服务利用”)下的负载测试,为“JSF业务线程池大小配置”提供基准测试后果,并造成一些广泛实用的论断。 本文的指标读者包含须要合理配置JSF线程大小的压测工程师、开发部署运维工程师以及架构师。本文不波及JSF服务端的其余配置项,也不针对“复合服务利用”的合理配置进行探讨。你能够利用本文提供的论断,作为设计压测用例或评估业务线程池大小的根本办法的参考,以便在实践中合理配置JSF业务线程池大小。须要留神的是,JSF业务线程池大小的合理配置应该基于高保真的负载测试后果。 “单服务利用”指利用仅蕴含一个提供接口,且接口中仅有一个办法。 “复合服务利用”则指利用蕴含多个提供接口或一个接口中含有多个办法。 2.测试用例阐明本次基准测试选取了USF3.0权限零碎,将其定制化为一个繁多的服务提供者,仅对该提供者的一个办法进行了测试,因而能够看作是一个“单服务利用”。测试中将CPU作为基准测试的外围资源,并思考到JVM垃圾收集器的影响,采纳了简略的测试数据以保障服务每次调用的一致性,并确保YGC具备规律性(即固定调用量会导致一次30+ms的YGC),无FGC的影响。 测试用例的设计中,所有依赖的服务资源都无限度,以确保测试过程中服务的可用率达到100%。咱们的要害性能指标是TP99,即服务响应时长的99%必须小于10ms。 为了测试不同线程池模式下的性能体现,咱们应用了JSF线程池的Cached和Fixed两种模式,并针对每种模式进行了多组测试,以得出在满足TP99<10ms的前提下,零碎最大的负载状况。 测试利用:USF3.0权限零碎(定制化解决) 测试服务:com.jd.susf.service.api.SusfPermissionService#findUserInfo,依据用户信息从Redis中查问一条数据返回的服务。 硬件配置:单台4C 8G 测试方法:在Forcebot零碎采纳了阶梯发压的形式对JSF业务线程池在Cached和Fixed模式下进行了零碎负载测试 拟定SLA要求:服务响应时长的TP99<10ms 注:咱们对USF3.0权限零碎进行了定制,调整了服务提供方的配置数据,仅保留了 com.jd.susf.service.api.SusfPermissionService。3.测试后果及剖析3.1.cached线程池的零碎负载 图:JSF默认线程池(cached, threads=200)在不同并发用户数(1-200)下的零碎负载图 并发用户数TP99吞吐量TPSCPU利用率(%)1~23<8ms线性增长线性增长248ms655399.622511ms660799.8326~79迅速增长迟缓增长99+8074ms692899.8281~199迟缓减少迟缓降落99.8220099ms623099.94小结:默认的JSF线程池配置存在很大的危险。零碎最大可反对24个并发,超过24个并发SLA就无奈满足。 3.2 fixed线程池(队列)的零碎负载 图:JSF固定线程池(fixed+队列)在不同并发用户数(1-50)下的零碎负载图 JSF业务线程数可反对的最大并发用户数TP值(50/90/99/999)吞吐量(TPS)CPU最大利用率(%)4117/8/10/18153127.678258/8/10/18311346.4516508/8/10/21622887.9720233/4/10/15640999.9224223/4/7/15617899.8625223/4/6/15618298.83表:JSF固定业务线程池(fixed+队列)在满足TP99<10ms的零碎最大负载(最大并发用户数) 小结: ① 在fixed线程模式下,CPU的利用率存在应用下限。 ② 队列的应用能够无效减少系统对并发量的反对,同时也会带来吞吐量的晋升。然而,因为工作在队列中期待,服务的响应工夫会呈现“水涨船高”的景象,存在肯定危险。 3.3 fixed线程池的零碎负载 图:JSF固定线程池(fixed)模式下,零碎最大并发用户数时的零碎负载 JSF业务线程数并发用户数TP99吞吐量(TPS)CPU最大利用率(%)445106320.26885221636.6216166426268.5620205555086.2224248671199.62252516664498.77262619674499.93小结:综合固定线程池(fixed)的性能体现,须要设置一个正当的线程数大小来均衡CPU资源的充分利用和满足SLA的需要,线程数过小会导致CPU资源节约,线程数过大则无奈满足SLA 4.论断依据测试后果和数据分析,咱们得出以下论断: JSF线程池的默认配置在并发量高的场景下存在危险:所有线上生产环境中的JSF服务所在的服务器,很少有可能在200个线程的状况下还可能满足SLA的。最大200个线程的线程池配置,将服务器置于“并发量高的场景下被压垮”的危险中。线程池大小的合理配置应该来自高保真的负载测试。足量的线程数能力保障资源(CPU)的利用率:业务型的服务通常都存在肯定的IO操作(网络,磁盘等),线程执行过程中会产生期待,CPU利用率不高,须要减少并发的线程数量,让更多的线程参加CPU的调配,能力进步CPU的利用率。服务中IO操作越多,期待时长越长,须要的并发线程就越多。对于有IO操作的业务型服务,负载测试的线程数能够从2N(N是服务器的CPU核数)开始。过多的线程数只会升高零碎的SLA:当线程数已能100%利用CPU后,减少线程数,线程就无奈获取足够的CPU调配,这样服务的响应工夫就会增大。在肯定范畴内,TP99还可能满足SLA的要求,零碎的吞吐量也会有大量的减少。再继续减少线程数,TP99就无奈满足零碎的要求,零碎的吞吐量也会开始降落。固定的线程数能够爱护零碎须要承当的负载能力:固定线程数能够保证系统对CPU的利用率限定在肯定的负载范畴内,爱护零碎稳固运行,保障响应工夫TP99,但也限定了零碎的并发能力。正当设置队列大小能够减少零碎的并发度,也不会影响零碎TP99,但会整体拉高服务的响应工夫,呈现不稳定性的变动,存在危险。让CPU100%的高负载运行:通常服务对外的SLA承诺通常高于服务实在的性能,这是因为咱们思考了基础设施及依赖服务的不稳定性。因而,即便CPU曾经达到了100%,咱们依然能够减少肯定数量的线程数,而不会影响对外的响应工夫TP99的承诺。这样能够进步零碎的并发能力。尽管零碎能够在高负载下运行,但咱们须要进一步进行稳定性测试,以进步零碎的可靠性。综上所述,线程池大小的合理配置须要联合业务需要和系统资源状况进行评估和测试,并预留正当的buffer空间,以保证系统稳固运行和满足用户的SLA。 5.附录附录一:统计指标及术语阐明并发用户数:同时发动申请的用户数。 TP值(50/90/99/999):客户端的TP值,单位ms,数据来源于Forcebot。 吞吐量TPS:数据来源于Forcebot。 CPU利用率(%):数据来源于PFinder。 JSF业务线程数:JSF业务线程池的线程数,如:<jsf:server id="jsf" protocol="jsf" threadpool="fixed" _threads_="16" /> fixed/cached:JSF业务线程池的线程池类型,如:<jsf:server id="jsf" protocol="jsf" threadpool="fixed" threads="200"/> 作者:京东物流 刘江波 起源:京东云开发者社区 自猿其说Tech 转载请注明起源

September 8, 2023 · 1 min · jiezi

关于测试:简化测试流程提供卓越服务TestCompleteSalesforce满足不断发展的企业的需求

2015年,一群前Salesforce员工发现了病毒防护市场中的一个空白:Salesforce不会对文档进行威逼扫描。为了填补这一空白,他们创立了一个平台,并以该平台作为核心帮忙公司爱护所有的企业云SaaS零碎,使其免受威逼。这个平台取得了微小的胜利,这些前Salesforce员工开办了一家SaaS畛域的公司。 为了无效地测试Salesforce,他们须要一个更好的解决方案来满足一直倒退的公司的需要。该公司当初应用SmartBear的自动化UI测试工具TestComplete。TestComplete是一个测试打包应用程序(如Salesforce)的工具,可帮忙扩大自动化测试工作并最大限度地进步测试覆盖率。这种先进的网络安全解决方案扩大了Salesforce的能力,特地是扫描文件中的病毒、恶意软件和其余威逼。它可能爱护公司网络安全破绽的侵害,防止产生昂扬的损失以及影响名誉。随着公司的倒退,治理合伙人意识到采纳SmartBear这样的测试解决方案是很有必要的。 通常,须要这一畛域的业余人员能力进行测试如果是人员无限的小公司,那么找到领有畛域专业知识的专家可能很艰难。在理解到应用Selenium自动化测试Salesforce(这须要后面提到的畛域专业知识)的艰难后,治理合伙人意识到,他们须要一种端到端的测试解决方案,无论技能程度如何都能轻松应用。这位合伙人示意:“我喜爱TestComplete的一点是,无论你有多少员工,任何人都能够成为测试人员。”他还说, “我让以前从未进行过测试的人也能参加。” 不仅如此,他还意识到了只应用一个工具而不是多个工具的益处。“还有一个重要因素是:我心愿他们只须要把握一个测试工具。如果你有一个独立的测试团队,你应该思考一个能够跨平台的工具,“他说。“否则,你将花更多的工夫教测试人员应用多种工具,并且不得不应用多个工具,而不是繁多工具。”除了须要实用于所有技能程度外,该解决方案还必须对成长型公司具备老本劣势。“因为咱们是一个较小的组织,某些平台的解决方案费用太高,这是妨碍因素之一。我始终在寻找性价比高且可能反对咱们扩大的解决方案,“他说。 在寻找一个简略的解决方案时他们遇见了TestComplete在相熟SmartBear工具后,他开始青眼SmartBear,尤其是TestComplete工具。TestComplete是一个功能性UI测试工具,容许用户对桌面、Web、挪动利用和打包应用程序执行端到端的测试。“咱们并不单纯只有Salesforce。咱们的平台由两局部组成,所以我须要可能测试这两个局部,“他说。“我须要一些更全面的货色,可能笼罩不同平台和环境。”TestComplete的一些劣势包含: 非开发人员也能轻易应用,能够让公司中的任何人都能成为测试人员;对Web应用程序中的渺小变动不敏感,因而更牢靠;可能在不同环境中进行测试,包含跨平台测试;缩小产品问题引发的负面影响,进步公司名誉;反对复用模块。对他来说,复用模块的能力扭转了游戏规则。“我喜爱它的模块化设计。你能够创立一个模块并重复使用它。这样就不必每次都从新做了。”他说。 让您投入的工夫与致力施展最大的价值TestComplete不仅通过自动化简化了流程,而且还节俭了团队的工夫。他说:“最重要的是,它为我节俭了很多工夫。咱们是一家成长型公司,人手无限,工夫也无限。它帮咱们腾出了很多工夫。“他还示意:“咱们可能专一于其余事件,专一于产品的倒退和其余形式的增长。正如我之前提到的,以前帮不上忙的人当初能够帮忙进行测试了。” TestComplete不仅节约工夫,还是Salesforce工程师的牢靠工具。通过专一于品质、速度和自动化,TestComplete帮忙公司在部署前查找谬误,晋升了公司形象。他说:“形象就是所有,尤其是在取得信赖方面。当初,我不须要始终为产品问题进行辩护,因为咱们可能进行充沛的测试,在以前没有测试工具时是无奈做到的。” 牢靠的客户服务除了以一种非凡的形式创立和应用测试外,卓越的客户服务也给他留下了粗浅的印象。“产品都是相似的,但如果没有一家可能为你提供反对的公司,那么你就不会有一个违心付出额定致力的团队,”他说。 应用TestComplete的另一个劣势是能够拜访SmartBear的在线社区。这是一个由客户和专家组成的社区,在这里能够发问、寻找解决方案和摸索产品资源。“这是我要通知所有思考抉择你们的客户的要害信息。你们的反对十分杰出,你们的团队会不遗余力地为客户提供帮忙。” 文章起源:https://smartbear.com/resources/case-studies/testcomplete-sal...

September 1, 2023 · 1 min · jiezi

关于测试:高效测试八个顶级APP自动化测试工具推荐

uiautomator2github地址:https://github.com/openatx/uiautomator2 UiAutomator 是 Google 提供的用来做安卓自动化测试的一个 Java 库,基于 Accessibility 服务。性能很强,能够对第三方 App 进行测试,获取屏幕上任意一个 APP 的任意一个控件属性,并对其进行任意操作,但有两个毛病: 测试脚本只能应用 Java 语言。测试脚本要打包成 jar 或者 apk 包上传到设施上能力运行。Appetizer官网:https://www.appetizer.io/cn/ Appetizer 通过 DEX 插桩的办法,全自动地向 APP 内多处插入代码,在程序运行的过程中,监控异样和闪退、收集主线程卡顿与耗时操作、HTTP/HTTPS 申请和响应、CPU 和 Java 堆内存耗费等。 采集代码通过调优,对 APP 运行性能影响小于1%。 收集的运行数据存储在设施的本地,实现测试后上传到 Appetizer 服务端进行剖析,产生具体的问题报告、各项指标等。 各项数据能够以多种格局导出,JSON, CSV, HTML,反对不同定制化数据分析以及集成服务。 ApifoxApifox 是一体化 API 合作平台,能够实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。Apifox 提供了一种全面的 API 治理解决方案。应用 Apifox ,你能够在对立的平台上设计、调试、测试以及合作你的 API,打消了在不同工具之间切换和数据不统一的问题。 简化了你的 API 工作流,并确保了前端、后端和测试人员之间的高效合作。 文档编辑器: Apifox 提供一个易于应用的文档编辑器,可用于编写和编辑 API 文档,并使其易于浏览和了解。你能够应用 Markdown 语法编写文档,而不用放心格局或排版自动化测试工具: 因为 Apifox 能够与许多其余开发工具进行集成,因而它提供自动化测试工具,能够帮忙你确保 API 的正确性。你能够轻松地创立和运行测试用例,并获取无关 API 的实时反馈团队合作性能: 因为 API 文档是通过多个开发者和团队之间进行合作创立,因而 Apifox 提供弱小的团队合作性能。你能够将每个开发团队中的成员调配给特定的 API 文档我的项目,并与他们共享信息和反馈自定义域名: Apifox 容许你将自定义域名与 API 文档相关联。这意味着你能够应用本人的品牌名称来拜访 API 文档。这样能够进步你品牌知名度,使你的API文档看起来更加业余性能剖析: Apifox 提供了基于实时数据的性能剖析工具,可帮忙你监督 API 的性能。你能够应用 Apifox 来查看并剖析 API 返回后果的速度、容量和品质Apifox 作为一款 API 设计工具,具备以下长处: ...

September 1, 2023 · 1 min · jiezi

关于测试:架构师日记软件工程里的组织文化-京东云技术团队

一 引言本文是京东到家自动化测试体系建设过程中的一些回顾和总结,删减了局部零碎设计与实际的章节,保留了组织与文化相干的内容,整顿成文,以飨读者。上面就以QA(Quality Assurance)的视角来探讨工作中常常面临的问题与挑战。 关于软件品质,不晓得你有没有以下困惑: 中医中“头疼医头,脚疼医脚”的思路在研发团队中往往不能见效。西医的整体辩证论治往往是解决问题的良方。其基本还是思考维度和察看视角的不同。举个例子来说,扭转人类出行形式的,并没有依照培养更加低劣强壮的马匹来演进,而是自行车,汽车的创造;还有被公众常常戏说的例子,抢占方便面市场的不是因为某一款方便面,可能是外卖的衰亡。这都通知咱们,从更高维度视角去扫视问题,问题往往更容易被定位解决。咱们先来看一下研发体系需要交付流程,波及到的人员单干及各个交互阶段,如下图: 举个例子,拿软件漏测率高,导致线上事变频发的景象来说。先从整个需要交付流程来看,整个产品迭代的节奏如下图: 那么导致漏测率高的起因是什么呢? 可能是产品设计问题,可能是研发施行问题,可能是用例验证问题,可能信息不对称的流程问题,可能是团队合作节奏呈现了问题,也有可能是技术储备的问题,总结起来能够演绎为:组织反对,技术实际,文化共识几个维度。上面咱们聚焦于组织反对和文化共识两个方向。 二 康威定律2.1 定律解读亚马逊CEO贝索斯对于如何进步散会效率这个问题有本人的解决办法。他称之为“两个披萨准则”,即与会人数不能多到两个披萨饼还不够他们吃的境地。谈到组织架构就绕不开号称软件架构设计中的第一定律,康威定律:“设计零碎的架构受制于产生这些设计的组织的沟通构造”; 它们都体现了横向沟通老本是十分高的事实。技术层面,零碎各个模块间的接口也反映了它们之间的信息流动与单干形式,也是同样情理。 为了直观了解,咱们借用一张流传甚广的图来了解一下组织构造: 其实依据原文中康威定律,又有人将其拆解为以下四个定律: 第一定律 组织沟通形式会通过零碎设计表达出来。 组织的沟通和零碎的设计之间严密相连,特地是简单零碎,解决坏蛋与人的沟通能力有一个更好的零碎设计。 第二定律 工夫再多一件事件也不可能做的完满,但总有工夫做完一件事件。 “麻利开发”模式很好的诠释了这条定律,做到一直迭代、继续交付、疾速验证和反馈,并继续改良。一句话:实现比完满更重要! 在零碎真正地投入生产应用之前,再好的架构都只是假如,产品越晚被使用者应用,失败的老本和危险就越高,而小步前进,通过MVP疾速试验,获取客户反馈,迭代演变产品,能无效地缩小失败的老本和危险。防止适度设计问题的呈现。 第三定律 线型零碎和线型组织架构间有潜在的异质同态个性。 你想要什么样的零碎设计,就架构什么样的团队,能扁平化就扁平化。最好按业务来划分团队,这样能让团队天然的自治内聚,明确的业务边界会缩小和内部的沟通老本,每个小团队都对本人的模块的整个生命周期负责。这是对第一定律的场景具象化; 组织和零碎架构之间有一个映射关系(1 ~ 1 mapping),两者不对齐就会出各种各样的问题,一方面,如果你的组织构造和文化构造(专制单干式,集权式,丛林法令式,人才密度)不反对,你也无奈胜利建设高效的零碎架构,例如集中式和严格职能(业务, 开发, 测试, 部署, 运维)的企业,很难推广微服务和DevOps,推广Docker/PaaS平台也会比拟艰难,这样的组织职能之间都偏向于局部优化,无奈造成无效的单干和闭环。 反过来也是成立的,如果你的零碎设计或者架构不反对,那么你就无奈胜利建设一个无效的组织; 第四定律 大的零碎组织总是比小零碎更偏向于合成。 零碎越简单,越须要减少人手,人手越多,沟通老本也呈指数增长。分而治之便是大多数公司抉择的解决方案。分不同的层级,分不同的小团队,让团队外部实现自治理,而后对立对外沟通。 其实康威定义的外围要义就是如何进步组织的合作效率。想更加具象化的去了解,咱们能够从大自然中寻找智慧,最典型的就是树的组织构造,树根->树干->树枝->树叶,树根通过树皮向上提供水分和营养到树叶,树叶光合作用将碳水化合物通过树心从上向下传导,这种生命有机体的分工协作形式就是合乎康威定律的。另外树状构造在数据结构方面的效率体现也是最为平衡的。所以使用好树状架构,对于组织沟通合作乃至零碎架构都是大有裨益的。从新扫视一下咱们的组织架构吧,这可能是繁冗问题景象后的罪魁祸首之一。 2.2 实际案例京东到家优惠券零碎进行过一次大的改版重构。过后的业务背景是O2O业务模式通过一段时间的摸索,咱们最终将超市生鲜定为业务的着力点,紧接着针对于超市生鲜业务门类的促销便接踵而至,仅仅在新人资格下面就有:平台新人,商家新人,首单新人等若干维度,而后在叠加渠道,城市,商家,门店,品牌,商品等各个维度的组合限度,玩法灵便,多变,需要池外面挤压了大量的促销需要。 过后团队有3集体在反对以后优惠券零碎的业务迭代, 运作模式能够用竖烟囱的形式来形容。架构体系处于失控的状态。其运行逻辑是:为了疾速撑持业务需要,缩小对原有服务逻辑的影响,就只能重整旗鼓,从新设计,而越是这样,从底层的数据结构到两头的根底服务,以及下层的业务聚合,在组件数量和构造上无奈做到必要的内聚和收敛,导致局部业务很难撑持,同时线上破绽显著增多,最终到了难以为继的境地。于是咱们进行了零碎重构,当然咱们的测试人员由一个人从头到尾全程反对,撑持起了整个重构工作的测试工作。过后的组织架构如下图: 随着业务的疾速倒退,大量的拉新促活需要接踵而至,最重要的是促销的玩法多变,各个业务团队都有本人的要求,比方对于用户留存业务团队要求有下单返券/分享领券/砍价券等场景,而对于用户增长团队可能想要的是定向推送优惠券/地推扫码领券/新人红包等玩法。业务方是多线的,而咱们的研发团队以及零碎却是复线的,这就导致了我的项目沟通和协调的老本微小,因为研发资源的问题,很多需要长期处于需要池外面得不到及时响应,即便咱们试着将研发人员进步了一倍,但后果还是不能基本解决这个问题,需要交付效率成了业务痛点。 接下来咱们在组织架构上做了很大的调整,首先业务架构层面,咱们将用户增长部门和用户留存部门的业务和研发别离进行了闭环,即两个业务部门都成立本人独立的研发团队外部进行畛域闭环;其次咱们在技术架构层面,将现有的优惠券服务进行了零碎拆分,将处于优惠券外围生命周期的性能进行了中台化,为各个部门提供根底服务的能力,而非核心生命周期里的比方优惠券发放门槛,触达形式等促销业务玩法,交由各个业务团队外部消化就能够了。这样就打消了业务和技术的多对一的组织合作模式,在团队的沟通和合作效率上获得了显著的成果。 从业务到技术研发都做到了组织和零碎的拆分映射,但咱们的测试团队并没有在第一工夫及时的进行人员调整,展示进去的后果就是测试品质有所降落,同时测试效率明显降低。因为随着组织和零碎架构的重塑,业务和研发做到了沟通合作的外部闭环,但对于测试同学来说却并没有做到,接下来咱们将测试团队再次与研发团队的组织进行对应,实现了整个需要交付链路的架构调整。 三 组织文化3.1 团队认知 成员克服个体差异性,默契配合,彼此信赖,造成真正有凝聚力的团队,是须要一些工夫的,可能须要6个月,甚至1年。凝聚力一旦真正造成,团队的成员会一起做打算,一起面对问题,一起搞定所有。一旦团队有了凝聚力,但却因为我的项目完结了便将这样的团队遣散,则是极为荒诞的。最好的做法是不拆散团队,让他们持续单干,只有一直地把新我的项目分派给他们就行。 一些新创建的软件外包公司试图围绕我的项目来构建团队。这是一种不明智的做法。依照这种做法,团队永远都不可能造成凝聚力。每个人都只在我的项目中短期停留,只有一部分工夫是在为我的项目工作,因而他们永远都学不会如何默契配合。 业余的开发组织会把我的项目调配给已造成凝聚力的团队,而不会围绕着我的项目来组建团队。一个有凝聚力的团队可能同时承接多个我的项目,依据成员各自的志愿、技能和能力来调配工作,会顺利完成我的项目。团队比我的项目更难构建。因而,组建持重的团队,让团队在一个又一个我的项目中整体挪动独特工作是较好的做法。并且,团队也能够同时承接多个我的项目。在组建团队时,要给予团队短缺的工夫,让他们造成擬聚力,始终独特工作,成为一直交付我的项目的弱小引擎。 团队的离心力如何打造?肯定是联合业务场景,设定适合的价值导向。从一般的研发团队来看,有以下几方面可能是须要投入精力来保障的: 辨认团队瓶颈,优化木桶短板,进步资源利用率;缩短交付周期,进步吞吐率;周期预估精确,精准把控节奏;如果咱们的团队产出达不到预期,那就要辨认出问题呈现的起因,是因为指标没对齐,流程不标准,还是技术储备少,基础设施单薄,最要害的是咱们要有良好的洞察力和执行力。发现问题,问题就解决了一半。 指标不对齐:让信息通明,明确度量指标;流程不标准:对流程进行治理,比方采纳麻利开发模式;技术储备少:解构->观测->对标->学习->重构基础设施单薄:善用工具(CI/CD)/自研最艰难的是做决策和执行。在执行的时候也要思考事实的环境和团队文化,这是自上而下疾速推动制度落地的原则和根据。比方咱们应该如何去进行需要立项,如何将我的项目落地? 这就须要找出咱们做决策的根据和贯彻执行的办法: 做正确的事件(价值驱动-决策依据):关注ROI/优先级;正确的做事件(规定驱动-执行办法):关注规定/办法/品质效率体系建设;3.2 问题认知我想进步软件交付品质,就须要抓住问题的实质。如何定位问题的实质呢?外围就是多问几个为什么。参照六度分隔(Six Degrees of Separation)实践,“你和任何一个陌生人之间所距离的人不会超六个,也就是说,最多通过六个人你就可能意识任何一个陌生人。”什么样的状态才算是高质量的软件交付? 答复可能是:问题少,交付效率高。 ...

August 29, 2023 · 1 min · jiezi

关于测试:保护你的上线风险治理的防范与排查之路-京东云技术团队

前言我的项目研发的过程中经验了需要评审、开发评审、代码编写、测试用例评审、我的项目测试、产品和UI验收等一系列流程,其中投入了大量的人力和精力。 然而最初的上线阶段,总是存在诸多不确定性和可变性,往往在测试阶段测N次都没有丝毫问题,一上线就会呈现Bug(几乎是墨菲定律的咒骂)。 通过多年的经验总结和残暴教训,咱们将这些已知的或潜在的危险点具体梳理进去,心愿每个我的项目的上线都能够踏踏实实、十拿九稳、顺顺利利。 本文,咱们将从三个方面来防备上线危险:操作防备、双岗&自查、监控告警。 一、操作防备次要蕴含了四大类别的防备:研发防备、配置防备、运维防备和审批防备。 1.1研发防备1.1.1 通用层Loading/Confirm对立标准化谬误页/骨架屏/无数据/网络异样兜底标准布告、弹窗标准1.1.2 代码层应用https、禁止非jd源、验证外网可用环境切换通过零碎变量辨别Commit标准▪ 单次提交独立性能代码 ▪ 所有研发代码提交Coding 对立IDE和脚手架开发环境node.js、npm、joyer、taro等版本对立对立通用组件▪ 沉迷式导航 ▪ 共用组件,检测版本反对及容错解决 ▪ 云梯组件 ▪ 加密防刷:AKS,AAR ▪ 风控设施指纹 ▪ 奇点埋点 ▪ 下载唤起组件 ▪ 分享组件以及金口令 数据处理▪ 分页加载防止申请死循环 ▪ 网关层错误码解决 ▪ 服务端接口层错误码解决 ▪ 主性能接口异样是跳转谬误页/弹窗重试等必要解决 ▪ 兜底计划 1.1.3 UI层是否有动效音视频是否兼容性是否存在性能卡顿1.1.4 平安层编码问题:是否通过eslint兼容问题:编码语法、办法属性、组件库最低反对版本等解决逻辑性能:代码逻辑是否与预期性能统一异常情况:是否思考降级/容错/超时等异常情况用户体验:新增或者批改性能对性能或者体验是否不良用户体验影响平安:密文传输、防刷、脚本注入等mock:是否正确处理了mock数据的展现敏感数据:对数据处理是否存在潜在客诉危险等1.2 配置防备1.2.1 研发配置内容配置平台配置已上线的配置再次操作要留神不影响线上,尽量新增配置配置数据类型不反对工夫控件,禁止在下面配置工夫或工夫戳等数据配置前的数据校验(例如:链接格局是否正确,数据长度是否须要限度等)数据容错解决,若为重要数据需设置为必填项 "required": true;1.2.2 经营配置流动上线前,所有生产配置必须都实现已上线的配置,再次操作需与产品及研发确认;经营外部双岗确认预发环境验证,数据和生产保持一致(奖品类型、券类型、秒杀工夫、工作类型等)处分、券或工作等需验证可失常发放或支付后再配置展现到前端在流动支付利益点到其余流动页应用,需保障二级流动页面内应用利益点失常1.2.3 环境配置所有新我的项目对立应用joyer脚手架初始化命令对立,本地环境、打包、公布各环境等vconsole、正文等仅在非生产包中配置每个我的项目必须有mock环境,应用mock数据去验证各类状况,而不是批改或正文代码老我的项目是否采纳webpack、vue-cli对立标准1.3 运维防备1.3.1 域名解析操作ip是不在利用下存在实例上是否具备可拜访我的项目找运维配合查看是否我的项目可拜访确保告知运维工单受理告诉开发人员及时验证1.3.2 CDN操作确保源站域名和减速域名不统一确保上传的减速内容与散发形式相匹配(图片、大文件、视频、直播流)确保减速域名下的文件为动态资源(思考是否须要做动静拆散)确保源站IP是否正确申请接入后只代表CDN已实现后还留神需配置DNS解析变更查问输出域名查看全国各地区解析是否失效1.3.3 HSTS操作确保客户端或利用是否https或开启https强跳是否有问题对于vip下有多个利用或域名要告诉各方确认是否有影响1.3.4 http2操作确保域名为https才可开启 1.3.5 ddos操作CDN域名暂不必接入 1.3.6 扩容操作机器审批实现确认执行后果全副胜利确保新扩容机器配置及我的项目部署对于混合部署有多个利用存在须要所有利用都实现部署并验证(可让运维配合)混合部署利用确保每个利用都要走复用工单确保扩容操作实现后重启机器操作1.3.7 缩容操作确保CDN域名解析的为内网VIP(如果为rip须要走变更VIP工单流程)混合部署确保每个利用都要走工单预发机器须要补充预发域名反向代理变更工单1.3.8 下线操作确保下线机器是否影响线上(独立部署某个我的项目)留神摘流量-摘机器等步骤实现才可下线1.3.9 回滚操作应用JDOS点击回滚操作回滚抉择的包要仔细检查是否是上次上线的1.3.10 堡垒机操作容器必须失常启动dockerfile构建的镜像,只能申请root权限且22端口必须关上公共镜像,只能申请root权限且22端口必须关上1.4 审批防备是否通过测试节点审批是否由leader审核开发与审批权限是否离开 二、双岗&自查上线前的双岗自查,是咱们制订的一项规范流程。要求研发人员在上线前必须依照上面的清单,并寻求其余共事的帮助进行我的项目代码的排查(当局者迷,旁观者清)。 2.1 前端2.1.1 环境查看域名是否接入CDNjen配置是否统一jen是否全副在线是否开启gzip部署机器数量与预期是否统一2.1.2 专用组件是否接入AAR是否接入AKS是否接入风控是否增加SGM监控2.1.3 需要查看本次上线资源是否蕴含非本次产品需要迭代内容页面引入资源是否都是本次上线内容本次上线资源是否为预发已测试版本2.1.4 代码查看是否有第三方代码注入是否存在敏感字段是否去掉log/mock/Vconsole等调试工具我的项目中是否存在http域名资源服务端接口是否为线上检测所有资源域名是否为线上外网域名包资源文件hash是否由生产部署仓库master代码是否是最新的对于混合部署利用,本次上线是否只更新以后利用代码对于通天塔自定义组件,本次改变是否思考低版本,是否影响其余我的项目中援用的模板2.1.5 回归查看应用4G/5G验证上线后操作CDN资源是否是最新上线的上线后验证。对于混合部署的我的项目,最新分支是否合并到master2.1.6 流程工单双岗查看确认通过UI走查通过并确认风控验收通过并确认平安测试工单提交并实现2.2 服务端2.2.1 监控检查点业务监控◦ 订单 ...

August 25, 2023 · 2 min · jiezi

关于测试:压测故障修复解决-Socket-closed-异常的最佳实践

问题形容JMeter 压测时会报 java.net.SocketException: Socket closed java.net.SocketException: Socket closedat java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:589)at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:542)at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)at org.apache.jmeter.protocol.http.sampler.LazySchemeSocketFactory.connectSocket(LazySchemeSocketFactory.java:97)at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)at org.apache.jmeter.protocol.http.sampler.hc.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:318)at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.open(MeasuringConnectionManager.java:114)at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:695)at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:454)at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1189)at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1178)at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:498)at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:424)at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255)at java.lang.Thread.run(Thread.java:766)可能起因引起 java.net.SocketException: Socket closed 谬误的起因通常是未设置连贯的超时工夫。 解决方案如果在 “HTTP Request Sampler” 的 Basic 里选中了 “Use KeepAlive” 则须要在 Advanced 页签下设置如下参数: 抉择 Implementation 为 HttpClient4。Connect 设置一个连贯闲暇超时工夫,防止因为没收到被压测端返回的 Keep-Alive 的Header 而导致连贯断开。 常识扩大:JMeter 并发测试和持续性压测详解如何疾速搭建 JMeter 集群压测环境

June 29, 2023 · 1 min · jiezi

关于测试:腾讯WeTest-618品质服务狂欢节狂欢优惠燃动六月

即日起,腾讯WeTest 2023年中大促正式开启!为助力宽广用户的产品品质晋升,腾讯WeTest往年为用户特地带来 "6.18 品质服务狂欢节 " ,以多重惊喜和彩蛋优惠,回馈宽广企业、开发者和寰球WeTest用户。 <p align=center>"6.18品质服务狂欢节 " 全攻略</p> 本次“6.18品质服务狂欢节”流动工夫为2 023 年 6月16日 至 2023 年 7月31日(以下单工夫为准),流动蕴含三局部组成: 流动1: 线上 精品服务限时抢购! 在WeTest平台实现注册的用户可享受低至1折起的狂欢折扣价,WeTest云手机、规范兼容、PerfDog、小程序平安加固(根底版)、小程序平安扫描(专业版)、WeTest利用平安加固(仅限Android) 等服务将参加线上精品服务限时抢购流动。 流动2:外围服务立享大单满减!* 欢送WeTest平台新客户(未曾有过WeTest平台成交记录的企业或集体)选购相干服务。购买以下任一服务或组合将取得订单满减:PerfDog、PerfSight、CrashSight、游戏平安、利用平安、小程序平安、自动化测试、专有云、云测出海云手机、云测出海自动化测试、UDT解决方案。 惊喜彩蛋:6 .18 当季热卖解决方案! 往年,WeTest平台新老客户还将特地取得以下彩蛋解决方案的优惠和福利:WeTest UDT解决方案、WeTest小程序异样监控计划、WeTest大性能剖析解决方案、WeTest利用平安浸透测试(反对Web、小程序、H5), 欢送宽广用户理解和体验! "6.18品质服务狂欢节"全攻略 流动细则阐明: 流动工夫:2023年6月16日-2023年7月31日(以下单工夫为准) (1)线上折扣礼包请返回WeTest官网(wetest.qq.com)购买。每款折扣礼包每个账号限购2次(企业账号与集体账号别离最多可购买2次),次数指参加流动产品的最小可购买单位。 (2)流动1实用参加人群:在WeTest平台实现注册的用户。流动2实用参加人群:WeTest平台新客户(未曾有过WeTest平台成交记录的企业或集体)。彩蛋流动实用参加人群:WeTest平台新老客户。 (3)PerfDog、PerfSight、CrashSight、游戏平安、利用平安、小程序平安、自动化测试、专有云、云测出海云手机、云测出海自动化测试、UDT解决方案,购买以上任一服务或组合可参加满减流动。订单金额满50,000元立减2000元,满100,000元立减6,000元,满300,000元立减20,000元,满500,000元立减40,000元。具体购买流程请分割官网在线客服或商务征询详情。 (4)优惠规定阐明:流动期间的产品服务优惠不与平台现有其余优惠政策叠加。 (5)任何人通过不正当伎俩取得本次流动利益的,腾讯WeTest有权撤销用户所获利益并要求抵偿相干损失。 (6)更多流动规定内容请移步官网wetest.qq.com理解详情,腾讯WeTest平台尊重和爱护用户个人隐私,不会公开或以任何模式应用用户集体数据信息。 流动详情征询:wetest.qq.com 更多WeTest年中大促福利请点击下文链接: 腾讯WeTest:年中大促预热来袭,6.18狂欢优惠行将开启! 欢送返回wetest.qq.com进一步理解和体验腾讯WeTest解决方案。即刻退出WeTest官网测试交换群,第一工夫理解更多服务资讯。

June 28, 2023 · 1 min · jiezi

关于测试:SoapUI是什么工具为什么测试人员要使用它

SoapUI 是一个收费的开源测试工具,它可能通过 soap/http 协定来查看、调用和实现 Web Service 的性能、负载和合乎性测试。 除了可能独立地应用作为一个测试软件外,SoapUI 还能够通过插件集成到 Eclipse、maven2.X、Netbeans 和 intellij 等开发环境中。这让开发人员在开发过程中更不便地进行 Web Service 的测试。 SoapUI 提供了 TestSuite(测试套件)和 TestCase(测试用例)两个概念。 TestSuite 能够用来组织一个或多个 TestCase,并且能够在一起成为一个我的项目。 TestCase 蕴含一个或多个测试步骤,包含发送申请、接管响应、剖析后果以及扭转测试执行流程等。 SoapUI 的特点反对 soap /http 协定,可能执行基于 SOAP 和 REST 的 Web Service 测试;提供了丰盛的测试步骤,包含 groovy 脚本、数据库测试、HTTP 身份验证、加密、解密、压缩等;内置了 MockService,不便在开发阶段进行服务模仿;反对测试后果的导出和剖析,例如通过 JUnit 和 HTML 报告等。SoapUI 的应用下载和装置SoapUI 是一款跨平台的软件,能够在 Windows、macOS 和 Linux 上应用。须要到官网下载对应的版本,并装置到本地环境中。 具体下载地址 :SoapUI下载指南:获取最新版本的办法 创立 TestCase在 SoapUI 中创立 TestCase 非常简单,只须要在我的项目中抉择“新建”->“TestCase”,而后按着提醒进行创立即可。 增加测试步骤在 TestCase 中,从左侧工具栏中点击“增加步骤”,而后抉择“测试步骤”即可增加一个新的测试步骤。依据理论需要,能够抉择 HTTP 申请、groovy 脚本、数据库测试等不同类型的测试步骤。 运行测试当 TestCase 实现了所有测试步骤的增加,能够应用 SoapUI 提供的运行按钮来运行所有测试步骤。在运行过程中能够看到每个测试步骤的详细信息和后果。 ...

June 15, 2023 · 1 min · jiezi

关于测试:大促质量备战之三化战役常态化精细化一体化-京东云技术团队

大促作为JD一年两度的盛事,品质备战是不可或缺的重要环节。每逢大促都是一次大型的联结战斗,在这种战斗中,不仅有各种“海陆空”技术争奇斗艳,还会让咱们的技术视线变得更宽敞,让咱们协同变得更默契,所谓以战养兵。测试团队作为品质备战团队,积淀了“常态化”、“精细化”、“一体化”的三化备战策略,心愿与君共勉,共保大促! 一、常态化篇( 步履匆匆,筹谋早行,日日如此,稳操胜半)测试联结架构师把大促备战事项进行分类、分级划分,将局部备战工作纳入常态化,通过双周会模式推动零碎架构治理,提前消除隐患,使其平安巩固,资源高效。1.1 流量驱动(流量定开关,伸缩助节源)为了进步资源的利用效率,产研测联结成立治理专项。全面剖析产品流量情况和机器资源利用率,继续推动低价值产品的关停并转,开释机器资源。通过推动与欠缺ServerLess部署,使其外围利用具备疾速扩缩容能力, 实现资源动静调整。基于流量的关停并转和全面笼罩的弹性伸缩,为大促备战低碳化打下了坚实基础。 1.2 衰弱指数(衰弱指数高,高危勿疏忽)“规定对立,疏忽有据”: 测试联结架构师团队设定“不可疏忽项”的规范,使团队成员认知对立,避免疏忽潜在危险,虚伪高分埋下生产隐患。“策略驱动,重心聚焦”: 衰弱度提供较多查看项,能够更好地进行利用/工作自检,及时发现和解决潜在的问题。针对特定事项进行专项治理也是十分必要的,能够采取有针对性、有策略的措施,以晋升利用/工作的衰弱度。如:链路超时,JVM参数GC线程数合理性,监控告警治理(监控覆盖度、告警合理性、触达有效性) 和 慢SQL治理 等。“天天查看,日日治理”: 利用自动化形式按日查看不合规的疏忽项和利用衰弱分,经营通晒治理,确保指标达成 。二、精细化篇(丝丝入扣,点滴精雕,精密之道,有恃无恐)在构建需要节奏管制、零碎品质备战、资源共享配置的均衡关系上,测试团队应充分发挥资源池劣势,通过应用公司对立的平台工具实现精细化品质备战,确保资源利用的合理化,专项备战的差异化,演练场景的多样化,巡检事项的自动化,从而晋升零碎/产品质量和备战效率。2.1 资源潮汐(流量蜂蛹至,资源弹伸缩)“人力潮汐,防患未然” : 大促需要可能会对备战带来一些潜在危险,因而产研测团队通常会提前1-2个月与业务方辨认和锁定需要,并将测试资源歪斜到重点项目。通过打造人力资源池,既能够进步长期人力资源布局的有效性,又能够实现对长期业务需要的灵便反对,从而更好地应答潜在危险。 “资源正当,即时开释” : 军演压测是一种无效的容量评估伎俩。通过设定性能规范,如CPU使用率在50-60%之间,未达到规范则进行资源的缩容,使其应用更加正当,进步资源利用率。通过极限压测,可确保在高负载下零碎可能稳固牢靠地运行。联合业务个性,应用ServerLess的潮汐或冷扩策略实现资源弹伸缩。2.2 品质加固(地毯式巡检,自动化护航)“品质加固,精密保障”1.以APP端为例的大促版本品质保障,咱们采取以下措施保障和流程管控:基于大促版本从新梳理及联结评审外围场景用例,在集成测试阶段,性能外围场景全面回归笼罩,页面加载性能优化和Crash稳定性治理等。并在灰度发版之前,进行经营配置DoubleCheck和众测。同时,进行代码集成管控和组件Diff,专项保障APP版本合规性和预审,以确保大促版本的交付品质和提审通过率。 2.以H5为例的流动类专项保障,咱们采取了小流量剧本演练/性能巡检/兜底/众测、页面加载性能、验签加固/反爬防刷平安等品质保障措施,联合页面监控(异样、微信封禁等)、权利预警(流动有效期、优惠券库存余额)等。避免流动权利呈现套刷景象,影响失常用户权利支付,晋升用户体验。 “主动巡检,省时高效”: 基于公司对立的平台工具实现7*24小时的UI、接口、舆情及用户之声自动化巡检,晋升效率。2.3 预案演练(预案演练全,限流零碎稳)限流、降级和混沌演练是保障系统稳定性和可靠性的重要措施,可无效防护系统流量超限、进步零碎鲁棒性。测试团队联结研发进行0/1级利用的多场景的混沌/降级演练和网关/JSF接口的限流配置互相Check,确保限流配置正当,预案演练全面且执行到位。为预案的可视化、自动化及效率晋升,测试团队联结泰山团队实现“预案大屏"和"预案执行触达" ,使其预案全副收敛至平台,实现预案主动降级,可视化感知 。 三、一体化篇(风雨同舟,集思广益,万众一心,胜券在握)联结防护和高效协同至关重要,通过上下游或跨团队的联防联控、资源联结重保、监控的实时共享,确保各环节之间的协同畅通,问题及时响应。3.1 联防联控(协同严密连,配合展矛头)备战的胜利依赖于多个零碎和团队的反对,因而确保各环节之间的协同畅通,及时响应问题至关重要。为此,咱们集中备战,测试主导并梳理产运研上下游接口人,建设沟通群,产研测业务BP,确保要害节点的及时沟通和配置批改的双重查看。通过买通用户反馈渠道和舆情预警,并与客服建设应急预案,可能及时应答用户反馈和突发状况。 此外,为了升高大促期间的危险,咱们严格执行团体的 《零碎上线封板新要求》,以管制需要对线上零碎的影响,并通过架构师委员会评审进行双重保障。 3.2 资源重保(资源联结保,零碎稳如山)在每次大促前,测试团队牵头,组织产研测与中间件团队联结对J资源集群的重保工作。基于零碎峰值流量及可能存在潜在危险,单方进行交换并给出相干的诉求和倡议,进而反哺到团队的工程实际,确保资源失去充沛保障,打消潜在危险。 3.3 监控大屏(监控上泰山,实时保平安)泰山作为外部系统监控利器,提供较为丰盛的监控能力,咱们能够通过雷达、全域、数据工作看板等构建出监控大屏,确保异样可及时感知。同时,营销类业务的权利监控依然重要,测试联结架构师孵化权利监控零碎,如:流动有效期、集体权利超发漏发、优惠券的库存等实时预警和告警,保障系统的可用性。 最初,大促备战是一项简单而重要的工作,须要各部门之间密切协作和高效执行。同时,备战须提前布局和部署,实现常态化备战,防止长期抱佛脚。预祝618大卖,零碎稳如磐石!!! 作者:京东批发 李英亮 起源:京东云开发者社区

June 14, 2023 · 1 min · jiezi

关于测试:最强攻略-1分钟带你了解内测成为BUG小能手

「百度产品内测」招募内测体验官啦!! 参加百度内测,不仅能够间接接触百度运营官,还能拿礼物拿京东卡拿百度大礼包!什么你说你没接触过内测?贴心如我,给大家带来一份史上最全的新手入门指南!(文章开端有报名形式,快来退出百度内测吧!) 一、内测具体介绍什么是内测呀? 内测就是下载安装内测测试版本,优先体验新性能,发现BUG后去反馈,每个版本的内测完结后都能够取得相应的处分! 那什么又是BUG呀? Bug就是不能失常应用的性能。 举例: 一些页面空白,长时间刷不出,应用某个性能忽然卡死/闪退,某个按钮忽然隐没了等等。 **内测耗时间吗?要工作/上学怎么办呀? 事实上,百度内测都是双周众测,工夫差不多1~2天,只须要在空闲劳动的工夫,花1分钟支付工作、下载内测安装包,就能够体验,工作党、学生党也齐全能够加入~ 二:参加百度内测,有什么处分?只有找失去(BUG),礼物带回家 那参加咱们的内测流动到底能够取得什么呢? 在百度内测,一个无效bug=10元! 收益回报率当先行业内同类产品。除此之外,还有很多的福利!↓ 【1】优先体验线上版本没有的新性能 【2】京东卡处分随时可兑换,找到无效BUG越多越丰富 【3】度厂实习生/内推名额 【4】测试专家养成打算,带你从测试小白降职专家 【5】参加百度外部员工组织的测试培训,深度理解业务 【6】限量官网周边礼物发放 【7】直接对话官网经营人员 PS:结算周期→依据产品的不同,依照月结算或者依照季度结算噢~ 最初来瞧瞧咱们丰盛多样的奖品 冲动的♥,颤动的手,小伙伴收到礼物之后,都忍不住要晒晒晒!         看到这里,如果你也想取得这些精美的小礼物,就连忙来加入咱们的内测吧! 报名链接:http://qr61.cn/o3VyzK/qoMcamj(点击链接,实现报名!)

June 8, 2023 · 1 min · jiezi

关于测试:web网络协议

一、 OSI 模型OSI = Open System Interconnect = 开放式系统互联分层:物理层,数据链路层,网络层,传输层,会话层,表示层、应用层 物理层二进制传输 为传输数据所须要的物理链路进行创立、维持、拆除常见设施   中继器 集线器数据单位   比特 Bit数据链路层介质拜访(接入) 为网络层提供服务,在不牢靠的物理介质上提供牢靠的传输物理地址寻址、数据的成帧、流量管制、数据的检错、重发等。常见设施   二层交换机 网桥数据单位   帧 Frame网络层寻址和最短门路 使数据路由通过大型网络常见设施 路由器数据的单位 包 Packet传输层过程间通信 提供终端到终端的牢靠连贯数据的单位 数据段 Segment会话层主机间通信 治理主机之间的会话过程,即负责建设、治理、终止过程之间的会话表示层数据表示 包含编码解码、加密解密、压缩解压缩应用层解决网络应用缩写全称用处DNS域名解析服务域名解析HTTP超文本传输协定网页浏览SMTP简略邮件传输协定电子邮件发送POP3邮局协定版本3电子邮件接管FTP文件传输协定文件传输SFTP平安文件传输协定文件传输二、 TCP/IP 协定族TCP/IP 和 OSITCP/IP 协定族对 OSI 模型进行了简化OSI 上三层合并为 TCP/IP 应用层    OSI 的物理层和数据链路层合并为 TCP/IP 网络接入层IP 协定IP = Internet Protocol = 互联网络协定IP 是一种 网络层 的协定,用于将多个包交换网络连接起来的,在源地址和目标地址之间传送数据报。TCP 协定TCP = Transmission Control Protocol = 传输控制协议TCP 是一种基于连贯的 传输层 协定,提供了端到端的牢靠的通信服务通信形式单工     只能单方向通信。如播送。半双工   以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。如对讲机。全双工   数据同时在两个方向上传输。如电话。 建设TCP连贯   三次握手 建设连贯肯定是客户端被动发动1.客户端->服务器 同步标记位SYN无效,示意客户端心愿和服务器建设连贯,有发送序号seq=1002.服务器->客户端 确认标记位ACK无效,确认号ack=101,示意服务器批准客户端发送序号是100的连贯申请,同步标记位SYN无效,示意服务器心愿和客户端建设连贯,有发送序号seq=2003.客户端->服务器 确认标记位ACK无效,确认号ack=201,示意客户端批准服务器发送序号是200的连贯申请,客户端的发送序号seq自增,值为101断开TCP连贯   四次挥手 ...

May 31, 2023 · 1 min · jiezi

关于测试:系统测试设计的10种方法

一、等价类划分等价类的概念等价类某个输出域的子集合,在这个汇合中 每一个输出条件都是等效 的, 如果其中一个输出不能导致问题产生,那么汇合中其它输出条件进行测试也不可能发现错误。无效等价类正当的输出数据指满足产品规格阐明的输出数据,即无效的、有意义的输出数据所形成的汇合。 利用无效等价类,能够测验程序是否满足规格阐明所规定的性能和性能。有效等价类不合理的输出数据不满足程序输出要求或者有效的输出数据所形成的汇合。 利用有效等价类,能够测试程序的容错性(对异样输出状况的解决)。等价类划分形式如果输出条件规定了输出值的汇合,或者 “必须如何”。 则能够确立一个无效等价类和一个有效等价类。 注册的时候抉择性别,男或女,默认没有抉择,性别是必填项无效等价类:男或女有效等价类:不抉择如果输出条件规定了取值范畴,或值的个数, 则能够确立一个无效等价类和两个有效等价类。 取款金额100到5000无效等价类:100到5000有效等价类:小于100,大于5000如果输出条件是一个布尔量, 则能够确定一个无效等价类和一个有效等价类。 装置软件时必须批准协定能力持续装置无效等价类:批准有效等价类:不批准如果规定了的一组输出数据(N个输出值), 且要对每个输出值别离进行解决。 这时可确立N个无效等 证书考试,>=60分有证书,60-70是合格,71-85是良好,86-100优良无效等价类:60-70,71-85,86-100有效等价类:小于60如果规定了输出数据必须恪守的一系列规定, 则能够确立一个无效等价类(合乎规定) 和多个有效等价类(从不同角度违反规定) 注册的用户名要求必须由英文字母和数字组成,长度3-20之间,不能以数字结尾无效等价类:由英文字母和数字组成,长度3-20之间,不能以数字结尾有效等价类:蕴含特殊字符(蕴含空格)、蕴含文字、长度小于3,长度大于20,以数字结尾等价类划分步骤确定输入框确定输出条件划分无效等价类和有效等价类用测试用例笼罩无效等价类用测试用例笼罩有效等价类等价类划分特点只思考单个输出的笼罩,不思考输出的组合应用场景单个输出或输入二、边界值剖析边界值的概念指不同等价类之间的边界。 边界值分析法是对等价类划分法的一种补充,依据教训边界是问题的多发区。谬误暗藏在角落里,问题汇集在边界上。 如果边界左近的取值不会导致程序出错,那么其它取值导致程序谬误的可能性也很小。边界值的分类上点 边界上的点如果域的边界是关闭的,上点就在域范畴内如果域的边界是凋谢的,上点就在域范畴外范畴的边界值肯定是上点离点 离边界最近的点如果域的边界是关闭的,离点就在域范畴外如果域的边界是凋谢的,离点就在域范畴内如果某个上点是无效的,离点就是有效的。如果某个上点是有效的,离点就是无效的。内点 区间内除上点和离点之外的任意一个点 **上点肯定是边界上的点,不论关闭区间还是凋谢区间。上点和离点在不同的等价类,如果上点是无效等价类,则离点是有效等价类;如果上点是有效等价类,则离点是无效等价类。**边界值剖析步骤1)剖析输出参数的类型2)等价类划分(可选)3)确定边界 确定上点、离点、内点4)确定测试用例5)抉择这些上点、离点、内点或者这些点的组合造成测试项边界值剖析实例 实例演示 驾照年龄范畴18到70上点:18,70     离点:17,71     内点:60输出值范畴 -3到4,不含边界,整数上点:-3,4    离点:-2,3     非凡边界:0下拉框抉择国家,默认请抉择,范畴从阿富汗到津巴布韦上点:阿富汗、津巴布韦     离点:请抉择 (6,18)----开区间,不蕴含6和18有效值:7,8,9....16,17有效值:<=6,>=18上点:边界上的点----6,18--有效等价类离点:7,17[6,18]----闭区间,蕴含6和18上点:6,18----无效等价类离点:5,19----有效等价类边界值剖析应用场景单个输出规定了一个输出值范畴单个输出是一个有序的汇合(下拉框)三、输出域测试在等价类划分法和边界值分析法的根底上思考非凡值测试等其余状况 输出域步骤1)等价类划分2)边界值剖析3)非凡值测试4)极限值测试非凡值测试日期非凡值 2月份的日范畴,非凡值平年2月有29天 (平年:能被4整除且不能被100整除;或能被400整除)年的示意应用两位数,非凡值是千年虫工夫应用工夫戳形式保留时,非凡值2038年,最大能示意的日期是2038年1月19日(64位操作系统的int数据类型最大值是2147483647)手机号码非凡值 110、120、119等紧急号码10086,10000,95555等客服号码虚构网短号 60113800138000 中国移动充值卡充值核心的号码极限值测试某个明码输入框容许最大输出100个字符,明码的最大长度是12上点是长度12,离点是长度13,极限值思考长度100界面长度如果没有限度,能够看数据存储长度进行验证(定义数据类型的可输出最大长度)输出域应用场景==各种单个输入框==四、输入域测试零碎的输出和输入个别不是线性关系,输出域的等价类划分和边界值剖析不肯定笼罩输入域的等价类和边界值,须要从输入的测试点思考输出值。 输入域步骤1) 从输入角度思考等价类划分,个别输入没有有效等价类2)剖析输入等价类的边界值3)依据须要笼罩的输入值反推输出值4) 转化成测试用例输入域实例外币兑换 输出人民币数值,100到40000。输入美元数值,能够兑换的美元范畴100到5000。 输入的无效等价类是100到5000,上点是100和5000。笼罩输入的边界,倒推输出是700和35000。个人信息残缺显示注册时填写所有信息项,为了验证每个信息项都能失常展现。查问后果导出时excel每个sheet最大行数为65535输入域应用场景格局转换,查问后果导出个别只有当输入比较复杂的时候可能会应用到,理论工作中利用较少。五、 正交实验法正交实验法概念正交试验设计法,是从大量的试验点中挑选出适量的有代表性的点, 利用根据迦罗瓦实践导出的正交表,正当地安顿试验的一种科学试验设计办法。利用正交表从全排列组合中主动筛选出若干组合进行测试。任意两个因子的不同状态都同时组合在一条规定里。原理 用尽量少的测试用例笼罩输出的两两组合,如果两两组合没问题,更简单组合问题不大。正交表的组成因素(因子)Column -----输出条件所有影响试验指标的条件,要测试的性能点。即有哪些输出。程度(因子的状态)-----输出条件的取值影响试验因子的状态,即单个因素可能获得的值的最大个数。即输出的取值个数。试验 Experiment Number因素和程度的组合,对应测试用例正交实验法步骤1)确定要组合的输出2)有哪些因子(变量)3) 每个因子有哪几个状态(变量的取值)4)如果因子或状态过多,能够删除一部分重要性较小的因子或状态,使生成的测试用例集缩减到容许范畴5)抉择适合正交表因子数与状态数刚好合乎正交表,间接应用因子数与状态数没有合乎的正交表合并因子的局部取值匹配正交表抉择因子数和程度数略大于理论值的正交表状态数雷同找因子数大于理论值的正交表状态数不同找状态数大于最大理论值的正交表6)理论取值替换正交表的状态7)开展合并的因子取值,空白处确定具体的值(可选)8)把每一行的各因子程度的组合做为一个测试用例9)加上你认为可疑且没有在表中呈现的组合正交实验法优缺点长处 依据正交性从全面试验中挑选出局部有代表性的点进行试验, 这些有代表性的点具备了“平均扩散,参差可比”的特点。通过应用正交试验法缩小了测试用例,正当地缩小测试的工时与费用,进步测试用例的有效性。==正交实验法是一种高效率、疾速、经济的实验设计办法。==毛病 对每个状态点同等对待,重点不突出,容易造成在用户不罕用的性能或场景中, 破费不少工夫进行测试设计与执行,而在重要门路的应用上反而没有重点测试。==会存在漏测的危险,生成测试表后须要人工的审核增加一些可疑项。==正交实验法应用场景==组合查问或搜寻,兼容性测试(浏览器/操作系统/分辨率),配置测试。==六、 状态迁徙法状态迁徙法概念无限状态机 示意无限个状态以及在这些状态之间转移和动作的数学模型通过结构能导致状态迁徙的事件来测试状态之间的转换状态迁徙法步骤1) 画出状态迁徙图2)列出状态 - 事件表3)画出状态转换树4)确定测试门路5)针对每条门路设计测试用例状态迁徙法练习TM状态切换状态迁徙法应用场景==有工作状态的软件,批改设置/配置,有状态变动的功能测试。==七、流程分析法流程分析法概念流程分析法 又叫 场景分析法,是将软件系统的某个流程看成门路,用路径分析的办法来设计测试用例。关注的重点是流程是否能走上来,每个节点的性能并不关注。流程分析法步骤1)画出流程图2)确定测试门路根本流程     一次性胜利的流程备选流程     屡次重复后才胜利的流程异样流程     失败的流程3)针对每条门路至多设计 1 条测试用例流程分析法练习取款流程流程分析法应用场景==业务流程测试,装置流程、卸载流程测试==八、 断定表法断定表概念断定表 又叫 决策表,是剖析和表白多种输出条件下零碎执行不同动作的工具。==它能够把简单的逻辑关系和多种条件组合的状况表白得既具体又明确。==等价类划分思考不同的输出,断定表法思考针对各种输出的解决规定是否正确,目标是测试业务规定。断定表组成条件桩 列出了问题的所有条件(输出),秩序无关紧要 ...

May 30, 2023 · 1 min · jiezi

关于测试:极客测试开发进阶训练营2022年折戟沉沙铁未销

download:极客测试开发进阶训练营2022年面向对象设计的重要技巧:隔离面向对象编程是当今软件开发中最罕用的办法之一,它次要依赖于类和对象来治理和组织代码。在实现简单零碎时,为了放弃代码的可扩展性、可维护性和可测试性,咱们须要采取一些要害技巧来缩小代码间的耦合性并进步代码的模块化。本文将介绍一个要害技巧:隔离。 什么是隔离?在面向对象编程中,隔离是一种技术,意味着将不同的性能或模块拆散开来,以缩小它们之间的耦合度并进步代码的可重用性和可维护性。通过隔离,每个模块都能够独立运作,这样能够升高零碎的复杂度,并使更改和调试变得更加容易。 隔离的次要目标是将代码模块化,这样它们能够被独自开发、测试和保护。此外,隔离还能够帮忙咱们防止对代码的不必要批改,并且能够更好地处理错误和异常情况。 隔离的实现办法接口隔离准则接口隔离准则(Interface Segregation Principle,ISP)是面向对象编程中的一项要害技巧。该准则要求将一个大接口拆分成多个小接口,以便客户端只须要晓得它们须要应用的接口,而不须要晓得全副的接口。 例如,假如咱们有一个名为Shape的接口,定义了获取形态周长和面积的办法。如果咱们实现一个仅须要计算周长的类,则该类必须实现计算面积的办法,即便它不须要这个办法。这种状况下,咱们能够应用ISP将Shape接口拆分为两个更小的接口:Perimeter和Area。 interface Perimeter { getPerimeter(): number;} interface Area { getArea(): number;}繁多职责准则繁多职责准则(Single Responsibility Principle,SRP)是另一个重要的隔离技术。该准则要求每个类或模块都应该有一个繁多的责任,并且应该只有一个起因引起它的变动。 例如,假如咱们有一个解决日志的类,并且咱们想要增加一个解决文件的性能。如果咱们将文件解决逻辑增加到Log类中,则违反了SRP准则。相同,咱们应该创立一个新的File类,专门负责文件解决。 依赖注入依赖注入(Dependency Injection,DI)是另一个重要的隔离技术。该技术的次要思维是将一个对象须要的其余对象的创立和管理工作交给内部容器来实现,从而实现对象之间的解耦。 例如,假如咱们有一个名为UserService的类,它须要应用DatabaseService来获取用户数据。如果咱们间接在UserService中创立一个DatabaseService实例,则违反了DI准则。相同,咱们应该应用依赖注入框架(如Angular、Spring等)或手动DI办法,将DatabaseService实例注入到UserService中。 class UserService { private databaseService: DatabaseService; constructor(databaseService: DatabaseService) { this.databaseService = databaseService;} getUser(userId: string): User { return this.databaseService.getUser(userId);}}组合优于继承继承是一种强耦合的关系,因为它将子类与父类严密绑定在一起。组合则容许咱们将不同的类组合在一起,以实现更灵便和可重用的代码。 例如,假如咱们有一个名为Car的类,它有一个引擎类型,能够是电动的或燃油驱动的。如果咱们应用继承来实现电动车和燃油车,则这些子类将与Car严密绑定。相同,咱们能够应用组合来实现这个性能,创立一个Engine类,并在Car中应用它。 class Engine { private type: string; constructor(type: string) { this.type = type;} getType(): string { return this.type;}} class Car { private engine: Engine; constructor(engine: Engine) { this.engine = engine;} getEngineType(): string { return this.engine.getType();}}论断隔离是面向对象编程中的要害技巧之一。它能够帮忙咱们缩小代码间的耦合度,并进步代码的可重用性、可维护性和可测试性。在实现隔离时,咱们能够应用接口隔离准则、繁多职责准则、依赖注入和组合优于继承等技术。通过这些技术,咱们能够创立更加模块化、灵便和可扩大的代码,最终实现更好的软件开发。 ...

May 21, 2023 · 1 min · jiezi

关于测试:黑马软件测试V40

download:黑马软件测试V4.0Java是当今最为风行的编程语言之一,被宽泛用于大型项目的开发。对于亿级我的项目,架构设计至关重要,因为它波及到高可用性、伸缩性和安全性等方面。在本文中,咱们将探讨Java亿级我的项目的架构设计与落地利用,并重点介绍H2数据库。 架构设计在设计亿级我的项目的架构时,须要思考以下几个方面: 高可用性对于一个亿级我的项目,必须保证系统可能24/7稳固运行,即便呈现故障也应该可能主动复原。为此,能够采纳多节点部署、负载平衡和容错机制等形式来进步零碎的可用性。 高伸缩性因为亿级我的项目通常须要解决海量数据和用户申请,因而须要具备高伸缩性,即可能疾速扩大节点以满足业务需要。这能够通过分布式架构、微服务架构和云计算技术等实现。 安全性对于任何一个大型项目来说,数据安全都是至关重要的问题。因而,在设计亿级我的项目的架构时,必须思考数据的安全性,包含数据加密、权限管制和破绽修复等方面。 H2数据库H2是一款轻量级的Java数据库,具备高性能、嵌入式和分布式反对等特点,非常适合于亿级我的项目的架构设计。 高性能H2的查问速度十分快,能够通过应用索引和缓存来优化性能。此外,H2能够在内存中运行,从而进一步提高性能。 嵌入式反对H2能够作为一个嵌入式数据库应用,这意味着应用程序能够间接拜访数据库,而无需应用独立的数据库服务器。这不仅不便了开发人员,还能够缩小系统资源的占用。 分布式反对对于亿级我的项目,通常须要采纳分布式架构来实现高伸缩性。H2反对分布式部署,能够将数据库扩散到多个节点上,从而实现数据的摊派和负载平衡。 落地利用在理论我的项目中,咱们能够通过以下形式将Java亿级我的项目的架构设计落地利用: 确定业务需要首先,须要明确我的项目的业务需要和指标,以确定所需的架构设计和技术栈。 抉择适当的技术栈依据业务需要和指标,抉择适当的技术栈,包含开发框架、数据库和其余相干技术。 实现架构设计在确定业务需要和技术栈后,能够开始实现架构设计。这通常包含开发底层框架、搭建零碎基础设施、设计数据库架构等。 测试和优化一旦实现了架构设计,就须要对系统进行测试和优化,以确保零碎的稳定性、性能和安全性等方面。 总结在设计Java亿级我的项目的架构时,须要思考高可用性、高伸缩性和安全性等方面。H2数据库是一款非常适合于亿级我的项目的轻量级数据库,具备高性能、嵌入式和分布式反对等特点。通过抉择适当的技术栈和实现架构设计,能够将Java亿级我的项目的架构落地利用,并实现高效、稳固、平安的零碎。

May 19, 2023 · 1 min · jiezi

关于测试:如何进行测试分析与设计HTSM启发式测试策略模型-京东云技术团队

测试,没有剖析与设计就失去了灵魂; 测试人员在编写用例之前,该如何进行测试剖析与设计呢?上次在《测试的底层逻辑》中讲到了【输入输出测试模型】,还讲到了【2W+1H测试分析法】,但2W1H分析法是初步的分析方法,具体在测试中如何落地,还须要更细的设计。 明天就给大家介绍一下由测试领域专家James Batch总结的测试剖析与设计模型,HTSM启发式测试策略模型。 什么是HTSM?HTSM是一套测试思路启发的办法,旨在帮忙测试人员更好地思考测试策略,领导测试人员在进行测试剖析和设计的时候如何去思考,思考哪些点。HTSM包含四个重点畛域:测试技术、我的项目环境、产品元素和质量标准。James Batch倡议:你能够随便地应用它们,它对任何类型的软件都是通用的,另外在落地利用的时候,倡议依据理论场景调整模型的内容,以适应本人的组织环境。 James Batch原文解释:TheHeuristic Test Strategy Modelis a set of patterns for designing and choosing tests to perform. The immediate purpose of this model is to remind testers of what to think about during that process. 上面是HTSM和2W1H分析法进行的比照,通过比照能够看出HTSM能够与2W1H进行对应,通过剖析我的项目环境,理解为什么测试这个我的项目,理解我的项目背景;通过剖析产品元素,确定了咱们的测试范畴,明确咱们要测什么;而后通过测试技术和质量标准领导了咱们该怎么去测。 HTSM与2W1H比照: HTSM模型概览: 在HTSM模型中,我的项目环境、产品元素、质量标准、测试技术每一项都列出了很多子项;其中【我的项目环境】和【产品元素】不须要依照模型提供的子项进行全量的剖析,所以大家能够作为参考,筛选对本人有用的信息进行剖析即可。 我也会联合本人的教训减少一些内容;【质量标准】和【测试技术】参考的价值会更大一些,我对原文进行了具体的翻译;因为只是模型,所以作者也不会对每一种测试方法或测试规范进行具体的解说阐明,只是作者依据他的教训进行的总结,大家都能够联合本人的经验总结更具体的办法;但测试技术和质量标准的每一个子项是能够作为测试人员进行测试设计的参考规范,质量标准也能够参考ISO9126软件品质模型。 总之,模型不是具体的常识解说,而是领导大家进行测试剖析和设计的思路办法汇合。 ISO9126软件品质模型 上面别离解说HTSM的四个畛域:我的项目环境、产品元素、质量标准、测试技术。大家也能够依照这个程序去应用HTSM,依照2W1H的办法去剖析,参考HTSM提供的子项和教训,最终造成残缺的测试计划。 测试第一步:【我的项目环境】,测试之前肯定要先理解我的项目背景,理解咱们为什么做这个我的项目?我的项目产生背景:为什么要做这个我的项目?我的项目产生的背景起因是什么? 所解决的问题:这个我的项目解决了什么问题? 通过理解背景,可能更好的帮忙咱们剖析需要,理解最原始的需要和目标;理解了最原始的需要,能力去剖析PRD中的功能设计是否可能满足用户最原始的需要,也能力更好的了解业务,了解需要,从而能够去开掘需要文档中存在的问题或有余。 我的项目所属级别:是策略我的项目?还是技术保护降级我的项目?理解我的项目的级别也就是重要水平,也决定了咱们应该投入的资源;对品质的要求是什么级别,用户对品质的要求是什么样的。 我的项目冀望实现的工夫:对实现工夫的理解,能够决定咱们后续会采取什么样的测试策略,哪些测试方法是必须采纳的,哪些能够不必或者上线后再应用等等。比方工夫特地缓和,最重要的还是要保障性能,其余性能能够依据上线的计划决定;是一上线就会有大量用户应用还是只有少部分种子用户;兼容性是否能够上线后进行,还是说针对C端的,兼容性必须保障;自动化测试可能就无奈做了,也或者自动化技术曾经十分成熟,有录制相干的工具,且经验丰富,那这个时候自动化录制工具或录制回放工具就能够起到很大的作用。 零碎用户状况:零碎的用户是谁?用户量有多大?关注用户量,第一是理解零碎是否有性能压测方面的需要,第二是理解零碎的用户量级是几个,几十个、几百个人还是成千上万?用户的数量不同,他的价值必然不同。 零碎客户是谁:零碎的客户是谁?客户最原始的述求是什么? 上面的是HTSM【我的项目环境】的具体内容,局部内容我做了补充和调整。 测试第二步:【产品元素】,就是咱们打算要测试的内容;测试人员必须保障笼罩所有的产品元素,而且不仅仅是咱们所看到的局部。产品最终就是为客户提供的一种教训或解决方案;产品有多个维度,要测试好,咱们笼罩的维度必须要全面。每一个维度都代表了产品独特的一个面。如果测试只是笼罩了一部分,就有可能错过重大的bug。剖析产品的元素,就是剖析咱们的测试范畴,有哪些方面或内容是须要咱们测试的。个别人确定测试范畴都来自于需要文档,其实需要文档之外还有很多货色须要咱们关注,须要咱们测试。上面是HTSM的【产品元素】: HTSM模型【产品元素】列出的内容比拟多,也比较复杂,这些内容能够作为咱们的参考,绝不是要求齐全依照上面的内容进行测试。 Structure构造:产品所包含的所有; 这一部分我感觉是咱们最容易疏忽的,咱们大部分工夫都是在测试软件,硬件局部很容易疏忽;另外容易疏忽的就是非执行文件,例如帮忙文档、许可协定等,这些尽管很多都是业务提供,但出于对公司负责、对产品负责、对用户负责,咱们还是须要再检查一下这些非执行的文档;帮忙文档是否简略易懂,是否有缺失,是否有谬误或与零碎性能不符;因为上线前对系统最相熟的不是产品经理,也不是研发,而是测试人员。 另外分享一下我的一些教训;首先,测试范畴的确定是十分重要的,大部分人会疏忽这一步,这样就有可能会导致漏测。这一步容易疏忽,是因为咱们的测试根据就是PRD,所以测试范畴都在PRD里;但理论状况是,大部分测试范畴都在PRD里,还有一部是在设计文档中,或者在文档之外。 对于从0开始的新我的项目,能够从两个角度去思考测试范畴: 一、产品角度,通过剖析PRD根本就够了;当然有些内容PRD可能也会忽略脱漏,咱们就须要对需要进行剖析,挖掘出可能存在的隐性需要。 二、技术角度,除了用户看到的能够操作的性能,有些性能是用户无奈间接用到的,或者是给其余零碎技术开发用户应用的;例如对外提供的接口服务、零碎后盾异步解决的工作、定时执行的工作、上线前刷的根底数据、前置数据等。 从1.X到1.(X+1)或2.0的降级保护我的项目: 除了失常的测试范畴评估,最重要也是最难的就是回归测试范畴的评估了,也就是对原有零碎的影响范畴是最难评估的。 ...

May 19, 2023 · 1 min · jiezi

关于测试:手机通话记录生成器app通话记录生成器2022通话记录生成器安卓版下载

在理解手机通话记录生成器app的时候,铁牛通话记录生成器是一个为用户一键主动生成通话记录的app。它能够一键主动生成通话记录的app,无需手动一个个输出号码来生成。上面我写个亲测的操作教程分享给大家,以便有个大体的逻辑思路,让大家节约工夫,当然了这个理解也是无限的。想更多具体钻研理解它的敌人,能够关上你的手机浏览器上baidu搜寻一下,铁牛通话记录生成器。 第一步应用:一键复制粘贴你的号码进来或者拍照图文辨认你的号码。 第二步应用:抉择生成通话记录的工夫点范畴,默认抉择过来一个小时的范畴。 第三步应用:抉择通话记录的生成时长,有三种抉择“1分钟之内”、“1-5分钟之内”、“自定义N到M分钟”。 第四步应用:抉择通话类型,已拨电话,已接电话,拨出未接,拨入未接,四种抉择其中一种。 第五步应用:点击按钮“生成通话记录”,到通话记录界面看后果即可,主动一键生成模仿虚构的号码通话记录。 关键词:通话记录生成器,通话记录生成器app,通话记录生成器安卓版下载,手机通话记录生成器app,一键生成通话记录,手机通话记录生成器下载,虚构通话记录生成器,通话记录生成器安卓版下载最新版本,虚构通话记录生成器,通话记录生成器最新版,通话记录生成器app软件下载,通话记录生成器,手机虚构通话记录生成器,批量通话记录生成器,通话记录生成器安卓版下载app,通话记录生成器安卓版,一键生成100个通话记录,手机通话记录生成器在线,通话记录生成器下载。

May 18, 2023 · 1 min · jiezi

关于测试:什么是软件测试领域的-falsepositive-test

在软件测试畛域,"false-positive test" 是指在测试过程中产生了误报的测试后果。这意味着测试工具或测试流程谬误地将一个实际上是正确的性能或行为标记为谬误或异样。 False-positive test 在软件测试中是一个常见的景象,尤其是在自动化测试中。这种状况可能由多种因素引起,上面我将具体介绍几个次要的起因。 不欠缺的测试用例设计:测试用例是测试的根本单位,不欠缺或低质量的测试用例可能会导致误报。测试用例应该笼罩零碎的各个方面,并且应该可能精确地区分失常行为和异样行为。如果测试用例设计不充沛,可能会导致误报的状况产生。不精确的预期后果:测试用例通常会定义预期后果,用于与理论后果进行比拟。如果预期后果定义不精确或含糊,测试工具可能会谬误地将失常行为标记为异样。确保预期后果准确无误十分重要,以防止误报。测试环境的影响:测试环境的配置可能会导致误报。例如,某些测试工具可能对特定的操作系统版本、硬件配置或网络设置敏感。如果测试环境与理论生产环境存在差别,可能会导致误报的状况产生。因而,测试环境应该与理论环境尽可能类似,并且测试工具应该适应各种环境配置。工具或平台的缺点:测试工具或测试平台自身可能存在缺点,导致误报。这可能是因为工具的算法不欠缺、破绽或谬误的设置等起因引起的。应用成熟和牢靠的测试工具,并及时更新和修复工具中的谬误能够缩小误报的产生。误报可能对软件开发团队产生负面影响,包含浪费时间和资源来考察并纠正错误,升高测试人员对测试后果的信任度,以及对软件品质评估的准确性产生质疑。因而,缩小 false-positive test 对于一个无效的软件测试流程至关重要。 以下是一些缩小 false-positive test 的办法: 优化测试用例设计:确保测试用例设计充沛笼罩零碎的各个方面,精确形容预期后果,防止含糊或不明确的定义。定期更新测试环境:确保测试环境与理论环境尽可能类似,并及时更新环境配置,以适应零碎的变动。

May 18, 2023 · 1 min · jiezi

关于测试:测试

本机多服务一次性构建背景本机开发多个服务,每个服务还会相互调用失常状况,开发者须要在本地启动多个服务,并且手动调用想着不应用gitlab ci/cd, 在本机疾速通过 makefile+docker-compose 编排多个服务可执行源码在:https://github.com/webws/go-moda/tree/main/example/tracing/moda_tracing

May 16, 2023 · 1 min · jiezi

关于测试:以数据思维和技能提升数据应用测试实践-京东云技术团队

作者:京东批发 周雪梅 以数据思维和技能进步测试覆盖率和效率。数据利用测试,功能测试次要聚焦在数据流向(输出和输入)。 一、背景数据品质组以后次要承接黄金眼和商智中的供应链模块,商智包含PC(品牌版:商家端,经营端)和M端。各模块的产品特色和测试范畴和策略的通用模式如下图所示,图中灰色局部是待建设中。 从图中可见,产品的数据流向次要包含业务数据、模型数据、后盾利用、前台利用四个模块,更细一点数据流向包含以下几步 利用离线(T+1)和实时(大促控制台当日和实时库存)数据加工到app层表中,而后推到ck中;用户在前台操作确定查问条件后查问,前台会将该查问申请到后盾,后盾解析出指标维度,查问ck后同步指标后果给前台,而后给用户展现。二、测试策略测试策略,首先聚焦在从0到1的测试场景,前面会针对一些非凡场景进行独自的介绍。 1、模型数据模型数据的测试前提是理解到数据安全和数据时效(特地是deadline工夫),策略次要包含探测、功能测试、监控。 探测次要采纳自动化的形式,按模式校验输入html的报告。以后实现了分区连续性探测、NULL占比、统计变量、枚举字段的散布三种模式,后续打算加上环比,以及蕴含部门、金额、数量等供应链波及的关键字的非凡校验;1)分区连续性探测辨认:分区总数、完结和开始工夫的天数差距去辨认分区类型,来判断分区是否间断 2)最近三个dt的总数环比(环比差距0.1会主动标红) 3)最近三个dt的NULL占比和环比(NULL环比差距0.1会主动标红) 4)最近三个dt的统计值状况 功能测试次要采纳手工和自动化的形式,自动化次要是针对通用的数据属性测试,手工次要是针对业务属性和非通用数据属性的测试。 监控待建设,后续的打算是把探测和功能测试积淀的自动化积淀为工作进行频次监控2、后盾测试后盾测试的测试范畴次要集中在性能(指标维度的准确性)、性能和平安。 性能(指标维度的准确性),采纳手工和自动化回归的形式进行。自动化是依靠九数和deeptest平台建设的,流水线的形式主动生成deeptest反对的用例进行回归测试。将来布局是晋升接口验证的覆盖率和适应场景。 平安,把平安的测试点建设到后盾的功能测试中,权限内可查非权限内不可查。性能3、前台测试前台测试聚焦在数据的输入输出和其余。输出指前台的申请入参是否精确;输入是指前台款式展现和数据取值(即后盾接口返回的key和前台展现的映射关系)。其余是指页面兼容性和资源权限等。 1)前台输出测试,现状是采纳手工+录制辨认的形式验证申请入参是否精确。录制辨认的形式采纳chrome插件MeterSphere JMX Recorder录制前台申请并导出为jmx文件,录制的形式倡议每次扭转一个查问条件触发后盾查问。对导出的jmx文件进行辨认转换为df,利用窗口函数去验证这一申请和上一次申请的不同之处是否只有1处。上面两图别离为文件解析后的df对象和检测入参变动的后果(rank非1的变动数大于等于2就须要细化查看是否有问题,其中变动项change\_value,变动数change\_n,申请的程序rank),执行命令#python test\_web\_input.py jmx文件(autotest-data/公共/前端) 2)前台输入测试范畴次要包含页面款式展现、数据映射等。以后在继续建设用例模板。 款式展现次要是文本和数值的展现款式,次要采纳人工验证积淀冀望后果,而后自动化回归,采纳的cypress(反对接口mock)可视化的测试。以后的建设是梳理包含的数据款式的模式,通过mock的形式疾速返回款式下的多场景,如下图可见,接口为输出项,抉择接口中包含的款式范畴,输入须要多少种测试场景能笼罩所有的款式场景。 数据映射是后盾接口中数据和前台展现数据的映射关系正确,次要采纳人工验证积淀冀望后果,而后自动化回归,采纳的cypress可视化的测试。3)前台的其它测试,兼容和权限 兼容是浏览器或者手机版本的兼容性测试;权限包含菜单和数据权限4、技改数据利用的技改指数值未变,架构降级。 4.1数据技改测试计划是新表和老表数据比照后果是否统一,采纳的形式有两种,1)hivesql的join;2)差集为空 4.2后盾技改测试计划是新老利用的接口数据是否统一,采纳的形式是接口测试。抉择入参列表,循环遍历新老接口,对接口返回转换为df,df比照是否统一 三、测试积淀自动化积淀到中coding中,外面蕴含了数据、后盾和前台三个模块。

May 12, 2023 · 1 min · jiezi

关于测试:如何利用-AREX-在本地快速复现线上问题

在软件开发过程中,线上问题的复现和定位是开发日常的一个流动。然而令开发人员头疼的是,因为线上环境与本地环境的配置和数据存在差别(如数据库中的数据、缓存中的数据等),线上的问题往往无奈疾速在本地测试环境中进行复现,排查艰难度大大增加。 面对这种问题,能够利用 AREX 这款自动化回归测试工具来进行疾速复现。AREX 的基本原理是在生产环境中录制流量和数据,在测试环境回放并主动比对接口服务内的内部申请差别,接口返回报文的差别,并联合精准测试工具找到代码更改和后果差别的关联,实现残缺的自动化验证测试。借助 AREX 弱小的 Mock 机制,录制过程中 AREX 将主动对该条实在申请所有的内部依赖进行 Mock,在本地完满还原线上生产数据环境,这样就能够顺利完成在本地环境的复现,疾速排查问题。 具体步骤如下: 往生产环境发送带有 force-record=true 标记的申请,AREX 录制生产数据,并记录应答报文头中的 RecordID (AREX-Detail-ID)往 Local 开发环境,筹备好对应的代码及 AREX Agent 的配置,开启 Debug 模式用 AREX 往 Local 环境发送 RecordID 为 AREX-Detail-ID 的申请报文,Local 服务收到报文进入 Debug 状态Local 的利用挂载了AREX Agent,依赖数据会从 AREX 数据库获取并加载开发能够开始得心应手的复现生产问题,疾速复现定位如下是实战演示。 步骤一:部署 AREX 服务git clone https://github.com/arextest/deployments.gitcd deploymentsdocker-compose up步骤二:为被测利用配置 AREX Agent 后启动AREX Agent 是实现流量录制的外围组件,因而在应用录制性能前,须要先为被测利用配置 AREX Agent。 首先,编译 AREX Agent: git clone git@github.com:arextest/arex-agent-java.gitmvn clean install编译胜利后可在 arex-agent-java 文件夹失去一个名为 arex-agent-jar 的新文件夹,其中蕴含两个 jar 包。 ...

May 6, 2023 · 1 min · jiezi

关于测试:极客测试开发进阶训练营2022江月年年望相似

download:极客测试开发进阶训练营2022前后端拆散是一种在Web利用程序开发中宽泛采纳的架构模式。它的核心思想是将前端和后端齐全拆散,通过API接口进行通信。传统的Web开发中,前端和后端严密耦合,即前端和后端的代码在同一个我的项目中,前端次要负责页面展现,后端则负责数据处理和业务逻辑。然而,随着互联网技术的一直倒退,前后端拆散架构成为了越来越多Web应用程序的首选架构。 前后端拆散的长处: 进步零碎的可扩展性:在前后端拆散架构中,前端和后端是独立的两个零碎,能够分别独立开发、部署和保护。当须要减少新的性能时,只须要批改相应的API接口即可,不须要影响到整个零碎的运行。 减少了开发效率:因为前端和后端能够并行开发,大幅度缩短了开发周期,进步了开发效率。 反对多平台:因为前后端拆散,因而能够反对多个客户端平台,例如Web、挪动端等。 进步零碎的安全性:前后端拆散能够无效避免XSS攻打和CSRF攻打等对系统的平安威逼。 便于团队合作:前后端拆散能够让前端和后端的开发人员更加专一于本人的畛域,进步了团队合作效率。 前后端拆散的劣势: 须要更加简单的架构:相比传统的Web开发,前后端拆散须要更加简单的架构和技术栈,这也减少了开发成本和难度。 减少了开发工作量:在前后端拆散的架构中,前端和后端须要额定的开发工作量来实现API接口和数据交互等。 减少了部署难度和老本:因为前后端是两个独立的零碎,因而须要额定的配置和治理,这也减少了我的项目的部署难度和老本。 总之,前后端拆散是一种实用于大型Web应用程序的优良架构模式。它能够进步开发效率、加强零碎的可扩展性和安全性,并且反对多平台。然而,前后端拆散须要更加简单的架构和技术栈,并且须要额定的开发工作量和部署老本,因而须要依据具体情况进行抉择。

April 27, 2023 · 1 min · jiezi

关于测试:浅谈测试用例设计-京东云技术团队

作者:京东物流 王莹莹 一、测试用例为什么存在1.1 定义测试用例(Test Case)是指对特定的软件产品进行测试工作的形容,体现测试计划、办法、技术和策略。测试用例内容包含测试指标、测试环境、输出数据、测试步骤、预期后果、测试脚本等,最终造成文档类的输入。简而言之,测试用例是为某个指标而设计的一组测试输出、执行条件以及预期后果,用于核实是否满足某个软件需要。 1.2 作用①领导测试(开发)的执行 测试用例作为各个测试阶段工作基准领导测试人员依照按用例我的项目和测试步骤施行测试。另外,测试工作左移时,测试同学提前输入的测试用例也能够领导开发人员的开发工作。 ②测试物料的筹备 • 数据:依照测试用例配套筹备一组或若干组测试所需的原始数据。 • 测试脚本:自动化测试脚本的设计根据。 ③测试工作进度把控 •测试工作量评估 •进步测试工作组织效率 ④测试后果的度量基准 测试实现后须要撰写测试报告,判断测试是否实现、掂量测试品质量化的后果更加精确、无效。例:测试覆盖率是多少、测试合格率是多少、重要测试合格率是多少,等等。 ⑤剖析缺点 通过测试用例和缺点数据库比照,剖析缺点起因与类型。 二、测试用例设计根本准则①正确性:测试用例必须是正确的,需通过测试用例评审。 ②代表性:测试用例不可能是“穷举”的,冀望在无限的测试工夫内进行无效的测试,用例必须具备代表性的。 ③可判定性:用例的测试后果必须可量化,这样测试实现之后能力将测试后果与预期后果进行比拟,断定是否存在BUG。 ④可重现性:测试用例执行可复现性保障问题定位的准确性。 ⑤可操作性:具体、精确和清晰的步骤是测试用例执行的必要条件,也是测试用例可重现的根底。 三、对于测试用例设计的喋喋不休3.1 地基:罕用测试用例设计办法(黑盒测试)等价类划分与边界值剖析 •等价类划分 将测试的范畴划分成几个互不相交的子集,他们的并集是选集,从每个子集选出若干个有代表性的值作为测试用例。 •边界值剖析 边界值分析法就是对输出或输入的边界值进行测试的一种办法,通常是作为对等价类划分法的补充,这种状况下,其测试用例来自等价类的边界。 场景法 场景法是通过场景形容用例执行的门路,从用例开始到完结遍历这条门路上所有根本流和备选流。场景法适宜测试业务流程清晰的零碎或性能,从零碎整个业务流程的全副角度对系统进行测试。 举例:京东商城购买商品,APP->抉择商品->点击购买->确认购买信息->领取,这里的每个环节不同的后果联合起来都是一条不一样的用例。 谬误揣测法 谬误猜想次要是一项依赖教训和直觉的非正规的工程办法,根本思维是列举程序可能呈现的谬误或者容易产生谬误的测试点,而后依据测试点来编写测试用例。 举例:京东商城APP搜寻输入框特殊字符的查看。 因果图与断定表 用图解的办法示意各种组合关系,写出断定表,从而设计相应的测试用例。相似于数学知识中的布尔逻辑运算,将各种输出条件的组合起来。每种组合条件就是“因”,它有一个输入的后果,这就是“果”。 举例: 正交实验法 正交试验设计是应用曾经造好的正交表格进行数据分析,从中挑选出局部具备代表性的点进行试验,这些代表性的点具备了“平均扩散,参差可比”的特点,是一种绝对高效、疾速的用例设计办法。 举例: 3.2 盖房子:理论工作中的测试用例设计理论工作中,很多时候咱们无奈遵循实践上的测试用例设计办法那样,编写大而全的用例去执行所有大大小小需要的测试。更多状况下,用例设计时应该恪守精益测试策略,不能一味的谋求测试覆盖率,无效的测试更有价值。利用测试四象限等信息领导的精益测试,谋求以业务价值为指标,以尽量少的老本交付高质量的软件,做到无效笼罩,缩小节约。不论是手工测试还是自动化测试,都要先搞清楚业务价值和品质指标,测试用例设计和执行过程都须要做出绝对应的考量(如测试用例的优先级)。 框架搭建用例设计之前,咱们应该相熟需要的业务背景与技术架构,从而勾画出测试用例整体框架。而后,应用【横向扩大】+【纵向分层】的组合模式下来针对每个需要实现用例拆解笼罩。 •横向业务扩大:指从业务角度平铺来看,总共有哪些业务场景,提供了哪些能力,即产品最上层的性能全景。 •纵向架构分层:是指从技术架构层面来剖析,以后产品能够宏观上分为几层,以便于在用例验证是从不同档次上进行验证和用例笼罩。 举例: 添砖加瓦测试框架搭建实现之后,就须要欠缺测试范畴梳理,确认性能点的细节信息。例如,个别状况下须要进行回归测试、异样测试,再有可能须要进行并发测试、平安测试和性能测试等。从测试类型登程,联合惯例用例设计办法进行用例设计与编写。 举例: 站在房子里面:像用户一样去测试怎么像用户一样测试,是否做到还原实在用户的应用场景,还原用户在应用产品时的实在心理。说起来有点玄,但其实思路很简略。第一步设想本人就是用户,如果是我会有多少奇奇怪怪的操作或需要;第二步是补救测试人员和用户之间的断层,用户和测试信息对齐,领导用户更好的应用软件,领导测试更有同理心。 小妙招•用户画像:咱们大概率能晓得用户群体是谁,他的典型画像是什么样的,这也是咱们进行换位思考的根底。 •不信赖上下游:咱们不能保障上下游给我的信息或者性能肯定是完满的,联合本身零碎定位和业务确认不同场景下咱们应该做出什么样的反馈。 3.3 拓展:房子的保护,测试用例治理测试用例是咱们测试人员贵重的财产,在测试工作中测试用例是其最为重要的根底。所以,一个良好的测试用例除了能够帮忙测试人员浏览,了解,批改之外,也要不便咱们去治理它,从而进步测试工作的品质和效率。不同的业务条线或者团队能够依据本人须要制订一些规定,让大家在进行测试用例设计恪守。

April 27, 2023 · 1 min · jiezi

关于测试:自动化测试用例如何编写

自动化测试脚本什么是自动化测试?自动化测试是验证和验证软件是否满足所有用户需要,并应用自动化工具按预期运行。它查看在产品开发阶段期间和之后呈现的谬误、问题和其余类型的缺点。这种类型的软件测试运行在由测试工具解决的编程脚本上。有多种测试工具,它们要么提供基于代码的平台,要么为 QA 提供无代码选项。 为什么要自动化测试?自动化测试之所以至关重要,起因有很多。最次要的起因是它在执行手动测试用例时节俭了金钱和工夫。但自动化测试的益处不仅限于此;它提供了一个网关来执行简单的测试过程,打消可能的手动测试谬误,并生成统一、牢靠的后果。 在手动测试使人类可能剖析产品并创立测试报告的状况下,自动化测试非常适合须要重复测试性能或可能曾经经验了初始手动测试过程的大型项目。 在你的业务中采纳自动化测试技术和工具的总体劣势是推出交付工夫短、生产力指标更好的无缺点产品。当初咱们能够在上面检查一下自动化测试到手动测试的所有长处是什么。 什么是自动化测试脚本自动化测试脚本,也就是 Testing Script,就是通过编写一些脚本代码,来实现自动化测试的性能,能够应用且不局限于像 javascript/java/python/php 等编程语言来进行编写。 自动化测试脚本长啥样?怎么写?咱们能够通过一个小例子来讲讲自动化测试脚本到底长啥样,怎么写。 如果我想要应用 Python + Selenium 对一个小页面进行测试,测试它的输入框搜寻性能是否失常,我能够编写代码,如下: 这些代码其实就是自动化测试脚本,因为你写完,你能够让他运行几百次几千次,你都不必再去动它了~ 在接口工具应用自动化测试脚本而 API 的自动化测试也一样,咱们也能够通过编写代码来对 API 进行测试,咱们须要抉择一款 API 工具来进行自动化测试,明天我抉择 Apifox 来实现这个操作,因为 Apifox 反对自动化测试,且默认反对中文。 创立几个申请咱们须要创立几个申请,在申请中的前置脚本后者后置脚本中,进行脚本代码的编写,Apifox 默认的脚本语言是 javascript。 在填入 门路、办法、名称 之后,咱们须要进行 自定义脚本 的编写。 自定义脚本的编写咱们能够发现 Apifox 曾经为咱们筹备了很多校验脚本代码的模板。 比方以下的脚本代码: 咱们能够为这个申请设置多个测试校验,比方我这里加了两个: 查看返回状态码是否为 200申请耗时是否少于 200ms 点击保留,咱们能够先运行一下试试,能够发现,咱们失去想要的预期成果,校验也通过了。 自动化测试试想一下,如果有五个接口呢,不可能一个一个去发送吧~所以咱们须要用到 Apifox 的自动化测试性能。 咱们须要进入自动化测试界面,而后导入对应的接口。 最初填写环境、循环数、提早数等等,进行运行。 得出运行后果,能够查看耗时,胜利数,失败数等报告参数。 常识扩大:理解更多自动化测试相干常识。 进步前端代码品质:学习自动化测试的必备指南有什么办法能够主动生成自动化测试报告?

April 23, 2023 · 1 min · jiezi

关于测试:什么是-API-接口测试

什么是 API ?API 是“应用程序编程接口”的缩写,是一种容许不同应用程序之间互相通信和替换数据的接口。就如同在餐厅点餐一样,你只须要通知服务员你想要的食物,而不须要理解厨房中的具体操作,服务员会把你的订单传递给厨房,而后将厨师烹饪好的食物提供给你。在这个过程中,服务员表演的就是一个 API 的角色。同样地,当你应用 API 时,你只须要调用所需的性能和服务,而不须要理解底层的代码实现。因而,API 就像是应用程序和其他软件之间的“中间人”,使它们可能互相通信和交互。 随着数字化的不断深入,软件系统变得越来越简单,传统的单体架构曾经无奈满足业务倒退的需要。因而,微服务架构应运而生,它将单体架构中的性能分解成多个小型的、自治的服务,每个服务都具备独立的数据存储、业务逻辑和用户界面。这种架构的长处在于,不同的服务能够独立地进行开发、测试和部署,从而放慢了软件开发的速度和灵活性。 微服务架构的诞生也使得 API 的数量激增。在单体架构中,整个应用程序只须要一个 API 来实现所有的性能。但在微服务架构中,每个服务都须要一个 API 来与其余服务进行通信,而且服务的数量可能会十分宏大。因而,API 在微服务架构中的作用更加重要。 为什么要进行 API 测试?随着 API 数量的激增, API 的品质也变得更加重要,任何一个谬误的 API 都可能会对整个零碎产生重大的影响。 API 测试能够检测 API 的性能正确性、可靠性、安全性等方面的问题,帮忙开发者在代码部署到生产环境之前,检测和修复潜在的问题,从而进步整个零碎的可用性和可靠性。除此之外,API 测试还能够帮忙开发者更快地响应业务需要。尤其是在微服务架构中,不同的服务可能会频繁地进行版本迭代和更新,绝对于界面测试,API 测试能够更早开始,让零碎更快地响应业务需要。 HTTP/HTTPS 协定API 基于特定协定的通信接口,通过不同的传输协定进行数据传输。在介绍 API 测试之前,还须要理解一下 HTTP 协定的相干个性和标准,这样会更好把握 API 接口测试。 目前最常见的 Web Service API 包含:SOAP、REST、RPC,咱们大多数工夫最常接触到的就是 REST 格调的 Web Service。RESTful API 是一种合乎 REST 架构格调的 API,它应用 HTTP 协定的申请办法来拜访资源,并应用 URIs(Uniform Resource Identifiers)来标识资源。 HTTP 是一种应用层协定,能够反对多种数据格式的传输,包含 JSON、XML 等。HTTPS 则是在 HTTP 上退出 SSL/TLS 加密层的平安传输协定,提供了更高的安全性。HTTP/HTTPS 协定的申请和响应音讯都是由报文组成的,申请报文蕴含申请办法、申请头、申请体等信息,响应报文蕴含响应状态码、响应头、响应体等信息。 ...

April 20, 2023 · 2 min · jiezi

关于测试:测试环境治理之MYSQL索引优化篇

作者:京东物流 李光新 1 治理背景测试环境这个话题对于开发和测试同学肯定不生疏,大家简直每天都会接触。然而说到对测试环境的印象,却鲜有好评: •环境不稳固,测试五分钟,排查两小时 •根底建设不全,导致验证不充沛,脱漏缺点 •多人共用,节点梗塞 这些问题在行业内其实不足为奇,针对测试环境的治理,不得不引起咱们的器重。 首先咱们要清晰的认知到,测试环境治理做的不好,不光有重大的品质危险,还会十分影响迭代效率,所以这件事件很重要。那在解决它之前,咱们首先要去想想,对于测试环境咱们到底有哪些诉求? 很显著,测试环境的定位就是满足产研测的测试需要,保障产品迭代品质。所以从应用类型上,个别要撑持集成测试,零碎测试,甚至故障测试等。 而这些环境背地,其实都随同着非功能性要求 ,重点体现在: 1.从使用者角度 •想用就有,不要期待 •要低保护,高稳固 1.从企业角度 •低成本,高效率 简略总结一下,现实的测试环境应该是:自在连贯、随时可用、互访可控。 那么事实中的测试环境又是怎么的呢?所谓“现实很饱满,事实很骨感”,对于一线测试工程师可能会发现,实在的测试环境并非这么现实。 测试同学算是测试环境的次要使用者,对测试环境的治理理当负有间接责任。不过事实中,常常看到的是,测试同学因自身测试工作较多,且测试环境治理也要求具备肯定的零碎运维能力,导致相对而言,测试同学要想做好测试环境治理,也不容易~ 上面就次要给大家分享一次理论工作中的Mysql性能优化实际,与大家共勉~ 问题点:物流中台运单waybill.etms利用,因为包裹表未应用索引,导致的cpu飚高问题 2 剖析过程1.不论是在日常自动化测试还是功能测试过程中,常常会遇到数据库数据落库比较慢的场景,不仅影响功能测试进度,还会影响自动化的执行时长和成功率,在此背景下,开展如下排查工作~ 2.查问两个异样运单,发现数据落库在十分钟以上,开展剖析, 3.发现都是查问delivery\_package\_d抛出异样,狐疑是不是共性问题; ybill_log.log:2022-03-17 14:42:03 ERROR com.jd.etms.waybill.worker.business.WaybillCreateFromBusiLogic handling:65 - Bus运单JDVE00001018005接货平台下发解决异样waybill_log.log-org.springframework.jdbc.UncategorizedSQLException: waybill_log.log-### Error querying database. Cause: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client requestwaybill_log.log-### The error may exist in mybatis/mysql/DeliveryPackageDDao.xmlwaybill_log.log-### The error may involve defaultParameterMapwaybill_log.log-### The error occurred while setting parameterswaybill_log.log-### SQL: select   package_id,package_barcode,waybill_code,vendor_barcode,good_weigth,good_volume,remark,  create_time,update_time,yn,again_weight,weigh_User_Name,weigh_Time,pack_time,again_weight_volume,package_state,data_version,flag,expected_delivered_time,packwk_no,store_id,cky2   from delivery_package_d  where waybill_code=? and yn=1waybill_log.log-### Cause: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client requestwaybill_log.log-; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Statement cancelled due to timeout or client request; nested exception is com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client requestwaybill_log.log-    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) ~[spring-jdbc-3.2.18.RELEASE.jar:3.2.18.RELEASE]4.间接搜异样日志关键字,“接货平台下发解决异样”,确认揣测正确; ...

April 18, 2023 · 2 min · jiezi

关于测试:关于软件测试领域的-Happy-Path

在软件测试畛域,happy path 是指一组测试用例,其中每个测试用例都笼罩了一个顺畅运行的门路,即一组不须要任何异样解决的输出和操作,以及相应的预期输入和后果。通常,这些测试用例被设计为模仿最常见、最根本和最罕用的用户行为和用例场景,以确保软件在失常操作条件下能够正确地运行和解决。 例如,在一个网上购物网站的测试中,happy path 可能包含以下测试用例: 用户胜利登录并进行购物。用户胜利增加商品到购物车并结账。用户胜利输出和提交订单,并接管到订单确认邮件。在这些测试用例中,咱们假如用户依照失常的流程进行操作,并且没有任何谬误或异常情况产生。通过执行 happy path 测试,能够验证软件在最常见和最根本的应用状况下是否可能失常工作,同时也能够帮忙测试人员辨认和排除软件中可能存在的问题和缺点,从而进步软件的品质和可靠性。 Spartacus 的 Happy Path: Register a new usersearch for a productadd the product to cartproceed to checkoutplace orderverify the order in order history 软件测试畛域里和 Happy Path 测试对抗的测试类型是 Edge Case 测试。 Happy Path 测试是针对软件系统失常运行的最常见、最根本的场景进行测试,它关注零碎的次要性能和预期行为,验证零碎是否可能正确处理和响应用户的申请。 相同,Edge Case 测试则是针对零碎异常情况和边界条件进行测试,它关注零碎的非主流场景和异常情况,验证零碎在这些状况下是否可能正确处理和响应用户的申请。 Edge Case 测试通常包含输出边界测试、负面测试、异常情况测试、平安测试等,它能够帮忙测试人员发现零碎中暗藏的问题和潜在的危险,进步零碎的稳定性和安全性。 总之,Edge Case 测试是和 Happy Path 测试对抗的测试类型,它关注零碎的非主流场景和异常情况,帮忙测试人员发现零碎中暗藏的问题和潜在的危险。

April 16, 2023 · 1 min · jiezi

关于测试:前端自动化测试之葵花宝典

作者:京东批发 杜兴文 首先聊一下概念,Web 前端自动化测试是一种通过编写代码来自动化执行 Web 应用程序的测试工作的办法,它通常应用 JavaScript 和测试框架 (如 Selenium、Appium 等) 来实现。 Web 前端自动化测试的长处是能够进步测试效率、缩小测试工夫和测试老本,并且能够确保测试品质。以下是一些 Web 前端自动化测试的长处: 进步测试效率:自动化测试能够在短时间内实现大量的测试工作,从而缩小测试所需的工夫和测试老本。缩小测试老本:自动化测试不须要手动执行测试工作,从而缩小了测试所需的人员和老本。进步测试品质:自动化测试能够确保测试的覆盖率和进步测试的准确性,从而缩小测试脱漏和测试品质不高的问题。笼罩更多场景:自动化测试能够笼罩更多的测试场景,从而确保软件品质失去保障。缩小人为谬误:自动化测试能够缩小测试人员的人为谬误,从而进步测试的准确性。在理论利用中,Web 前端自动化测试通常用于测试 Web 应用程序的交互性能、性能、安全性等方面。例如,能够应用自动化测试工具来测试 Web 应用程序的登录、注册、导航、表单验证等性能,或者应用自动化测试工具来测试 Web 应用程序的性能,如响应速度、页面加载工夫等。 总之,Web 前端自动化测试是一种能够进步测试效率、缩小测试老本和进步测试品质的办法,实用于各种类型的 Web 应用程序。 本文谈谈前端自动化测试从入门到精通再到专家级的计划与思维!分为以下不分: 一、首先来构建一个 Selenium 自动化测试用例示例测试需要非常简单:拜访百度主页,搜寻某个关键词,并验证搜寻后果页面的题目是“被搜寻的关键词”+“_ 百度搜寻”。如果搜寻的关键词是“ChatGPT”,那么搜寻后果页面的题目就应该是“ ChatGPT_ 百度搜寻”。 明确了测试需要后,我强烈建议你先用手工形式执行一遍测试,具体步骤是:关上 Chrome 浏览器,输出百度的网址“www.baidu.com”;在搜寻输入框中输出关键词“ChatGPT”并按下回车键;验证搜寻后果页面的题目是否是“ChatGPT _ 百度搜寻”。 明确了 GUI 测试的具体步骤后,咱们就能够用 Java 代码,基于 Selenium 实现这个测试用例了。这里,我要用到 Chrome 浏览器,所以须要先下载 Chrome Driver 并将其放入环境变量。接下来,你能够用本人相熟的形式建设一个空的 Maven 我的项目,而后在 POM 文件中退出 Selenium 2.0 的依赖,如图 1 所示。 图 1 在 POM 文件中退出 Selenium 2.0 的依赖 ...

April 11, 2023 · 2 min · jiezi

关于测试:测试1号位的自我修养

作者:京东批发 吴聪 引言目前京东履行BigBoss机制以及积木型组织,同时现阶段再次强调了“经营”理念,以上均是比拟大的组织层面的纲领和疏导,外围是为了激发大家owner意识能够更好更快为公司产出价值和奉献。落到具体执行层面,与测试岗位非亲非故的那便是“测试1号位”职责。 什么是测试1号位以及由来借用Paul总在开年策略会上的话:“职责有边界、思考无边界、担当无边界” 测试1号位个别由大型项目中拆分进去的角色(产品1号位、研发1号位、测试1号位等),也叫主测试,是该项目标品质架构师,负责把控整体的资源协调、测试计划、用例评审,危险预判以及问题解决等,保障我的项目高质量交付。 1. 本身设想成一个枢纽,能够连贯多个测试个体、模块、业务线甚至团队机构,是一个化零为整、力出一孔的角色定位,凝聚大家的力量合作并实现指标,须要在测试内横向拉通,有较强的协调组织能力。 2. 是该角色的代言人,自身携带了半个项目经理的属性。须要与其余角色(业产研设项)有横向沟通,协商,甚至会谈等能力,能被动去前置思考,遇到事件有担当,能发言,逻辑思维能力强。 3. 职能上具备向上汇报和向下治理的能力。能够疾速总结形象停顿进行汇报和复盘,或抛出问题、申请资源等。当有上司时学会治理整体工作安顿,或持续拆解多个分1号位帮助治理等,将本身的思维和价值观感化别人,须要有纵向沟通和治理能力。 总而言之,测试1号位是一个虚构岗位,通常随同我的项目而生,是变动的。然而在某个我的项目中,1号位承当的责任和权力也是十分重要和要害,是实实在在的实体,是不变的。上述三点重点围绕“沟通”开展,可见身为1号位沟通是相当的要害。同样一名测试1号位的造就也离不开价值观的加持,比方拼搏、合作、担当、诚信、感恩、客户为先都是身为1号位应体现出的人格魅力。 测试1号位须要做什么从接到一个我的项目开始,测试1号位就开始了相干工作,以下9条工作领导可按序进行。 1. 背景与形成身处我的项目之中,当明确了本人1号位的职责后,第一反馈不是马上扎入其中“拆解”而是应该先理解“背景与环境”,比方为什么要做这个我的项目,带来哪些收益,波及哪些团队,波及哪些业务零碎,有哪些要害角色和其余1号位,里程碑节奏和交付工夫等等,总而言之是“情报”,打好一场仗先要将情报工作做到位。用一个全盘视角去系统性的对待事件,这就是系统论的思维。理解这些信息有了整体意识便于更好的去做各类沟通,制订策略和战术,把控危险,所谓“磨刀不误砍柴工”。 2. 范畴、排期与资源(参加brd,prd评审)我的项目三要素通知了咱们“工夫、老本、范畴”,在我的项目中范畴是十分重要的概念,我的项目不能始终往里塞货色,须要善始善终有边界有范畴。而在资源无限,工夫节点不可更改的状况下,范畴就显的更为重要。与业产研明确范畴后,开始进行相应的资源预估和排期评估,在这个过程中通常已进行了prd和brd评审,倡议1号位尽量多参加brd评审,更前置的理解业务思路和逻辑。遇到排期和资源缓和和危险时,学会提前协调和布局,或者回升申请而不是等到前面或者进入测试了再思考,那样就会比拟被动。 3. 链路逻辑图(大型项目尤为要害)咱们通常在一些小我的项目或者外部我的项目时,波及几个模块零碎都是比拟清晰的,链路也较短大家也容易疏忽。而一旦波及到大型项目,跨多个团队我的项目,会波及到几十个零碎。此时业务之间的交互逻辑,零碎之间的交互逻辑,必须要严格梳理进去。这就是1号位存在的枢纽价值,各个单位节点难以看到的全局须要你来看,难以辨认的危险须要你来辨认,难以想到的上下游问题须要你来发问。此时能够组织各个系统节点首先画出本身的逻辑,而后进行串联输入一个残缺的零碎链路,并且须要细化些能够到接口级别,其次到利用级别,最粗颗粒度到零碎级别,越粗疏越能开掘的透彻越能把控住危险。基于该链路图测试能够与研发一起评审,参加零碎设计,同样基于该链路才能够制订下一步的测试策略和打算。 4. 制订测试计划4.1 测试链路拆解、外围链路攻坚上述失去的链路逻辑图依然只是个研发语言,咱们须要将其转化成测试语言,即测试计划(也就是测试须要做的事件)。其中包含 a. 大型项目时链路过长,能够拆解成多个子链路跟进,但须要确认每个子链路的耦合性。小型我的项目间接拆解到具体模块负责人跟进即可。 b. 每个子链路/模块①确定好接口人或负责人,②确定外部的次要测试工作范畴和内容,相干干系人,③确定可测性(测试环境或预发环境,测试物料的逻辑,上下游依赖逻辑),④确定高可用性(相干品质保障的动作的进一步明确),⑤确定自动化个性(次要用于测试执行的提效,灵活运用,平台和工具的应用) c. 在上述的打算中进一步辨认一些外围攻坚或业务非凡专项,比方测试物料专项、压测专项、兼容性测试专项、体验保障专项、平安专项等等。 4.2 测试里程碑以及节奏明确把上述要做的事件基于现有资源,正当的安顿进整体我的项目的排期中,从而制订出测试的里程碑打算。该点通常须要和项目经理放弃强沟通,并将后果同步。 总之测试计划是拆解的产物,须要细化成一项项每个执行单元(集体、模块、团队)可执行的语言,同时给出工夫打算,最好的形式是利用清单思维,输入一张清单表格,接下来就是按计划执行打钩即可。 5. 测试物料筹备上面就进入到了测试阶段了,这里独自把测试物料的事件提了进去。就目前营销平台域的我的项目为例,测试物料的诉求具备便捷性、可塑性、时效性、多维性、安全性的个性。便捷性须要更方便快捷的结构,而目前咱们许多造数流程很简短,老本和工夫极高(须要用自动化或回放解决);可塑性是须要能结构满足测试场景的物料,面对不同的业务大家的测试物料诉求是不一样的,也决定了这块的物料需要多而且杂(须要有自主的造数工具解决);时效性和多维性是从时空的角度解读,营销的属性带来很多物料会生效(促销、预约、预售),因而对时效要求较高。而从物料分层来看,大家须要单一型测试物料(商品、券、账号、内容等),更须要复杂型测试物料(在单一型根底上叠加了用户行为或业务逻辑的场景化产物,如设促、策略、订单等),面对不同的维度须要有不同的解决办法。最初的安全性,更须要咱们把控好各类权限和合规,防止影响到线上或者造成事变。 因而咱们须要剖析不同业务的个性,依据不同的个性状况有针对性的提出解决方案和长期的能力建设。然而最后还是须要设计好相干逻辑和表格,能前置收集整理好大家的测试物料诉求,防止到了最初再提出。这里梳理结束也不便研发自测,和业务的走查,有必要时也能够组织物料评审。 6. 外围用例以及上下游联调用例评审用例评审是十分外围的内容,也是大家执行的规范和品质的规范。特地在大型项目中,不同零碎之间的联调用例评审更是一种渠道,帮忙大家辨认是否有脱漏的中央。这里务必须要业务、产品、研发多角色都要参加,因为这是一个难得的信息汇总点,如果这里脱漏的信息,或者不对齐,将会间接导致后续的品质降落。测试1号位在这个环节也是一个把控品质的外围节点,1号位应充沛了解全链路逻辑图,在评审会上大胆发言和质疑,尽量排除每一个不确定因素。 评审后须要将会议的后果通过邮件的模式输入,明确每一个待办项都须要失去论断。另外评审会并不是完结,由此引发大家的思考会提出更多的危险点,这里须要测试1号位继续收集大家提出的可能的问题和危险,列出危险表并一一跟进论断。只有咱们提前辨认越多的问题和危险,我的项目后续的品质能力有所保障。一个我的项目最大的危险就是没有危险,或没人发问。 7. 测试执行阶段(危险预判辨认与解决)在执行过程咱们应用现有公司内对立的测试工具,自动化工具和平台进行帮忙标准操作和提效。这里重点梳理下大我的项目过程中1号位须要关注的一些信息和机制。其实这里最外围还是把控危险进一步辨认和解决,如果咱们前置的剖析和预判到位,这里会轻松很多。 日例会机制:配合我的项目进行,每日将测试执行阶段的危险项及时抛出并寻求解决办法,和我的项目放弃强沟通。这里要明确好危险的内容、影响是什么、须要谁帮助,要清晰明确。 危险降级或者跨零碎沟通:当我的项目日例会难以解决的问题或者外部无奈解决时,须要及时降级解决,让更多的角色以及老板参加进来进行决策进步解决效率,千万不能藏在本人手里。 BUG日清机制:面对零碎简单,问题泛滥而又邻近交付节点,须要各角色增强协同而且进步要求,达到BUG日清,便于保障在规定工夫内高质量交付。 测试记录收集:过程中的测试记录留痕,须要汇总做好记录便于追踪、复盘、归档或者赋能给其余我的项目。这里包含了物料的评审记录,危险评审记录,用例评审记录,各零碎测试报告,大联调记录或者全链路回归等。如果是要求比拟高的我的项目,测试1号位也须要收回每日的测试进度报告,这里须要收集各个系统的停顿、危险、卡点等(有的追随我的项目日报能够cover)。 紧急需要与变更把控:我的项目中难免会遇到各类变更,其中最大的危险就是紧急需要的插入,须要与我的项目制订准入机制,对ROI高的紧急需要进行评估依照现有资源合理安排,同时当有大量紧急需要,曾经重大影响到交付品质时,须要进行多轮review或其余形式保障交付品质。“变更”是引入问题的本源。 与业产设协同:与前链路角色进行协同,及时邀请进入UAT走查或者验收,提前发现问题。如果应用预发环境或测试环境,需提前准备好相干物料和使用手册阐明。 8. 全链路演练剧本(尤其大我的项目尤为要害)小型我的项目时各个模块各司其职,容易疏忽全链路视角的回归或者演练,当然因为波及模块少因而品质容易把控。然而“全链路”思维是一名测试1号位必须要具备的,咱们举个军演压测的例子,每年大促的军演其实也是一个基于流量的我的项目,卷入了公司内的所有零碎,因而咱们的军演肯定是全链路的,只有全链路能力模仿线上实在的流量状况。大型项目同理,即便咱们每个零碎、模块实现了本人的测试工作,并不意味着整体链路就没问题了,咱们须要模仿线上用户和业务最实在的场景和习惯,进行全链路演练或回归。 具体的操作离不开全链路联调用例,这里倡议从上述的评审用例中筛选P0级波及到外围骨干的用例作为剧本用例,在一个规定的工夫范畴内,组织各个角色一起参加剧本演练,及时发现问题,如果能邀请业务、用户等种子选手参加更好,此时很有可能提出咱们意想不到的场景和问题,而这样的问题就是咱们剧本演练最大的价值。 9. 上线与总结上线切量与监控:与项目经理、产品1号位、研发1号位等外围角色一起确认好研发的上线程序和机器灰度策略,避免出现上线程序问题,发现问题后及时回滚,筹备好降级开关和预案。确定好业务的灰度策略,或者应用工夫点,做好及时响应和解决。另外上线后的巡检和监控必不可少,须要第一工夫退出至巡检体系,巡检是咱们的眼睛,能够代替咱们发现很多问题。同时用表格记录线上发现的各类问题,及时跟进问题修复停顿。 总结与复盘:对新业务须要基于全链路逻辑图以及各个节点的业务知识点进行汇总,进行知识库的积淀;对我的项目好的测试实际进行积淀并造成通用能力进行赋能;对我的项目中的测试卡点进行剖析,防止犯同样的问题。大部分1号位容易遗记复盘,每一个我的项目都是一个贵重的经验,如何让经验变成本人的财产,须要进行反思和复盘,并且进行输入。 百亿补贴案例百亿补贴我的项目是2023年初批发最外围的我的项目,波及零碎范畴之广,相干人员之多,上线交付工夫之急,也是前所未有的。各个团队就义了较多的春节和假期工夫,测试同学们在这个我的项目中也播种了良多,分拆了多链路和专项1号位,一起携手最终保障的交付。 百补的测试1号位细分了6大子链路(创促链路、导购链路、交易链路、资金链路、申述链路、渠道屏蔽)根本笼罩了全副我的项目范畴并设立各链路测试1号位,而这些链路简直也涵盖了京东APP的外围业务,每个子链路1号位下持续对接各零碎接口人。同时设立了7大专项(物料兼顾、频道性能、B端体验、版本保障、风控保障、压测保障、众测保障)测试1号位,前期也引入了平安团队染指,从测试链路的每个阶段,从B到C各个系统,各个维度增强品质保障动作。 写在最初随着时代的提高,咱们面临的业务会越来越简单,面临的技术也会越来越进化,对测试1号位的要求同样也会越来越高,职责边界越来越扩充,更须要有思考,有担当,有owner意识扛起整体我的项目的品质与交付。最初这里再列举一些tips分享。 1. 与项目经理的合作:测试1号位须要与项目经理严密合作,上述也提到了屡次,之所以说自身带有半个项目经理属性,是因为测试和我的项目都对“品质”关注,这是相通点。由该点引发的各类动作,大家是能够互相理解互相帮助的。 2. 与主测试的合作:在目前的团队中会并行多个我的项目,同时存在多个我的项目的测试1号位,同时这些我的项目又卷入了多个零碎测试(模块测试)的主测。这里就造成了我的项目的测试1号位与零碎主测之前的关系协同与矛盾点。其实还是经营理念的差别,零碎主测或者产品线主测关注的是长期,而我的项目测试1号位关注的是该我的项目自身。一个我的项目测试1号位会协同多个零碎主测,独特交付这个我的项目。而一个零碎主测可能会承接多个我的项目,须要合理安排好本人模块的资源和工夫,与多个测试1号位沟通协调,保障每个我的项目的交付。这里是“多对多”的关系,因而更须要大家群策群力,遇到排期资源上的问题时,多沟通多协调;遇到我的项目兼顾层面的问题时,须要参考我的项目测试1号位的意见;遇到具体执行施行时,要多深刻理解零碎主测的状况和现状。这里我倡议从零碎主测的角度须要立版本,定节奏,帮忙长期的迭代和品质把控;从我的项目测试1号位角度须要立机制,定标准,帮忙我的项目麻利高质量交付。 3. 1号位的并行策略:每个测试1号位相似大家长角色,须要看到我的项目里所有和测试相干的事件,任何问题都要去治理,肯定会存在大量并行的事务,这里十分考验大家对并行的解决。倡议大家把事件“写下来”,同时排好优先级,本人不要乱,确保本人能聚焦精力集中处理一件事。 4. 重点把握后果,解决外围问题:少数1号位同学在跟进我的项目时,有着测试人员的个性会很仔细,有时对执行过程很粗疏。这不是好事,然而会大量节约精力,特地面临大型项目时,测试1号位要学会设卡点,看后果,轻过程,这样能力把精力用在刀刃上。另外我的项目中肯定会产生少数问题,有业务层面有资源层面等,要学会优先解决外围问题,抓大放小。 5. 与担当绝对应的解压:1号位是有责任感的,是有担当的,必然肩膀上会承当很多压力。特地是第一次做1号位的同学,或多或少会不适应感觉压力微小,肯定要学会解压开释,好的办法包含与下级沟通倾诉,与小伙伴吐槽,寻求别人帮忙与支援,吃吃吃等。_然而请置信,每一次1号位经验都是很好的成长机会,怯懦挑战,心愿大家都能借此播种本人的感悟与扭转_。

April 11, 2023 · 1 min · jiezi

关于测试:ApifoxAPI-接口自动化测试完全指南

1. 前言在开始前大家能够先浏览:深刻理解自动化测试:什么是自动化测试及其作用? 大家好,这是一篇对于 Apifox 的接口自动化测试教程。置信你曾经对 Apifox 有所理解:“集 API 文档、API 调试、API Mock、API 自动化测试,更先进的 API 设计/开发/测试工具”。 笔者是后端开发,因而这篇教程关注的是 API 自动化测试,如果你也是后端开发,正苦于没有好的形式测试接口,对保障线上接口稳定性没有信念,那么这篇文章就是为你筹备的,如果你学会了 Apifox 接口自动化测试,它简直是一个会陪伴你整个职业生涯中的一件满意应手的兵器。 接口测试可不是简略的申请一两个接口再检查一下响应后果那么简略,没有贴近业务场景的测试意义不大,但齐全模仿业务场景,一比一实在的去还原用户操作流程的测试势必会很简单,如 接口须要登陆后能力操作怎么办?一个接口依赖上一个接口申请返回的数据怎么办?后端对申请有签名验证怎么办?后端工作是异步解决的怎么办?... 不要放心,既然是齐全指南,这些问题咱们就都会讲到,Apifox 弱小的能力能够解决这些问题,上面咱们会用实在的案例,逐渐解说笼罩到这些所有的场景。倡议大家关上 autotest.apifox.cn 这个我的项目,一边学习外面的公共脚本(公共脚本、测试套件等都打包放在 百度网盘),一边跟着练习。 2. 接口主动鉴权知识点:环境变量、公共脚本、pm.sendRequest脚本发送申请咱们通过一个须要登录能力拜访的后盾新闻列表接口,来演示接口主动登录鉴权。 默认状况下拜访该接口提醒须要登录: 如果要失常拜访该接口的数据,须要在 header 中提供 AdminToken: token 头,这是一个常见的须要 JWT 登录认证接口。 很天然的咱们想到,如果主动申请登录接口获取 token 值,而后在每次申请前主动带上这个 AdminToken 头不就行了吗,没错就是这样简略,伪代码如下: 残缺的代码见 「公共脚本」admin: login and Auth 这里咱们从登录接口获取 token 后,将其缓存到本地的环境变量中,这样就不用每次都申请登录了。 当初咱们曾经实现了 申请登录接口获取 token,并设置到 申请头中的性能,而后咱们再把此 公共脚本 利用到 新闻列表的接口上,实现在 申请新闻列表接口 前主动实现 “登录”。 后盾有很多接口拜访都须要登录,如果一个个地去设置 前置脚本 就太麻烦了,所以这里咱们间接在 admin 后端接口的分组目录上设置 前置操作 公共脚本admin: login and Auth,这样整个 admin 下的全副接口都能主动登录了: ...

April 10, 2023 · 1 min · jiezi

关于测试:极客测试开发进阶训练营2022年江月何年初照人

download:极客测试开发进阶训练营2022年端到端的解决打算将成新标杆 近几年,酒店行业正在发生着一些变动:比如有的酒店有了智能开关,有的安装了语音管制,有的通过灯光营造更好的居住氛围,有的入住时可能在智能终端上自助办理手续…… 酒店行业的智能化已经发展了近十年,近几年用户端的体验也越来越显著。然而发展至今,你会发现酒店的智能化大都很碎片化,都是在一两个点上实现智能,没有系统性的布局,也没有端到端的完整的技术撑持。诚然有一些智能化的功能落地,但还远远算不上是智能酒店。 同时,诚然很多酒店也想智能化,然而他们遇到一些挑战。比如,对技术申请高,导致工期长,如何可能疾速实现智能化?比如,以前的智能打算都绝对固定,升级迭代很慢,上了一套智能化零碎,很快就落伍了,体验达不到预期。再比如,因为涉及环节多,零碎简单、界面多,前期运维压力大,如何可能简略高效地进行治理也是一个挑战。 显然,酒店行业碎片式的智能化已经远远不能满足用户需要,也不能满足酒店升级的需要,全场景智能化以及端到端的解决打算,成为当下酒店智能化的趋势。华为全屋智能与携住的合作正是在这样的大背景下应运而生。 “在过来两年多来,华为全屋智能和携住科技一直致力于独特定义一个弹性化的架构,充分施展各自以及更多伙伴的劣势,满足酒店高效、低成本以及丰富体验的经营架构。”华为终端BG全屋智能产品线副总裁吴海军示意。 在这一合作中,华为具备全栈技术能力,为酒店智能化打造一个技术底座,实现智能设施从连接到存储再到计算的零碎智能设施打算,为酒店的数智化打造好基础设施。而携住科技则偏重于酒店的数字化经营,以“客房数据”、“设施数据”、“满意度数据”等各种数据中心为撑持,面向“客需治理”、“精准营销”等业务使用,提供数字化经营打算撑持。 单方技术和能力形成一个完整的解决打算,独特打造面向客户、员工、经营方三方,涵盖“建、用、运、维”四大维度的端到端高效联合解决打算,满足酒店丰富的数智化需要。 联合解决打算有单方的技术加持,将科技、艺术、情感融合,可能实现多场景的智能化,比如中控屏、智能开关、智能面板,并且能根据不同酒店定位,为酒店打造个性化的空间。 单的智能不是真正的智能,粗放型的智能硬件堆砌也不是真正的智能,华为与携住联手的打算涵盖了“建、用、运、维”四大维度,为当下竞争激烈的酒店行业提供了可复制的标杆案例,也标记着数字化技术与酒店智能新场景深度融合进入到新的阶段。 「 02 」 一面降本增效,一面晋升体验 酒店数智化的核心目标是两个:一是后盾,从企业经营的角度来讲谋求更好的治理、经营,也就是降本增效;二是前端,从用户体验来讲,要给用户差别化、个性化,满足他们不断变动的需要,也就是给用户更好的体验。 所以,本质上酒店数智化的诉求,一是降本增效,二是用户体验。华为独有的技术劣势,能在这两方面给酒店带来实际帮助。 本次合作,是华为全屋智能首次将工业级PLC电力线载波技术利用到酒店行业。酒店传统的布网形式,是需要独自走一套网线,还需要若干设施,而PLC电力线载波技术实现了有电就有网,仅布线成本就带来38%的升高,并且还大大缩短施工周期,省工、省料、省时,可能做到端到端的成本最优。 华为全屋智能还将AI超感传感器引入到酒店中,检测人体存在状态,实现人来灯亮、离开灯灭。经营一个酒店最大的一个挑战就是节能。一个家庭用电量感觉不显著,然而一个酒店几百、几千个房间,有数的设施,每个房间浪费一点,汇聚在一起就是巨大的成本。华为通过AI传感技术,在平衡客诉和节能之间帮助酒店找到更优节能打算,成本大幅升高。 在经营层面,华为全屋智能联合携住向酒店提供一套可管、可视、可升级、可保护、低成本经营管理工具,充分升高前期培修对操作难度和人员的申请,无效提供前期经营保护效率和治理成本。 以上这些,都是通过端到端的解决打算,帮助酒店在建、用、运、维每一个环节升高成本、晋升效率。 此外,在用户体验方面,咱们知道华为在智能家居领域走得比较靠前,平常又全面升级为空间智能策略,以鸿蒙操作系统为基础连接万物。具体到酒店场景中,这次推出首款FHD+的中控屏,搭载的星环按键反对AI场景推荐,一键AI动静场景启动等痴呆功能。比如进入到房间中,无需再逐个开灯、空调、新风、窗帘,一键开启“回家”模式,各个智能设施主动调整到最合适的状态,对于用户而言,少了操作的繁杂,又可能感受到最舒适的环境。 再比如,一键切换场景具备AI环境感知功能,被动匹配环境状态,如夜晚回房时会主动设定暖色光环境;开启起夜模式后,起夜时微光洁起,不影响家人酣睡;如果发现温度过高或空气质量差,零碎会一键调用冷暖新风,以实际环境触发适配场景。 空间智能与后盾智能管理系统相拆散,最终可能让用户在住前、住中、住后的全过程中享受轻松愉悦的体验,比如住前轻松预计、无接触入住,住后无需繁杂手续即可轻松离店。 不只如此,豪华、高级、舒适型等不同酒店对智能化的需要也不同,华为与携住联手推出了多档位套餐,满足各层次用户的需要。 「 03 」 空间智能期间:从体验增值到产业增值 从用户居住空间演进过程来看,大概经历了三个阶段 首先是1980年到2000年,满足居住的基本功能性需求:有地方住,住的舒服一些、宽敞一些、功能全一些。 第二个阶段,支出提高了,教育程度高了,生存品尝提高了:需要风格、调性、设计、美感,第二个阶段开始谋求精神层面的体验,除了舒适还要有艺术感、氛围感。 随着技术的提高,以及生存形式的改变,居住环境又有了更多新的可能,当下正在逐步迈向第三个阶段——空间智能化。 随着Z世代逐渐成为生产的主力,他们的消费观也影响着整个居住环境的变动趋势。他们更在意个性化以及悦己的感触。同时,他们更违心尝鲜,对科技充满好奇,智能化能更好地满足他们的这些需要。 举一个例子,传统形式下,装修一个400平米的别墅可能需要200-300万的估算,通过软装的形式实现美的享受。但如果用40万估算升级全屋智能零碎,就能带来更多让消费者愉悦的、离奇的体验。而一个小公寓,可能只需要2万的智能投入,就能将体验大大晋升。可见:智能化是可能投入很低的成本,就能带来很高的体验增值,Z世代的年轻人都更违心去尝试一下。所以咱们看到,当下空间智能化的浪潮正在到来。 空间不只包含住宅,消费者对办公、学校、商超、酒店等各类空间的需要都在变动。比如酒店,随着Z世代成为支流生产群体,他们对于翻新和惊喜的诉求更加旺盛。近些年,酒店不只拼硬装,更拼智能场景,智能影音房、智能电竞房等住客场景不断涌现。 空间智能化的产业浪潮,无望解决酒店行业长久以来同质化重大、体验不佳、流程简单、成本过低等问题,并且还将创造新的场景、新的模式,带来更多的商业机会,促成酒店产业的升级。同样,房地产、酒店、康养、办公、学校等更多领域都无望在智能化浪潮中升级,并带来两方面的社会价值:一方面用户体验的增值,另一方面则是产业升级的增值。 空间智能化的前景是美好的,未来市场也是巨大的。平常面临的挑战是零碎扩散、交互不对立、生态与生态之间封闭。推动空间升级的第三次浪潮,需要领军者。 华为在这个领域探索多年,是空间智能化的创始者,也是当下最合适的破冰者。 首先,华为具备敢于探索、开创的精神与勇气,可能引领产业的方向。 其次,华为具备全栈的技术,可能向产业输入最多的翻新技术,特地是很多基础技术是其它企业无可替代的。 第三是具备宏大的生态,实力和影响力足够大,产业各界的合作伙伴泛滥,可能联合最多的伙伴翻新出最多的场景,也能让好的打算尽快落地,真正实现共创共建共赢。 【结束语】 华为联手携住为酒店数智化提供端到端的解决打算,从建、用、运、维四个维度的打算落地,可能说这是酒店数智期间的新标杆,标记着酒店数智化进入到新的创段:酒店经营模式的革命,用户体验的革命,也是生态伙伴一起做大新市场的时机。 作为第二居所,酒店行业数智化只是空间智能化大趋势中的一个细分。酒店的数智化在推动酒店产业升级的同时,也给其它产业建立了一个标杆。在智能化的助力下,每个产业都有机会被从新做一遍,每个产业都是颠覆传统模式的机会。 空间智能化期间,一面是用户体验的增值,另一面则是产业转型升级的增值。这背地正是经济逐步进入高质量发展阶段。

April 7, 2023 · 1 min · jiezi

关于测试:阿里云EMAS-移动测试助力马来西亚第一大电子钱包实现测试6倍提效

Touch'n Go eWallet简介 & 面临APP测试挑战Touch'n Go eWallet (以下简称 TNG eWallet)是马来西亚第一大电子钱包,目前已领有超过1850万注册用户。作为马来西亚国民级金融类挪动利用,任何App品质与体验问题都可能对C端用户造成重大影响。此外,公司业务正处于高速倒退阶段,仅过来一年中TNG eWallet就上线了如领取红包、TNG NFC等超过2000个新产品性能。这也为其品质治理团队带来了如下挑战: 1.产品迭代速度快,团队手工测试效率瓶颈凸显,且TNG eWallet 的金融属性更要求挪动端测试须要全面精准无脱漏;2.团队手头现有机型数量有余,难以全面检测出各类兼容性、UI适配等问题。同时,洽购测试手机的投入产出比低;3.疫情下员工近程办公,手边物理真机无奈共享应用,团队协同测试效率大幅升高,传统模式难以满足以后测试须要。 TNG eWallet应用EMAS挪动测试最佳实际阿里云EMAS挪动测试一站式利用品质治理平台,为客户和开发者提供自助式、管家式的全方位测试服务,帮忙客户发现App中如兼容性/功能性/UI适配/性能等方面问题与隐患,从而全面保障App品质。 阿里云EMAS针对TNG eWallet测试团队面临痛点与挑战,通过公共云上的云真机平台高效输入测试产品服务如下: 1.SaaS化测试平台提供全流程测试能力且实现团队协同 TNG eWallet能够在云上进行利用治理、脚本录制、自动化测试、在线测试报告查阅等测试全流程工作。疫情期间,TNG eWallet测试团队可通过EMAS测试平台放弃高效合作沟通,且web形式间接调用机房内物理真机解决了之前手头真机无奈共享应用的问题。 2.丰盛全面的机型笼罩保障测试无脱漏 EMAS测试机房内,有超过300款笼罩东南亚市场的支流手机机型物理真机。EMAS机型覆盖度相较TNG eWallet之前单干过的测试厂商拓展了2.4倍以上,更能满足TNG eWallet对于东南亚市场支流机型测试场景的须要。 3.通过在线脚本录制性能让测试用例产出效率晋升6倍 随同TNG eWallet业务的高速倒退,须要进行测试的APP端功能模块随之迅速增多。EMAS挪动测试平台让TNG eWallet辞别传统通过代码编写测试脚本工作,转而通过在线形式疾速产出测试用例,生产效率较之前晋升6倍以上。测试人员只需通过EMAS真机直连操作App进行相应动作(如登录、浏览、领取等),零碎便会自动化产出测试脚本,并可间接用于批量兼容性/功能测试等。 通过上述形式,TNG eWallet在测试团队规模简直维持不变的前提下,用6个月工夫产出并治理了超过1000个测试脚本,完满撑持了数以千计新性能迭代上线的测试需要。 4.具体残缺的测试报告,精准辨认、定位回溯线上问题 阿里云EMAS测试平台提供内容丰盛的线上测试报告。其中不仅有报告数据汇总剖析,还可通过视频回放性能随时随地清晰理解如解体、卡顿、性能异样等各类状况,并帮忙测试人员疾速定位问题所在。借助平台线上测试报告,TNG eWallet测试团队可与其技术研发团队更加高效协同,第一工夫发现品质隐患,精准锁定问题并推动在发版上线前进行问题修复,从而确保上线新性能的稳固可用。 综上,通过对于EMAS挪动测试平台的应用,客户真正实现了App测试畛域的降本增效。在团队测试QA人员规模维持不变的状况下,TNG eWallet在半年工夫内实现了1000个测试脚本的高效产出,用自动化测试伎俩笼罩了绝大部分功能测试工作。每2小时内,他们即可实现基于测试脚本30台手机并发的功能性测试并获取线上报告,大幅冲破传统手工测试的人力与效率瓶颈,完满护航了超过2000个APP新性能上线,全面保障了TNG eWallet的用户体验和市场竞争力。 将来瞻望阿里云EMAS挪动测试已服务国内外数以千计的企业,积淀了丰盛的企业挪动数字化转型计划与教训。目前,杭州机房内领有超过700款真机笼罩中国大陆测试市场,香港机房内领有超过300台次要笼罩东南亚市场的物理真机。EMAS挪动测试让客户能够通过所见即所得的SaaS化形式实现近程调试、脚本录制、问题复现等测试需要。此外,通过“专家测试”服务模式,客户能够取得管家式的全流程测试撑持,只需提出测试需要,即可在2天内取得全面详尽的专家测试报告。 咱们认为,随着挪动端测试理念与技术的倒退,越来越多处于数字化转型的企业将会领有更加欠缺的测试团队并须要更加先进高效的测试工具从旁加持,用更少的人力投入,更短的测试工夫以及更低的老本耗费实现更高质量的测试工作产出。在此倒退过程中,阿里云EMAS挪动测试平台也会在用户体验、性能翻新等方面继续晋升,继续为TNG eWallet等海内外企业的挪动利用提供更全面更牢靠的测试服务,全面护航APP品质以及企业数字化转型倒退过程。 原文链接 本文为阿里云原创内容,未经容许不得转载。

April 3, 2023 · 1 min · jiezi

关于测试:测试用例设计指南

作者:京东物流 王玉坤 软件测试设计是测试过程中重要的测试流动,怎么样设计测试用例能进步咱们测试的效率和品质,从以下几个方面做了简略的解说。 1 测试用例设计准则测试用例设计的根本准则包含:有效性、清晰性、可复用性、可维护性、完整性、兼容性、易操作性、可管理性、可评估性 有效性:测试用例步骤必须形容清晰,不能呈现不置可否的以及反复的话语,测试用例应该依照肯定的程序进行编写,这样执行的时候效率比拟高。清晰性:用例的操作步骤要形容清晰,蕴含清晰的输出数据以及预期输入,验证点必须明确清晰,并能突出重点,对于流程性的用例倡议依照流程程序进行用例安顿,从第一个验证点到最初一个验证点,组成流程的开始到完结,不便测试执行。 测试用例蕴含前置条件的必须将前置条件形容分明,包含入口等。可复用性:可重复使用,并尽量将具备类似性能的测试用例形象并归类。可维护性:测试用例因为业务需要产生变更的时候,须要及时更新保护测试用例,做到测试用例的实时性与有效性,测试用例须要细化和一直的欠缺,是个循序渐进的过程。完整性:用例是否实现并笼罩所有需要点,做到对需要的齐全了解。兼容性:测试用例要蕴含新老版本的兼容、新老数据兼容、浏览器兼容等测试点。可管理性:可能检测测试人员的测试进度、工作量等。可评估性:测试用例的通过率和缺点的数目是评估软件品质的好坏的规范。2 测试用例的生命周期软件测试用例的设计阶段蕴含:需要剖析、测试用例设计、测试用例实现、测试用例执行、测试用例治理 2.1 需要剖析测试用例过程的第一步是确定测什么,标识出测试点,并且对测试点进行优先级的划分。 2.2 测试用例设计测试用例设计确定了如何来测试曾经剖析出的测试点。 测试设计的次要点是确定测试预期后果。为了确定测试预期后果,测试人员不仅须要关注测试输入,同时也须要留神测试数据和测试环境的前后置条件。如果测试用例没有测试的预期后果,则测试用例对于测试后果的对错判断是毫无意义的。 测试预期后果能够是各种各样的,包含须要创立或者输入的后果,也能够是须要更新或者变更的后果,也能够是删除的后果。每个测试用例都应该分明的形容测试的预期后果。这样,就须要测试人员具备被测系统相干的丰盛的常识和教训,才可能对软件系统的测试输入作出正确的评估。如果测试输入后果评估认为是正确的,那么就能够作为测试用例的冀望输入后果。 2.3 测试用例实现测试用例实现的过程包含筹备测试脚本、测试输出、测试数据以及预期后果等。测试脚本指的是依照规范的语法组织数据或者指令。测试执行之前,首先必须满足测试前置条件,比方一个测试用例须要用到配置好的一些数据,那么这个数据就必须提前创立等。 2.4 测试用例执行通过运行测试用例来对被测系统进行测试。对于手动测试来说,次要参照测试用例的步骤来进行测试执行,比拟预期后果和理论后果、并记录测试过程中发现的问题。 对于自动化测试过程,执行时须要借助测试工具,运行测试用例脚本等,记录测试后果。 执行测试时如理论后果和预期后果是一样的,则认为是通过的,如果不一样,那用例执行失败,或存在问题,对于用例执行失败,须要进一步的查看,确定是软件问题还是用例的预期后果有问题,或者是数据问题,环境问题引起的,须要从不同的方面进行问题剖析。 2.5 测试用例治理1)测试用例组织 每一个我的项目,其测试用例的数目都十分多。如何来组织、跟踪和保护测试用例是一件十分重要的事件。如何来组织测试用例,是测试胜利与否的一个重要因素,也是进步测试效率的一个重要步骤。 测试用例的组织,能够用不同的办法来进行组织或者分类: 依照软件功能模块组织:软件系统个别是依据软件的功能模块来进行工作任务分配的。因而,依据软件功能模块进行测试用例设计和执行等是很罕用的一种办法。依据模块来组织测试用例,能够保障测试用例可能笼罩每个零碎模块,达到较好的模块测试覆盖率。依照测试用例优先级组织:测试用例是有优先级的。对于任何软件,实现穷尽测试是不事实的。在无限的资源和工夫内,首先应该执行优先级高的测试用例。依照功能模块进行划分是最罕用的,咱们也能够联合起来应用,比方在依照功能模块划分的根底上,再进行不同优先级的划分。 2)测试用例跟踪 测试用例的跟踪次要是针对测试执行过程中测试用例的状态来进行的,通过测试状态的跟踪和治理,从而实现测试过程和测试有效性的治理和评估。 测试用例执行的跟踪:在测试执行的过程中,对测试用例的状态进行跟踪,能够无效的将测试过程量化。比方,执行一轮测试过程中,测试的测试用例数目是多少,测试用例中通过、未通过、未测试的比例各是多少。这些数据能够提供一些信息来判断软件我的项目执行的品质和执行进度,并对测试进度、状态提供明确的数据,有利于测试进度和测试重点的管制。3)测试用例保护 测试用例并不是变化无穷的,当一个阶段测试过程完结后,会发现一些测试用例编写的不合理,或者需要产生了变动,这都须要对以后的一些测试用例进行批改和更新,从而使测试用例具备可复用性。 3 测试用例编写因素用例编号:用例的惟一标识测试模块:测试用例所属模块用例题目:测试用例的简要阐明前提条件:用例执行的前提测试步骤:执行用例步骤预期后果:应该失去的后果优先级:用例重要水平4 性能测试用例设计办法4.1 等价类划分法等价类划分法的定义 输出具备代表性的数据子集等价类划分法分类 无效等价类:满足需要的有效等价类:不满足需要的适用范围 具备单个输出的性能步骤 明确需要确定无效和有效等价类编写测试用例举例 需要:下单若是函速达,须要容许快递员批改,且限定包裹数必须为1,分量要<0.5kg。 4.2 边界值分析法边界值的定义 对于输出等价类和输入等价类而言稍高于其边界或者稍低于其边界的一些特定状况边界值范畴 正好等于刚刚好大于刚刚好小于边界值分析法中的三个点 上点:边界上的点离点:间隔边界最近的点内点:范畴内的点举例:1-100 ,上点:1 100 离点:0 99 2 101 内点:50 适用范围 有输出参数,且输出类型或范畴长度有边界时(实用于题目需要中有长度或者范畴的状况)和等价类一起应用,实用于单个性能的输出的状况步骤 明确需要确定无效和有效等价类明确题目条件中的边界值编写测试用例举例 4.3 断定表法实用条件 断定表示意的是有多个输出和多个输入,而且输出与输出之间互相的组合关系,输出和输入之间有互相的制约和依赖关系组成部分 条件桩:题目条件中的所有的测试输出动作桩:题目条件中的所有输入条件项:测试输出的取值动作项:测试输入的取值步骤 明确条件桩明确动作桩对条件桩进行全组合明确每个组合对应的动作桩设计测试用例举例 4.4 因果图法因果图法定义 实践中是通向断定表的一个两头过程适用范围 因果图是一种利用图解法来剖析输出的各种组合状况,从而设计测试用例的办法,它实用于检查程序输出条件的各种组合状况因果图法的外围 所谓的起因就是输出,所谓的后果就是输入。因果图的因 —输出条件因果图的果 -输出后果因果图根本符号 ...

March 23, 2023 · 1 min · jiezi

关于测试:精准测试之分布式调用链底层逻辑

作者:京东工业 宛煜昕概要: 1. 调⽤链零碎概述; 2. 调⽤链零碎的演进; 3. 调⽤链的底层实现逻辑; 4. Span内容组成。 ⼀、分布式调⽤链零碎概述客户打电话给客服说:“优惠券使⽤不了”。 -客服通知经营⼈员 --经营打电话给技术负责⼈ ---技术负责⼈告诉会员零碎开发⼈员 ----会员找到营销零碎开发⼈员 -----营销零碎开发⼈员找到DBA ------DBA找到运维⼈员 -------运维⼈员找到机房负责⼈ --------机房负责⼈找到⼀只⽼⿏ ,因为就是它把⽹线咬断了。 分布式架构所带来的问题定位⼀个问题怎么会如此简单?居然动⽤了公司⼀半以上的职能部⻔。但其实这只是当我零碎变成分布式之后,当咱们把服务进⾏细粒度的拆份之后的⼀⼩局部问题,更多问题在哪⾥?⽐如: 1. 开发成本减少。 2. 测试成本增加。 3. 产品迭代周期将变⻓。 4. 运维成本增加。 问题产⽣起因 在传统制造业,分⼯越精密,专业化水平越⾼,产能就越⾼。⽐如⼀台汽⻋均匀将近3万个零部件,来⾃寰球各个供应商,最初再由汽⻋⼚商统⼀拼装检测出⼚。不仅⼤件是精密分⼯实现,⼩件也是如此,在浙江温州 有⼀个打⽕机村,⼀个⼩⼩的打⽕机⽣产,是由20多个⼚家合作实现,有的做打⽕机燃料有的做点⽕器。 反观软件⾏业,这种精密分⼯很难实现, 你⻅过哪家某个零碎是由⼗⼏家企业合作实现的么?你感觉淘宝的电商零碎能够让⽇本⼈去开发 购物⻋模块、让法国⼈实现评论模块、让印度⼈去实现下单功能、美国⼈实现商品模块,最初在由中国⼈拼装整合?究期起因再于三个字:“标准化”,刚说的汽⻋3万个整机,每个都有其标准化规格,所以才可能顺利的拼装成品,但软件组成很难规范,就连开发个接⼝都没有指定规范,就连⼀个标准都难于推⾏。没有标准化,不能分⼯合作,那怎么实现软件的⼤规模⽣产呢?就是⽤更多的⼈,更多⼯作时⻓去冲抵。软件开发就此成为⼀个劳动密集型产业,新⽣代信息化农⺠⼯群体诞⽣。这对企业⽽⾔是不利的,因为它要为信息化付出更多的老本。所以相应治理方法与开发⼯具都要降级,治理方法是相似于敏捿开发、⼯程师⽂化建设、开发形为准则。另外⼀个就是⼯具:⾃动化构建、⾃动化部署、⾃动化运维、⾃动化扩容等、线上链路监控等等。 分布式链路监控的作用 1. 定位线上问题; 2. 分极性能问题; 3. 降纸软件复杂度; 4. 提供决策数据⽀持。 ⼆、调用链零碎的演进 ⼀般咱们认为链路监控产品是从 2010 年 Google 发表名为 《Dapper⼤规模分布式系统的跟踪零碎》论⽂开始流⾏起来的。之后呈现的很多开源或者闭源的产品都是以 Dapper 为实践根底。下表列出已知的链路监控零碎。 链路监控零碎列表公司零碎名称GoogleDapper阿里巴巴鹰眼腾讯天机百度凤睛京东CallGraph,hydra美团点评CAT(Central Application Tracking)美团MTRace链家LTrace苏宁易购HiroUberJaegerTwitterZipkin网易Pylon集体开源PinPointApacheApache SkyWalking淘宝鹰眼 鹰眼界面 鹰眼架构 Google Dapper Dapper 界⾯ Dapper架构图 ...

March 21, 2023 · 1 min · jiezi

关于测试:测试的底层逻辑

作者:京东科技 孙亮 写这篇文章,是心愿把我的一些我认为是十分有价值的经验总结进去,可能帮忙刚做测试不久的新共事,或者是测试经验丰富的老同事以共享。心愿咱们可恶的新共事,筹备要在测试畛域耕耘的搭档,可能通过我的文章理解到测试的底层逻辑,也就是咱们测试工作中可能看不到暗藏较深的点,而不只是日常所见的写用例、提bug、开发自动化、做平台;俗话说在行看热闹,外行看门道。 我认为测试人员不应该成为PRD的搬运工,高级测试工程师也不应该只是测试工具得开发者; 测试人员,最根本的测试基础理论肯定要把握,当然研发编码技术也必不可少;如果这两样短少一样,都无奈成为一个优良的测试人员;之前有很多测试人员都是不喜爱写代码,而后做了测试;但在将来或者当初,一个不懂代码的测试人员,很难成为一个优良的测试人员;但只懂代码,不理解测试实践根底的人(不懂得测试剖析、用例设计、测试策略的人,或者即便理解一些 ,但理论工作中不怎么应用的人),肯定也不是一个合格的测试人员。 上面带大家理解一些测试的底层逻辑,测试的门道。 一、优良测试人员应该具备的外围能力 依据Testerhome《2021年度测试行业问卷调查报告》-【优良测试人员应具备的技术/能力】剖析, 1、“编程/脚本/自动化、沟通表白、测试基础理论” 被认为是优良测试人员的三大外围能力,持续当先其余项; 2、数据库、性能测试、平安测试、大数据算法等技术要求,从2020年开始大幅增长; 三大外围能力根本是大家公认的,也是稳固不变的;但新的技术要求近几年开始都有了大量需要;从剖析数据能够看到,市场对测试人员的要求会随着新技术的呈现而一直变动;但三大外围能力是测试人员的必修课,变动不会太大,会始终占据外围地位。 自从10几年前的QTP开始,自动化测试就是测试人员谋求的指标;直至今日,各种自动化技术、框架曾经目不暇接;市场对测试人员的要求也越来越高,测试人员不仅要会写自动化用例,还须要具备开发保护自动化框架平台的能力;纯黑盒的测试人员要么曾经实现了能力降级,要么在降级的路上;齐全依赖黑盒测试实现工作的曾经越来越少,如果不会编写自动化用例或不理解编程语言,预计找工作简历都很难通过。 但往往物极必反,测试人员的代码能力越来越强,测试根底能力却被忽视,测试畛域的业余能力逐渐被淡化;正如顺水行周,逆水行舟;三大外围能力应该是齐头并进,不应该顾此失彼。 这些年参加了部门很多的招聘面试,我的感触就是很多测试人员尽管工作多年,但对测试用例的设计办法、策略等把握并不好;至多有60%的人在用例设计中不会用什么用例设计办法,也不会思考怎么进行测试剖析和设计,他们大部分只是功能测试的执行者,测试设计方面思考很少,测试计划更是很少有人写,测试用例也只是PRD的拆分;总之,测试人员一不小心就会成为PRD的搬运工。 作为一个测试老人,还是心愿测试行业可能衰弱倒退,在新技能晋升的状况下,测试的专业性也能与时俱进,毕竟品质保障是测试人员的基本。 二、黑盒测试的底层逻辑 什么是黑盒测试? 它是把程序看作一个黑盒子,在不思考程序内部结构的状况下,检查程序性能是否依照PRD的规定失常应用,程序是否能适当地接管输出数据,产生正确的输入。 这,其实就是黑盒测试的定义,也是黑盒测试的底层逻辑;个别人不会器重定义,但往往就是定义会通知你真谛。 工作中有很多人在习惯了一种类型的零碎测试,而后换一个新的业务类型,突然就不知如何下手了;兴许是新的总要有一个适应的工夫;其实万变不离其宗,只有把握了黑盒测试的底层逻辑,就可能让你很快上手不再须要适应调整; 咱们大部分做的都是黑盒测试,所以无论什么类型的零碎,咱们的测试计划都是“ 检查程序性能是否依照PRD的规定失常应用,程序是否能适当地接管输出数据,产生正确的输入。” 。 咱们的测试根据是PRD,首先必须对PRD了如执掌,而后剖析他的输出有哪些,输入有哪些;这些都笼罩到了,你根本就能够做到80分了,也就是你拿下这个我的项目已不成问题。 最初,我还是想再啰嗦强调一下, 就怕我讲的大家还是没有看懂,因为下面讲的大家都懂,第一天理解测试,就晓得什么时候黑盒测试,什么输入输出了;然而往往真谛就藏在平庸之间,记住他的定义!!! 当你遇到我的项目不知如何下手测试时,把定义拿进去认真读三遍,肯定会找到答案!!! 强调: 理论当中纯黑盒的其实并不多,除了理解输出、输入,两头的解决逻辑也肯定要分明,这样对测试更有帮忙;另外更重要的就是:必须熟读PRD,必须对PRD里的内容分析透彻,不放过任何一段文字,一个词。其实PRD里和设计文档里也会有很多的破绽等你开掘。 三、黑盒测试底层逻辑详解:【输入输出测试模型】 【输出】: 这里的输出,并不是简略的界面输入框才算是输出;任何只有可能触发零碎运行的都是输出。依照代码架构分层,输出也能够做到如下分类: 1、界面操作的输出: 正向操作: 1)繁多操作: •失常的操作:输入框、按钮、单选复选框、按钮、下拉框等的规定操作异样的操作:输入框的异样值、超长输出等、按钮的屡次点击、疾速间断点击(很容易就会发现数据反复提交,或者零碎反馈迟缓等各种问题,说不定零碎就此而奔溃) 2)简单操作: •组合操作:个别零碎的性能都是各种操作的组合;另外一种跟业务场景相干,也就是各种业务场景同时组合进行操作。 •并行操作:多人对同一性能点的并发操作;或者多人对同一个数据进行的操作,比方两个人同时对一条单价进行批改、删除等操作。 逆向操作: 3)逆向操作: •回退操作:通过浏览器或APP进行的回退操作勾销操作:失常操作忽然勾销,例如用户填写很多表格内容,忽然操作了勾销,是否须要保留或提醒呢?删除操作:通过零碎提供的性能对数据进行删除 上面的输出是最容易被疏忽的: 2、服务层的输出: •接口服务:对外提供的接口,对于零碎来说也是很常见的一种输出,这种输出也是最容易出问题的; •文件上传:有些零碎性能是通过获取ftp服务器上的excel、xml等文件来触发零碎运行的,所以这时候的输出就变成了文件。 •MQ音讯:也是京东最常见的一种输出模式,MQ里也可能会蕴含文件地址等,这种输出就更加灵便了。 强调: •对于接口上游的输出,无论何种模式,都要剖析上游数据的每一个字段,理解上游各种输出的可能。 •有些字段还必须从业务【源头】理解这个字段的含意,可能的枚举值,可能的后果等; •另外因为历史起因,源头的数据就可能存在各种想像不到的数据; •对于输出的剖析十分重要,这时候你就能够应用【等价类】办法进行剖析。 3、数据层的输出: •数据的变动:有很多后盾解决的工作就是监控是否有新数据的插入或删除等数据字段的变动:后盾解决工作监控数据状态的变动,或组合字段的变动等缓存数据的变动:除了数据库的变动,有的是缓存数据的变动工夫的变动:定时工作除了数据是输出,工夫也是他的输出。 【输入】:输入分为可见输入和不可见输入 看的见的输入: 就是咱们常见的零碎操作反馈,用户能间接看到的变动;比方弹框、提醒、跳转、数据的新增、批改、删除后的变动,图片、视频等操作后的变动等等。 看不见的输入: 看不见的输入是最容易疏忽也是最容易出问题的;【看不见的输入】包含:数据库的变动、缓存的变动、系统文件的变动、发送给上游接口的数据等 【看的见的输入】尽管可能帮咱们验证根本90%以上的性能,通过界面展现的数据也能验证咱们新增或批改的数据,是否新增胜利了或正确的被批改了;然而咱们看到的只是一部分;还有很多字段是没有被展现的,有的可能只是给上游或其余零碎应用的,也有可能是留给将来应用的;这些不可见的局部,常常就会引起零碎的异样,也是暗藏在零碎中最大的坑; 所以测试,除了站在用户的角度去测试零碎,还要站在设计者的角度去测试,更应该站在整个产品的角度去思考。 四、测试剖析与设计的底层逻辑 说到测试剖析与设计,我认为这个是测试人员最外围的能力;下面讲到的黑盒测试、输入输出模型,只是针对功能测试的办法,尽管个别的零碎测试中功能测试占到80%-90%左右,但并不是全副。而且也只是测试中的一个阶段一个类型,要想做好测试,测试剖析和设计是必不可少的。 大家能够思考一个问题:拿到一个我的项目,你如何来测试?如何保障品质? 面试中很多人给我的答案是:剖析需要,编写用例,而后执行测试,发报告;这个只是测试的流程,只是通知了咱们测试的先后顺序,但并不能领导一个测试人员如何去测试,如何去做测试剖析,更无奈保障系统的品质。 拿到一个我的项目,你如何来测试? ...

March 17, 2023 · 1 min · jiezi

关于测试:概念解读稳定性保障

什么是稳固百度百科对于稳固的定义: “稳恒固定;没有变动。” 很显著这里的“稳固”是绝对的,通常会有参照物,例如 A 车和 B 车放弃雷同速度同方向行驶,达到绝对均衡绝对稳固的状态。 那么软件品质的稳固是指什么呢? 假如软件系统是辆车,品质预期是满足客户行驶要求,那么性能是指能失常行驶,性能是指按肯定速度和油耗失常行驶,稳固是指安稳且继续的按肯定速度和油耗失常行驶,这种稳固状态并不是品质自身的个性,而是品质体现的态势。 但在行驶中,车辆自身品质和路况不是变化无穷的,轮胎磨损、刹车磨损、路面结冰、路口堵车、顶峰限号等等各种情况都会影响行驶,那么此处的“安稳且继续”能够合成为品质自身的稳固及品质体现的稳固(驾驶者感触到的稳固)。 科幻电影经常能够看到这种操作:帅气的飙车中,男主车胎忽然被打爆,车辆立即变形,四胎变三胎,或者从机器触手中捞出备胎,凌空替换破损胎;一番操作炫酷丝滑,男主仍然狂飙,刺激成果 upup,观众直呼给力给力。该电影场景体现了两点:产品自身品质好是硬道理(比方飙车那么久刹车仍然灵活),然而突发状况更须要有其余伎俩维持帅气(比方引入各种高科技伎俩)。 什么是稳定性GB/T 16260 形容稳定性如下: “软件防止因为软件批改而造成意外后果的能力。” 软考高级《零碎架构设计师》形容稳定性如下: “软件稳定性,指软件在一个运行周期内、在肯定的压力条件下,软件的出错几率、性能劣化趋势等,并察看其运行环境内的应用服务器、数据库服务器等零碎的稳定性。” 2022 年 6 月由中国信通院公布的《分布式系统稳定性建设指南》形容稳定性: “零碎稳定性示意零碎在蒙受外界扰动偏离原来的均衡状态,而在扰动隐没后零碎本身仍有能力复原到原来均衡状态的一种顽性。” 百度百科形容稳定性如下: “零碎稳定性是指零碎因素在外界影响下体现出的某种稳固状态。” 综合各方观点能够失去:零碎稳定性关注的是零碎随工夫连续、软件批改、外界变动的关系,强调不受零碎因素变更和外界扰动影响的能力。 这是一个比拟泛的概念,那么如何晋升这种能力呢?咱们尝试从定义中的几个关键词动手: 零碎因素零碎因素的定义: “零碎因素是形成零碎的根本组成部分或根本单元。” 零碎研发过程既是生产软件系统的过程,也是制作问题(缺点)的过程,过程品质也是影响稳定性的因素之一。 • 2022 年 4 月 Atlassian 呈现宕机事变,起因是团队之间存在“沟通鸿沟”、零碎正告有余;• 2022 年 8 月谷歌搜寻和谷歌地图呈现宕机事变,起因是软件更新出错; 零碎外部危险须要尽量在软件生产过程中防止,将制作危险的过程转变为管制危险的过程。 外界扰动外界扰动指非零碎自身带来的变动,往往不受系统控制,例如城市地震、机房电缆被挖、黑客 DDOS 攻打,这种不可抗力事件尽管小概率,但世界范畴内随时都在产生,咱们能做的是尽量进步抵挡外界扰动的能力,缩小对系统稳定性的残害。 • 2022 年 6 月微软呈现宕机事变,起因是微软的冗余电力系统的组件产生了意外的电气瞬变,导致空气处理单元(ahu)检测到潜在的故障,因而主动敞开;• 2022 年 7 月甲骨文(Oracle)呈现拜访提早,起因是创纪录的冬季低温导致冷却系统呈现故障,数据中心的温度攀升,计算基础设施的一部分进入保护性敞开状态;• 2022 年 7 月亚马逊的 EC2 实例瘫痪,起因是亚马逊网络服务(AWS)可用区 1 (AZ1)产生停电,导致服务中断; 稳固状态上文提到稳固是一种绝对的状态,因而更关注基于预期的后果比照和基于品质基线的趋势比照。 1)确定基线最新版的国家标准 GB/T 25000.10-2016 将软件系统的应用品质拆分为以下影响路径: ...

March 1, 2023 · 1 min · jiezi

关于测试:技术科普模糊测试背后的2个核心逻辑

数字时代,万物改革,软件定义世界。软件简直在咱们生存的方方面面都施展着至关重要的作用。从智能手机中应用的应用程序到运行计算机的操作系统,都是咱们日常生活中不可或缺的一部分。然而,随着软件系统越来越简单,如何保障其安全性和稳定性成为一大挑战。为应答这一问题,含糊测试(Fuzzing)失去了诸多关注,越来越多的企事业单位开始采纳含糊测试技术对软件系统进行测试,确保其稳固运行。 含糊测试是一种自动化的测试技术,在测试过程中含糊测试引擎可主动生成亿万级的测试数据并发送给被测系统,通过施行监控被测程序的测试执行状况,可高效、精准地发现被测系统中的各类缺点。与传统测试方法(例如手动测试或单元测试)相比,含糊测试的粒度更细,程序执行覆盖度更高,在进步软件品质和可靠性方面施展着关键作用。其之所以有如此惊艳的体现,其实能够从组合学和非预期输出两个角度来解释。 1组合学 组合学是一个不常见的词,可能大多数人对它并不相熟。但它在密码学、概率论、计算机科学、统计学等畛域中都有着很多的利用。比方,它能够用来钻研随机事件产生的概率、设计高效的算法、构建数据结构、进行统计分析等。Wolfram MathWorld 将组合学定义为“钻研元素集的枚举、组合和排列的数学分支”。艰深的讲组合学就是对于“选”和“摆”的数学学科。在组合学中,钻研的问题通常都是对于如何从一组元素中选取肯定数量的元素,以及这些元素可能的排列和组合形式。 举个简略的例子,当咱们在某品牌官网上定制运动鞋时,定制平台在鞋面、鞋跟、鞋舌、鞋带、鞋底、鞋标等方面为咱们提供定制服务,在色彩抉择上,鞋子的每个局部都有13种颜色任由客户抉择搭配,并且鞋底还能够抉择两种不同的材质(再生材质、天然橡胶),除鞋底、鞋带,其余局部还能够别离抉择皮革、帆布或者缎面材质。各种各样色彩与材质组合满足了客户的各种爱好以及谋求共性的需要。然而,您有没有想过一个问题,这款运动鞋到底有多少种抉择的可能性?答案是(313)^413*26=781943058种选择性,这很好地阐明了尽管咱们只能对运动鞋的6个局部进行设计和抉择,但其中却暗藏着数以亿计的组合可能。 在软件测试畛域,程序就像一个宏大的迷宫,而程序的运行,就像在迷宫中走过各个分支与岔口,这其中潜藏着无比宏大的组合。随着岔口的减少,可能触发不同状况的组合数量也会迅速减少。当有数以亿计的选项组合要测试时,传统的单元测试办法就不再实用,而含糊测试基于遗传变异算法生成数以亿计的高质量测试用例,能够对软件进行疾速测试,最大水平地笼罩程序中的各种“组合”,从而无效发现潜藏在更深层次的平安缺点。 2非预期输出 顾名思义非预期输出指的是程序或零碎在设计时未思考到的输出。这些输出可能是谬误的、歹意的、有效的、异样的或不符合规范的数据,也可能是意外的环境变动,如网络中断、硬件故障等。非预期输出可能导致程序呈现意想不到的行为,包含解体、数据损坏、安全漏洞、拒绝服务等问题。对于开发者来说,解决非预期输出是十分重要的,为了晋升零碎的健壮性与安全性,应该思考在程序中增加足够的输出验证和错误处理机制来解决这些状况。 然而在对简单零碎进行测试时,即便是顶尖的平安专家也无奈十分全面地思考到各种非预期状况。相比之下,含糊测试不须要平安专家精确定义各种非预期的状况,而是尝试在零碎可接管的范畴内对输出进行针对性变异或随机变异,这些变异后的输出能无效模仿各类非预期状况,进而检测暗藏在更深层次的零碎缺点。 通过将组合学和非预期输出相结合,含糊测试能够生成更加全面和无效的测试用例,进步测试的覆盖率和深度,发现已知和未知的零碎缺点。 不仅如此,含糊测试还有如下特点,也让该技术在软件的安全性和稳定性方面失去更多的施展。 自动化:含糊测试通常能够自动化执行,缩小测试人员的工作量,进步测试效率。灵活性:含糊测试能够实用于不同类型的应用程序,包含Web 应用程序、操作系统、数据库、API等,具备很高的灵活性。零误报:动静运行的测试形式确保所有检出缺点均可残缺复现,误报率近乎为零。简言之,含糊测试是检测软件系统安全性与稳定性的重要技术。它相比传统测试方法能够更快、更无效地识别系统缺点。随着含糊测试在泛滥畛域的一直倒退与落地,它已成为软件开发和平安测试中的重要工具和办法,并为构建更加安全可靠的软件生态系统做出了突出贡献。 云起无垠(https://www.clouitera.com)是新一代智能含糊测试领跑者,采纳新一代Fuzzing技术全流程赋能软件供应链与开发平安,基于智能含糊测试引擎为协定、代码、数据库、API、Web3.0等利用提供弱小的软件平安自动化剖析能力,从源头助力企业自动化检测并助其修复业务系统安全问题,为每行代码平安运行保驾护航。

February 24, 2023 · 1 min · jiezi

关于测试:优测电商大促全链路压测攻略

一、 背景随着互联网科技的一直倒退,电子商务呈燎原之势。网上购物曾经成为大多数人生产的次要形式。各大电商平台的促销流动也趋于常态化。高流量、高频率的大促流动给电商平台的稳定性带来了更严厉的挑战。例如,秒杀抢购流动要求高并发解决能力,外围业务流程要求更好的可用性以及稳定性,为了大促须要准确地对线上服务扩容做容量布局等。是否提供稳固的服务对开发者来说是不小的挑战,间接影响企业的品牌形象和营收。如何保障线上经营流动顺利开展,是各企业决策者十分关怀的问题。全链路压力测试是电商提前备战大促的无力武器,可晋升消费者购物体验。二、优测电商大促解决方案针对电商大促期间剧增的流量,优测为电商平台打造全流程性能测试解决方案。在各类促销流动前提供实战演习,能够确保零碎稳固运行,晋升用户满意度,为线上经营流动保驾护航。解决方案:电商大促全链路压测解决方案,提供平安、高效、便捷的压力测试平台和全流程压测服务,无效帮忙企业在最短时间找到性能问题。1、压测场景建模。将不同的业务做拆合成耦,这样能不便压测的施行以及性能瓶颈的剖析监控。尽可能排除非核心低频业务,确定业务配比。2、制订压测计划。压测计划的制订须要联合零碎架构和业务特点,包含单接口基准测试、混合场景容量测试和全链路稳定性测试等。3、危险辨认与验证。在生产压测中须要实时疾速感知业务报错和资源应用状况,一旦呈现大量报错或者资源应用超出预期须要立刻进行压测,否则会影响实在生产流量。 外围能力:1、实在业务场景模仿。依据理论的业务场景,编排压力测试场景。根据线上流量评估,结构测试数据;提供寰球各地不同压力源,多种发压模式,最大水平模仿实在业务需要。2、多维度立体化监控。反对多维度资源监控蕴含压测指标监控、资源耗用监控、利用性能监控等;通过主动部署监控探针的形式极大进步了运维效率。3、压测性能剖析。压测性能剖析蕴含问题辨认、链路性能剖析和 JVM 过程深度剖析,可自动识别线程泄露、线程死锁、 线程阻塞等性能隐患,定位最耗时办法调用。三、优测全链路压力测试攻略全链路压力测试是指基于实在业务场景,通过模仿海量的用户申请,对整个后盾服务进行压力测试,从而评估整个零碎的性能程度。1、创立全链路压力测试第一步:筹备测试数据为了尽量模仿实在的业务场景,首先要为测试筹备大量模仿数据,并将数据与场景编排中的变量关联,从而在执行测试工作时读取测试数据中的数据进行测试。筹备测试数据的路径:CSV 文件、数据源。第二步:场景编排依据理论业务需要确定压测场景。一个压测场景可蕴含多个并行业务(链路),每个链路可蕴含多个接口串联。 默认已创立了一个链路(链路一),且该链路蕴含一个API(API 1) 如果压测场景须要多个API串联,可间接点击下图“+”进行增加API,并在右侧进行API的相干配置 如果压测场景须要多条链路并行,可通过点击“增加链路”。每增加一条链路会默认增加一个API。 第三步:压力配置对本次压测工作进行压力相干配置 具体性能指标阐明详见下表 第四步:确认信息并执行 确认所填配置信息正确。 账户有足够余额发动本次测试。留神:由压测所引起与第三方的纠纷及造成的所有结果,使用者应自行承当全副法律责任。2、剖析压测报告测试工作执行中:随着压力测试的执行,概览报告会实时更新测试后果数据;点击“进行压测”按钮,可随时终止以后测试,查看已执行的局部报告。留神:进行测试之后会退还未应用的VUM。测试工作完结,可查看最终报告。 分割咱们热线:0755-86013388-843186优测兼容性测试服务网址:https://utest.21kunpeng.com/h...企业微信:

February 24, 2023 · 1 min · jiezi

关于测试:接口测试流程是怎样的

接口测试流程是怎么的?总所周知,接口测试流程是怎么的?总所周知接口测试在软件测试中是一个十分重要的一部分,其次要目标是测试应用程序的接口是否可能依照标准要求与其余零碎或组件进行交互,以及在不同负载条件下接口的稳定性、性能和安全性。但很多老手测试只晓得它很重要,却不分明接口测试的流程是怎么样的,明天就浅浅跟大家聊聊接口测试的个别流程有哪些。 1、确定测试指标接口测试第一步,须要明确接口测试的测试指标,包含要测试的接口、测试的环境和本次测试的目标等。 2、剖析接口标准和文档接口标准和文档是接口测试的根底,测试人员须要仔细分析研读接口标准和文档,理解接口的输出、输入、返回码和性能等方面的要求,以及接口在不同负载和异样条件下的体现。所以,好的接口文档也十分重要,这须要测试人员与开发人员做好对接与协调。 3、编写测试计划和测试用例测试计划和测试用例是接口测试的重要组成部分,测试计划须要确定测试的范畴、测试的环境、测试的流程和测试的工夫等;测试用例须要详细描述测试的输出数据、冀望输入数据和预期后果,以及测试的前提条件和步骤等,这些都须要测试人员提前准备好,当然也能够借助相干工具辅助进行。 4、筹备测试环境和测试数据测试环境和测试数据是接口测试的根底,测试人员须要筹备相应的测试环境和测试数据,包含数据库、文件系统、网络环境和服务器等,以便进行测试。测试数据也能够应用一些工具自带的 Mock 性能,帮忙模仿更实在的环境状况数据。 5、执行测试用例测试人员能够应用接口测试工具,如 Apifox,执行测试用例,查看接口的输出和输入数据的完整性、正确性和格局是否正确,以及在不同的负载和异常情况下接口的性能体现。测试过程中,须要记录测试后果和错误信息,并及时反馈给开发人员进行批改。 6、编写测试报告测试报告是接口测试的重要成绩,它记录了测试的过程和后果,包含测试的范畴、测试的环境、测试的用例、测试的工夫、测试的后果、错误信息和倡议等。能够思考应用主动生成测试报告的接口测试软件,帮忙疾速梳理测试问题。 7、提交问题并进行跟踪测试过程中,测试人员会发现一些问题和 bug,须要将问题提交给开发人员进行解决。测试人员须要跟踪问题的解决状况,并确保问题失去及时解决和验证。 总结接口测试是软件测试中的一个重要方面,它须要测试人员仔细分析接口标准和文档,编写测试计划和测试用例,筹备测试环境和测试数据,并应用接口测试工具执行测试用例,最终生成测试报告。在测试过程中,须要及时发现和解决问题,须要好的接口测试工具帮忙开发人员疾速定位问题,进步测试效率。比方下面提到的 Apifox,它能够依据接口调试内容主动生成接口文档,还反对自动化测试,能够疾速创立测试用例,应用 Mock 数据进行测试,还会主动生成测试报告帮忙测试人员疾速定位问题,加强团队合作能力,而且最次要的免费软件!

February 21, 2023 · 1 min · jiezi

关于测试:优分享探索性测试策略分享

版权申明:本文作者 优测团队测试专家 郑凯泽 南明玮。 探索性测试是对惯例的零碎测试、新需要测试及专项测试的重要补充,往往能在短时间内发现更多的问题,一起来看看优测测试专家的分享吧~ 一、背景 优测团队长期承接腾讯社交产品、办公产品,如大家所熟知的腾讯文档、QQ等产品的测试服务工作。在用户规模日益增长的背景下,探索性测试是对惯例的零碎测试、新需要测试及专项测试的重要补充。 经实际验证,该办法可在短时间内发现更多的问题,通过新的思路、新的办法,找到在零碎测试阶段未发现的“漏网之鱼”。 二、摸索策略1、基于场景摸索测试这种测试跟传统的基于场景的测试(场景法)比拟像,不同的是,在这种测试中测试人员会扩充测试范畴2、 基于策略摸索测试这是一种比拟依附教训的测试方法,简略来说就是测试新手,交融本人的教训、技能、感知等条件,联合自由式摸索式测试,用本人积攒下来的常识来领导测试,是一种教训联合随机性的测试。通常在零碎测试实现之后,还有剩余时间的状况下,以摸索式测试作为补充,尝试零碎测试笼罩不到的场景,从而缩小漏测,进步测试覆盖率 3、 基于反馈摸索测试 基于反馈的摸索式测试源于自由式测试,然而随着测试历史的造成,测试人员们就会利用反馈来领导今后的摸索。能够通过征询笼罩指标(测试端用户笼罩、用户反馈问题模块统计、性能缺点密集水平等信息)来进行摸索测试,以使这些笼罩指标得以进步 4、 自由式摸索测试 自在测试指的是对应用程序的所有性能,任意秩序进行随机探测,不思考性能是否验证残缺,自在测试并没有规定、模式,只是发散本人的思维,对应用程序进行随机操作,查看是否有重大或显著的问题缺点 三、摸索办法1、麻烦测试法 成心设置各种阻碍来看软件的应酬能力,不思考输入,只有软件能这样做就这样做。 测试思维: 能够提炼一种通俗易懂的思维形式使用到咱们的我的项目上,咱们首先想到的是用户的操作形式:点击、不同方向划动、双击、长按、拖动、手机上的各种按键以及其余操作,这些操作组合起来所失去的输入后果,也是开发以及产品无奈意料的,针对麻烦测试,咱们能够参考以下几个检查点, 查看各个UI页面的控件,例如会员中心各个按钮; ① 查看各个控件的次要操作形式以及附带操作形式:例如分享,更改权限等; ② 尝试次要操作形式以及附带操作形式组合操作: ③ 尝试其余操作形式与次要操作形式联合; 2、 极限测试法 制作一些极值场景,输出一些极大或极小值,制作一些极简单的场景等。 测试思维: 只有有输出就有一些极值的输出。那咱们常常遇到的个别是哪些极值类型呢? 思维模式: ① 梳理测试对象的极值类型 ② 发明测试对象的极大值和极小值 例如:文档输入框的最大可输出字符,二次明码的最大可输出位数等等。 3、 测一送一法 测试同一个应用程序多个拷贝的状况,同时对一个被测对象进行操作 测试思维: 多个终端操作后对被测试对象的影响,如一个账号同时登录多处,测试一端的一些操作,查看另一端的影响;或先登录一端操作后对另一端的影响。 测试参考: 同时登录关注以下操作,一方先登录操作后关注另一方后登录的状况 例如:在PC端操作查看桌面端以及挪动端、APP端的性能以及显示问题; ① 音讯类操作 ②设置类操作 4、 卖点测试法 对那些能吸引用户的个性进行测试,比方多人同时在线编辑等 5、 恶邻测试法 针对问题频发的性能进行四周性能验证 6、 专家测试法 依据用户反馈来进行测试; 测试思维: 在用户反馈的问题根底上进行周边问题验证,以及同类型问题验证或者为达到雷同目标进行的不同操作,察看后果是否合乎预期 7、勾销测试法 进行或勾销正在进行的程序或操作 测试思维 : 勾销或中断程序正在进行的操作; 测试过程中杀过程,再启动查看是否有异样,或者进行断网操作。 *版权申明:本文作者 优测团队测试专家 郑凯泽 南明玮。对于文章内容或测试常识,如果想跟作者深刻探讨,可扫下方二维码进群交换。 ...

February 20, 2023 · 1 min · jiezi

关于测试:如何选择接口测试工具

当今软件开发中,接口测试已成为必不可少的一环。该如何抉择接口测试工具?抉择适合的接口测试工具对于程序员来说十分重要,因为这能够帮忙他们更快、更高效地评估接口的品质和可靠性。为了进步测试效率和测试品质,自动化接口测试曾经逐步遍及。然而,因为市场上有许多不同的接口测试工具,程序员们很难抉择适合的工具。如何抉择适宜本人的工具呢? 抉择接口测试工具的思考因素首先,得晓得在抉择接口测试工具时应该思考哪些重要因素: 易用性易用性是抉择接口测试工具时首要思考的因素。工具必须具备清晰的界面,可能让程序员疾速、不便地操作。同时,工具也应该具备具体的帮忙文档,不便程序员应用。 功能性功能性是抉择接口测试工具时第二重要的因素。工具必须具备执行接口测试所需的所有性能。例如,工具应该可能执行申请和响应的验证,反对不同的申请类型(例如 GET、POST、PUT 等),并具备对接口性能的评估性能。 灵活性灵活性是抉择接口测试工具时第三重要的因素。工具必须可能适应不同的测试需要,反对多种语言(例如 Python、JavaScript 等),并且可能与其余测试工具(例如自动化测试工具)进行整合。工具还应该具备自定义报告性能,以满足不同团队的需要。 可靠性可靠性是抉择接口测试工具时第四重要的因素。工具必须可能稳固运行,并且每次运行的后果都是统一的。同时,工具也应该可能捕捉并保留所有的错误信息,以不便程序员调试。 老本老本是抉择接口测试工具时第五重要的因素。工具的老本应该与其性能、可靠性和易用性相匹配。当然,也不应该抉择太过低廉的工具。程序员应该依据本人的需要和估算来抉择适宜本人的工具。 如何正确抉择接口测试工具晓得了抉择接口测试工具时应该思考的重要因素,那依据这些因素,又该如何抉择适合的工具呢?以最近风头正大的 Apifox 为例,咱们来具体拆解一下。 测试用例编写测试脚本是接口测试的外围工作之一。抉择易于编写和治理的测试脚本将会使测试过程更加顺畅。Apifox 提供了简略易用的图形化界面,测试人员能够通过简略的拖拽操作来创立测试用例,而无需编写代码。 接口测试数据接口测试数据是一个很重要的方面。测试工具应该提供测试数据的治理形式,这样你能够轻松地治理大量的测试数据。Apifox 反对数据集,当用例或套件运行时,零碎会循环运行数据文件里所有的数据集,并且会将数据集里的数据赋值给对应的变量,帮忙测试人员便捷治理运行。 自动化测试自动化测试能够使测试过程更加高效、牢靠。你应该抉择一个工具,能够疾速创立自动化测试用例,而无需进行手动测试。Apifox 提供了自动化测试性能,测试人员能够通过设置自动化测试工作来执行测试用例,反对设置循环、判断等流程管制条件,可主动获取测试后果,并生成具体的测试报告。 测试报告测试报告对于接口测试来说是十分重要的,它能够提供具体的测试后果和统计信息。抉择一个测试工具应该可能生成清晰、具体的测试报告。Apifox 的测试报告十分清晰明了,能够疾速查看测试后果,统计测试覆盖率和测试品质等信息。 总结抉择一个适合的接口测试工具须要思考很多方面,如性能和兼容性、测试脚本的编写复杂度、测试数据的治理、自动化测试和测试报告等。Apifox 作为一款在线接口测试平台,能够帮忙测试人员疾速、精确地进行接口自动化测试,可能满足团队多场景测试的需要,并帮忙他们在更短的工夫内实现更多的工作,保接口的品质和可靠性。而且完全免费,白嫖的高兴谁懂!

February 17, 2023 · 1 min · jiezi

关于测试:接口测试和功能测试的区别

接口测试和功能测试尽管都属于软件测试的领域,但两者的测试目标、测试内容和测试重点都有所不同。那明天我将接口测试和功能测试配合实例为大家介绍这两种测试的区别,以 Apifox 这个最近风头很大的接口测试软件进行解说。 一、测试目标不同接口测试的目标是测试应用程序的接口是否可能依照标准要求与其余零碎或组件进行交互,以及在不同负载条件下接口的稳定性、性能和安全性。 功能测试的目标则是为了确保应用程序的性能合乎规格说明书或需要文档中的规定。 Apifox 是一个在线接口测试平台(但其实也有桌面端啦),它的次要目标是为了帮忙测试人员疾速创立和执行接口测试用例,验证接口的正确性和稳定性。通过应用 Apifox,测试人员能够创立测试用例、执行自动化测试、查看测试后果并生成具体的测试报告,让接口测试变得快捷便当。 二、测试内容不同接口测试的测试内容次要是接口的输出、输入、返回码和性能等方面,例如是否接管正确的参数、是否正确返回冀望的后果、是否可能处理错误申请等。 功能测试的测试内容则是应用程序的具体性能是否依照需要文档中的规定执行。 在 Apifox 中,测试人员能够创立测试用例并应用图形化界面来定义输出参数和验证输入后果。此外,Apifox还 反对测试人员通过自定义代码实现更简单的测试场景,以验证接口的正确性和可靠性。 三、测试重点不同接口测试的测试重点次要是在接口的正确性、稳定性和安全性方面。 功能测试则次要关注应用程序的性能是否依照需要文档中的规定执行。接口测试中须要测试的内容比功能测试要少,但须要更加重视接口的正确性和稳定性。 测试人员能够 Apifox 用创立测试用例、设置自动化测试工作、设置各种流程管制条件并生成测试报告,能够疾速定位接口测试中存在的问题,从而使得接口测试更加高效和牢靠。 总结接口测试和功能测试尽管都是软件测试的一部分,但两者的测试目标、测试内容和测试重点都有所不同。Apifox 作为一个 API 一体化合作平台,不仅能够帮忙测试人员疾速创立和执行接口测试用例,验证接口的正确性和稳定性,帮忙测试人员更加高效地进行接口测试,还能够整个研发团队高效进行团队配合,从设计文档到调试到自动化测试都 cover 到,让团队合作更高效!

February 17, 2023 · 1 min · jiezi

关于测试:接口测试的目的

接口测试的目标是什么呢?随着互联网技术的一直倒退,接口测试已成为软件测试中的重要环节,在我的项目的整个生命周期中都占有重要的位置。那么接口测试的目标是什么? 接口测试能够确保零碎性能的正确性。接口是软件系统中不同模块之间交互的重要途径,如果接口的实现不当,很容易导致系统故障和性能缺点。因而,对接口进行测试是十分重要的,以确保接口的实现是正确的,接口之间的数据交互是正确的,以及接口的容错性是足够的。 接口测试能够保证系统的可靠性。随着软件系统的不断扩大,接口之间的依赖性也在减少,如果一个接口呈现故障,很有可能导致整个零碎瘫痪。因而,对接口进行测试,能够提前发现潜在的问题,防止在生产环境中呈现重大的故障,保证系统的可靠性。 接口测试有助于为客户提供最佳的用户体验。随着软件系统的日益简单,用户的冀望也在一直进步。如果零碎的接口不稳固,不牢靠,性能缺点重大,那么用户的体验很可能会受到重大影响。因而,通过接口测试能够进步零碎的稳定性,保障用户体验的品质,并最大水平地进步用户的满意度。 接口测试还能够帮忙开发人员评估零碎的性能。接口测试能够模仿大量的申请,从而评估零碎的响应工夫、吞吐量等性能指标。通过接口测试,开发人员能够及时发现性能瓶颈,并采取适当的措施来进步零碎的性能。 接口测试能够帮忙团队进步合作效率。接口测试能够在开发人员和测试人员之间建设一个无效的沟通渠道,以保障开发人员的代码合乎测试人员的预期。此外,接口测试也能够帮忙团队更好地评估我的项目的进度,以便对我的项目进行调整和优化。 所以接口测试的目标是多方面的。它不仅是确保零碎的稳定性和可靠性,更是为了进步客户体验,评估零碎性能,进步团队的合作效率,促成我的项目进度等。因而,对接口测试的器重水平越高,我的项目的品质和效率就越高。 在理论我的项目中,咱们能够通过多种形式进行接口测试,如手动测试、自动化测试等。手动测试是通过人工执行测试步骤来评估零碎的接口。自动化测试则是通过编写脚本和代码来执行测试,从而进步测试的效率和准确性。 不论应用哪种形式进行接口测试,都必须认真筹备测试用例,编写具体的测试计划和报告。同时,在接口测试过程中也要一直评估和调整测试方法,以保障测试的有效性。 然而,手动进行接口测试存在测试效率低、易出错、重复劳动等问题。针对这些问题,举荐应用 Apifox 进行接口测试。 Apifox 是一款简略易用的在线接口测试工具,它能够帮忙测试人员高效地实现接口测试工作。在应用 Apifox 进行接口测试时,您能够通过简略的拖放操作来构建测试用例,疾速生成测试报告,轻松地分享测试后果。同时,Apifox 还提供了多种测试形式,如单个接口测试、多个接口测试、定时工作等,以满足不同测试场景的需要。 应用 Apifox 能够疾速构建测试用例,并模仿各种场景,反对运行错误处理设置以确保接口在各种状况下都能失常解决数据和返回正确后果。 Apifox 反对增加自动化测试流程管制条件,如循环、判断、等待时间等,能够模仿各种测试场景,具备稳固牢靠的运行性能。 测试实现后会主动生成测试报告,可视化展现接口运行胜利及失败的具体情况,针对有疑难的接口还能够独自运行测试,疾速定位接口具体问题状况,反对一键导出错误报告,接口状况尽数把握。 最初,我想说的是,接口测试是软件开发过程中不可或缺的一个环节。在我看来,它是为了确保软件系统的稳定性和可靠性,以及为客户提供最佳的用户体验。它不仅能够进步零碎的品质,更是为了保障用户的权利,进步团队的工作效率。因而,咱们必须对接口测试认真对待,以便在接口测试中获得最佳成果。Apifox 是一款非常适合进行接口测试的工具,它具备简略易用、高效快捷、自动化测试、多种测试形式等特点,可能帮忙测试人员疾速、精确地实现接口测试工作,进步测试效率和测试品质。如果您也想进步接口测试的效率和品质,无妨试试 Apifox 吧!

February 15, 2023 · 1 min · jiezi

关于测试:为什么大多数团队推行自动化测试最后却不了了之

随着软件行业的疾速倒退,接口测试用例在软件开发中扮演着越来越重要的角色。自动化测试作为软件测试的一个重要分支,个别能够进步测试效率和品质,节约测试老本和工夫,然而在理论推广过程中,大多数团队最终却难以继续施行自动化测试,不是编写测试用例有多难,而是保护测试用例的老本十分高,通常是“编写用例一时爽,保护起来火葬场”。于是对于如何无效地编写和运行接口测试用例就成了一个重要的话题。 依据考察,大多数团队推广自动化测试最初却不了了之的起因无非是: 需要变更频繁随着产品和业务的疾速倒退,需要往往会频繁变更,这就要求自动化测试的脚本也须要常常更新和保护,否则会导致测试成果降落。如果团队无奈及时保护测试脚本,自动化测试就很容易陷入停滞状态。 不足专业技能自动化测试须要专业技能反对,例如编程、脚本编写、工具应用等,如果团队不足这方面的技能,就难以推广自动化测试。即便通过培训或招聘人员来进步技能,也须要付出额定的工夫和老本。 工具抉择不当自动化测试须要抉择适宜本人团队的测试工具,而不是一味地谋求所谓的“风行工具”或“最新工具”。如果选用不当的工具,就难以实现高效的自动化测试,也容易导致团队对自动化测试的继续推广失去信念。 测试策略不清自动化测试须要一个清晰的测试策略,包含测试范畴、测试指标、测试计划等。如果团队不足这方面的策略,就难以无效地推广自动化测试,也容易呈现测试脚本反复、测试覆盖率有余等问题。 领导层不反对自动化测试须要领导层的反对,包含为团队提供必要的资源、培训机会和激励机制等。如果领导层不反对,团队就难以推广自动化测试。 所以自动化测试的推广须要思考多方面的因素,不仅须要技术支持,也须要良好的测试策略、领导层反对等。只有充分考虑这些因素,能力无效地推广自动化测试并放弃其继续倒退。 具体来看, 为了出效应地开发和运行接口测试用例,首先要明确主观要求和最终需要来明确测试指标。而后剖析出不同的测试场景并将这些不同的场景中特定需要和冀望的划归到特定的测试用例步骤中去。对修改过的用例应用已定义好的工具运行对应性能, 及时核查执行工夫以及期待后果是否统一; 如有必要, 还会修复 BUG 和优化代码。 但上述办法也存留肯定问题——当版本迭代速度很快、API 接口会频繁变动时(尤其是即便一个 API 接口会呈现在数十个或者几十上千个 test 用例里时) ), 批改老本很大, 原本应加以意义化、集中式、文件标准化去存储所应用到 API 测试用例。 那有没有什么办法能解决这些问题呢? 当然有。以一体化 API 管理工具“Apifox”为例,它既能够作为 API 文档管理工具应用,也能够联合 API 开发调试、API Mock 以及 API 自动化测试的实际,来高效地运行接口测试用例。 地址:www.apifox.cn 拖入或导入接口后,能够自定义设置循环、判断等流程管制条件,满足多样化测试场景。点击运行即开始自动化测试。 运行实现后会生成测试报告,能够看到失败和胜利接口的具体运行状况,还能够针对失败接口独自运行测试,帮忙定位问题具体情况。还能够导出错误报告,便于团队接口测试协调。 Apifox 提供的弱小的断言库和动态剖析性能可能无效地帮忙企业疾速精确地治理所有后端 APIs : 只有定义好 API 文档,API 调试、API Mock 、API 自动化测试就都不必从新定义了。这样一来,不仅能极大地缩小手工改变简单代码的工夫老本, 还能显著进步并保障整体测试真实性。 因而, 通过 Apifox 联合得力于测试团队和开发团队之间的合作, 可能无效解决上述解决思路带来的问题。

February 15, 2023 · 1 min · jiezi

关于测试:接口测试主要测哪些方面

当今互联网时代,接口测试曾经成为软件测试的一个重要组成部分。接口测试是指对系统各个接口进行验证,确保接口的正确性、稳定性和安全性。接口测试是软件开发过程中不可短少的环节,它旨在确保接口可能失常工作,并且满足所须要的标准和要求。不仅能够发现接口自身的问题,还能够提前发现零碎中的问题,保障整个零碎的品质。但很多人对接口测试到底要测哪些方面并不理解。那接口测试接口到底蕴含哪些方面呢? 接口测试次要测哪些方面?咱们将从以下几个方面来进行具体介绍: 正确性测试正确性测试是接口测试的重要组成部分,它确保接口在接管到申请时返回的是正确的后果。 测试的内容包含: 接口是否可能辨认申请的内容,并以正确的形式解决申请;接口是否可能按预期生成后果;接口是否可能正确的把后果传递给调用者;可靠性测试可靠性测试是评估接口是否可能在特定条件下长期失常工作的测试。 测试的内容包含: 接口是否可能在高流量环境下失常工作;接口是否可能在异样状态下失常工作,例如断网,系统故障等;接口是否可能在长时间的运行后依然放弃失常工作;功能测试功能测试是评估接口是否可能提供所需的性能的测试。在进行功能测试时,须要依据需要文档编写测试用例,针对每个接口进行测试。测试用例须要笼罩所有的接口,包含失常状况和异常情况。 测试的内容包含: 接口是否可能实现预期的性能;接口是否可能通过正当的形式解决不合理申请;接口是否反对预期的数据格式和数据类型;接口的输出和输入是否合乎需要,是否满足业务逻辑;性能测试性能测试是评估接口的效率和效力的测试,即验证接口在负载高、并发量大的状况下是否可能失常工作。在进行性能测试时,须要模仿高并发的申请,察看接口的响应工夫、吞吐量和错误率等指标。通过性能测试能够找出接口的瓶颈,并及时优化,进步零碎的性能。 测试的内容包含: 接口在解决申请的速度;接口的响应工夫;接口的吞吐量(即每秒解决的申请数);接口的资源耗费状况(例如,内存应用状况,磁盘应用状况等);安全性测试安全性测试是评估接口的安全性的测试,即验证接口在面对各种攻打时是否可能爱护零碎的平安。在进行安全性测试时,须要模仿各种攻打状况,包含SQL注入、XSS攻打、CSRF攻打等。通过安全性测试能够发现接口的安全漏洞,及时修复,进步零碎的安全性。 测试的内容包含: 接口是否存在破绽;接口是否可能防备常见的攻打,例如 SQL 注入攻打,跨站脚本攻打等;接口是否反对 SSL/TLS 加密;接口是否无效爱护用户数据;兼容性测试兼容性测试,即验证接口在不同的操作系统、浏览器、设施上是否可能失常工作。在进行兼容性测试时,须要测试不同的操作系统、浏览器、设施组合下的接口的兼容性。通过兼容性测试能够保障接口的跨平台兼容性,进步零碎的可用性和用户体验。 测试的内容包含: 平台兼容性测试:测试软件在不同平台上的兼容性,例如 Windows、Mac、Linux 等。浏览器兼容性测试:测试软件在不同浏览器上的兼容性,例如C hrome、Firefox、Safari、Edge 等。操作系统兼容性测试:测试软件在不同操作系统上的兼容性,例如 Windows、iOS、Android 等。设施兼容性测试:测试软件在不同设施上的兼容性,例如 PC、手机、平板电脑等。分辨率兼容性测试:测试软件在不同分辨率下的兼容性,例如屏幕分辨率为 800x600、1024x768、1920x1080 等。压力测试压力测试,即验证接口在长时间高负载的状况下是否可能失常工作,防止因为负载过高导致系统解体或性能降落,影响用户体验。。在进行压力测试时,须要模仿长时间高负载的申请,察看接口的响应工夫、吞吐量和错误率等指标。通过压力测试能够发现接口的稳定性问题,并及时优化,进步零碎的可靠性。 测试的内容包含: 负载测试:测试软件在高负载状况下的性能能力,例如并发用户数、数据量等;带宽测试:测试软件在网络带宽受限的状况下的性能能力;性能测试:测试软件在不同负载下的性能指标,例如响应工夫、吞吐量、CPU 和内存使用率等;稳定性测试:测试软件在长时间高负载状况下的稳定性和可靠性;可扩展性测试:测试软件在负载减少时的可扩展性能力,例如增加更多服务器是否可能均衡负载;如何便捷进行接口测试?所以接口测试是评估接口品质和可靠性的关键环节,程序员在设计和开发接口时应该思考上述所有方面,以确保接口可能满足用户的需要。此外,程序员还应该定期进行接口测试,以确保接口可能在一直变动的环境中放弃高效和牢靠。那有没有什么工具可能帮忙程序员对接口便捷进行设计、开发和测试呢? Apifox 是一个集 API 文档、 API 调试、 API Mock 、 API 自动化测试于一体的 API 合作平台,能够帮忙测试人员更加高效地实现接口的测试工作。能够应用 Apifox 中的接口测试工具,疾速执行测试用例。在测试用例执行过程中,Apifox 会自动记录每个接口的申请和响应信息,并对响应后果进行断言,判断接口是否合乎预期后果。测试人员能够依据测试后果来调整测试用例和接口实现,进步接口的品质和稳定性。 当测试人员发现接口呈现问题时,能够应用 Apifox 疾速排查,谬误提醒会帮忙测试人员疾速定位接口的问题,包含申请参数、申请头、响应头、响应内容等。Apifox 还能够依据接口的定义主动生成接口文档,能够不便地分享给开发人员和测试人员,帮忙团队更好进行合作。 去 Apifox 官网 www.apifox.cn 注册账号并创立我的项目: 在进行接口测试之前,你须要先创立接口或者导入接口来创立测试用例。测试用例须要笼罩接口的所有性能,并涵盖失常状况和异常情况。能够点击 Apifox 中的自动化测试,疾速创立并执行测试用例。 反对设置用例自动化循环的次数、测试时候的进展工夫等。设置运行条件后,一键“运行”就能够自动测试了。在测试用例执行过程中,Apifox 会自动记录每个接口的申请和响应信息,并对响应后果进行断言,判断接口是否合乎预期后果,还会生成测试报告,测试人员能够依据测试报告来调整测试用例和接口实现,进步接口的品质和稳定性。 将 Apifox 联合到接口测试中,能够帮忙测试人员更加高效地实现接口测试工作,进步接口的品质和稳定性。不过最次要的还是,这个工具是完全免费的!

February 15, 2023 · 1 min · jiezi

关于测试:接口测试用例如何编写

接口测试用例如何编写?上面简略给大家解说一下。 接口测试用例是目前软件开发中不可或缺的一个重要局部,因而编写接口测试用例同样重要。 接口测试用例的作用非常明显,它可能帮忙咱们理解产品正在考验、调整它如何体现在特定情境之下、产品是否存在可改善的问题以及对其余流程执行有影响的因素。通过编写清晰精确的接口测试用例,可能无效防止很多无奈意料的问题呈现。 在开始编写接口测试用例之前,须要留神几件事: 确保你了解并精确掂量冀望零碎行为充分考虑使用者会怎么应用你的产品要将你所了解的客户端/后端对象显著列出来在运行之前该当充沛测试所有代码在此过程中要定期总结编写接口测试用例的步骤包含: 明确测试指标: 依据主观要求和最终需要来明确测试指标。确定用例场景: 依据业务逻辑来剖析出不同的测试场景,以及这些场景下的特定需要和冀望后果。编写用例步骤: 依据下面所剖析出的不同测试场景,编写具体的测试用例步骤。运行测试: 应用已定义好的测试用例运行对应的性能。测验后果并优化: 首先核查执行工夫;而后核查期待后果是否统一;如有必要,能够修复 BUG 和优化代码。常遇到的问题包含: 沟通问题未能正确归零测试数据理解能力不够充沛没有思考实在业务状况(即便真实性无奈量化)举一个常见的业务场景来阐明如何正确去写一个接口测试用例。如果一套新交易平台上, 由买卖方(买方A & 卖方B)独特就一样物品进行交易;买方A 须要递交 0.28ETH 电子币作为动向金, 并将物品 C 增加到平台; 要求卖方 B 14 天后将物品 C 邮寄到买方 A 处。如此,咱们就能够将上述场景归零抽象化: 测试: 增加物品 (C) 至平台上 。 冀望后果: 此物品 (C) 已胜利上传测试: 0.28 ETH 抵扣作。 冀望后果: 抵扣胜利,订单生成并显示测试: 卖方 B 14 天之后,将物品 C 邮寄至买方 A。 冀望后果: 用户收到了正确的物品 C,订单状态实现因而,在开发新的接口时必须保障旧的接口依然可能运行。当写一个新的测试用例时要留神不要遗留问题,尽量避免测试生效状况呈现。永远要记住: 良好的测试用例该当蕴含3局部: (1) 测试步骤; (2) 冀望后果; 以及 (3) 预期后续行为。 同时,为了确保测试用例可能无效地执行,咱们还要创立接口办法,依据具体的需要来调整和优化。此外,还要定义明确的出错边界,并将出错状况囊括其中。 当遇到相似问题时,尽量思考多种可能性去寻找解决办法。以及在开发和调试的过程中要放弃必要的文档! 及时、精确的文档是测试用例运作起来的重要因素之一。 其实当初有很多自动化的工具能帮测试人员疾速实现接口测试的工作,从测试用例的编写到用例的测试执行,都能够高度自动化了。例如 Apifox 管理工具就能够实现从接口的设计到接口用例生成、接口自动化测试全流程的治理。 ...

February 14, 2023 · 1 min · jiezi

关于测试:测试进阶之路新手关于测试碎碎念篇

作者:京东科技 JDStar王绮 实用对象:测试新人 可浏览对象:all 注:欢送留言与私聊补充 1、测试用例设计1、根本的测试用例设计办法•根本的测试用例设计办法(边界值剖析、等价类划分等)。 •业务和场景的积攒,理解测试需要以及易呈现的bug的中央。 •多维角度设计测试用例(用户、业务流程、异样场景、代码逻辑)。 2、需要剖析•获取原始需要,结合实际场景确保需要形容的完整性。 •需要产生的起因和价值(产品需要/研发需要;优化迭代、老利用减少新性能、新零碎开发)。 •不同类型的需要偏重不同的测试点(经营性能、JSF接口、定时工作等)。 3、测试用例设计•通过需要评审、业务和场景的积攒、联合开发与产品的文档资料、以及通过多渠道学习测试用例设计办法,实现测试用例的设计。 •测试用例模板:题目、配置条件(测试工具、中间件的应用状况)、测试数据、用例执行的先后顺序(先解冻再冻结,需对原单号进行冻结、用例的优先级)、预期后果(谬误场景返回后果是否正当)等。 •依据不同的需要测试类型(JSF接口测试、页面测试、新增数据表、JDOS迁徙等类型)总结测试用例模板。 2、测试用例执行1)利用各类测试伎俩(如deeptest平台、java+testNG框架、schedule等)执行测试用例,疾速定位bug。 2)bug分类(前端bug/后端bug、测试平台的问题/需要bug、测试脏数据、日志缓存过多)。 3)bug复现(反复执行原测试操作、是否为数据库中的脏数据、前后端交互界面思考网络问题等)。 3、测试流程规范性1)在行云平台上标准测试过程(测试排期、bug治理、测试报告等)。 2)要求研发标准提测范畴和流程(明确改变点和影响范畴)。 4、测试效率晋升1)通过业务积攒和测试工具的把握,晋升工作效率,京东小店账务零碎的改变(11个接口)四天左右测试实现,并提前上线。 2)总结各类测试用例模板。 3)明确与工作交接搭档沟通的重点与形式。 5、沟通协调能力1)把握开发常识与业务知识的专业术语,晋升沟通效率。 2)记录多个问题,一并沟通。 3)沟通形式方面,先保障测试步骤是正确的,将bug截图、日志谬误、问题形容精准表述。 4)保障交换的焦点集中在急需解决的问题上。 6、其它1)开发人员的表述,放弃高度警觉和狐疑精力,亲自验证及剖析后再判断。 2)难以复现的bug,确定bug类型,找出起因,确保满足时限要求。

February 14, 2023 · 1 min · jiezi

关于测试:Apifox-自动化测试新增流程控制条件复杂测试场景不再是问题

 Apifox 自动化测试模块新降级,在流程测试原有性能上新增了测试步骤循环、判断、等待时间的流程管制条件,以及测试步骤分组治理等能力。当业务须要多种判断时,流程管制可用于管制测试步骤的简单执行程序,更能模仿用户实在的应用场景,晋升测试人员对简单测试场景的工作效率。 循环 当测试步骤须要反复执行时,能够通过设置固定数量的无限循环来疾速实现。同时反对设置停止条件或遇错解决的逻辑判断,以保障循环能按需运行。 留神:右侧运行参数设置模块也有循环性能,但该性能是针对的是整个测试用例。 场景实例 宠物店须要在当天营业完结后,对今日售出的每个宠物进行信息查问并将「在售」状态变更为「已售出」。 假如今日售出 10 个宠物: 在底部或登录后盾步骤的右侧抉择「循环」填写循环次数为 10;在循环中增加「查问在售宠物」和「批改宠物状态」步骤; 判断 当测试流程中存在多条件判断时,能够通过增加判断条件( if )来辨别流程执行的步骤。即当配置的 if 条件满足时,该判断条件下的子步骤才会执行,相同子步骤则会被跳过或依据配置的 else 条件执行。 场景实例 宠物店须要查看目前在售宠物的查看详情次数,将次数少于 10 次的在售宠物做下架解决(if),次数大于等于 10 次进步宠物发售价格(else)。 增加「查问在售宠物」步骤;在底部的「增加步骤」处抉择「条件分支」;在 if 条件后的输入框填写申请接口失去的变量 viewed ,抉择条件为「小于」,输出比拟数值 10 ,并在 if 条件下增加「宠物下架解决」步骤。将鼠标悬浮在该条件分支操作栏会呈现「+ Else 」,点击并增加「批改宠物售价」步骤。 等待时间 当测试流程中某个步骤执行后须要期待一段时间时,能够通过设置等待时间来模仿实现。 场景实例 用户浏览某在售宠物详情,查看后感觉该宠物很可恶就给它点了个赞。 模仿用户查看宠物信息详情,浏览 1000 毫秒后,给该宠物点了个赞,宠物详情信息中的点赞数据 + 1。 在底部或查问宠物信息步骤的右侧抉择「等待时间」;填写等待时间为 1000 毫秒; 分组 当多个测试步骤存在相干分割时,能够进行归类并放入同个分组中。通过对测试步骤的分组,让测试用例具备更好的可读性和操作性。 场景实例 「查问新建宠物」、「批改宠物状态为已售出」和「查问宠物状态是否批改」步骤为以后在售宠物信息盘点的三个规范步骤,所以将这三个步骤合成一组。 在底部的「增加步骤」处抉择「分组」;在分组中增加对应的三个步骤; 全局遇错解决 当测试用例整体运行中产生谬误时,能够通过设置右侧运行参数模块的「遇到谬误时」进行解决,以保障测试用例的运行合乎预期。 目前全局遇错解决反对三种形式:疏忽、跳到下一循环、完结运行。 借助新增的自动化测试流程管制条件,测试人员就能够应用 Apifox 去实现更深层更多样的测试利用场景,帮忙晋升测试效率,缩小简单场景的测试操作。 ...

February 13, 2023 · 1 min · jiezi

关于测试:对于研发自测上线项目测试同学可以做点啥

在软件研发过程中,不可避免的存在由研发自测后上线的我的项目。在这种齐全由研发同学独立实现开发、测试、公布上线的我的项目,测试同学能够提前为研发同学做点啥? 咱们算法测试团队,提出了四步曲的构想: 第一步:定规范定规范,即明确可研发自测上线的范畴。业界对研发自测的规范十分多,咱们倡议遵循以下三个维度来制订: 影响面对外围链路有影响,则测试染指对公司外围业务有影响,则测试染指复杂度波及简单链路或简单逻辑,则测试染指难以通过现有的简略测试伎俩来测试,则测试染指波及架构变更(如技术计划降级、利用性能拆分等等),则测试染指工作量研发投入时长 >= X人/日(X由各个公司自行定义),则测试染指不满足上述三个维度规范的我的项目,能够思考研发自测上线。 第二步:赋能赋能,指帮忙研发做好自测。咱们从研发自测整个施行过程来看,能够做哪些赋能动作: 测试筹备:1.测试数据筹备:对于聚焦在具体模块或利用的研发同学而言,上下游测试数据筹备,是妨碍研发同学做好自测的一大痛点。因而: 能够看下测试工具是否齐备,如是否有一站式造数平台——数据工厂,数据Mock平台等数据筹备工具;咱们能够再往前走一步,看看是否能将上述的平台能力进一步封装成简略易用的组件,研发同学只须要点一下组件,就能生成所须要的测试数据。2.测试环境筹备:测试环境稳定性,是妨碍研发进行自测的第二大痛点。时不时的环境异常,会给测试后果带来十分多的噪声,升高研发自测的积极性。因而: 是否有独立的联调环境,在该环境下可独立部署利用依赖的上下游服务,通过容器化形式一键拉起部署,用完主动回收;咱们还能够再往前走一步,为研发做好平台应用培训,踊跃推广好的实际案例。(历史教训表明,人都是有惰性的,即便再好的工具,也可能不被发现)3.测试场景筹备:上下游全链路的测试场景设计,往往是研发同学的盲区,对上下游的不理解,使得他们无奈确定该做哪些测试动作。而具备全局视线的测试同学,天生具备为研发提供外围链路测试场景的条件。因而: 为研发同学提供一套最小合集的主流程外围测试场景。须要咱们努力提高测试场景的可读性和可执行性。升高研发同学的执行老本,能力最大化的实现自测场景的笼罩占比。否则,再欠缺的用例集,也只能用来看!测试施行:1.进步测试施行效率:人都是有惰性的,如果一个测试场景的测试施行过程须要经验:测试环境搭建,测试数据筹备,mock接口筹备,测试步骤一一操作,逐渐查看后果反馈等。我置信,这个过程曾经劝退了很多人。因而,咱们须要秉承: 能自动化施行的,均提供自动化的能力。比方研发在提交代码后,主动触发自动化测试执行流水线:环境搭建->数据筹备->测试场景自动化执行->测试后果主动汇总。能做能力聚合的,均依附平台化建设,将能力聚合在一起。比方,测试施行不仅仅蕴含用例场景的自动化测试,还蕴含简单的业务成果评测、性能压测、故障演练等测试类型。如果可能依靠平台化,为研发输入一站式的测试能力集,由其自行组合,自行测试施行。2.关注后果反馈的3大要求: 反馈时效性:测试后果的反馈,时效性十分重要,漫长的期待不仅升高过程效率,也会消磨人的积极性。因而,对于高频的测试项,如场景的自动化测试会约定10分钟内给后果。而对于绝对低频的测试项,如业务成果评估,稳定性测试则可适当缩短。反馈指标完整性:测试后果反馈须要展示哪些指标项,须要由测试同学来制订规范,从而实现无论哪个研发自测,都能按图索骥的操作,输入合格的自测过程与论断。反馈内容可靠性:因为测试施行过程中的各种不可控因素十分多,因而测试后果中会混入噪声。如何升高噪声,个别有2个方向: 及时保护测试相干组件的有效性(如上文提到的各种技术能力,测试场景等)依靠技术能力,主动筛选噪声和局部解决噪声。而后通过平台的交互设计升高噪声烦扰。第三步:可管控可管控,指在上线前可能掂量测试成果和布局公布过程,在上线过程中可能发现品质危险,在上线后可能监控线上品质。比方: 1.公布打算:通过公布打算的设计,来满足对测试成果和公布施行步骤的查看。个别公布打算会涵盖如下内容: 公布需要阐明(体现需要、变更范畴、影响范畴、代码阐明等)测试报告及论断(测试成果查看,具体指标项,在此不做扩大)配置变更阐明及查看论断(涵盖权限,动态、动静配置,网关,数据库,缓存,音讯,埋点等)依赖关系阐明及查看论断(上下游调用关系,业务链路等)公布计划及步骤阐明(灰度计划,监控计划,应急计划,公布工夫等)2.变更三板斧:依赖公司的变更三板斧,实现: 可观测:是否可进行观测(监控)且确认变更胜利可灰度:是否能够进行灰度公布(利用公布,配置变更等均需反对)可应急:是否有应急预案(降级,限流,回滚等),且可施行失效第四步:营造气氛营造气氛指测试本身的工作气氛和测试与研发单干的工作气氛两个层面: 测试本身:在平时的工作中,须要造成重视效力晋升的气氛。被动将反复的、手动的测试工作,往工具化上积淀,往平台化上拓展。将测试能力变成可输入的平台化能力,赋能给其余角色。测试研发单干上:对于研发自测的我的项目,测试同学千万不能认为交给研发负责上线品质了,就能够不管不顾。咱们仍然须要做到:服务好过程,跟踪好后果,跟进好问题。营造谐和融洽的单干气氛,帮忙研发做好自测,就是帮忙测试本身,帮忙产品最终胜利。(本文作者:陈震) 本文系哈啰技术团队出品,未经许可,不得进行商业性转载或者应用。非商业目标转载或应用本文内容,敬请注明“内容转载自哈啰技术团队”。

February 7, 2023 · 1 min · jiezi

关于测试:一张图看懂CodeArts-TestPlan-5大特性带你玩转测试服务

华为云CodeArts TestPlan测试设计是华为产品质量的守护神。华为云CodeArts TestPlan提供多维度测试设计模板、“需要-场景-测试点-测试用例” 四层测试合成设计能力,启发测试人员发散性思维,对我的项目环境、测试对象、质量标准、测试技术充沛挖掘,充沛交互,测试笼罩清晰可视。同时华为云CodeArts TestPlan的测试设计,在华为公司外部曾经宽泛应用,笼罩10+产品线,约60w脑图,撑持4万多华为测试人员作业。上面将为大家揭秘华为云CodeArts TestPlan测试设计服务!咱们一起模仿设计一个简略的需要“用户商城注册”,体验测试设计的流程。

February 6, 2023 · 1 min · jiezi

关于测试:Eolink神技之一基于数据库智能生成API文档

Eolink数据库智能API文档解决的问题数据库脚本测试,是在咱们CMMI3项目管理中比拟重要的一个步骤,须要依据业务逻辑进行残缺的sql功能测试,其实很多的时候作为DBA也是很麻烦的创立一堆的文档来记录,特地是在执行批量脚本的时候麻烦的很,那么,咱们能够应用Eolink的这个性能来记录、测试、导入导出 API ,这样对于DBA来说就会节约很多的工夫以及免掉整个文档解决的麻烦事件。 并且能够在移交测试人员的过程中更为顺利。 演示流程1、环境筹备 2、数据库与数据表的筹备 3、引入MySQL数据库 4、创立测试用例 5、实现CRUD测试 一、环境筹备这个步骤中咱们次要筹备Eolink的环境以及MySQL的环境,MySQL的环境我应用的是阿里的数据库,缴费工夫还有800多天,这两年测试用我这个数据库就行。收费提供。 演示步骤 1、Eolink环境筹备 2、数据库测试环境 3、创立测试数据库与表 1、Eolink环境Eolink官网地址:Eolink-一站式API开发合作平台 一键Next式的装置,装置实现后倡议应用微信登录,很不便。 2、数据库测试环境:阿里的ECS:MySQL数据库5.7.32-log版本 rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com能够间接测试应用。我用于教学的。 1 userName:qwe840300023 pwd:Qwe8403000截止日期到将来的823天,释怀测试。 3、创立测试数据库与表数据库名称 eolink_test1 create datebase eolink_test; 建表语句 1 CREATE TABLE `eolink_mysql_api` (2 `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '编号' ,3 `createDate` datetime NOT NULL COMMENT '创立工夫' ,4 `modifyDate` datetime NOT NULL COMMENT '批改工夫' ,5 `phone` varchar(20) NOT NULL COMMENT '手机号' ,6 `userName` varchar(20) NOT NULL ,7 `pwd` varchar(200) NOT NULL COMMENT '加密形式不定义故而写200' ,8 `introduce` varchar(200) NOT NULL COMMENT '简介' ,9 PRIMARY KEY (`id`),10 UNIQUE INDEX `only_phone` (`phone`) USING BTREE 11 )12 COMMENT='测试Eolink的数据表'13 ; ...

February 1, 2023 · 2 min · jiezi

关于测试:SAST静态应用安全测试

SAST,Static Application Security Testing,即动态利用平安测试,也叫动态剖析,是一种测试方法,始终是应用程序安全性工作的外围局部。依据Forrester的 The State Of Application Security, 2022一文的预测,利用安全性的缺失将依然是最常见的内部攻击方式,因而SAST将会在可预感的将来始终被器重。 什么是SASTStatic Application Security Testing,动态利用平安测试,是一种白盒测试,也是以后正在应用中的最成熟的应用程序平安测试方法之一。不必运行组件,在编译代码阶段之前,SAST能够通过剖析源代码来发现一些容易让利用受到攻打的安全漏洞。 而Gartner对SAST的定义则是:“一组用来批示安全漏洞状况,设计用来剖析应用程序在编码和设计阶段下源代码,字节码,二进制的技术”。 “a set of technologies designed to analyze application source code, byte code and binaries for coding and design conditions that are indicative of security vulnerabilities.” 为什么须要SAST依据Forrester一项针对平安专业人士的调查报告显示,在2022年,近三分之二的内部攻打是通过web应用程序(32%)或利用软件破绽(35%)进行的。 而SAST能够让开发人员检测到源代码中的安全漏洞或弱点,帮忙研发团队恪守某要求或规定(比方PCI/DSS),更好地了解软件里存在的危险;能够说,SAST成为了升高软件危险第一步的工具,曾经成为应用程序平安测试工具的代名词。也因为如此,如果咱们真的想确保软件的平安,理解SAST是如何运作的就至关重要。 须要留神的是,为了更好的达到上述的成果,定期在利用上(比方每月/每天)、每次有新增代码或合入代码的时候运行咱们的SAST工具就十分有必要。 SAST如何运作?正如SAST 动态利用平安测试这名字明面上代表的意思一样,它能够在不运行代码(静止状态)的状况下,在软件开发生命周期 (SDLC) 的晚期阶段进行动态代码的扫描;通常SAST是在开发的编码和测试阶段被应用,会被集成在CI阶段甚至IDE编辑器中。 SAST的扫描是基于一组预先确定的规定(这些规定定义了源码中须要评估和解决的编码谬误)的,SAST扫描能够被设计用来辨认一些常见的安全漏洞,比方SQL注入,输出验证,堆栈缓冲区溢出等。 SAST的劣势与有余SAST作为一种优良的应用程序平安工具,如果操作切当,它对组织的利用安全策略就会至关重要。将SAST集成到SDLC中提供了以下益处: 劣势做到平安左移。将平安测试集成到软件开发的晚期阶段是一项重要的实际,SAST能够帮忙安全性测试提前进行,在设计阶段发现代码中的破绽,修复相干平安问题;这么做的益处的是,为企业组织大大减少在邻近公布日期阶段或则更迟的阶段才去解决平安问题的代价。确保编码平安。SAST能够轻松检测出一些简略的编码谬误而导致的缺点,从而帮忙开发团队能够恪守平安编码标准和最佳实际。检测常见破绽。自动化的SAST工具能够轻松并高效地检测出常见的安全漏洞比方换粗去溢出,SQL注入,跨站点脚本编写等问题。更加易于应用。古代利用程序开发环境下,SAST与DevOps环境和CI/CD管道集成在了一起,更加高效、不便、易于应用;这样开发团队不须要再独自配置或额定进行触发扫描,也就是说团队不必来到开发环境就能够扫描、查看、修复平安问题。CWE全面笼罩。业界SAST工具提供的检测笼罩了多种CWE缺点,包含各种平台和框架上开发的桌面、web和挪动应用程序,并反对多种不同的编程语言和编程框架。扫描高效。研发团队在理论研发过程中,会更重视效率,一款高效的SAST工具能够让团队更快取得须要的后果。 有余笼罩不了所有的破绽。因为是在代码未运行的状况上来测试,无奈笼罩运行时问题或则配置问题;对于访问控制,身份验证或则加密之类的场景也测不出。误报率高。SAST的扫描后果会蕴含大量误报,须要研发团队手动去排查和屏蔽,会消耗团队大量工夫。更重大的是,有时候团队会要求强制清零破绽,误报得不到器重,就会始终存在。耗时。对于一些大型的我的项目,因为代码仓过大一次扫描可能要花费好几个小时;而SAST的扫描后果因为只是指出潜在的破绽,还须要研发团队验证是否的确是隐患 选取SAST工具的掂量因素理论研发我的项目中,不同的我的项目、大型的我的项目会或多或少波及到不同的开发语言,技术框架,承载平台。而市场上又充斥着大量的SAST产品,很多又会与额定的解决方案捆绑在一起,那么如何选取最无效的SAST工具来达到高效执行的目标呢,有如下几个因素能够思考: 反对语言:确保抉择的SAST工具笼罩了咱们以后我的项目所应用的编程语言破绽笼罩:确保抉择的SAST工具笼罩了全面的支流的应用程序安全漏洞准确性:确保抉择的SAST工具误报率低兼容性:确保抉择的SAST工具兼容以后我的项目所应用的技术框架,也反对集成到SDLC中IDE集成:确保抉择的SAST工具能够集成到IDE中,反对实时查看扩展性:确保抉择的SAST工具易于扩大,反对自定义规定如何施行、部署SAST到我的项目中呢如何将抉择的SAST解决方案部署、施行进来呢,须要以下这些步骤: 抉择部署形式:咱们须要依据我的项目理论性质决定将SAST部署在本地还是云端环境里;这一决定取决于咱们心愿对SAST工具有多大的控制权,工具运行和扩大的速度、容易水平。配置并集成到SDLC中:咱们须要依据我的项目何时以及如何扫描剖析代码来决定;咱们能够抉择如下4种形式中的一种:编译代码时剖析;将新增代码合并到代码库时扫描;在CI/CD管道中增加;在IDE中运行SAST能够实时进行查看。决定扫描剖析的范畴。咱们能够抉择如下几种:残缺:对应用程序及其全量代码的扫描是最全面也是最耗时的过程增量:仅扫描新增或更改的代码桌面:代码编写阶段进行扫描剖析,实时解决问题不必构建:对于不相熟构建过程或IDE的人员,在源码中进行剖析自定义来满足需要:团队必定心愿能够缩小误报,自定义新规定,批改现有规定,以满足能够更全面地辨认平安缺点的需要。兴许还心愿能够自定义用于剖析扫描的仪表盘或则构建自定义的报告。优先利用和后果:依据团队思考因素的重要级来对利用和后果进行优先级排序,思考因素包含听从性问题、威逼重大水平、CWE破绽、破绽状态、危险级别和责任。剖析后果,跟踪停顿,评估紧迫性:评估查看扫描后果以排除误报;建设一个零碎,能够主动将问题发送、调配给负责的开发人员,让他们去解决。报告和治理:研发团队要利用好工具内置的报告工具,或则做到能够将数据推送到咱们已有的报告工具里,做好数据的剖析与治理。 参考链接https://www.mend.io/resources...https://www.synopsys.com/zh-c...

January 18, 2023 · 1 min · jiezi

关于测试:易用性测试小结

1 易用性测试定义软件应用起来是否不便,是否简单明了达到用户要求;侠义的易用性通常的也指的是界面测试。但狭义易用性还指硬件外观、按钮、菜单等操作的方便性;易用性也可蕴含:用户钻研、交互设计、界面设计;易用性是交互的适应性、功能性和有效性的集中体现;GB/T16260-2003(ISO 9126-2001) 《软件工程 产品质量》品质模型中,提出易用性蕴含易了解性、易学习性和易操作性;即易用性是指在指定条件下应用时,软件产品被了解、学习、应用和吸引用户的能力。2 测试内容个性测试易了解性易了解性测试易学性易学性测试易操作性易操作性测试吸引性吸引性测试依从性依从性测试 2.1 易了解性测试软件的构造、性能、向导、逻辑、概念、利用范畴、接口等难易水平;更多的是指文档内容易于了解;比方宣传材料长篇累牍,性能名称、图标、提示信息等应该间接明了,没有歧义;比方使用手册应多是站在用户角度便于了解和易于操作。2.2 易学性测试用户应用软件或产品的容易水平;所有与用户无关的文档内容都应该具体、构造清晰、语言精确;软件或产品自身易学,菜单选项很容易找到,个别菜单不要超过三级,各图标含意明确、简略易懂,操作步骤向导解释分明、易懂,产品自身具备很好的引导性。2.3 易操作性测试用户操作和运行管制产品难易水平;要求人机界面敌对、界面设计科学合理、操作简略等;间接依据窗口提醒进行应用,毋庸过多地参考应用说明书和加入培训。2.4 易吸引性测试用户第一次接触产品时,对产品的青睐水平;体现为产品的外观或软件的界面设计方面。2.5 依从性测试产品依附于同易用性相干的规范、约定、格调指南或规定的能力;产品的易用性应该恪守国家零碎与易用性的规范,这是最根本的要求;也有企业规范等。3 测试方法动态测试;动静测试;动静和动态联合测试。4 遵循的准则4.1 按钮类罕用按钮反对快捷操作;雷同活相近性能按钮用同一个Frame;默认按钮反对Enter;按钮大小、地位和布局协调。4.2 元素类同一性能的元素集中搁置,缩小鼠标挪动;元素尽量惟一标识,防止改变较多。4.3 界面类界面可按性能划分为局域块,用Frame 框起来;界面反对Tab键的主动切换;界面上首先输出的信息,应放在窗口上较醒目的地位;同一界面上的控件数最好不要超过10 个,大于10个分页显示;分页界面反对快捷操作,如Ctrl+Tab;界面输出重复性高的状况,该界面应全面反对键盘操作。4.4 控件类可输出控件检测到非法输出后应给出阐明信息;可输出控件主动取得焦点;复选框和选项框按抉择几率的高底先后排列;复选框和选项框要有默认选项;界面空间较小时应用下拉框而不必选项框;5 易用性度量具体参考GB/T 16260-2006,举例比方: 6 举荐浏览易用性测试方法摸索 :https://www.sohu.com/a/273422422_771850;易用性测试:https://blog.csdn.net/ziyun_xiaoyan/article/details/54933650;界面测试和易用性测试:https://blog.csdn.net/yang_yang_heng/article/details/107874779?spm=1001.2101.3001.6650.15&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-15.pc_relevant_paycolumn_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-15.pc_relevant_paycolumn_v2&utm_relevant_index=20

January 18, 2023 · 1 min · jiezi

关于测试:测试基础之软件测试的原则概述

1 测试要站在用户的角度这个不难理解,咱们所有测试流动应该站在用户角度思考;比方为什么会有测试思维和开发思维,这两个是有本质区别的;简略说,什么是用户的角度?①最起码软件测试要依据用户需要来测试,要发现软件是否满足用户的需要;②站在用户的视角,扫视软件的易用性和好看性;③站在用户的视角,思考软件的应用的应用场景;④站在用户的视角,软件是否具备弱小的应用粘性等;⑤站在用户的视角,软件如何体现能力为用户带来更大的利润。当然还有很多。。。能够这么说,把产品和软件“当本人儿子”看待!!!你会怎么做!!??概括说:测试工作应该建设在满足客户需要的根底上,如果产品最终不能满足用户需要,那么开发、测试的投入都是徒劳的。2 软件测试要尽早进行场景1: 软件版本转测了,开始筹备打算,设计用例等等,是不是有点迟了?场景2: 在需要评审阶段,提出测试的要求,可测试性剖析等,这样是不是会好点呢?咱们简略看下场景1和2,不难发现,必定场景2会好点,为啥?概括说:软件的谬误存在于软件生命周期的各个阶段,因而应该尽早发展测试工作,把软件测试贯通到软件生命周期的各个阶段中,这样测试人员可能尽早地发现和预防谬误,升高谬误修复的老本。尽早地发展测试工作有利于帮忙测试人员理解软件产品的需要和设计,从而预测测试的难度和危险,制订出欠缺的打算和计划,进步测试的效率。3 穷尽测试是不可能的我的项目今天上线,仍有一大堆性能未测试,怎么办? 场景1:加班加点,全副功能测试。场景2:划优先级,重点测试。你更偏向哪个?其实,软件测试自身就是有危险的,不论是抉择那种形式,都不可能保障软件是OK的,但因为测试的数据量大,工夫短等起因,咱们又不能进行穷举测试,所以咱们抉择场景2会好点。 概括说:因为工夫和资源的限度,进行齐全(各种输出和输入的全副组合)的测试是不可能的测试人员能够依据测试的危险和优先级等确定测试的侧重点,从而管制测试的工作量,在测试老本、危险和收益之间求得均衡。4 遵循GoodEnough准则说实话,我当初也不怎们了解这是啥,根本意思就是:既不要做过多测试,也不做不充沛的测试。概括说: 测试的投入与产出要适当衡量,造成充沛的品质评估过程,这个过程建设在测试破费的代价之上。测试不充沛无奈保障软件产品的品质,但测试投入过多会造成资源的节约。可通过需要剖析和危险剖析找到测试侧重点,制订最低测试通过规范和内容,再进行具体问题具体分析。做到适当测试。5 测试缺点要合乎“二八”定理也称为Pareto准则、缺点集群效应;个别状况,软件80%缺点会集中在20%模块中,缺点并不是均匀散布的。因而在测试时,要抓住主要矛盾,如果发现某些模块比其余模块具备更多的缺点,则要投入更多的人力、精力重点测试这些模块以进步测试效率;6 防止缺点免疫简略用个词语来形容下“抗药性”,因为测试人员对软件越来越相熟,可能会疏忽一些细小的问题,导致发现问题的能力降落;同一类或同一个测试用例被重复执行,可能导致发现问题的品质也会降落;以上景象也被称为“杀虫剂”景象。改善思路是要及时更新测试用例和防止造成思维定势。7 分阶段测试这个其实如果是有欠缺的测试流程的话,根本都会进行分阶段测试,比方单元测试,集成测试,零碎测试等等;8 第三方体验性测试体验的角色为非测试人员、非开发人员之外的人员;起因:测试人员可能对本人测试过的产品曾经造成思维定势,某些细节或者问题不容易发现;而软件自身就是开发人员码代码整进去的,那开发根本不会认为本人写的是有问题的。那么这个时候,如果减少第三方的体验性测试,势必能够开掘一些问题。9 并不是所有的缺点都要修复再不影响用户应用的前提下,如果软件缺陷修复的老本太大、修复工夫缓和、不值得修复等状况,是能够思考临时不修复缺点,等机会成熟了,能够思考下;还有一种状况是发现的缺点自身不属于缺点,这个就要依据具体情况来剖析了。10 模块缺点越多,暗藏危险越大如果咱们发现某个模块发现的缺点越多,那开发批改的中央可能就越多,则产生的未知危险就越大,那咱们就要重点剖析,重点投入人力进行测试。11 测试具备破坏性往往咱们应用一些正规的伎俩或者罕用的伎俩,无奈发现更多的缺点时候,咱们须要换一种思路,比方如何毁坏软件,让他的弱点出现进去,这样能力更多发现软件暗藏的问题。12 测试只能发现存在的缺点,而不能证实软件没有缺点听的最多的一句话是“这问题你都发现不了,要测试是干嘛的!!??”;哈哈,兴许你能够说“这么简略的、一键操作的工作都能写出bug,要开发是干嘛的?”开个玩笑,做测试,咱们只能说尽可能多的发现存在的、暗藏的缺点,然而咱们不能保障测试过的软件没有缺点,没有人有这个能力和实力这样说。13 测试因该要系统化、流程化针对一个被测试对象,咱们要严格进行系统化剖析,制订具体的测试计划。严格执行测试流程,充沛援用各种测试技术,系统化进行测试,而不是轻易测一下,点一下;测试也有相干的流程和制度,咱们必须遵循,不能因集体志愿独断独行。14 软件测试须要进行迭代咱们不能指望一次性就发现暗藏的问题,须要进行迭代测试,循循渐进;同时,因为缺点自身也有生命周期,如果要对缺点进行修复,可能对15 适当做回归测试每次迭代,都有可能进行回归测试,而不是只测试本版本。适当的进行回归测试可无效防止测试笼罩不全。16 测试要遵循肯定的规范做测试不是轻易测试,咱们要遵循肯定的规范;比方公司方面的、部门方面的、行业当面的等规范,进行标准化测试。17 测试之木桶原理测试只是软件产品实现过程过程中的一个环节,产品质量存在各个环节,不能说产品质量由测试来决定,只能说测试对产品质量起到推动作用。如果把软件品质全副赌在测试身上,那将是灾难性的决定。18 测试之立场一句话,做测试肯定要有【准则】,这个准则不仅指的是前边提及的所有准则,另一方面指的的是【立场】;举例:如果发现一个缺点,站在产品、用户、测试的角度,确定是一个缺点,然而开发人员认为只是本人简略的操作或者失误,不认为是缺点,通过侵犯周折后,你被开发压服了。这种状况是不容许的。①能够先把缺点进行剖析和记录,用充沛的事实和证据谈话;②向上反馈,由部门主管、项目经理、产品经理决策,本人拿不准的不能私了;③如果你100%确定是缺点,就依照缺点的解决流程来,不能因为他人的质疑而扭转本人的立场。【特地阐明】:常识来源于网络、各种材料、书本、网站等,本文仅用于学习应用,不做他用,如果波及版权问题,请分割博主删除,谢谢

January 17, 2023 · 1 min · jiezi

关于测试:测试领域专业术语整理持续更新

留神:仅以此篇文章来整顿测试畛域的专业术语,内容会一直的搜集整理以及进行纠错。(仅供参考) 更新:2020.4.3 初稿序号名词解释备注1Alpha测试在产品或软件研发过程中,由测试人员在 模仿实际操作测试环境下进行的集成和零碎测试/2Beta 测试指产品或软件在试运营或推广阶段,由前端共事或用户在理论应用环境下进行的测试。/3C/S客户端/服务器,C指的是客户端(Client),S指的是服务器端(Server)/4B/S浏览器/服务器, B指的是浏览器(Browser),S指的是服务器(Server)/5Bug/Defect(缺点)指的是软件中(包含程序和文档)不合乎用户需要的问题/6Software Testing(软件测试)应用人工或主动伎俩,来运行或测试某个零碎的过程。其目标在于测验它是否满足规定的需要或弄清预期后果与理论后果之间的差异(1983,IEEE软件工程规范术语)/7Testing Environment(TE)(测试环境)就是软件运行的平台,包含软件、硬件和网络的汇合。/8Test Case(TC)(测试用例)指的是在测试执行之前设计的一套具体的测试计划,包含测试环境、测试步骤、测试数据和预期后果。/9Black-Box Testing(黑盒测试)指的是把被测软件看作是一个黑盒子,咱们不去关怀盒子外面的构造是什么样子的,只关怀软件的输出数据和输入后果。/10White-Box Testing(白盒测试)指的是把盒子盖关上,去钻研外面的源代码和程序结构。/11Gray-Box Testing(灰盒测试)能够把它看作是黑盒测试和白盒测试的一种联合。/12Static Testing(动态测试)是指不理论运行被测软件,而只是动态地查看程序代码、界面或文档中可能存在的谬误的过程。/13Walkthrough(代码走查)动态测试的一种办法,由开发组外部进行,采纳解说、探讨和模仿运行的形式进行的查找谬误的流动。/14Inspection(代码审查)动态测试的一种办法,由开发组外部进行,采纳解说、发问并应用编码模板进行的查找谬误的流动。个别有正式的打算、流程和后果报告。/15Dynamic Testing(动静测试)是指理论运行被测程序,输出相应的测试数据,查看理论输入后果和预期后果是否相符的过程。/16Unit Testing(单元测试)是指对软件中的最小可测试单元进行检查和验证。/17Stub(桩模块)是指模仿被测模块所调用的模块。/18Driver(驱动模块)是指模仿被测模块的下级模块,驱动模块用来接管测试数据,启动被测模块,并输入后果。/19Integration Testing(集成测试)是指将通过测试的单元模块组装成零碎或子系统,在进行测试,重点测试不同模块的接口局部。/20System Testing(零碎测试)指的是将整个软件系统看作是一个整体测试,包含对性能、性能的测试,以及对软件所运行的软、硬件环境的测试。/21Acceptance Testing( 验收测试)指的是在零碎测试的前期,以用户测试为主,或有测试人员等品质保障人员独特参加的测试,它也是软件正式交给用户应用的最初一道工序。/22测试验收测试的一种,指的是由用户、测试人员、开发人员等独特参加的内部测试。/23测试验收测试的一种,指的是内测后的公测,即齐全交给最终用户测试。/24Function Testing(功能测试)是黑盒测试的一种,它查看理论软件的性能是否合乎用户的需要。/25UI Testing界面测试。/26Usability Testing( 易用性测试)是指从软件应用的合理性和方便性等角度对软件系统进行查看,来发现软件中不不便用户应用的中央。/27Installation Testing(装置测试)这里的装置测试是指狭义上的,包含装置、卸载。/28Compatibility Testing(兼容性测试)兼容性测试包含硬件兼容性测试和软件兼容性测试;硬件兼容性次要是指软件运行的不同硬件平台的兼容性,如PC机、笔记本、服务器等;软件兼容性次要是指软件运行在不同操作系统等软件平台上的兼容性。/29Performance Testing(性能测试)是指对软件的运行反馈速度、所耗费系统资源等各种性能指标的测试。/30Reliability Testing (可靠性测试)也叫稳定性测试,是指间断运行被测系统,查看零碎运行时的稳固水平。人们通常用MTBF(Mean Time Between Failure)来掂量零碎的稳定性,MTBF越大,零碎的稳定性越强。/31Load Testing( 负载测试)是性能测试的一种,通常是指被测系统在其能忍耐的压力<极限范畴之内间断运行>,来测试零碎的稳定性。/32Stress Testing( 压力测试)是性能测试的一种,通常是指继续<一直地>给被测系统减少压力,直到将被测系统<压跨为止>,用来测试零碎所能接受的最大压力。/33Regression Testing(回归测试)是指对软件的新版本测试时,反复执行上一个版本测试时的用例。/34Smoke Testing(冒烟测试)又名:ad-hoc,是指在对一个新版本进行零碎大规模地测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。/35Random Testing(随机测试)是指测试中所有的输出数据都是随机生成的,其目标是模仿用户的实在操作,并发现一些边缘性的谬误。/36Valid Equivalence Class( 无效等价类)是指合乎《需要规格说明书》,正当地输出数据汇合。/37Invalid Equivalence Class(有效等价类)是指不合乎《需要规格说明书》,无意义地输出数据汇合。/38Software Life Cycle(软件生命周期)是指软件开发和测试全副过程、流动和工作的构造框架,是从可行性研究到需要剖析、软件设计、编码、测试、软件公布保护的过程。/39Black-Box Testing Tools(黑盒测试工具)是指测试性能或性能的工具/40White-Box Testing tools(白盒测试工具)是指测试软件的源代码的工具。/41Testing Management Tools( 测试管理工具)是指治理整个测试流程的工具,次要性能有测试计划的治理、测试用例的治理、缺点跟踪、测试报告治理等,个别贯通于整个软件生命周期。/42我的项目均匀转测次数转测总数与我的项目总数比值/43版本均匀缺点密度缺点总数与转测版本数比值/44重大缺点占比重大以上缺点与缺点总数比值/45有效版本占比有效版本数与转测版本总数比值/46从新关上缺点占比从新关上缺点数与缺点总数比值/

January 11, 2023 · 1 min · jiezi

关于测试:测试用例设计之业务流程分析法

@TOC 一.业务流程分析法简介业务流程测试用例编写准则以需要剖析中的流程图做为编写测试用例的模型,保持“测试驱动开发,用例领导后果,数据记录变动”的准则,灵便应用不同的办法制订测试用例。 二.业务流程分析法分类应用 流程分析法次要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,是从白盒测试设计办法中的门路笼罩分析法借鉴过去的一种很重要的办法。在白盒测试中,门路就是指函数代码的某个分支组合,门路笼罩法须要结构足够的用例笼罩函数的所有代码门路。在黑盒测试中,若将软件系统的某个流程看成门路的话,则能够针对该门路应用路径分析的办法设计测试用例。 三.业务流程分析法益处升高测试用例设计的难度。即只有分明程序流程、看懂程序流程图,就能够设计出品质较高的测试用例;是在测试资源缓和的状况下,能够据此有抉择的执行测试用例,而非全副依附教训做取舍。四.业务流程分析法设计思路在业务流程的剖析上,咱们应该失去以下信息: 1)零碎的主流程是什么 2)条件备选流程是什么 3)数据流向是什么 4)要害的判断条件是什么 五.业务流程分析法施行步骤步骤1:画出业务流程图;步骤2:定义状态节点和条件分支;步骤3:确定测试门路;步骤4:选取测试数据,结构测试用例。 六.举例说明6.1需要应用ATM机取款 6.2剖析6.2.1测试需要剖析a)用户向ATM取款机中插入银行卡,若银行卡非法,取款机提醒用户输出明码;若插入有效银行卡,取款机提醒用户“银行卡有效”,并主动退卡。b)用户输出银行卡明码,取款机将明码传至银行主机进行校验。若明码正确,取款机提醒用户输出取款金额,提示信息:“请输出取款金额:”若明码谬误,取款机提醒用户:“明码谬误!”,并退回输出明码界面。当三次输出明码谬误时,主动退卡,锁卡。提醒:“明码谬误,明码输出次数超限!”。c)用户输出取款金额,零碎校验金额正确。即取款机余款大于用户取款金额。提醒:“请确认取款金额为XX!”。用户按下确认键,确认取款XX。若用户输出取款金额不正确,提醒:“输出谬误!”。此处为剖析不便疏忽输出取款金额谬误的各种状况下的异样流程解决,升高剖析的复杂度。d)零碎同步银行主机,点钞票,输入给用户并减去用户卡中相应数目的贷款金额。若卡内余额小于用户取款金额,则提醒:“余额有余!”,并退回输出取款金额界面。若取款机与银行主机通信超时、通信中断、传输谬误等状况,提醒:“连贯超时,本次操作勾销”。若主机曾经做了数据库操作,减去了用户贷款余额,则要做回退操作。e)用户取款,银行卡退卡。用户插入银行卡。取款机复原初始界面。失常取款操作完结。若用户未按时拿走取出的钱款、用户未按时插入银行卡,则取款机做相应异样解决操作。 6.2.2测试设计办法剖析(流程分析法)依据需要,画出业务流程图,如下: 定义状态节点和条件分支:下面的业务流程图中,只形容失常流程-取款胜利的状况。异样流程未做形容,是为了剖析不便,理论中异样流程必须在业务流程图中形容分明状态、分支等。 6.2.3用例设计(确定测试门路)需要形容及流程图中,ATM取款机的提示信息对应于测试用例中的预期输入局部,用户的操作对应测试用例中的测试步骤局部。准则是一条无效门路应用一个测试用例笼罩。根据业务流程图确定测试门路,即须要测试的业务流程。其次要蕴含三个方面:a)失常流程,取款胜利(根本流程):对应一次性取款胜利;b)异样流程,取款失败(分支流程):对应取款失败,包含退卡、吞卡;c)异样流程,取款胜利(循环流程):对应取款两头出现意外,比方明码输出谬误,然而最终胜利取钱的状况。 6.3用例具体(选取测试数据,结构测试用例)依据上一步确定的测试门路,写出用例具体。具体略。 七.总结流程分析法实用于有先后顺序的测试。罕用于业务流程测试、装置流程测试等。流程分析法重点在于测试流程。因而,个别每个流程用一个测试用例验证。然而,流程测试没有问题并不能阐明零碎性能没有问题,还须要针对单步性能进行测试。对于蕴含简单流程的零碎,只有性能点和解决流程都进行测试笼罩,才算是比拟充沛的测试。

January 11, 2023 · 1 min · jiezi

关于测试:精准测试之覆盖

作者:京东工业 宛煜昕测试的笼罩通常是指需要范畴的执行水平,如需要、测试用例、缺点的正向与逆向的双向追溯。便于对其相干属性的度量,即应用了覆盖率。 一、覆盖率与测试策略覆盖率是度量测试完整性的一个伎俩,是测试有效性的一个度量。测试笼罩是对测试齐全水平的评测。 测试策略按测试过程个别分为单元测试、集成测试、零碎测试和验收测试四大阶段;按软件外部工作过程又有白盒、灰盒、黑盒;从过程是否执行软件又可将测试方法分为动态和动静。这样白盒测试对应着软件测试过程中的单元测试,个别由开发人员实现,而灰盒测试与黑盒测试个别测试人员染指较多,对应着集成测试、零碎测试和验收测试。 二、覆盖率的根本利用测试时放心之一就是无止境的、没有范畴的,比方代码的改变或调整一个需要,须要全量回归测试,影响范畴不分明,某个性能或性能点是否须要测试,测试的水平如何不分明等等的问题。 举个例子:需要是查问id与展现id相干数据的性能,进一步剖析要做(开发)id输入框,【查问】按钮,显示的列表,波及1个查问接口(HTTP),查库(数据库)的话,须要1条SQL语句。 开发后失去前端id输入框,【查问】按钮和后果列表, 后端是通过一个查询方法调到数据库失去数据,显示在前端页面。 利用测试覆盖率 1、建设测试范畴,这里简略些了,只是性能的 模块/性能性能点查问输入框查问查问按钮后果列表显示后果列表2、需要剖析、用例设计、执行、提bug等,就是执行测试的过程 3、失去功能测试的后果 模块/性能性能点测试后果查问输入框测试通过查问查问按钮测试通过后果列表显示后果列表测试通过这么看上去没什么问题,双相的追溯(需要、用例、缺点)曾经是全笼罩了,那怕在算上接口,但也仅仅是性能上的笼罩,实则缺失了对代码等层面上的笼罩, 比方:代码中要有对查问id的判断,这里可能会有所脱漏,因为仅从性能或黑盒测试来讲,不晓得这个判断是否执行。 这时测试笼罩是要由测试需要和测试用例的笼罩或已执行代码的笼罩示意。建设在对测试后果的评估和对测试过程中确定的变更申请(缺点)的剖析的根底上。 在"2、需要剖析、用例设计、执行、提bug等,就是执行测试的过程"要染指代码覆盖率的工具,补救这一缺失,覆盖率的表格也须要优化下。 后边的类、办法的覆盖率能够依据状况不同自行获取 性能/模块性能点HTTP接口类型HTTP接口类名办法名覆盖率测试后果查问输入框无无无无100%测试通过查问查问按钮POST/api/queryByIdqueryqueryById100%测试通过后果列表显示后果列表POST/api/resultsqueryresults100%测试通过覆盖率的计算由浅入深来说个别从性能、性能点、接口、代码中类、办法等失去,如:两个性能、三个性能点,以性能点为笼罩,覆盖率公式为(至多执行一次的性能点 / 性能点总数) 100% = (1 / 1)100%,查问按钮的覆盖率为100% 注:测试后果是否通过,不单是看覆盖率,还要通过测试用例的执行,缺点的敞开等状况来决定。 三、可视化零碎通过齐全手工绘制曾经有了初步概念,思考些许状况,这种曾经不能满足于此。 面对简单的业务零碎,教训曾经把业务性能、逻辑关系等相干知识点深深的印在当事人的脑子里,而要积淀、展现于旁人,这就是一个让人很头疼的问题,就像通知一个人从哪里到哪里一样,讲的人分明,但听得人却有些一头雾水,此时如果有个地图就高深莫测了。 通过一些维度的图形展现,谁都能够直观、更好的加深对系统的理解。"知识库"中保留着波及到的性能、接口等信息。简略实现,当初有了共享表格,能够间接保护下来,模式是哪种并不重要,次要是把握了办法。 链路关系像这样,业务零碎-页面-性能-接口-代码(拓扑图),业务零碎-页面-性能-接口-架构(拓扑图)。 ·性能层面实现形式上比方能够像文件目录那样实现一颗树,某个页面下有哪些性能,性能中有哪些接口,而接口中有代码的类、办法及覆盖率等信息。 或者能够采纳相似常识图谱来构建一个结构化的语义知识库,页面、性能、接口信息,可视为实体-节点,而彼此间的关系既是连贯的线。或者接口信息也可看做是属性值。 ·代码层面从接口上来就到了代码层面,能够看到代码的关系拓扑图 这里不仅能看到单个接口中代码和关系图,还能展现出不同接口与代码的关系 当关注到代码层面的笼罩后,益处很多,其中之一是能够更好帮忙开发进步或束缚代码品质,比方:代码中有时判断会应用常量,而不是枚举或宏/全局变量。当然也能够看到执行的代码分支,每条代码逻辑分支是否执行到。 ·架构层面通过平台获取到的数据,不仅能够做性能、代码层面的笼罩,零碎架构也可实现可视化的出现, 比方:应用服务的环境模块拓扑图 分布式调用链的拓扑图 还是用查问性能举例,有时因为一些须要,该性能下应用了缓存。当第一次查问是间接从数据库中查问回来的数据,同时也在缓存中记录了该条数据,而在肯定工夫内再查问,实则是从缓存中查问回来的。同样的,如果只笼罩了性能,这里可能会有所脱漏,从性能来看,查问后数据是返回了,而至于是从数据库还是从缓存获取到的,就不得而知了。再有是获取到的数据可能未必是想要的,奇怪的是,为什么输出/申请的数据,性能、接口都是一样的,而返回的数据在一段时间后就产生了变动。两头产生了什么不分明,真的是"黑盒子"。想要晓得SQL语句,只能吃力的从日志、代码或xml中查找,还有等等的不便问题。 除此之外,还能够展现不同接口与数据库的关系 ...

January 10, 2023 · 1 min · jiezi

关于测试:火山引擎-DataTester-智能运营帮企业实现千人千面精准营销

明天,越来越多的企业与商家把营销的眼光聚焦于线上,并一直在精细化经营和精细化流量上投入,耕耘精准营销。然而,想要做好精准营销难度不小,首要维度是客户精准,要能对客户属性有精准的判断和辨别;其次是内容精准,找到精准的客户之后,推送符合的内容给客户,符合的广告才可能感动客户。因而,不少企业和商家开始借力“数字营销自动化”工具,心愿大幅晋升营销效率和精准度。作为“数据驱动增长”的代表产品之一,火山引擎A/B测试 DataTester 近期也对营销自动化场景能力进行了降级。DataTester 产品内专门设有“智能经营”模块,提供笼罩全流程的营销自动化工具能力,反对经营人员自助发展用户的精准触达,以晋升用户经营效率。DataTester 还能在指标人群选取、触达机会设定、自动化流程疏导、多任务分流及实时成果剖析等方面,提供如下反对: 精准人群圈选:反对通过用户分群、用户属性、行为条件等多种形式圈定指标用户; 精准触达机会:可依照预设规定,由用户行为主动触发营销动作,并反对定时触达、例行触达等形式; 流程画布:可设计编排自动化流程,在用户旅程的环节中主动揭示用户,以促成用户转化; 多任务分流和赛马:在一个工作中同时应用多套内容触达用户,依据触达成果手动或主动抉择最优计划; 跨渠道触达:零碎通过 user_unique_id 将用户在各个触点的行为合并串联在一起,同时反对跨渠道触达; 实时成果监控:零碎提供推送实时数据报表帮忙经营人员监控触达成果。下文以刚过去的双11流动为例,介绍如何通过火山引擎 DataTester 智能经营晋升电商用户的下单领取转化率。信息精准触达是一种无效的市场营销伎俩,承当了召回,拉活,留存用户的性能。当然,如果用户收到过多的有效信息推送也会导致用户敞开APP推送性能。因而抉择匹配的受众、精准的指标,在适当时候做出适合的经营动作而显得尤为重要。在下方设置中,要通过 DataTester 智能经营达成的指标是:在11月11日至13日之间做一次精准信息推送。指标人群是最近30日内拜访过某商品页面、但未实现领取的人群;揭示上述人群双11流动正在进行中,能够下单购买。用户在收到推送后进入对应页面,3小时内实现领取动作则视为实现指标,计入统计数据。每位用户仅可被推送一次,不做屡次打搅。在这个智能经营环节中,DataTester反对以A/B测试的形式,同时运行不同的经营推送策略,并实时展现数据统计后果。电商企业可即刻取得数据反馈,及时调整智能经营策略,以取得更优转化率。具体流程如下:1.设置进入条件:防止同一个用户反复收到过多推送设置流程类型:在整个推送流程设置中,将流程类型设置为触发型并能够抉择「实现A未实现B」;工夫抉择:工夫范畴能够抉择从流动开始11日至13日;触发条件:因为要推动领取转化率,须要在关键步骤起作用,能够设置触发条件为实现A事件(流动页面拜访)+没有实现B事件(领取);参加限度:参加1次,即用户被推送1次后,不会被反复推送,这样能够防止用户收到过多的推送;2.圈选人群:根据推送内容匹配精准受众DataTester 反对抉择不同特色的受众。在本例中,选取了最近30天,有过产品拜访,高沉闷但没有付费的用户群体。3.指标设置:当受众实现指定动作,即为实现指标为不便指标数据统计,DataTester 反对设置用户实现转化指标的动作,如可设置进入流程后的3小时实现领取胜利动作,即视为本次推送转化胜利。4.数据分析:通过数据分析及时把握转化状况DataTester 智能经营不仅能帮忙企业提效,此外也能大幅晋升经营的智能性、敏捷性、可扩展性。作为字节跳动打磨多年的A/B测试产品,DataTester 在2020年经由火山引擎对外,它可能深度耦合举荐、广告、搜寻、UI、产品性能等多种业务场景需要,为业务增长、转化、产品迭代,策略优化,经营提效等各个环节提供迷信的决策依据,让业务真正做到数据驱动。目前,火山引擎 DataTester 曾经服务了美的、失去、凯叔讲故事等在内的上百家标杆客户,将成熟的“数据驱动增长”教训赋能给各行业。 立刻跳转 A/B测试 DataTester理解详情!

November 30, 2022 · 1 min · jiezi

关于测试:2022为峰Python全栈测试开发班V51天涯共此时

download:2022为峰Python全栈测试开发班V5.1-天涯共此时Tricks帮忙你进步调试Pytorch的效率。领导浏览好的工具和工作习惯能够大大提高工作效率。每个深度学习我的项目都不一样。无论你有多少教训,你总会遇到新的挑战和意想不到的行为。你在我的项目中应用的技能和思维形式将决定你能多快找到并解决这些妨碍你胜利的阻碍。从实用的角度来看,深度学习我的项目是从代码开始的。一开始组织起来很容易,然而随着我的项目复杂度的减少,在调试和完整性检查上破费的工夫会越来越多。令人诧异的是,很多都能够主动实现。在这篇文章中,我将通知你如何去做。 找出你的训练损失没有缩小的起因。实现主动模型验证和异样检测。应用PyTorch Lightning节俭贵重的调试工夫。招数二:记录训练数据的直方图。总是查看输出数据的范畴是很重要的。如果模型权重和数据是十分不同的量级,则在极其状况下可能导致没有或非常低的学习进度和数值不稳固。例如,当数据扩大以谬误的程序利用或遗记规范化时,就会产生这种状况。在咱们的例子中是这样吗?咱们应该可能通过打印最小值和最大值来找出答案。然而等等!这不是一个好的解决方案,因为它会不必要地净化代码,并在须要时破费太多工夫来反复它。更好的办法:写一个回调类来帮咱们做!类输出监视器(pl。回拨): def on_train_batch_start(self,trainer,pl_module,batch,batch_idx,dataloader_idx):if(batch idx+1)% trainer . log every n steps = = 0:x,y =批次logger =培训师logger . experience . add histogram(" input ",x,global step = trainer . global _ step)logger . experience . add histogram(" target ",y,global step = trainer . global _ step) 像这样应用回调:model = LitClassifier()培训师= pl。培训师(gpus = 1,回调=[InputMonitor()])trainer.fit(型号)复制代码一个简略的回调,将训练数据的直方图记录到TensorBoard。PyTorchlighting中的回调能够保留任何能够注入训练器的代码。在进入训练步骤之前,计算输出数据的直方图。将此函数封装到回调类中有以下长处: 它与你的钻研代码是离开的,没有必要批改你的LightningModule!它是可移植的,因而能够在将来的我的项目中重用,只须要批改两行代码:导入回调,而后将其传递给Trainer。能够通过子类化或者联合其余回调来扩大。 当初有了新的回调函数,咱们能够关上TensorBoard并切换到“直方图”选项卡来查看训练数据的散布: 在指标范畴[0,9]中,这是正确的,因为MNIST有一个10位的类,但图像的值在-130和-127之间,这是谬误的!咱们很快发现第41行规范化中有一个问题:转变。Normalize(128,1) #谬误的规范化复制代码这两个数字应该是输出数据(在咱们的例子中是图像中的像素)的平均值和标准差。为了解决这个问题,咱们增加了实在平均值和标准偏差,并命名了参数以使其更加清晰:转变。归一化(平均值=0.1307,标准差=0.3081)复制代码咱们能够查这些数字,因为它们是已知的。对于本人的数据集,你得本人去计算。归一化后像素的平均值为0,标准差为1,就像分类器的权重一样。咱们能够通过看TensorBoard的直方图来确认这一点。技巧3:检测正向流传中的异样在解决了标准化问题后,咱们当初也能够在TensorBoard中取得预期的直方图。惋惜损失并没有缩小。还有一个问题。我晓得数据是正确的,并且开始寻找谬误的一个好中央是网络的前向门路。一个常见的误差源是张量形态的操作,如置换、整形、视图、平坦等。,或利用于一维的操作,如softmax。当这些函数利用于谬误的大小或谬误的程序时,咱们通常会失去形态不匹配的谬误,但状况并非总是如此!这些谬误很难追踪。让咱们来看看一种能让咱们疾速检测出这些谬误的技术。 疾速查看模型是否在批处理中混合数据。想法很简略:如果咱们扭转第n个输出样本,它应该只影响第n个输入。如果其余输入i≠n也发生变化,模型就会混数据,这就不好了!施行该测试的一种牢靠办法是计算所有输出的第n个输入的梯度。对于所有i≠n的突变必须为零(以上动画中的红色),对于i = n的突变必须非零(以上动画中的绿色)。如果满足这些条件,模型就通过了测试。以下是n = 3时的实现: 用所有输出查看第n个小批量样品的梯度n = 3 1.输出批次须要梯度example_input = torch.rand(5,1,28,28,requires_grad=True) 2.通过模型运行批处理输入=模型(示例_输出) 3.计算第n个输入样本的虚构损耗并反向流传输入[n]。abs()。sum()。向后() 4.查看样本I上的梯度!= n都是零!健全性查看:如果这没有返回0,您有一个bug!i = 0example_input.grad[i]。abs()。sum()。我的项目()复制代码上面是同样的闪电回调:类CheckBatchGradient(pl。回拨): ...

October 28, 2022 · 1 min · jiezi

关于测试:大厂被裁疫情之下一个offer都没测试人如何破局

“哎,兄弟们,昨天我被裁了,收到这个信息的时候我整个震惊住了!” “我始终认为被裁这个事离我很远,直到明天被Hr叫入办公室,让我筹备拾掇一下货色,来到公司,公司该抵偿的肯定会抵偿。我才意识到我被裁了!” 最近,你是不是常常看到下面这样被裁的视频或者新闻?你是不是也会放心本人的工作不稳固,会不会哪天忽然告诉被裁? 听我一句劝,少看一些这样的视频或者新闻,这只会减少你的焦虑。 我想问咱们大家一个问题:裁员这个事,是往年才有的吗,是当初才有的吗?还是说始终都有? 答案很显著,是始终都有!那为啥当初感觉被放大化了,仿佛很多公司都在裁员呢。其实并不是很多的公司都在裁员,而是随着信息化时代的到来,大家都会把本人身边产生的一些事件分享进去。所以咱们就会很快的看到这样的事件,获取到这些信息。但其实,每个时候都会有被裁的人员,只是以前大家都只是默默地藏在心里,也就没有多少人晓得了。当初,大家都很乐意在网上去分享本人的生存和工作,一有点事件也就很快的被网上的小伙伴晓得。 所以要正视这些信息,而不是让它们减少本人的焦虑。 是不是只有大厂被裁?是不是只有互联网被裁? No!其实并不是只有大厂或者互联网裁人,其实各行各业都会有。只不过互联网这几年倒退的十分迅速,规模绝对也比拟宏大,而且关注的人也比拟多,所以会给人一种错觉是不是只有互联网才会裁人。其实我身边也有做别的行业的敌人,他们的公司也会有裁人的状况,不过比照互联网行业的员工,可能其它行业的人更不善于去分享本人工作上的事件,也就没有多少人关注了。 所以,对于大厂被裁这些事件,咱们应该以另一种角度来剖析和对待。 还有,记住一点,被裁的永远是工作能力不行的,如果你足够优良,公司也不会乐意失去一个优良的员工,而且,只有你足够优良,哪怕是被裁了,也会很快找到对口的工作。 最近疫情重复呈现,进来找工作一个offer也没有? 你是不是感觉最近找工作很有力,投了很多公司,却很少面试的机会?如果你有遇到这些问题,那肯定要往下看。 首先,疫情它不是始终存在的,它最终会隐没在将来的某一天。所以不要被疫情给困住了。 其次,在这种情景下,其实互联网行业影响绝对较小,你去看看实体行业,那个影响才是更大的。你看看你周边敞开的门店。但疫情总有一天是会隐没的,最终还是会回归失常。咱们不能因为当初遇到的一些挫折就狐疑本人,或者放弃本人。 另外,当初的环境下,测试人的机会多吗? 我放一些求职网上的一些招聘信息大家看看: 截图一 截图二 截图三 (以上图片来自于拉勾网) 下面是我轻易截的3个图,能够看到其实测试的招聘需要还是很大的,而且工资福利也很乐观。咱们能够看到其实软件测试的求职范畴是十分宽泛的, 软件测试波及到很多畛域: 金融业 大数据 互联网 人工智能 算法 网络安全 硬件..... 没有哪个行业像软件测试行业这样能够波及到这么多的畛域。如果你在一个方向找工作遇到瓶颈,是能够换一个方向的。所以,测试人,肯定要晋升本人的技术,要置信本人,要置信咱们本人抉择的方向,你能够的!总有一个offer在等你! 好了,明天的文章就分享到这,最初不要遗记给一个小小的赞哦,多一个赞,明天我又能够多加一个鸡腿啦!

October 18, 2022 · 1 min · jiezi

关于测试:实践了上万次原来这些才是敏捷测试需要遵循的原则

与传统的阶段性测试不同的是,麻利测试可能将测试集成到整个软件开发过程中,尽早、及时地发现缺点,帮忙交付有价值的高质量产品。 传统测试与麻利测试的比拟大的区别在于:在瀑布办法中,测试只能在开发完结后进行;在麻利办法中,测试是贯通在整个开发过程中的,同时能够在需要阶段染指测试,来尽早发现零碎设计中的缺点。 那具体做麻利测试的时候,咱们要遵循哪些准则呢? 1.质量保证在软件交付过程中,品质不是某一个职能角色的事件,而是整个团队的事件,由整个麻利团队对品质负责。所以在做麻利测试的过程中,咱们要通过继续测试以及自动化测试来获取及时的反馈,营造反馈的文化,促成团队的业务方向和流程朝着正确的方向倒退。 2. 继续改良如何让测试人员进步工作效率?如何让测试工作做到更好更杰出?在这一过程中,咱们能够通过尝试引入自动化、通过回顾会议来继续改良来晋升团队的能力和程度。通过解放双手,咱们的测试人员能力将关注在如何改良、如何晋升这些方面。 3. 沟通合作团队的沟通合作是解决问题的一大动作,其中,面对面的沟通交流又是在团队外部和各个团队之间传递信息的最无效的办法。测试人员在与产品经理、开发人员和客户的沟通中,能够通过面对面的沟通来缩小的合作中呈现的问题。 4. 简略咱们常说在开发中做到简略设计,“放弃简略、放弃蠢笨”。在麻利测试过程中,同样也要遵循“简略”准则。比方测试用例要清晰间接、Bug形容要简洁明了、文档记录要简略标准等。在团队中,咱们要注重实效:因为复杂度就是老本。不论是简单的软件还是简单的沟通,都难以测试、保护。 5. 拥抱变动在很多状况下,团队从零开始开发一个新个性,信息很少,在开发过程中会有很多变动。作为麻利测试人员,咱们须要与团队单干来适应变动。 6. 自组织麻利团队须要意识到,所有团队成员都须要对软件品质负责。所以咱们要打造一个自组织的团队。首先须要在最后的时候定义一些简略规定,比方Scrum框架定义的“在每个实现Sprint指标的Sprint 中交付一个产品增量。”在这一简略规定的根底上,通过赋予团队确定规定的自主权来实现团队的自治理。在这种状况下,团队不仅会进步工作的满意度,还能在很大水平上调动了团队成员的积极性,倒退生产力,最终反映到高质量的产品交付中。 7. 关注人的价值麻利重视人的价值,麻利测试也不例外。在团队中,每个人都有施展本人的专业技能、为团队做出奉献的时候。除此之外,团队也须要激励测试人员学习更多的技术、晋升本身的能力,造就跨职能团队。 总之,麻利测试作为麻利项目管理中不可或缺的一部分,在理论的我的项目流程中,咱们应更加专一于产品质量,继续为客户交付具备价值的高质量产品。

October 13, 2022 · 1 min · jiezi

关于测试:MatrixOne混沌测试之道

作者:苏动 MO测试工程师导读近年来,向云原生迁徙和采取分布式架构/设计办法来创立云原生利用是当今大势所趋,而且这种趋势还在进一步放慢。这其中最重要的驱动因素,莫过于能够大幅度的缩小利用的停机工夫、高弹性、资源高利用率等,从而减少更多的业务价值。然而,这种架构无疑给软件测试带来了新的挑战,当波及到测试云原生/分布式应用零碎时,与人们用来测试其余利用零碎(如单片机)的传统办法相比,事件就会变得复杂起来。应用程序往往以微服务的形式更加动静、分布式式的、更快的速度公布,并且存在难以预测和跟踪的故障模式。而传统的测试技术,在笼罩此类的问题时,便会顾此失彼,于是对于一种看似新的测试物种-混沌测试,应运而生。随之,和混沌测试相干的测试概念、实践以及技术工具也越来越多的被提及、探讨以及实现。那么,到底什么是混沌测试,混沌测试又能解决哪些问题,又该如何发展呢?以后并无权威的答案,而且可能永远也不会有一个放之四海而皆准的规范。家喻户晓,MatrixOne数据库先天具备云原生和分布式的所有劣势,天然对混沌测试也有着强需要,明天的文章,是从实践/方法论的层面,分享MatrixOne测试团队发展混沌测试的全局画布。 Part 1 如何了解混沌测试业界对于混沌测试,归纳起来,个别又称为故障演练,是一种可试验的、基于故障模拟和注入的办法来解决大规模分布式系统中的凌乱问题。然而,混沌测试与其余的测试类型又有着实质的区别,不局限于测试,而更像是工程实际。一般来说,不同的行业,不同的产品特点,对于软件测试的分类规范和发展需要都有所差异,然而总结起来,却又大同小异。在此,先分享一下MO测试团队为了更好的发展和治理产品测试而对测试进行的划分规范。你会发现,混沌测试仿佛无奈被定位到任何测试类型,或者说和任何测试类型都有关联,却又都不尽如此。此处,借用朱少民传授给“软件测试”的定义的公式来论述MO测试团队对于混沌测试的定义:测试 = 检测已知的 + 试验未知的“已知” 指测试指标、测试需要和测试的验证准则等都明确,具备良好的可测性。“未知” 指测试指标、测试需要和测试的验证准则等不明确,很难间接进行验证,须要通过一直地试验,能力晓得所实现的性能个性是否正确。艰深点讲,“已知”就是在人力之内,而“未知”则是在人力之外,而且很严然,上图中的所有测试,均是针对“已知”项发展的,而混沌测试针对的就是这些“未知”项,并且,咱们认为,对于这些“未知”的思考,须要遵循如下一些准则:1.“未知”可能存在于任何测试维度,产生在任何测试阶段,暗藏在任何测试对象和测试伎俩中;2.“未知”的范畴也是有界的,它蕴含的只是团队关注的、然而通过人力又无奈无效解决的品质因素;3.“未知”也应该而且必须要可能被评估、度量,否则任何针对其发展的测试都将毫无意义,只是这种掂量的规范能够是含糊的,范畴的,或者渐进明细的;4.“未知”试验的发展,必须要借助工具,或者由一系列工具撑持的工程化实际来实现;5.随着针对“未知”试验的发展,会有越来越多的“未知”项变成“已知”项。咱们能够通过下图来进一步了解混沌测试:因而,在MO的测试体系中,让以后产品关注的品质因素可被更多的感知、治理和评估的所有测试致力,都属于混沌测试。混沌测试并不是什么新的测试技术、或者颠覆性的测试理念,它仍旧须要遵循软件测试的实质,那就是为产品的商业活动提供品质信息和信念,所以,混沌测试的终级指标就是让“混沌”变得“不混沌”。 Part 2 如何发展混沌测试通过之前论述,混沌测试须要解决的是“未知”问题,那么对于混沌测试的发展的首要前提,就是如何可能更好的去发现这些“未知”项,对于此点,业界也根本是共识的,总结起来,就是4个字:故障注入。而且,以后对于混沌测试的钻研,大部分也都聚焦在如何更好的实现故障注入的工具能力层面,比方:1.Chaos Monkey,NetFlix公司开发的一套用来测试服务器稳定性的测试工具,外围思路是成心把服务器搞下线,而后能够测试云环境的恢复能力;2.Chaos Mesh, PingCAP公司的一个开源云原生混沌工程平台,提供丰盛的故障模拟类型,具备弱小的故障场景编排能力;3.ChaosBlade,阿里巴巴开源的一款遵循混沌工程试验原理,提供丰盛故障场景实现,帮忙分布式系统晋升容错性和可恢复性的混沌工程工具,可实现底层故障的注入。这些都是目前可用的十分优良的故障注入工具,而且在业界混沌测试中也有着较高的遍及度,然而,只解决故障注入是远远不够的,工具只是撑持,要想更好的发展混沌测试,更须要工程化的思维来设计和布局混沌测试。通过重复屡次的试验,MO测试团队混沌测试的架构图,如下图所示:外围模块:01 故障注入行为通过故障注入工具实现,目标就是为了尽可能的辨认和发现被测试零碎中潜在的“未知”问题触发因素。对于故障注入,能够是纯正随机的,也能够基于肯定的故障注入策略。通过咱们的实践证明,依据预约义的策略来注入故障,更有利于发展测试,因为在混沌测试执行中,须要通过策略来管制最小爆炸半径。当然,故障注入策略的定义,往往跟以后混沌测试的重点无关,此处再次阐明,混沌测试也是有界的,有目的性的,不是纯盲目性的行为,比方,如果想验证网络丢包对于事务成功率的影响,就须要适当的调整故障注入策略,晋升网络提早故障的比例以及抉择重点的故障注入点。02 稳态模型定义所谓的稳态模型,理论就是被测系统的无效状态。这个无效状态能够用被测对象必须被恪守的品质因素规定汇合来形容。如:性能可用性必须满足r1、性能指标比方满足r2等等,那么稳态模型即可示意为:M{r1,r2,......rn}也就是说,无论在混沌测试中注入了哪些故障,执行了哪些测试,被测试零碎都不能违反任何一条品质因素规定,即: 对于稳态模型的定义,须要遵循如下一些准则:品质因素的选取,依赖于产品测试自身须要笼罩的品质维度;品质因素规定的形容,能够不是准确的,是基于范畴的;品质因素规定肯定是能够依据测试后果计算得出;品质因素规定尽可能是量化的表述,并能够通过工具进行比拟;品质因素规定依赖于产品能力和测试能力的成熟度,迭代式的进行优化。03 实在事件模仿执行测试事件的抉择,依赖于稳态模型的定义,即,能够通过最终执行的测试事件后果,计算出稳态模型中各个品质因素的理论状态。当然,测试事件的执行可能自动化,是混沌测试发展的必要前提,因而混沌测试的无效发展,是肯定对测试能力成熟度有肯定要求的,而且也会推动测试能力进一步的成熟。04 行为日志记录行为日志记录是很容易被疏忽的外围因素。如之前所说,混沌测试即便发现了问题,也不能很明确的得悉问题触发的因素是什么,而对于无奈定位和解决的问题,等同于未知问题。因而这就要求在混沌测试中,明确记录各种行为和信息,如故障注入点、故障复原点、执行的测试项、资源应用状况等等,以便给最终定位和剖析问题,提供足够多的素材。05逆向优化 通过混沌测试的后果,逆向优化测试用例集,以及进一步欠缺故障模式库,也是混沌测试的重要目标之一。至于MatrixOne在混沌实际中,每个环节都是如何设计的,本次不做过多介绍,后续会有其余文章进一步分享。 Part 3 如何评估混沌测试对于混合评估混沌测试成熟度,目前业界曾经有一些摸索,比方阿里的CMM模型,然而此模型有些过于简单和理论化,MO测试团队基于此,定制了属于本人的一套评估模型,而整个混沌测试的发展和演进,也是再此模型的根底上进行的。

October 11, 2022 · 1 min · jiezi

关于测试:基于出行领域全场景的mock提效探索与实践

哈啰业务数据场景痛点软硬件一体化利用场景 用户从APP端、支付宝小程序、微信小程序、H5和WEB,通过一些外围服务。外围服务通过HTTP或外部的RPC接口,蕴含用户增长、配置平台、综合平台、用户增长等,对应的根底平台包含存储平台、用户平台、算法平台、开放平台、大数据、地图平台等。物联网目前次要对接单车、电动车、电池、电柜等。 研发测试阶段遇到的痛点 单车这里,红包车数据测试链路过长,手工结构一次数据须要0.5天以上;不同入参返回不同后果,难以结构模仿返回数据。助力车这里,超区断电依赖地图算法模型,测试线下路上跑来跑去模仿临区超区耗时过长。逆风车这里,对接泛滥第三方平台,迭代回归第三方接口,各种场景返回难以结构。领取这里,异样场景泛滥,实名认证信息难以结构。换电这里,不同我的项目并行开发,对方接口未开发的状况下,开发调试老本过高;无奈模仿只反对某个时间段的返回后果。电动车这里,通过单测的形式Mock各种场景代码量微小;局部场景Mock须要研发配合革新代码,侵入性过高,老本较大。 哈啰HiMock和传统Mock的比照传统Mock在哈啰全场景先天性有余 传统Mock一是代码改变频繁,只有代码变动,case相干代码都须要改变,整体耗时较长;二是链路简略,只反对简略链路的Mock;三是Mock难度上,数据结构难,非本业务线同学如果没有接口文档,不晓得如何疾速Mock;四是扩大难度较大,仅反对局部软件协定,不能扩大。而哈啰全场景业务个性一是代码改变难,波及到多个业务方,研发无奈及时配合验证迭代需要改变相干代码;二是链路简单,须要反对前后多端、波及硬件协定链路的Mock;三是Mock难度上,并行开发时,多个业务同个接口模仿不同的返回,结构老本较大;四是拓展水平上,须要反对软硬件协定数据模仿。 突破传统Mock的设计思路 咱们为了突破传统Mock的设计思路,从以下六点设计HiMock。一是低代码,代码开发量少,能够疾速搭建框架;二是代码解耦,不须要用户改变任何代码;三是高性能,不影响原有零碎的性能指标;四是应用性,用户能够低成本Mock;五是反对前后置场景,如签名、回调、数据库操作等;六是全场景,反对前后端各种协定。 Mock技术撑持全场景业务域的实际突破传统互联网的软硬件联合的Mock业务架构 首先介绍服务链路,C端用户次要来源于哈啰APP、支付宝小程序、微信小程序,通过HTTP网关,再进入各个业务的入口,包含单车、助力车、电动车、换电、逆风车等,接下来咱们协定拦挡之后,再去匹配对应规定引擎里配置的规定来看是不是命中了对应的Mock,并去查看对应的静默开关、失效工夫、失效范畴、延时、参数替换、后置条件,这些都是通过规定引擎拿到对应的数据。咱们通过Mock返回的规定,一站式并反对多端。 接下来介绍产品能力,一是Mock治理,包含case创立、case列表、我的Mock;二是工具治理,次要是YAPI|Swagger接口导入;三是大盘统计,次要是调用统计的剖析,蕴含每个业务域、调用量以及对应的Mock量、各业务线应用的剖析等;四是权限治理,包含用户权限和用户组权限;五是拦挡规定引擎,包含高并发反对、静默反对、失效范畴和参数替换;六是一体化Mock工作台,能够集成APP、H5、微信小程序和支付宝小程序,主动接口抓包、一键性能,并反对YAPI|Swagger接口导入、接口参数主动获取、匹配规定参数主动生成;七是自动更新,底层代码改变,自动更新最新代码;八是环境稳定性,保障整体研发测试流程不被打断,Mock可被追溯。 HiMock整体流程 咱们case的起源分为三局部,包含HiMock、Fox和第三方。右边这部分就是用户申请,分为后端申请和前端申请。后端申请咱们通过Agent拦挡到对应的协定之后,依据Mock、规定引擎去匹配对应的规定,如果能匹配到,就把对应的Mock后果返回进来。Agent的下载流程也有两局部,一是Atlas部署的时候,会去查看Agent是否存在,如果不存在,会主动下载到对应服务的原容器上或者ECS下面。二是增加或更新case的时候,也会去判断Agent是否存在。前端申请iOS是针对NSURLProtocol协定进行拦挡和转发到对应的Mock规定引擎,去判断是否命中;安卓是针对OkHttp协定拦挡和转发,其余协定也能够在这里进行兼容适配解决。 HiMock底层Agent设计 HiMock底层Agent设计次要分四方面,一是字节码拦挡,咱们通过大量的比照剖析,最终选型ByteBuddy作为字节码拦挡的底层框架,可实现低代码,迭代麻利迅速开发。二是拦挡协定,咱们实现插件化模式开发,可疾速实现拦挡协定的开发与配置,反对多维度协定拦挡。三是壳化Agent,对外暴漏一个premain的壳函数,可实现动静代码更新相干性能。四是后置解决,简单链路信息,须要在Mock 返回之后,执行一些数据库操作、音讯发送、地址回调等。 在HiMock底层Agent实现上,咱们首先把Agent进行一个premain函数的壳化解决,再对各个协定拦挡的Interceptor封装。HTTP协定申请,咱们针对CloseableHttpClient、HttpClient、OkHttpClient和RestTemplate等等Class进行拦挡。RPC协定,咱们有进行RpcHandler Class拦挡。针对Mq,咱们有Hms进行拦挡。同理,其余也是拦挡对应的外围申请类,再进行协定的拦挡。 HiMock规定引擎设计 HiMock规定引擎设计思路次要分三方面,包含高并发、兼容性和多端。在计划调研上,基于不同协定,拦挡规定不尽相同,然而作为拦挡收口,对立转为JSON进行参数匹配入参条件。最罕用的JsonPath框架有fastJson、jackson、json-path和snack3,通过多轮压测,咱们最终选型snack3,反对的选择器表达式更丰盛,性能较优。在计划执行上,拦挡规定判断时多条件反对,且反对多条件与或组合等。目前反对的条件有equals、not equals、contains、not contains、in等。在计划落地上,拦挡规定参数依据入参主动生成,参数预期值智能匹配。 HiMock平台零碎架构 HiMock平台蕴含WEB、外围性能、数据层、Agent和Mock服务。WEB次要有DashBoard、Mock治理、权限治理、工具治理和平台指南。外围性能次要有云容器主动部署、自动化部署、增加Mock、Mock列表、Mock日志、Mock规定、工具治理、权限治理、数据统计和用户手册。同时咱们要适配一些拦挡协定,如RPC、HTTP、TCP、MQ、MQTT、DB、ES。 数据层次要分为Mysql、Redis和ES,咱们会把数据缓存到Redis里,再定期汇总到Mysql里,并把Redis里的数据进行清空,加重缓存压力。Mock的服务申请被对应的Agent拦挡到协定申请之后,Agent拜访Mock服务设置的规定数据,拿到规定数据判断申请是否被匹配到Mock规定。 HiMock落地应用场景 HiMock落地应用场景有依赖测试、自动化测试、性能压测和并行开发等。依赖测试反对 case Mock失效日期和端到端的Mock失效范畴,次要是为了防止某一个case过大影响理论的测试范畴。自动化测试反对主动开启、敞开对应的Mock开关。性能压测反对一键静默,只有把静默开关关上,所有的调用Mock case都不会失效,这时所有的性能压测都会走原始的调用申请。并行开发反对失效范畴界定和Mock参数动静调整等。当然咱们在测试过程中不要适度依赖基于Mock的测试后果,Mock只是一种提效伎俩,基于Mock的测试无论如何如许的充沛,都不能保障不会脱漏。一个残缺的测试策略,肯定是由基于Mock的测试和基于非Mock的测试独特组成,二者相辅相成,缺一不可。 HiMock平台能力介绍 这里介绍RPC接口的新增,在Mock题目里能够依据本人的场景设置题目,如助力车赔付,利用名称、iface、method是要拦挡的对应服务以及它对应的method。在左边,咱们也能够看到对应这两个利用名称,前面能够查看Atlas的配置,如果抉择在ClientAppId进行Mock拦挡,须要把对应服务的自定义启动参数中Agent启动命令配置下来。Mock环境里FAT和UAT都能够抉择,同一个case多个环境同时失效。失效工夫默认是永恒失效的,如果填写失效范畴,只会针对失效工夫范畴内走Mock逻辑;上面也有对应的是否开启的开关。增加规定这里,咱们反对从用户申请日志里主动获取对应的申请有哪些参数,缩小用户手动填入的复杂度。最上面的申请响应、执行日志和变更记录,次要用来查看预执行的时候对应这个规定是否匹配到,哪一步拦挡失败,进而去调整Mock匹配规定。针对简单场景,咱们反对后置模仿回调,包含HMS、HTTP等。 这里是测试申请,测试申请主动填入,也能够依据理论状况进行动静调整,Mock后果即时校验。执行日志做到了执行过程的匹配,后果校验能够实时看到匹配规定是否失常匹配,以及匹配的返回后果是否是想要的。 接下来介绍前端一键Mock的性能,右边是咱们的APP端,左边通过扫码APP-QrCode就能够看到右边菜单栏有主动抓包的链路信息,点击后会有接口对应的Request和Response。这里咱们能够疾速Mock对应接口的返回,或者是Mock异样的返回。 HiMock平台成果价值回收能力剖析 咱们次要从六局部进行HiMock成果价值回收能力剖析,包含接口调用统计分析、Mock业务线笼罩统计分析、Mock占比剖析、业务线Mock经营剖析、Mock case统计分析和Mock次数、均匀耗时统计分析。 这里是HiMock平台整体的调用统计分析,能够看到具体某个业务线、当天调用量和对应的Mock次数。右边是调用统计的趋势图,左边是业务线Mock次数的占比。 后续布局&探讨 Mock平台咱们分三步走,第一步是测试小哥哥小姐姐通过手工Mock的形式人肉抓包Mock返回,后端Mock代码改变较大,费时费事费人,重复劳动重大。第二步是HiMock一体化Mock平台,能够反对全场景、多端Mock。前端主动抓包一键Mock,规定匹配参数主动生成,日志申请主动填充,极大晋升了咱们Mock case的整体效率。第三步是HiMock智能化,咱们后续也会反对适配中间件DB、MQ类型协定的Mock,与仿真实验室、精准自动化的进一步联合,打造研发、精准测试、高效经营的一体化Mock,并打造智能出行Mock平台,可能self-learning自适应,以及更多场景的Mock反对。 (本文作者:崔焕锐) 本文系哈啰技术团队出品,未经许可,不得进行商业性转载或者应用。非商业目标转载或应用本文内容,敬请注明“内容转载自哈啰技术团队”。

September 29, 2022 · 1 min · jiezi

关于测试:谈安全测试的重要性

 1 什么是平安测试 平安测试是一种软件测试,可发现软件应用程序中的破绽,威逼,危险并避免来自入侵者的歹意攻打。 平安测试的目标是确定软件系统的所有可能破绽和弱点,这些破绽和弱点可能导致信息,支出损失,组织雇员或内部人员的名誉受损。 平安测试的指标是识别系统中的威逼并掂量其潜在破绽,以使零碎不会进行运行或被利用。 它还有助于检测零碎中所有可能的平安危险,并帮忙开发人员通过编码解决这些问题。 1.1 平安测试动作 窃密 - 它能够避免向非预期接收者披露信息。 完整性 - 它容许从发送者向预期接收者传输精确和正确的所需信息。 身份验证 - 验证并确认用户的身份。 受权 - 它指定对用户和资源的拜访权限。 可用性 - 确保准备就绪的信息。 不可否认性 - 它确保发送者或接收者不会回绝发送或接管音讯。 1.2 常见的安全漏洞 1.2.1SQL 注入攻打 名词解释:SQL 注入攻打(SQL Injection),简称注入攻打、SQL 注入,被宽泛用于非法获取网站控制权,是产生在应用程序的数据库层上的安全漏洞。因为在设计程序时,疏忽了对输出字符串中夹带的 SQL 指令的查看,被数据库误认为是失常的 SQL 指令而运行,从而使数据库受到攻打,可能导致数据被窃取、更改、删除,甚至执行系统命令等,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。 1.2.2 文件上传 名词解析:文件上传破绽是指因为程序代码未对用户提交的文件进行严格的剖析和查看,导致攻击者能够上传可执行的代码文件,从而获取 Web 利用的管制权限(Getshell)。 1.2.3 权限破绽 名词解析:访问控制是指用户对系统所有拜访的权限管制,通常包含程度权限和垂直权限。访问控制问题是所有业务零碎都可能产生的逻辑类破绽,很难通过日常的平安工具扫描或防护,通常会造成大量用户数据泄露事件。 程度越权:同一权限(角色)级别的用户之间所产生的问题,如 A 用户能够未受权拜访 B 用户的数据等。 垂直越权:不同权限(角色)级别的用户之间所产生的问题,如普通用户可未受权进行治理操作,未登录用户能够拜访需受权利用等。 1.2.4 暴力破解 名词解析:暴力破解是指攻击者通过遍历或字典的形式,向指标发动大量申请,通过判断返回数据包的特色来找出正确的验证信息,从而绕过验证机制。随着互联网泛滥网站的数据库被泄露,攻击者抉择的样本能够更具针对性,暴力破解的成功率也在一直回升。 1.2.5 拒绝服务攻打 名词解析:拒绝服务攻打(DoS,Denial of Service)是利用正当的申请造成资源过载,从而导致服务不可用的一种攻击方式。分为针对 Web 应用层的攻打、客户端 / APP 的攻打。 1.2.6 敏感信息泄露 名词解析:敏感信息泄露是指包含用户信息、企业员工信息、内部资料等不该当被内部拜访到的数据通过网站、接口、内部存储等路径被未受权泄露到内部的破绽。信息泄露破绽会导致大量用户或企业信息被歹意利用,进行欺骗、账户窃取等,给用户和企业带来重大的不良影响。并且信息一旦信息被泄露,影响会很难打消。 1.2.7 业务逻辑破绽 名词解析:业务逻辑破绽是指因为业务在设计时思考不全所产生的流程或逻辑上的破绽,如用户找回明码缺点,攻击者可重置任意用户明码;如短信破绽,攻击者可无限度利用接口发送短信,歹意耗费企业短信资费,骚扰用户等。因为业务逻辑破绽跟业务问题贴合严密,惯例的安全设备无奈无效检测出,少数须要人工依据业务场景及特点进行剖析检测。 1.2.8 跨站脚本攻打(XSS) 名词解析:跨站脚本攻打(XSS, Cross Site Script)通常指黑客通过 “HTML 注入” 篡改了网页,插入歹意脚本,从而在用户浏览网页时,管制用户浏览器的一种攻打。XSS 破绽可被用于用户身份窃取(特地是管理员)、行为劫持、挂马、蠕虫、钓鱼等。XSS 是目前客户端 Web 平安中最重要的破绽。 XSS 按成果的不同能够分为以下 3 种。 反射型 XSS 攻打:页面仅把用户输出间接回显在页面或源码中,须要诱使用户点击能力胜利。 存储型 XSS 攻打:XSS 攻打代码会被存储在服务器中,因为用户可能会被动浏览被攻打页面,此种办法危害较大。 DOM 型 XSS 攻打:通过批改页面的 DOM 节点造成 XSS,严格来讲也可划为反射型 XSS。 1.2.9 跨站点申请伪造(CSRF) 名词解析:跨站点申请伪造(CSRF, Cross Site Request Forgery)。因为重要操作的所有参数都是能够被攻击者猜到,攻击者即可伪造申请,利用用户身份实现攻打操作,如公布文章、购买商品、转账、批改材料甚至明码等。 2 为什么要做平安测试 提到平安。咱们一个产品一个网站最须要增强平安防备的就是数据库。那么如果短少了安全性测试,在高手的 sql 盲注下,你的数据库就会逐渐展示在黑客的背后,无论是数据库类型、表构造、字段名或是具体的用户信息,都有无数种伎俩能够让人 “和盘托出”。 2.1 权限 网站个别都规定了什么样的用户能够做什么事。比方版主能够批改所有人的帖子,而你普通用户只能编辑本人的帖子,同样游客只能看大家的帖子。这就是简略的权限。如果少了安全性保障,那么就容易有人跳出权限做他不该做的事件。 2.2 批改提交数据信息 比方一个领取商城,如果通过抓包抓到的提交价格,通过批改再发包能够通过。简略来说就是原本 100 块钱买的货色,抓包批改为 1 块就能胜利购买。这就成为了一个微小的隐患。 2.3 相似跨站脚本的安全隐患 HTML 注入。所有 HTML 注入范例只是注入一个 JavaScript 弹出式的正告框:alert (1)。 做好事。如果您感觉正告框还不够刺激,当受害者点击了一个被注入了 HTML 代码的页面链接时攻击者能作的各种的歹意事件。 诱捕受害者,可能会 redirect 到另一个钓鱼的其余网站之类的,使其蒙受损失。 2.4 敏感词的校验 比方一个政府部门的一个网站或者 app,里边能够输出一些有违目前制度以及一些领导人的词汇的问题,这样的影响是十分大的,所以咱们要防止这些影响的产生。 3 如何来做平安测试 平安测试是在 IT 软件产品的生命周期中,特地是产品开发根本实现到公布阶段,对产品进行测验以验证产品合乎平安需要定义和产品质量规范的过程,能够说,平安测试贯通于软件的整个生命周期。上面通过一张图形容软件生命周期各个阶段的平安测试,如下图所示。 上图中的危险剖析、动态剖析、浸透测试都属于平安测试的领域,与一般测试相比,平安测试须要转换视角,扭转测试中模仿的对象。上面从以下维度比拟惯例测试与平安测试的不同。 3.1 测试指标不同 一般测试以发现 Bug 为指标;平安测试以发现安全隐患为指标。 3.2 假如条件不同 一般测试假如导致问题的数据是用户不小心造成的,接口个别只思考用户界面;平安测试假如导致问题的数据是攻击者挖空心思结构的,须要思考所有可能的攻打路径。 3.3 思考域不同 一般测试以零碎所具备的性能为思考域;平安测试的思考域岂但包含零碎的性能,还有零碎的机制、外部环境、利用和数据本身平安危险与平安属性等。 3.4 问题发现模式不同 一般测试以违反性能定义为判断根据;平安测试以违反权限与能力的束缚为判断根据。 4 工作中的总结 4.1 敏感词校验 步骤: 对小程序、h5、官网带输入框的进行敏感词输出、搜寻。 小程序校验: 官网校验: 验证是否对敏感词有拦挡,如有拦挡则失常,如不能拦挡则存在平安问题。 4.2 明文传输 对系统传输过程中的敏感内容是明文 & 密文进行查看,设计到的模块:登录、领取、注册的手机号、身份证、邮箱。 步骤: 对传输敏感信息场景进行抓包。 剖析其数据包中的相干敏感字段是否为明文。 例如接口中手机号、座机号、姓名都是明文: 4.3 越权拜访 测试是否能够通过 url 间接获取管理员和其余用户信息。 步骤: 查看 url 中是否存在 admin/user/system/pwd 等敏感目录。 当零碎存在多个不同权限的管理员时,看低权限的管理员能不能拜访到高权限的治理的资源。 当零碎存在多个须要登录用户,用 A 用户进行登录,记录所浏览的集体资源的 url 和批改删除的操作;退出 A 用户后,登录 B 用户,应用所记录的 url 来间接拜访,看是否能够拜访胜利或者操作胜利。 4.4 非法注入 测试零碎是否对输出进行过滤和转移,设计到的模块:搜寻框、输入框、备注信息、上传文件、URL、输入框、备注信息。 步骤: 在零碎的 URL 地址前面,输出测试语句: ;看是否会有弹框展现。 在搜寻框、输入框、备注信息中输出测试语句: ;看是否会有弹框展现。 官网校验如图: 4.4.1 上传文件 步骤: 在上传的文件中输出: ,文件名为 test。 点击上传,查看上传接口,将上传的文件名改为 html 文件,而后拜访该文件,如能够拜访则存在问题,如不能拜访则失常。 4.4.2 文件下载 步骤: 点击文件下载,查看文件下载接口并进行记录。 批改文件下载接口,例如 xxxxx 下载接口 /../ 对门路进行跳转尝试下载其余目录下的文件,看是否能够失常下载,如能够下载则存在问题,如果不能下载则失常。 4.5 短信、邮箱验证 波及到的模块:触发短信、邮箱验证码的相干场景。 步骤: 操作密码找回、获取验证码获取性能,记录该获取接口。 频繁调用密码找回、验证验证码接口,看是否存在拦挡,以防短信被刷。 查看验证码接口,看是否能够通过接口截取到验证码信息。 如下京东快递 h5,短信防刷如图所示: 4.6 明码健壮性 测试明码、验证码验证形式是否牢靠,是否能够被暴力猜想直到命中。 步骤: 登录是接入公司的对立登录 passport,可疏忽。 验证码的场景,应用抓包工具,批改接口中的明码、验证码,屡次尝试输出谬误的验证码,如果没有输出次数下限能够暴力猜想直到命中,则存在破绽。 4.7 数据安全 检测零碎中敏感数据的存储是否平安。 步骤: 查看敏感数据是否加密存储,查看对应的数据库表,避免拖库后信息泄露。 查看敏感数据在操作界面是否进行了脱敏操作,例如:明码的显示暗藏选项、手机号、身份证号的展现等。 检查数据设置是否平安,查看在输出设计钱财的边界值,是否能够输出合乎和是否超过最大的数额。 定期检测数据库中敏感数据是否做了脱敏解决: ...

September 22, 2022 · 2 min · jiezi

关于测试:调度算法评测与仿真系统

哈啰两轮车调度算法介绍调度是将稀缺资源调配到肯定工夫内的不同工作上的决策过程,目标是优化一个或多个指标。两轮车调度场景是指通过预测将来用户的骑行需要,决定各站点车辆的调配工作,并将这些任务分配给适合的运维人员来执行,从而满足用户的骑行需要。在这个调度场景里会波及三个对象,一是车辆,指标是用户需要满足率高,移车成本低,车辆翻台高。二是运维,指标是运维效率高,运维人员体验好。三是用户,指标是用户体验好。咱们将两轮车调度和外卖/网约车调度做比照,调度波及到工作生成、工作派发和履约管控三个环节。在工作生成环节,两轮车调度的复杂度比外卖/网约车调度高,起因在于调度波及到三个因素,调度算法触发的机会须要依靠算法来决策,同时须要兼顾线下各种简单的状况,如天气节令因素,竞对或城管干涉等。在工作派发环节,两轮车调度的复杂度比外卖/网约车调度低,起因在于须要匹配的对象少,实时性要求低。在履约管控环节,两轮车调度的复杂度比外卖/网约车调度高,起因在于司机运维执行后果难以监管,而外卖/网约车有用户评估体系,监管便捷。两轮车调度的难度是多维且平面的,一是定位不准,不同车辆型号定位的精准度是有差别的;二是车辆扩散,司机须要去收集散落在各地的车辆;三是需要稳定,如季节性的稳定、早晚顶峰的稳定;四是供需失衡,理论投放的车辆数量与用户日益增长的需要匹配不上;五是城市差别,因为城市倒退阶段和管控政策不同,会导致车辆投放与用户需要的差别;六是算法黑盒,会导致算法成果评估比拟含糊;七是信息孤岛,如司机的载具在某个时刻可能会发生变化,但这些信息并不能及时同步到下层用于算法决策;八是计算简单,一系列简单的场景会导致算法的计算复杂度大增。两轮车调度算法的指标总结下来是多快好省。一是多,咱们心愿算法调度占比高,笼罩的场景多,反对个性化。二是快,可能实时生成、实时派发、实时执行、实时反馈。三是好,咱们心愿让业务叫好,让司机叫好。四是省,既能省人工成本,又能省机器老本。为了达成指标,咱们制订了解决方案,左侧是咱们解决方案的架构分层图。咱们依据多快好省四个分类,推出了对应的解决措施。一是多,咱们提供了站点组的调度策略,千城千策,调度场景笼罩广。二是快,咱们将需求预测、工作派发与工作决策实时化,并通过门路布局找出最优路线。三是好,咱们通过全局匹配来实现最优化,工作聚合来实现成果好,收益预估来进步收益,精益治理来进步管理效率。四是省,咱们利用弹性计算、MR调度框架和调度稳定预警,进步机器整体的资源利用率。 调度算法在成果评测上的挑战调度算法成果评测上有五个挑战,一是效率低,一个迭代均匀成果评估回收工夫须要两周左右。二是不受控,咱们无奈控制线下运维的执行状况。三是烦扰多,线下执行受到的烦扰因素多,成果回收准确度低,导致收益和算法归因含糊。四是品质差,模型上线试验后,成果回收正向率低。五是公信力弱,因为线上成果差,合作方对模型成果信任度低。 调度算法仿真零碎介绍为了解决这个挑战,咱们提出了仿真零碎,通过对物理世界的仿真,达成调度算法离线验证和预测推演的能力。仿真逻辑如图所示,咱们能够通过感知建模,对物理世界里的场景属性及行为,转换成特色和模型,其中特色是用来表白物理世界场景属性的数字化信息,而行为、规定用模型来表白。有了特色和模型后,咱们能够应用工程技术手段把它演化成仿真世界里的场景、属性、行为和规定。如何做到仿真世界的实现,咱们提出了三个层面,别离是特色数据、仿真模型和工程撑持。 特色数据在物理世界中会存在各种各样的信息,如站点信息、车辆信息、用户骑行事件、调度事件、日期天气特色,订单、收益等。咱们将其演绎成五个维度,站点数据、车辆数据、运力数据、内部数据和评估指标。一是站点数据特色,包含站点根底信息、站点间流转订单、站点实时停驻车辆数、站点历史需求量和站点间骑行工夫。二是车辆数据,包含车辆根底信息、车辆实时标签状态、车辆实时电量、车辆衰弱度和用户骑行收益。三是运力数据,包含司机画像、载具画像、载具实时数据、司机实时排班和运力老本。四是内部数据特色,包含节假日数据、天气特色、竞对实时数据、地图数据和城管干涉。五是评估指标,如缺车数据、订单数据、调度量、翻台数据和车辆收益。 仿真模型仿真模型是对物理世界行为或规定的模仿,次要会波及到两局部。一是天然流转,指车辆在物理世界天然流动的状况,咱们须要把它模仿进去。二是模型输出,指仿真世界里的一些实时数据,咱们须要提供给调度算法去作为输出数据,如供需上须要预测的数据或运力的模仿数据。接下来介绍车辆天然流转的仿真实现,车辆天然流转指在某一时刻某一无限空间下,车辆在不同站点之间流动的状况。如图是某一时刻,车辆在不同站点之间流动的轨迹。咱们进行公式提炼,假如某个站点Sa在某一时刻流出的车辆总数是O,流向各个站点的概率为(Si,Pi)。咱们就能够晓得站点Sa流向站点Sb的车辆状况,或者是站点Sa流向站点Sc的车辆状况,通过这个计算公式就能够得进去。第一步咱们要计算某一时刻站点流出的车辆数,会用到三个维度的特色数据,一是站点数据,包含站点根底信息、站点实时车辆数、站点历史需要和站点间车辆骑行时长。二是车辆数据,包含车辆实时电量和车辆实时标签。三是内部数据,包含节假日数据和天气特色。咱们的筛选条件有两个,一是可用日期的筛选,咱们取历史一个月内雷同日期特色的数据,如是否节假日、天气因素类似。二是站点内可用车辆的数据,这里须要剔除异样车辆,如故障车和低电车。举个例子,咱们要计算2月28日0点10分的站点车辆流出数据,会获取历史一个月内同样是0点10分的所有站点数据,依据可用日期作为筛选条件,把雷同日期特色的站点数据筛选进去,汇总取平均值。有了均匀站点车辆数后,咱们还要去看站点内的可用车的状况。如果可用车辆数大于计算出来站点的出站数,就取出站数;如果可用车辆数小于出站数,就取站内可用车辆数。第二步咱们要计算某一时刻站点间转移概率,会用到两个维度的特色数据。一是站点数据,包含站点间流转订单、站点间车辆骑行时长。二是内部数据,包含节假日数据和天气特色。它是一个统计问题,又因为物理世界中会存在某种意外概率的事件,为了可能模仿这些意外概率的事件,咱们退出轮盘赌抉择法,来使咱们仿真的后果更贴近于物理世界。统计形式有些相似,都是取一个月内雷同日期特色,计算不同站点之间流转概率的均匀汇总。第三步是联合流出车辆数据和站点间流转概率,模仿特定时刻站点间车辆流转状况。如图所示,0点10分站点A流出10辆车,联合流转概率,咱们能够得出站点A会往B流出5辆车,站点A会往C流出3辆车,站点A会往D流出2辆车,同样其余站点用相似的计算形式会得出流转形式。仿真会带来一些劣势,一是可能修改谬误,特定日期可能会有异样,如某个站点当日流出5辆车,并不代表它的实在需要是5辆车,可能是因为这个站点内只有5辆车,所以只能最多流出5辆车。咱们有历史数据作为根据,能够修改异样值。二是升高必然性,如某些站点某一时刻会因为热点事件,如台风天气或演唱会举办等事件带来需要的稳定,并不代表广泛的成果。介绍完车辆天然流转模仿,这里有个问题,什么后果是好的仿真后果?于是就有了逼真度的概念。逼真度是用来量化仿真零碎的一种路径,在肯定水平上可能体现出仿真零碎的正确性和可信度。而只有保障仿真零碎的正确性和可信度,仿真后果才具备理论利用价值。第一个维度是数据源和建模,咱们假如数据源选取某城市、某日期,计算每个站点在每个时刻的实在流出,计算每个站点在每个时刻的仿真流出。咱们会做两个维度的建模,站点维度和工夫维度。站点维度建模是指咱们依照实在流出和仿真流出两个指标,汇总出每一个站点在所有时刻的总流出并排序,会失去站点维度的实在排序和站点维度的仿真排序。工夫维度建模是汇总每个小时在这个城市所有站点的总流出并按工夫排序,得出工夫维度的实在排序和工夫维度的仿真排序。这里咱们评估逼真度,借鉴了伪工夫排序分数POS算法,设计仿真流转排序相似性算法。举个例子,如图是工夫维度的排序,咱们看到依照相似性算法,实在流出在0-1时是递加的,所以咱们用“-”,0-2时是递增的,所以咱们用“+”。仿真流出数据也依照这个逻辑。咱们会发现0-2时实在流出和仿真流出不统一,因而咱们得出排序相似性是83%。根据这样的计算形式,咱们对某个城市某一时刻的数据做逼真度的剖析,会得出两个后果。工夫维度上站点每小时的实在流出与仿真流出,在24小时的排序类似度达到93%;站点维度上排序类似度达到85%。因而咱们得出,实在流出跟仿真流出的数据具备高度的相似性。 工程撑持工程撑持次要借助工程的能力,交融特色和模型去实现仿真世界的演变。这里会用到很多的技术能力,如地图引擎、服务调度、报表剖析、过程回放和数仓数据计算。咱们将其演绎成三个维度,包含数据计算、调度中台和前端成果。仿真数据具备三大特点,一是数据量大,哈啰单车和助力车笼罩近千个城市,近百万站点,近千万辆车,有上亿的订单和IOT数据上报。二是数据结构简单,数据起源多样性,导致结构化数据、非结构化数据、半结构化数据都混合在一起。三是计算粒度细、周期长,如果在仿真的时候去长期计算,老本会十分高,因而咱们借助了数仓的离线计算能力,提高效率。如图是试验创立执行流程,以此介绍调度中台的工作过程。首先是用户在前端创立试验,调度中台通过试验创立环节,会把用户创立试验的配置信息、城市、模型信息存储到在线存储里去。如果用户在前端进行试验执行的操作,调度中台通过试验调度的环节,依据之前配置的信息,整合相干的特色数据的汇合,包含试验周期的约束条件,传递给仿真算法,这是异步的过程。数据传递过来后,仿真算法会依据粒度和周期去调用在线和离线数据作为模型入参,执行算法决策。在周期执行过程中,算法会把过程记录通过音讯的形式实时反馈给调度中台,调度中台会把这些数据进行过程指标的计算,并把过程后果和指标后果落库到在线存储里去。前端就能够实时查看试验的过程,对试验的过程进行操作干涉。仿真算法执行实现后,调度中台会对整个试验数据做存储和规格化的解决,可能给前端提供过程回放和试验数据的展示,这是整个的试验流程。仿真零碎是咱们算法测试平台的一个子服务,平台还涵盖数据品质监控、服务可用性监测、模型性能评测、模型成果评测、语音辨认评测、文本辨认评测和图像识别评测。算法测试平台采纳微服务的设计思路,最外层有web服务层,对接所有的上游前端业务,底层可分为四大核心,包含调度核心(负责所有治理行为,如数据调度,工作治理,策略管理,告警治理,计算调度等)、数据计算中心(负责所有计算行为,如实时&离线数据计算,数据转换,数据勘误等)、数据分析统计核心(负责指标统计类行为,因为指标计算规定变动频繁且灵活多样,因而在该核心下连贯多个脚本环境容器,如python,groovy等,通过平台在线编辑能力,容许用户灵便调整,随时变更指标剖析与统计脚本)和数据中心(负责所有内外部数据拜访收口及三方服务拜访收口,并通过进步该服务的利用等级,保障整个零碎的稳定性),它们各司其职,保障合作的稳定性和迭代开发的效率。前端成果总览包含试验的治理、仿真过程回放和各项指标评测后果。一是仿真实验室,作为仿真零碎的入口,提供了试验创立、筛选和试验过程管控。二是试验配置,能够去设置试验相干的参数,如仿真区域、工夫区间、工夫粒度等。三是仿真回放,咱们嵌入了地图的渲染引擎,提供观测不同模型的车辆流转成果和数据变动过程的能力。四是实验报告,提供各项评估指标数据、报表化展现、穿插比照验证的能力。 收益和瞻望仿真零碎的收益归纳起来有六点,一是城市笼罩,原先城市笼罩的数量无限且老本高,仿真零碎能够反对全国400多个城市的任意抉择。二是评估效率,原先评估效率是周级别,仿真零碎评估效率是小时级别。三是线上品质,原先线上回收正向率低,仿真零碎线上回收正向率预计进步两倍。四是评估指标,原先评估指标比较简单,回收也绝对麻烦,仿真零碎能够定制多维度的指标。五是烦扰因素,原先有很多不可控因素,仿真零碎烦扰项都是可感知可管制的。六是过程剖析,原先过程变动是看不到的,仿真零碎过程可回放、可剖析。以后咱们是在平台化阶段,依靠仿真平台化建设,实现车辆调度类算法评测赋能,带来六大收益。前面咱们心愿可能实现场景化,借助场景化建模,实现业务场景无感接入,灵便扩大。第三个阶段是智能化仿真世界,咱们心愿可能实现智能感知特色数据、自主学习规定模型、智能剖析评测成果。最初是业务赋能,咱们心愿可能赋能更多的业务场景,去实现线下的推演和可行性的验证,助力业务的高速增长。 (本文作者:陈震) 本文系哈啰技术团队出品,未经许可,不得进行商业性转载或者应用。非商业目标转载或应用本文内容,敬请注明“内容转载自哈啰技术团队”。

September 21, 2022 · 1 min · jiezi

关于测试:得物App订单配置类文案测试右移实践

1. 背景得物App版本订单详情页中的文案有对应的文案配置后盾对立收口文案取值,优化订单详情页的信息展现成果。 基于交易侧业务的广度和复杂度,仅仅靠人还是有肯定的局限性,当面对此类业务个性时,性能为主+技术辅助的形式也更多的被利用,对于此次的需要,得物小伙伴们也尝试应用更多的形式尽可能保障线上品质,接下来就介绍下配置类文案测试订单侧的测试右移实际。 2. 剖析思考2.1 需要简介在得物App的版本迭代中,为晋升用户体验,产品侧提出订单详情页优化新需要,定义客户端模块组件,制订各个模块的信息展现标准,从新梳理订单详情页的全副文案,搭建文案配置后盾,反对订单详情页头部文案反对可配置,不便用户清晰理解订单详细信息。 性能蕴含: 反对所有订单状态节点文案灵便配置订单各状态节点配置根底文案非凡订单类型反对差异化文案配置文案反对变量参数可选项取值逻辑: 命中灰度,取对应订单节点配置订单状态节点下有配置差异化文案,取差异化文案未配置差异化文案,取根底文案。2.2 测试策略基于订单侧多订单类型、多业务流程等个性,此次采取的测试策略为:流程雷同订单取一种类型测试+非凡订单类型重点笼罩的形式。 2.3 订单配置类文案测试的难点痛点订单业务现状:订单侧目前已有的订单类型有几十种,已有的正向订单状态更是有很多,并且局部订单有着本人非凡的业务流程。作为交易的两头链路,订单侧对接的上下游以及本身业务零碎的交互较为简单,对改变点感知不及时。线上线下配置不统一。波及到所有订单类型的需要,目前少数采纳的测试策略为:流程雷同订单抽一种类型测试+非凡订单类型重点笼罩+自动化case回归笼罩,全量回归单纯靠人力不太事实。技改我的项目多,目前线上灰度中的性能较多,未全量灰度实现时,测试须要同时笼罩新老版本。2.4 文案品质保障伎俩优化此次新需要所波及的业务广度以及测试难点和痛点,研发跟测试也进行了复盘,针对以后难点痛点剖析探讨,引出上面几点尝试: (1)后续测试中,非凡流程订单类型重点笼罩策略不变,开发提出测试环境保留最简单配置 。(2)自动化验证文案展现,须要做到全量场景笼罩。(3)线上所有订单类型、所有节点文案在业务监控平台新增脚本尝试。 3. 优化实际使用者的行为不可预知,那么在代码设计开始就须要从严思考,对所有可能产生的场景底层都要做根本解决,同样对于测试来说,各种可能产生的场景都须要思考到,基于上述难点痛点以及无限的资源状况下,测试侧同样也须要思考更多的计划。具体如下: 3.1 计划剖析(1)测试环境保留最简单文案配置 探讨下来,该计划不可行,有些字段只有特定订单类型有,都配置成最简单文案后,会有局部订单类型展现成${xxxx},蛊惑测试。最终采纳当初默认配置成与线上统一的文案。 (2)自动化脚本进行接口测试的形式校验 应用自动化脚本进行接口测试的形式探讨发现有如下优缺点: (3)业务监控平台减少脚本实现线上提前灰度 得物自研业务监控平台实现提前灰度计划优缺点如下: 3.2 实际针对无奈笼罩到线上实在配置并且对所配置的内容check异样,联合上述两种计划的优缺点,在业务监控平台减少脚本刚好能够实现这一部分场景的笼罩,在后续的迭代布局中,相似的性能仍有不少,探讨后决定对此类性能的校验减少业务监控脚本对线上数据check并告警,上线后能提前灰度,发现问题。 3.2.1 业务监控平台得物自研的一款用于数据和状态验证的平台,数据流向如下: 3.2.2 脚本实现通过业务监控平台建设校验接口返回值文案中蕴含异样数据则飞书告警的规定,及时发现问题,具体实现如下: 在业务监控平台编写数据校验脚本通过平台监听上线后命中灰度的数据,脚本实现check接口返回的文案中蕴含“$”的异样数据(蕴含$则变量未解析)配置监控规定,及时发现存在的异样数据打印出错误信息并线上飞书告警群及时告警线上有最全的订单类型以及各种状态的数据,打印各种订单类型、各种状态下的文案,查看文案展现正确性。3.2.3 逻辑图 3.2.4 告警目前线上告警采纳的最多的是飞书告警,告警如下: 3.2.5 后续布局业务监控平台目前反对防资损类的巡检告警,后续平台性能反对场景减少后,可满足更多的场景,则能够代替局部人工测试,进步测试效率。 业务监控平台若是能够反对预发环境,则配置核心在预发环境的配置同步线上配置,能够在预发验证文案的变更。业务监控平台可能反对指定机器拜访,公布后摘流,线上验收文案的正确性。 3.2.6 配置类文案测试瞻望通过在业务监控平台减少脚本实现文案测试右移,右移到预发或者线上,拿线上最全的数据、线上实在的配置,获取各种订单类型、各个状态下的实在文案。同时大大减少了造数的工夫损耗,提效的同时保障业务品质。 5. 总结文案虽小,但体验不佳,面对订单侧深而广的业务交互,如何可能高效且无效测试,是每一个订单组测试小伙伴都在不停思考和摸索的问题,包含以后利用自动化case、流量录制回放、防资损监控等形式,都是回归测试的利器,一起为品质保驾护航。计划仍在一直迭代中,咱们的测试摸索并没有进行。同样咱们的测试策略跟技术手段都在一直的优化,品质保障是整个团队的事件。欢送有其余idea的小伙伴们一起交流经验。 *文/Kelly @得物技术公众号

September 6, 2022 · 1 min · jiezi

关于测试:体系全能软件测试工程师内含资料

download:体系全能软件测试工程师内含材料Spring5源码5-Bean生命周期后置处理器 次要阐明三种生命周期增强器: BeanFactoryPostProcessor:BeanFactory 后置处理器 BeanDefinitionRegistryPostProcessor:bean定义注册后置处理器BeanFactoryPostProcessorBeanPostProcessor:Bean后置处理器 BeanPostProcessorMergedBeanDefinitionPostProcessorSmartInstantiationAwareBeanPostProcessorInstantiationAwareBeanPostProcessorInitializingBean DisposableBean (销毁的计划咱们临时不做阐明) 1.1 什么是 BeanPostProcessorBeanPostProcessor 是 Spring提供给咱们的一个十分重要的扩大接口,并且Spring外部的很多性能也是通过 BeanPostProcessor 来实现的(目前看到最典型的就是 AnnotationAwareAspectJAutoProxyCreator 的 注入)。 1.2 BeanPostProcessor 的品种BeanPostProcessor 在Spring 中的子类十分多(idea 显是有46个),比方 InstantiationAwareBeanPostProcessorAdapter : 在Spring 的bean加载过程中起了十分重要的作用AnnotationAwareAspectJAutoProxyCreator : bean 创立过程中的 属性注入时起作用AspectJAwareAdvisorAutoProxyCreator : Aspect 的 AOP 性能实现也全凭仗BeanPostProcessor 的个性。1.3 创立机会BeanFactoryPostProcessor:在 Spring 启动时对BeanDefinition 的创立 进行干涉解决。 BeanPostProcessor:一是Bean对应的BeanDefinition 的创立。二是Bean 实例的创立。因为在 Spring容器中,Bean的创立并非仅仅通过反射创立就完结了,在创立过程中,须要思考到Bean针对Spring容器中的一些属性,所以BeanDefinition 中不仅仅蕴含了 Bean Class 文件信息,还蕴含了 以后Bean在Spring容器中的一些属性,比方在容器中的作用域、是否懒加载、别名等信息。当Bean 进行实例化创立时须要依赖于对应的BeanDefinition 提供对应的信息。。 而因为 BeanPostProcessor 是参加了 Bean 创立过程。所以其创立肯定在一般 Bean 之前。实际上 BeanPostProcessor 的创立时在 Spring 启动时容器刷新的时候。 BeanPostProcessor 的 BeanDefinition 创立机会和一般 Bean没有区别,都是在Spring 启动时的BeanFactoryPostProcessor 中实现(确切的说是 ConfigurationClassPostProcessor 中实现)。 ...

September 3, 2022 · 15 min · jiezi

关于测试:揭秘百度智能测试在测试分析领域实践

作者 | intelligents 上一篇,介绍了测试流动测试输出、测试执行、测试剖析、测试定位和测试评估五个步骤中测试执行智能化钻研和实际,本章节重点介绍测试剖析环节的智能化实际。 测试剖析是指测试流动通过设计测试用例、用例执行实现后,通过观察被测系统的体现,来判断被测系统是否存在问题。测试输出和测试剖析两个过程独特决定了测试流动的问题召回能力,用平时常见的流动示意单测中的校验点即为测试剖析,无校验点的单测是有效的。测试剖析从实践层面能够分为VE(正确性校验)和VA(基于体现的校验)。在智能畛域VE的钻研畛域更多的是如何正确的生成校验点、评估校验点的正确性和合理性;VA因为波及到通过数据统计分析系统分析法则发现问题,钻研的畛域比拟宽泛。 测试剖析智能化通过将数据、算法、工程等相干技术有机联合,以尽可能召回测试输出笼罩到的场景或问题,个别蕴含间接的校验点主动生成、基于数据挖掘零碎的潜在问题、基于视觉的UI召回等方面,在学术界和工业界均有十分优良的钻研和实际。本章节将从多个实际的角度,介绍相干畛域的指标、思路、波及到的技术点、成果,心愿能给到大家肯定参考。 一、基于契约测试的校验点主动生成契约是微服务或零碎交互间的一种接口协议的约定,契约测试实质是验证代码的变更是否导致契约生效。契约测试次要蕴含生成契约、验证契约、更新契约三个过程,其中契约测试的准确性很大水平依赖契约的验证点。校验点的主动生成是在契约已生成的前提下主动生成能保障契约满足每个consumer(生产方)需要的校验CASE,并在契约产生变更时能自动检测更新校验点。与传统接口功能测试CASE的差异是,基于契约测试的测验CASE是消费者驱动由各个consumer的需要预期组成多份测试CASE,而传统的性能接口测试CASE仅关注provider本身设计正确性,是一份功能测试CASE。 基于契约测试的测验点主动生成次要思路是,获取不同consume的需要造成契约接口的内容,如申请参数、返回等,造成每个consume的契约形容。针对不同的契约形容进行流量录制(request、response等信息),对录制好的信息进行数据预处理辨认不同consume关联字段、筛选失常返回的响应信息。依照URI、申请参数组合、response构造等做分类,实现schema的提取与转化,即实现n*consumer -> n*枚举组合的接口框架辨认;随后将接口框架导入yapi,对每个组合mock数据造成独立检查点,通过ITP CASE的模式表白契约,进而用来达成重放契约中的申请,从根本上来说CASE的参数从契约定义中来,CASE的断言为契约中返回数据的json-schema。之后再通过逆向工程实现契约感知,罕用办法之一是走读大量业务代码形象代码格调,建设契约与代码间的精准关联,从而通过辨认代码变更自动化感知契约的变更,一旦感知到契约的变更则同步更新mock数据,作为代替被测试程序的理论返回内容,实现测验CASE的自动更新。 二、基于工夫分片的C++内存泄露检测对于曲线的校验,会利用于测试流动的大部分环节中,检测内存泄露就是典型的一个场景。然而传统的内存泄露检测时间周期长,准确率低,导致内存泄露测试工作转化较低,智能的曲线校验剖析能够解决上述问题,次要分为两个方向: 首先是准确率晋升。之前的算法是简略的人工教训判断,对测试人员教训要求高。对于这种场景应用DTW曲线类似度和Cart决策树的分类算法来实现判断是否存在内存泄露。DTW曲线类似度算法,次要通过点和点之间的差距和工夫序列的延生和缩短,计算新旧版本的内存曲线类似度,认为曲线不类似的为有内存泄露。DTW实现简略,能够疾速利用,然而也会存在一些误报警的badcase。于是持续进行优化,通过Cart决策树,将DTW曲线计算的间隔作为特色输出,再联合别的特色进行训练和预估,最终预测准确率从75%->98% 另外测试工夫缩短,之前的算法是间接应用固定工夫,这样会有极大的工夫节约。对于这种场景解决方案是通过曲线的历史数据来预测不同模块须要多久便能够收敛,而后以收敛的点来压缩工作时长,模块利用后节俭了1/3的测试时长。 三、基于动静阈值的性能diff检测性能测试后果准确性与测试环境有着很大的关系。事实中,因为硬件差别,运行时本身环境,第三方环境的差别,导致测试存在稳定。因而咱们通过设置阈值的形式,即依据性能指标的稳定是否超过阈值,来判断是否存在危险。初期阈值都是通过人工教训设定的,然而因为工作运行时,内外部烦扰因素太多,依据单次且固定阈值进行评估不事实,也不精确。因而咱们建设了基于动静阈值的性能危险剖析策略,用以进步测试工作准确性。 动静阈值的思维次要是通过对历史报告各指标数据的剖析,实时预测各指标在以后容器下的可信度范畴。比照以后指标值与阈值,不在阈值范畴内的指标被认定为异样指标。在动静阈值的设定中,针对不同的业务特点,不同的场景,采纳不同的计算策略算法。此处简略介绍两种算法。箱式分析法的思维次要是基于咱们认为失常的指标在雷同QPS下,应该是在固定值左近飘动,合乎正态分布的。咱们依据历史测试后果计算出正态分布的参数,而后在这个散布下圈定正当阈值。这样会使得阈值不受异样值的影响,可能更精确地描绘出数据的离散散布状况。LOF算法的思维次要是通过比拟每个点p和其邻域点的密度来判断该点是否为异样点,如果点p密度越低,越可能被认定是异样点。由此失去的失常区间,取最小、最大值,作为性能可相信阈值区间。自动静阈值策略接入后,多个模块性能工作黄灯率和重试率大比例升高。 四、基于功能测试的测验点智能补全基于功能测试的校验点智能补全,是在主动生成用例的背景下,主动生成更正确、正当、易于了解的断言,次要利用在单元测试用例的生成。在理论我的项目中,能人工通过业务性能来确认测试断言的函数,占比往往有余5%,绝大多数的函数即便被笼罩,正确性难以保障。 解决思路是通过利用机器翻译方向的模型,来主动了解被测办法、学习被测计划与开发人员编写的测试用例,来推断出可验证内容,进而生成正当的断言汇合。 首先,建设足够的裁减用例生成的数据集,蕴含大量被测代码和单测用例;而后,建设出被测函数和单测用例及其蕴含的断言的映射关系;接着,选取适合的机器翻译模型,学习样本中隐含的命名规定、逻辑、校验规定等;最初,依据学习后果输入用例。 了解被测办法是该场景的重点,须要选取适合的机器翻译模型,如TestNMT,Reformer、transformer等,并联合结合实际状况一直优化编码方式、切分形式、训练速度等。 咱们实际了基于transformer的单测生成,解决了局部未登录词(OOV)和常见词(Rare Words)的问题,断言准确率达到41%。 五、基于视觉召回的有参照和无参照召回钻研基于视觉的有参照召回能力也称为UI DIFF,次要思维是通过比照本次要校验的页面截图与正确的UI截图,指出两者之前的差别区域,生成可视化页面报告,测试工作者可能很不便对报告进行查看。咱们针对不同的业务特点,不同的场景,采纳不同的DIFF策略算法,次要蕴含:针对网页和APP的整页diff校验、自定义区域的diff校验能力,针对不同分辨率机型的diff校验能力,针对主版和矩阵版本(例如:手百和手百大字版)的diff校验能力。此外,为了升高满足不同测试场景的需要,咱们提供了:高精版的像素级diff能力,低精版的布局款式级diff能力,间断帧动静区域过滤能力,视频、轮播图过滤能力,高类似度过滤能力等。开源数据集和技术细节详见:https://github.com/RYWei/Cros...。目前UI diff在局部重点业务线落地,辨认准确率达到90%+,笼罩约12%的业务前端我的项目,每个季度可能召回100+无效问题。 相比于有参照召回,无参照召回无需比照图片,次要针对异样黑、白屏,组件重叠,文本截断,蓝屏花屏,裂图,乱码,null等页面问题的开掘。学术和工业界通常采纳卷积神经网络实现检测。因为事实中,实在bug图片数据十分稀少,咱们采纳启发式合成技术,来结构训练数据集,解决样本有余的问题。另一方面,模型预测后果蕴含较多误报,咱们进一步设计了后处理流程,针对图像区域烦扰较多引起的误召回,通过页面构造树,过滤图片占比过大的数据;其余如广告,悬浮按钮,弹窗,toast,等误召回数据作为新的负样本,退出训练样本。如此反复屡次训练,来进步模型鲁棒性。目前咱们在重点业务线进行线上监控和巡检工作,异样纯色检测,乱码,裂图等能力实现了98%+辨认准确率,季度召回20+线上第三方起因导致的产品体验问题。同时在遍历场景发展组件重叠,文本截断技术试点。 ---------- END ---------- 举荐浏览【技术加油站】系列: 揭秘百度智能测试在测试主动执行畛域实际 揭秘百度智能测试在测试主动生成畛域的摸索 【技术加油站】浅谈百度智能测试的三个阶段 【技术加油站】揭秘百度智能测试规模化落地

August 24, 2022 · 1 min · jiezi

关于测试:软件测试100天上岸3测试有哪些最高原则

测试准则是一个测试人员时刻要铭记在心的,甚至要造成一种本能,领导测试工作。 准则1:测试找不出所有的Bug软件的复杂性仅次于生命体,甚至当初很多软件都曾经有了人工智能的属性。对于这样精妙的零碎,一小点异样都有可能产生连锁反映,最终让整个零碎无奈运行。就如同人体只须要吸入一粒渺小的尘埃,就可能感化病菌,从而引起人体的高能反馈,最终导致人病倒,无奈口头。 像软件这样的精妙零碎,就算做再多测试,也无奈找出所有的谬误,就如同你永远无奈保障,人不生病一样。 准则2:2/8 准则多数功能模块会测试到大多数缺点,用数字来示意就是 80%的问题呈现在20%的功能模块中。在很多畛域中都存在 2/8 准则,而在测试中同样会使用到这个准则。 为什么会这样的起因很多,咱们只能适当剖析。 比方开发某个功能模块的程序员程度不行,引入了大量缺点; 也可能是这个功能模块非常复杂,可能呈现大量没有思考到的因素。 准则3:尽早染指测试一个软件越简单,越有可能产生新 bug。 热力学第二定律指出:孤立零碎自发地朝著热力学均衡方向──最大熵状态──演变,同样地,第二类永动机永不可能实现。 这个定律同样实用于信息系统。 当一个软件引入越多的信息,越多的性能,会让软件变得越来越凌乱,从而产生越来越多bug。 如果要少产生bug,首先是要放弃软件整体的简略性,还有就是尽早染指测试。 因为在一个性能被开发的晚期,性能还足够简略,晚期染指测试能更高效的找到bug,如果一个性能演变到前期,被更多其余的程序应用,变得越来越简单,找到bug会难很多。 尽早染指测试,还能够让开发疾速失去反馈,从而尽快修复bug,不会把bug带到更简单的代码世界中。 准则4:抗药性准则抗药性准则又叫杀虫剂悖论(Pesticide Paradox)。随着工夫的推移,重复使用雷同的杀虫剂毁灭昆虫会导致昆虫对农药产生抵抗力,从而使杀虫剂对昆虫有效,这同样实用于软件测试。 如果进行雷同的反复测试,则该办法将无助于发现新的缺点。为了解决此问题,须要定期检查和更新测试用例,增加新的和不同的测试用例以帮忙发现更多的缺点。测试人员不能简略地依附现有的测试技术。他必须一直寻找改良现有办法的办法,以使测试更无效。 准则5:要有准确的预期后果测试用例中一个必须局部是对预期输入或后果的定义,这条显而易⻅的准则在软件测试中却是最常犯的谬误之一,很多测试人员对程序应该产生的后果没有明确定义,只是凭感觉判断后果是否异样。 只管“软件测试是破坏性”的定义是正当的,但人们在潜意识中依然渴望看到正确的后果,所以当程序运行合乎测试人员的心理预期时,他们会自认为程序是失常的。没有冀望,也就没有所谓的意外。 克服这种偏向的一种办法,就是通过当时准确定义程序的预期输入,激励人们对所有的输入进行仔细检查。因而,一个测试用例必须包含两个局部:1.对程序的输出数据的形容。2.对程序在上述输出数据下的正确

August 19, 2022 · 1 min · jiezi

关于测试:软件测试-100-天上岸-2-测试必须有策略

什么是软件测试 测试是为发现错误而执行程序的过程。 软件测试一个破坏性的过程,甚至是一个施虐的过程,也就是第一天说的“找茬”游戏。 当一个输入框让我输出手机号码时,我偏不,我要输出非手机号码,甚至不填。 当界面提醒让我点击第一个按钮时,我偏不,我要点第二个,第三个。 这和开发是一个截然相同的工作,开发的思路是发明,把性能做进去,失常运行; 而测试的工作是找茬,成心让程序不失常运行,生存中常常挑他人的故障的人,兴许更适宜做测试。 如果通过设计一条用例,胜利的让程序触发某种异样和谬误,那就能够让团队趁早发现这个问题,从而在产品正式公布之前,让软件有一个更好的品质。 测试人员是靠 bug 来晋升话语权的,如果有开发宣传“我写的代码没有bug", 那咱们反驳的最好形式是多找几个 bug 进去。 黑盒测试要精通 黑盒测试是一种重要的测试策略,所有刚入行的测试首先就是把黑盒测试玩得十分棘手。应用这种测试方法时,将程序视为一个黑盒子。测试指标与程序的外部机制和构造齐全无关,而是将重点集中放在发现程序不按其标准正确运行的环境条件。 而白盒测试是测试程序的外部机制和构造,可能看到具体的代码,对测试人员的要求更高。 黑盒测试又称为数据驱动的测试或输出/输入驱动的测试。 因为关注不到具体的代码逻辑,所以只能管制盒子里面的数据(输出和输入)。 穷举法没用 穷举法是把所有可能的输出条件作为测试用例,然而一个性能的输出基本上都是有限的,应用穷举法意味着要对每个繁多功能设计有限个测试用例,这当然是不可能做到的。 比如说用户界面中须要你输出一个手机号用来登录,去测试的时候不仅须要输出正确的手机号,而且还须要测试输出的不是手机号时,程序如何反馈。 不是手机号的数据你永远都举不完。 穷举法不会用在实战当中的第二个起因是它不经济。 就算咱们能够把所有的数据都列举进去,也没有足够的工夫和精力对每个数据去执行测试。 好的测试策略是经济高效的 在测试一个软件时,肯定要制订好策略。 如果所有的测试人员都不精通代码,那么最好以黑盒测试为主,白盒测试会破费大量的人员造就老本。 在设计用例的时候要依据具体的业务对测试进行划分,灵便应用各类用例设计办法。 在面试的时候,通常须要联合具体的业务谈谈上家工作怎么做测试,具体的测试流程是怎么的,测试策略是怎么的,这些能够看看我整顿的实在面试题集锦,顺便求个赞,三连必回哦。

August 18, 2022 · 1 min · jiezi

关于测试:软件测试100天上岸1测试就是找茬游戏

软件测试是找茬游戏以前有一个很火的游戏叫《大家来找茬》,我玩这个游戏很厉害,在这个游戏中,两幅图中有几个不一样的中央,有些中央很显著,一眼就能看到,有的中央暗藏得比拟深,要认真看能力看清楚。 游戏也不须要你把没处不同都找进去,只有达标就能够进入下一关。 软件测试就是玩《大家来找茬》,拿到的需要就是第一幅图, 开发写进去的代码是第二幅图。 开发在编写代码的过程中会呈现逻辑谬误,从而导致第二幅图和第一幅图不齐全一样, 而测试的工作就是把这些不一样的中央找进去,防止损失。随机测试法不灵低段位的选手玩《找茬》游戏个别是随机查找,看到了就看到了,没看到再换个区间。这种测试方法教 “随机输出测试法”,很显著,这是效率最低的形式。在一张图上的任意一个像素点都有可能不同,而在成千上万行代码中,任意一行都有可能出问题。 随机测试法就如同拿个小碗到大海里捞针,捞到的几率很小。穷举法也不灵还有一种方法来玩《找茬》游戏,那就是一个个像素点比对,这种形式的确能找到,然而速度切实是太慢了。为了进步速度,总是会跳过一些中央,总会有漏网之鱼。小时候过年,家里捞池塘里的鱼就是用这种方法,然而每年池塘里总会有很多鱼没有捞洁净。 测试用例办法必须学精精通的办法:等价类边界值因果图和断定表谬误猜想刚入行想把握好这几种用例设计办法应该也还行了,所以其余的用例设计办法我也没有认真看。看着就这几个字,然而实操起来还是有难度的。 尤其是当因果图和等价类这些联合起来的时候,分分钟就晕了。放张图感受一下。测试类型不是儿戏想那些报班学习的应该只关注功能测试吧,对于模块测试、零碎测试应该关注不多,这就是自学的劣势,能看到全世界最厉害的人的思维结晶。当然,对于互联网利用,起码也应该从表示层、业务层和数据层面进行测试。表示层次要测试界面是否显示失常:字体链接指向图形分辨率拼写查看光标地位默认状态交互友好度商业格调业务层次要测试是否实现了正确的事件:计算是否正确数据采集和返回失常事务正确实现失败事务回滚失常响应工夫和吞吐率数据层次要看数据库:数据库性能数据存储失常数据备份失常数据加密和平安后端数据输出和治理性能的可用性测试很难我不晓得有多少人听到测试门槛低,工资高就一头扎入了这个行业, 然而测试是一个逻辑游戏,逻辑思维不行的,思考问题不健全的,对用户没有同理心的干这个可能会很吃亏。当然入门还是比较简单的,就和你想学唱歌一样,想学入门很轻松。 然而你要靠这个作为饭碗,要做歌手,那就须要通过零碎的训练。同时,面试也会用十分多的八股文须要背,我之前收集到的面试题多如牛毛,拜服本人是应试教育的一把好手,前面整顿了一下碰到的次要面试题,送给有缘人,顺便求点个赞,三连必回。

August 17, 2022 · 1 min · jiezi

关于测试:playwright录制脚本自动化测试

我喜爱Playwright! 这是微软开源的一款十分弱小的自动化工具,再过几年,他很有可能取代Selenium在浏览器自动化的告诉位置。应用过一段时间,我没有找到很好的中文材料能够参考,导致很多问题无奈失去及时解决,因而我决定本人记录一下应用的笔记,算是给社区回馈。在编写 web 自动化测试用例时,代码编写的速度是否快,会影响框架的应用体验。当初很多的框架都会提供一些辅助性能,帮忙咱们更快的去编写自动化测试代码,而录制性能是简直所有的web自动化工具都会带的性能。在实际操作过程中,有 2 个问题影响代码编写速度。第一个问题,每次操作前都须要先定位元素,须要编写元素定位选择器,这须要咱们频繁查看网页的源代码,如果元素选择器编写不够标准,会引发测试用例失败。第二个问题,每一步操作都要调用对应的api函数,如果这些函数应用不标准,也会影响编程的速度和用例通过。 录制性能帮忙咱们解决这些问题。应用录制性能时,主动关上浏览器,接下来咱们能够手工在浏览器页面上进行操作,每个操作步骤都会被录制器记录一下,以代码的形式生成在录制界面。 当浏览器操作实现后,能够在界面上暂停录制,也能够复制曾经生成的代码,保留到代码文件中。 在编写正式的测试用例代码前,先通过录制性能把测试用例步骤录制下来,主动生成元素的定位形式,主动调用浏览器操作,会节俭很多编写元素选择器的工夫,有局部 API 函数记不清楚用法的,录制性能也会帮你主动生成。 通过命令行的 codegen 参数能够启动录制界面。 playwright codegen https://v4.ketangpai.com/User/login.html弹出浏览器和代码生成界面,在界面的菜单栏能够进行录制,复制代码。代码能够抉择 Python, Java 或者 JavaScript 等支流语言。手工创立一个代码文件保留复制的代码。<img src="https://yuztuchuang.oss-cn-beijing.aliyuncs.com/img/image-20211011153000068.png" alt="image-20211011153000068" style="zoom:50%;" />录制好的代码会存在一些不必要的操作,能够间接删除这些不必要的代码,还会有元素定位的形式不断很正当,须要进一步修改。 尽管录制会存在一些小问题,然而他能疾速生成样板代码,进步咱们编写自动化测试代码的效率。之后的操作咱们都能够沿用这种模式,先通过录制生成样板代码,再进行小幅度批改后应用。 playwright inspector 除了能够进行录制,还能够辅助元素定位。 当暂停录制后,在页面下方会呈现辅助定位的控件,当输出元素定位表达式后,对应的页面元素将会高亮显示。 目前还不反对生成 pytest 插件的代码,所以次要还是复制元素定位形式和函数的用法,不能齐全照搬。

August 5, 2022 · 1 min · jiezi

关于测试:微服务测试教程使用Python测试gRPC接口案例

微服务离不开gRPC当初大多数企业都会采纳微服务作为软件的架构,在这种架构的大背景下,微服务框架和协定宽泛风行,而RPC也开始风行。 grpc 是基于RPC的框架,性能高,应用十分宽泛。grpc 由谷歌公司开发和保护,反对简直所有的支流编程语言。 不论你用的是 Java, 还是 Python, 还是 Go, 还是 Ruby 等等,都能够应用他来实现近程的服务。 Protocol Buffersgrpc 默认应用 protocol buffers 作为序列化传输格局,通常会把传输的数据类型用一个带有.proto扩展名的一般文本文件来存储,不论是申请还是响应的数据都须要合乎这外面定义的数据要求。比方在进行用户验证时往往须要传入登录的用户信息,服务端返回 token 值,对应的 proto 文件形容, 如果申请或者响应数据太大,不能一次获取完,能够通过 stream 流信息继续传输,此时在类后面加 stream 关键字。 // login.proto service User{ // login rpc Login (LoginReqeust ) returns (LoginReply ) {} // stream rpc GetImage(LoginRequest) return (stream LoginReply ){} } // 登录申请数据 message LoginReqeust { string username = 1; string passwd = 2; } //登录响应数据 message LoginReply { string token = 1; string msg = 2; }proto 文件生成 gPRC 代码以Python为例,首先须要装置 Python 相干的包。 ...

July 28, 2022 · 1 min · jiezi

关于测试:App自动化测试是怎么实现H5测试的

挪动端 app 自动化框架很多,然而有一些框架因为不反对混合利用测试,始终没有齐全风行。比拟典型的是经典的 Python 框架 uiautomator2, 这个框架简略好用,没有 appium 那样简单的 api 调用,受到不少 python 自动化工程师的青眼。 然而不论是官网文档,还是民间教程,根本都没有波及到用它做混合利用测试,本文提供一种非常简单的办法,只须要多加 4 行代码,就能让 uiautomator2 反对混合利用测试。 什么是混合利用挪动端利用有两种典型的开发方式,一种是原生的 native app,一种是基于网页开发技术的 web app。 原生利用的体验感更好,然而如果想同时开发安卓利用和 ios 利用,须要不同的原生开发技术。 web 利用能够十分轻松的做到安卓和 ios 的跨平台开发,它的体验感要略微差一些,不像原生利用那么晦涩。 Hybrid App(混合模式挪动利用)是介于 web app和native app之间的开发方式,能够在原生界面中嵌套网页,因此能够同时具备体验感和跨平台能力。 目前支流的挪动端 app 测试框架 appium 具备混合利用测试的能力,然而这个框架搭建和应用都比拟麻烦,封装的办法也没有那么 pythonic,因而有很多公司不想应用,他们更加喜爱简洁优雅的 python uiautomator2 框架。 十分遗憾,这个框架目前没有反对混合利用测试。 WebView自动化测试步骤第一步,通过原生操作进入 webview 网页;第二步,应用 selenium 等网页测试工具进入网页;第三步,应用 selenium 等网页测试工具测试。这两头的关键步骤在于如何应用 selenium, 如果间接关上一个新的 selenium 会话,那么会关上一个新的页面,和 app 中的 webview 是离开的,因而无奈测到嵌套网页。 selenium 必须要和 app 建设某种关系,使他们绑定在一起,操作 selenium 时就是间接操作 app 当中的网页。 通过 uiautomator2 进入 webview这里就是最根本的 uiautomator2 操作,具体操作能够查看 官网文档, 这里应用的 app 是 android bootstrap,能够间接 点击下载 。 ...

July 22, 2022 · 1 min · jiezi

关于测试:Python函数默认参数避坑指南

列表是一种常常应用的数据类型。在函数的定义中,经常会应用列表作为参数。 比方,要测试一个接口的数据,接口返回的数据格式如下: { "code": "20000", "data": ["孙悟空","李白","甄姬"], "msg": "success", "status": 0}要测试的内容是:返回的 data 数据是否跟需要合乎。在测试之前,须要对数据进一步解决,比方要减少 "王昭君" 这个元素进去,须要写一个函数: def add_element(data=["孙悟空","李白","甄姬"]): data.append('王昭君') return dataprint(add_element())print(add_element())print(add_element())在函数定义的时候常常会给参数设置默认值,在这个例子中,将 data 参数设置了默认值,函数定义当前,前面会被频繁的调用,期望值应该是打印如下: ["孙悟空","李白","甄姬","王昭君"]["孙悟空","李白","甄姬","王昭君"]["孙悟空","李白","甄姬","王昭君"]理论后果为: ["孙悟空","李白","甄姬","王昭君"]["孙悟空","李白","甄姬","王昭君","王昭君"]["孙悟空","李白","甄姬","王昭君","王昭君","王昭君"]起因当定义函数时,会保留函数中默认参数 data 的值,也就是 ["孙悟空","李白","甄姬"],在每次调用的时候如果传递了新的实参,则应用传递的参数;没有传递,应用定义函数时保留的默认参数。 下面两次调用中,都没有传递新的实参,程序会调用定义函数时保留的默认参数,因为 append() , 在第一次调用当前,默认参数曾经由 ["孙悟空","李白","甄姬"] 扭转为 ["孙悟空","李白","甄姬","王昭君"],再次执行 append() 之后,就变成了 ["孙悟空","李白","甄姬","王昭君","王昭君"];同理,第三次又扭转了。 能够应用 id() 函数来定位问题: def add_element(data=["孙悟空","李白","甄姬"]): # id 来示意是不是同一个对象 print(id(data)) data.append('王昭君') return dataprint(add_element())print(add_element())print(add_element())打印进去的 id(data) 为同一个对象,也就是默认参数。如果咱们扭转 第二个 print(add_element()) 为 print(add_element(["孙悟空","李白","甄姬"])),那么第 2 个 id(data) 就会发生变化,因为它不在是默认值,而是新传进来的实参,理论后果也将变成: 2543416926792['孙悟空', '李白', '甄姬', '王昭君']2543418907848["孙悟空","李白","甄姬", '王昭君']2543416926792['孙悟空', '李白', '甄姬', '王昭君', '王昭君']改良计划如果参数中有列表,尽量不要用它做默认参数如果应用了列表作为默认参数,函数调用时传入实参,而不是省略能够在函数体中另外定义一个变量接管默认参数def add_element(data=["孙悟空","李白","甄姬"]): if data == ["孙悟空","李白","甄姬"]: data = ["孙悟空","李白","甄姬"] data.append('王昭君') return data我是九柄,公众号【 九柄 】,分享软件测试文章、面试、教程材料,欢送来看看。 ...

July 20, 2022 · 1 min · jiezi

关于测试:ModuleNotFoundErrorNomodulenamed通俗的解释和方法

阿刁是一个自动化测试用例,从一出世他就被赋予终生使命,去测试一个叫登录的过程是否正当。他始终就被关在一个小黑屋里面,素来也没有进来过,小黑屋里还被关着其余的同胞,他们身上都捆着两个小袋子。 小黑屋里很好受,他们都想跑出去,可怎么也跑不进来。Python 是他们的总司令,有一次,python 通知他们,你们就不要想着跑出去了,你们曾经够侥幸了,只有 8 集体用这个屋子,别的屋子都挤着 30 多集体呢! “这里还有其余的屋子?” 一个用例登时感到很欣慰。 “有,这样的屋子这里有 200 多个。每个屋子都有门牌号,你们这个门牌是 test_login,你们这个小镇住的人都很危险,所以通常不容许进来逛。这是你们的小镇地图。‘’ “咱们哪里危险了。。。” 阿刁很不满。 Python 微微一笑:“你别不服,看到你们身后的袋子了吗?这外面装了炸弹,外面有两种火药配方,一个叫 ‘’用户名”,一个叫“明码”,你们每个人的配方都不一样,因而威力也不一样。你们的工作就是去测试 login 这个堡垒的坚硬水平,这样堡垒真正投入使用的时候,就不怕里面的攻打了。” “可咱们每天都被关在屋子里,哪晓得怎么去攻打城堡。” “这个是个好问题。你们每个人的名字上面我都挂了个锦囊,外面有指令,依照指令做就行了。” 阿刁抬头一看,还真有指令,他大声的念了进去:第一条指令是叫 verify 过去帮忙,第二条指令是把炸弹装到 verify 身上,第三条指令是查看 verify 竖起的旗号,看是否和本人身上的胎记一样,如果一样,就能够上班了;如果不一样,那就报告Python。 “咦,我的指令也是一样的。我的胎记上有一行字,明码为空。你们的呢?” “我的也是。” "我的是用户不能为空。" “我的跟你一样啊” 阿刁抬头去看本人的胎记“登录胜利”。这给了他心愿,不过他对本人的工作还有些纳闷,他得乘总司令还在的时候问问他:“老大,你的指令写得十分明确,可我并不意识什么 verify,万一他不过去怎么办?”,其他人一听到这个登时都焦虑起来,是啊,万一 verify 不来,这炸弹炸到本人了怎么办? Python 指挥官给了阿刁一个赞叹的眼神,开始讲:“大家不要慌,你们看到墙上的按钮了吗“ 所有人都纷纷望向墙面,下面有很多按钮,其中一个印着: from castles.login import verify”尽管你们通常不容许进来,然而他人是能够进出的,你们看地图,verify 是 login 城堡外面的外部人士,他只有走出城堡,就来到了镇上。在下达攻打命令之前,这些按钮会主动按下,我会派人去叫 verify 过去。留神,谁叫的他,谁比照旗号内容,谁都不容许冒领。 包导入谬误阿刁对这种形式很称心,他是个外向的人,不善与人交际,也不喜爱进来串门。就这样他和 verify 单干了几个月,日子过得平淡轻松。这一天,指挥官又下达攻打工作了,阿刁纯熟的实现了一系列筹备工作,他看到其他人的表情和凝重,还有几个人正在打电话,他晓得出事了。轮到他了,他到门口去叫 verify,可等了很久 verify 都没有进来,炸弹的计时器在响着,阿刁十分缓和,他等不了了,必须把这个问题报告指挥部,不然要出小事了。 电话还没拨出去,炸弹的计时器关了,指挥官终止了此次口头。没过多久,指挥官呈现在了小黑屋给大家赔罪:“不好意思,让大家缓和了。也不晓得哪个码农在你们镇子里面修了堵墙,我在镇子里派出去分割 verify 的人找不到你们镇子的进口,迷路了。你们看地图,这个蓝色的就是墙。还好他们都及时给我打了报告,不然我基本就不晓得。” 阿刁瞄了一眼那叠报告,都写的一样: ModuleNotFoundError: No module named 'castles'“这怎么办,咱们送信的人都是临时工,对这里不相熟。那不每次都会呈现这样的问题?” “我想到一个方法。” 阿刁说,“老大,你能够把去城堡的路线图画到墙上,这样临时工只有看一眼地图,就晓得怎么走了。” ...

July 20, 2022 · 1 min · jiezi

关于测试:Python网页解析库用requestshtml爬取网页

Python网页解析库:用requests-html爬取网页1. 开始Python 中能够进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等。在网上玩爬虫的文章通常都是介绍 BeautifulSoup 这个库,我平时也是罕用这个库,最近用 Xpath 用得比拟多,应用 BeautifulSoup 就不大习惯,很久之前就晓得 Reitz 大神出了一个叫 Requests-HTML 的库,始终没有趣味看,这回可算歹着机会用一下了。 应用 pip install requests-html装置,上手和 Reitz 的其余库一样,轻松简略: from requests_html import HTMLSessionsession = HTMLSession()r = session.get('https://www.python.org/jobs/')这个库是在 requests 库上实现的,r 失去的后果是 Response 对象上面的一个子类,多个一个 html 的属性。所以 requests 库的响应对象能够进行什么操作,这个 r 也都能够。如果须要解析网页,间接获取响应对象的 html 属性: r.html2. 原理不得不膜拜 Reitz 大神太会组装技术了。实际上 HTMLSession 是继承自 requests.Session 这个外围类,而后将 requests.Session 类里的 requests 办法改写,返回本人的一个 HTMLResponse 对象,这个类又是继承自 requests.Response,只是多加了一个 _from_response 的办法来结构实例: class HTMLSession(requests.Session): # 重写 request 办法,返回 HTMLResponse 结构 def request(self, *args, **kwargs) -> HTMLResponse: r = super(HTMLSession, self).request(*args, **kwargs) return HTMLResponse._from_response(r, self)class HTMLResponse(requests.Response): # 结构器 @classmethod def _from_response(cls, response, session: Union['HTMLSession', 'AsyncHTMLSession']): html_r = cls(session=session) html_r.__dict__.update(response.__dict__) return html_r之后在 HTMLResponse 里定义属性办法 html,就能够通过 html 属性拜访了,实现也就是组装 PyQuery 来干。外围的解析类也大多是应用 PyQuery 和 lxml 来做解析,简化了名称,挺讨巧的。 ...

July 19, 2022 · 2 min · jiezi

关于测试:从-0-到-1-开展软件测试

前言 武让是极狐(GitLab)公司 高级解决方案架构师,具备 10 年产业互联网从业教训。先后在守业公司和上市公司负责架构师和技术总监。阿里云 MVP、AWS SAP、CSM、TOGAF 认证架构师。近几年致力于企业数字化转型。现负责极狐(GitLab)公司解决方案的设计与推广。 本文基于武让在「声网开发者守业讲堂 • 第三期丨守业初期如何保障产品质量」流动中分享内容二次整顿。关注公众号「声网开发者」,回复关键词「JT0611」即可下载流动相干 PPT 材料。 01 实践篇1、水星打算与软件测试说到软件测试,据说最早有记录的软件测试是在人类的第一次载人航天打算,也就是水星打算中提到的,我不确定是不是最早,然而我的确查到是有一些记录,因为载人航天波及生命安全以及政治因素( 1958 年美国跟前苏联的热战太空比赛),所以美国非常重视,就引入了软件测试,所以也能够看到为什么当初十分多的企业不太重视测试,其实就是因为产品不波及生命安全或者政治,大家没有碰到这些所谓的红线,也就对这部分没有那么器重了。 2、软件测试倒退历程图 1 展现了软件测试的发展史,初步能够分成五个阶段,最早从20世纪 50 年代开始,此时没有测试一说,更多的是叫作调试。到 1957 年,Charles baker 才提出了测试的概念。 所谓的测试和调试的区别是,调试的目标是使程序合乎开发人员的预期,而对于测试来说,就要确认程序是不是合乎产品性能需要的预期。第三阶段就是不光要做测试,还要对程序进行一些探索性的测试,确认有没有做不该做的事件。第四个阶段就是测试人员都比拟相熟的V&V实践,对应软件测试中的V模型,这个模型的话目前在整个工业畛域中还在宽泛地利用,它第一次提出软件测试要被利用在整个软件的生命周期当中。我认为截止到明天,整个软件测试还在第五个阶段,就是要去做一些探索性的测试、麻利测试,以及 TDD、BDD 这些新的概念的衰亡带来的所谓自动化工具继续集成这类技术的利用。所以在整个第五阶段,咱们的目标是在代码级别避免缺点,而不仅仅是局限测试。这五个阶段不是齐全独立的,更多的是继承。 ■图 1 3、软件测试分类图 2 左上角是传统的软件分类,做测试的人员可能比拟相熟,它其实就是依照不同的维度对软件测试的办法进行了分类。然而这种所谓的传统分类容易呈现概念的穿插,存在边界含糊的问题,这导致这一套分类实践会比较复杂。 ■图 2 对于初创型企业来说,如果企业外部有这么一套简单的、含糊的概念体系存在,则不利于流传,也不易晋升认知上的对立,或者说间接影响到了效率。为了解决这样的问题,就有了右上角的测试金字塔,这个金字塔把各种模糊不清的测试方法全副都进行了整合,造成了三段式或者多段式的,从底往上、从大变小的过程。这里的分层包含单元层、服务层和 UI 层,越往下,独立性越高;越往上,集成性越高。所以应该在上层写更多的测试用例,在下层做更少的测试,这才是一个衰弱的测试状态。 独一无二,Google在《Google软件测试之道》中也对测试进行了从新的分类,它的分类办法是依照大、中、小型测试来做划分,这个划分从某种意义上来说,跟测试金字塔是相匹配的,小型测试对应金字塔测试中的单元层,就是说能够测一些独自的模块,在小型测试中能够解决独立的函数。同时它也给出了一个占比,Google 认为所谓的小型测试应该占七成,中型测试占两成(模块之间的集成性测试占两成),最初全面的系统性测试只需占 10%。图 2 下方是 Google 给出的分类。对于初创型企业来说,倡议抉择测试金字塔模型,分层的层数和名称企业能够自定义,然而对于这样的模型,首先要对立概念,否则如果测试人员和开发人员的语言不对立,那么在发展工作的时候会遇到很多的问题。 4、自动化测试工具自动化测试随同着麻利开发、麻利测试等概念失去了蓬勃的倒退,通过图 3 大家能够看到支流的自动化测试工具,晚期次要是线性测试,就是通过录制的形式生成脚本、宏,这种是比拟常见的模式,前期测试工具有了更多的类型变动,比方反对结构化的、数据驱动的以及关键字驱动的测试。模式上来说次要有两种,一种是基于 UI,一种是基于 API,基于 API 的模式就是调用 API,更多的是在接口层面进行操作。基于 UI 的模式就是模仿用户的操作,比方在界面上挪动鼠标、点击鼠标、按键等。 ■图 3 5、自动化测试发展条件自动化测试的劣势我认为次要有两点,第一点就是它能够代替一些反复但必要的测试工作,解决重复劳动问题。第二点也很重要,因为重复性工作容易引入人为的过错,此时就应该通过工具来辅助。尽管自动化测试劣势显著,然而它的劣势同样不可小觑,很多人认为自动化测试是万金油,在任何状况下都能够发展,其实并不是,它的劣势也蕴含两点,第一点就是老本较高,尤其是短期的开销比拟大,如果要进行自动化测试,须要人才培养或者人才招聘、流程建设以及脚本编写和保护,这些都须要一个老本比拟大的开销。此外,后面说了自动化测试的劣势是能够代替做重复性劳动,绝对应的劣势就是不容易发现新的 bug,因为它只能做反复的工作,想让它发现新的 bug 是比拟难的,尽管说当初有含糊测试、混沌工程,但它始终不像人一样善于或者可能发现新的 bug。 那在什么样的状况下,初创企业能够发展自动化测试,次要有三点:第一点就是产品周期比拟长,这里指的是稳固的产品,如果是 demo 型产品,就没有必要进行自动化了。第二点是频繁的迭代,这一点是它的价值所在。第三点是产品绝对稳固,这一点其实从某种意义上来说与第一点是捆绑的,因为产品稳固,能力有稳固的收益,才能够做投入。 所以对于自动化测试来说,更多的是与传统的手动测试的互补,而不是代替。互补是两方面的,第一个方面就是如果不具备自动化测试所需的条件,就能够做手动测试;另一方面就是针对自动化测试不容易发现新 bug 的特点,须要人先做探索性测试,而后再把这部分内容转变成自动化的脚本。 ...

July 15, 2022 · 2 min · jiezi

关于测试:Pycharm使用教程5个非常有用的技巧

PyCharm 是一款十分弱小的编写 python 代码的工具。把握一些小技巧能成倍的晋升写代码的效率,本篇介绍几个常常应用的小技巧。 一、分屏展现当你想同时看到多个文件的时候: 右击标签页;抉择 move right 或者 split vertical;成果。二、近程 Python 解释器解释器设置里点击设置;抉择 docker, ssh 等近程解释器。 三、Live Templateslive templates 次要是偷懒用的,采纳当时定义好的模板,一个按键实现一长串的代码输出: 快捷键 ctrl + j展现所有的 live template;快捷输出各种表达方式;输出对应名字的字符时会有相应提醒,比方输出 main 能够展现 if...main... 表达式和推导式等。你能够自定义 Live Templates,定义好了当前,当你输出对应的关键字或者应用 ctrl + j就能看到本人定义好的模板间接应用。抉择应用场景当前,能够在输出 class 的时候主动提醒生成一大段代码块。输出 html 时会输出很多就是应用的 live template。四、代码提醒额定代码提醒 coding attentions;每种代码都有额定的提醒,应用快捷键alt + enter能够呈现。比方光标放到字典上,应用快捷键或者点击左侧小黄灯呈现额定提醒: 能够将双引号换成单引号,有时候须要单引号换成双引号,合乎 json 转化规范;也能够将字典示意模式转化成结构器模式:放到函数上能够增加函数注解和函数的文档字符串。放到类 class 上能够动态创建 self.name = name 五、提取函数 extract method场景:当时定义了一个函数,起初发现外面很多的步骤都能够封装成各种小办法。能够通过ctrl + alt + m动静生成。 def run(a, b): print("a is {}".format(a)) print("b is {}".format(b)) print(a + b)心愿将第1、2 行封装成一个函数 print_a_b, 第三行封装成另一个函数 sum_a_b: ...

July 15, 2022 · 1 min · jiezi

关于测试:一种新的UI测试方法视觉感知测试

什么是视觉测试视觉测试(Visual Testing),次要查看软件用户界面(UI)是否正确显示给所有用户。它查看网页上的每个元素的形态、大小和地位是否合乎预期,还查看这些元素是否在不同的设施和浏览器上是否兼容,不同的环境、不同的屏幕大小和其余影响UI显示的因素是否会影响产品的应用。视觉测试是解决 GUI 测试的一种测试伎俩。 为什么须要视觉测试比方,咱们开发了一个在线商城。第一次测试的时候所有的性能都能失常运行,然而当部署到另一个测试环境时,就有可能呈现以下状况,这些都是因为界面布局 bug 导致用户无奈失常应用,视觉测试就是用来发现这些界面布局导致的产品缺点。 购买按钮突然被一个弹框遮住,用户无奈下单;商品的详细描述文字相互重叠错乱,导致用户无奈失常浏览;购物车没有失常悬浮在窗口的底部,无奈查看退出了哪些商品;电脑上能失常下单,然而在手机上却只显示了局部页面;所有的图片无奈失常加载等等。文字重叠示例: 款式缺失示例: 视觉测试和UI功能测试的区别视觉测试和传统的ui功能测试不一样。ui测试是一个很广的范畴,它既包含端对端的功能测试,又包含页面的布局测试,咱们平时议论的 ui 测试,更偏重于功能性测试,而视觉测试更偏重于页面布局测试。 功能测试的确能发现大部分次要的性能缺点,甚至能够发现一些页面布局的缺点,比方某些元素因为布局问题无奈交互,某些元素缺失。 然而功能测试的问题在于它须要笼罩的门路太多,执行效率太慢,在迭代比拟快的研发周期上,有些看似不太重要的个性不会去测试。而有些布局问题十分渺小,但足以影响用户体验,功能测试无奈做到。 视觉测试专一于页面布局和显示成果,能够准确到像素级的差别比照,当页面产生任何变动时,都能被视觉测试发现,大到足以影响性能应用的空间、小到让用户不难受的经营文案的比照,都能被及时发现。 视觉测试尽量自动化视觉测试最好采纳自动化形式实现,它须要对每一个元素都要校验它的大小、形态和地位差别,有的差别十分渺小,肉眼察看很艰难。 手工的视觉测试更像是在玩大家来找茬的游戏,只是关卡的难度和关卡的数量都急剧回升,你失去的只有大量的成就感,更多的是丧气和措手不及。 来看一个具体的例子。这是一张 python 官网的截图,这里有一个十分重要的产品缺点,你能当初拜访 python.org 官网,把这个重要的缺点找进去吗? 这是失常的产品截图。通过比照能够发现:黄色的 Donate 按钮没有失常显示,这是 Python 基金会的支出起源,是一个很重要的产品性能,然而它可能被测试人员所疏忽,平时的测试没有对它进行笼罩,从而影响的产品的支出。 视觉测试自动化工具通常状况下,能够编写代码,对整套对照流程实现自动化,不会编写代码就只能应用在线的图像对照工具或者在测试软件中集成图像对照的服务。这些工具的应用形式都比拟相似,首先关上服务网站:https://www.diffchecker.com/i...,别离上传baseline 图片和理论图片。 在比照图片中,能间接看到图片中的哪些地位产生了变动,没有变动的元素全副都暗藏。 视觉测试工作流程设置 baseline 对照组,示意产品原本应该的状态。运行用例、通过截图等形式获取以后界面状态。和 baseline 比照、生成报告,报告最好能直观看到页面差别。更新 baseline。视觉测试对于精准化测试的意义视觉测试的次要目标是发现页面布局的缺点在视觉回归测试中,能立刻发现界面哪些地方进行了批改。我是九柄,公众号【 九柄 】,分享软件测试文章、面试、教程材料,欢送来看看。

July 15, 2022 · 1 min · jiezi

关于测试:jmeter和postman接口压测

前言:在有高并发的状况下,对接口进行压测,依据压测后果,晋升接口性能,保障接口在高并发的状况下,放弃失常工作. 工具:jmeter,postman jmeter压测下载jmeter软件官网下载地址https://jmeter.apache.org/dow...网盘下载地址https://pan.baidu.com/s/1623k... jmeter应用解压jmeter压缩包-》在文件夹中找到bin目录-》点击jmeter.bat-》Options菜单-》Choose Language-》Chinese(Simplified)执行后果Test Plan(可自定义名称)-》增加-》线程(用户)-》线程组执行过程 执行后果线程组填写线程组右键-》增加-》取样器-》HTTP申请执行过程执行后果测试list接口-》增加-》监听器-》用表格查问后果执行过程执行后果测试list接口-》增加-》监听器-》图形后果以上操作都配置好后,点击革除后果,而后点击三角形开始执行监测后果,次要看吞吐量和异常情况,可大略晓得接口能抗住的并发数两个重要的指标:QPS,TPS postman简略压测青丰工具最新版本

July 15, 2022 · 1 min · jiezi

关于测试:接口测试中应不应该用数据库

这个问题提的真好,我想很多人都没有思考过这个问题。我抛砖引玉,尝试答复一下。 首先,接口自动化测试是分层测试的一种,那就意味着它只能测到一部分范畴,就是接口的申请和响应是否失常,其余的中央它是测不到,这时候只有引入其余的测试伎俩能力把测试范畴笼罩齐全,比方 ui 测试和数据库测试,还有其余的中间件测试。 这么说来,接口自动化测试只管输出和输入,基本没必要用数据库。 然而,事实没有这么美妙。 在研发中,咱们想通过 单元测试、接口测试、ui 测试、端对端测试等各种测试类型来保障产品质量,然而其实很多测试类型都是缺失的,其中缺失最重大的是单元测试。 因为各种各样的起因,简直没有几个团队器重单元测试,这也意味着,产品中调用的根本函数和类没有通过测试就间接教到测试手上了,当然,数据库是否落库,音讯队列是否失常运行,缓存有没有命中,都没有通过根本的测试,就间接进入了接口测试阶段。 此时,你的接口自动化测试就要承当更多的责任,把单元测试没有实现的工作交接过去。就如同咱们为了赶时间把新设计的电动车造出来,独自去测轮胎,独自去测引擎,独自去测方向盘这些都不搞了,而是间接拉进去跑。 那测试人员在车上除了关注车整体的运行状况下,肯定还要多留一个心眼,对每个独自的部件也多一份关怀。 接口自动化测试实践上不须要数据库干涉,然而如果数据库没有独自测试,那在接口测试中就要退出这部分的工作。 数据库操作分为查库操作和写库操作。写库操作肯定要重点关注,查库操作在有精力的状况下也能够适当校验。 下面都是须要用到数据的第一种场景:校验数据库。 第二种在接口自动化测试中可能会用到数据库的场景是获取数据:有一些接口测试须要的数据须要你通过数据库失去,或者通过造数形式写入到数据库中(运行完当前能够革除)。 比方你在测试注册接口的时候,会由后端发一个手机验证码,这个验证码你很有可能会通过查数据库的形式去获取,否则你就很难进行下一步操作。 两种应用数据库的场景:校验数据库和治理接口依赖数据,不晓得这个答复对你有没有启发。

July 14, 2022 · 1 min · jiezi

关于测试:Chrome实现自动化测试录制回放网页动作

Chrome 浏览器是真的恐怖,它会把相干的小工具都卷死。从它诞生至今,发明了一个又一个的传奇,当初能够看到基于它的操作系统 chrome os ,还能买到用它做零碎的笔记本电脑。 最近,新版本反对录制和回放性能了。有了这个性能,你能够把在浏览器当中的操作全记录下来,保留到本地,而后通过回放反复运行。 这真是懒癌患者的福音啊, 轻轻松松辞别重复性工作。无论是自动化办公、自动化测试、爬虫,都能够用。 当初先来看一下怎么应用它吧。首先,把浏览器降级到最新的版本,目前我的浏览器版本98,接着咱们在开发者工具当中关上录制性能。 录制性能开启当前呢,能够在开发者工具当中查看到 Recorder 标签,点击 + 号或者 new record 按钮开始新的录制操作。 这个是官网的视频,能够看看: https://player.bilibili.com/p... 应用录制性能时,先点击 Start Record 按钮开始录制,之后在浏览器中所有的操作就会被记录下来,录制完结后,点击完结。在 Recorder 标签下会展现所有曾经被录制的脚本,点击 Replay 能够回放之前的操作,这个过程是主动的,不再须要手工参加。 在测试过程中次要有两种利用场景: 1、在进行摸索式测试时,能够疾速记录本人的测试操作,不便前面补用例。 2、把手工测试的步骤转化成自动化测试的代码。目前反对间接导出 puppeter 脚本,如果不应用 puppeter, 能够本人写工具转化成其余工具的代码。 应酬日常一些重复性的芜杂工作,戳戳无余,比方空余工夫摸鱼看看新闻。拜访每个新闻网站的操作录制一个脚本,每次要用的时候间接去运行这个 recording 。这个是摸鱼的视频:https://player.bilibili.com/p...

July 14, 2022 · 1 min · jiezi

关于测试:全栈代码测试覆盖率及用例发现系统的建设和实践

本文首发于微信公众号“Shopee技术团队” 。 作者:Hao、Qianguang,来自 Shopee Digital Purchase 团队。 1. 背景随着我的项目不断深入迭代,业务逻辑以及用户场景日渐简单,补充和保护单元测试保护的老本也变得越来越高。测试笼罩品质通过测试用例评审或者人工 Code Review 的形式费时费力,单凭多方沟通和教训累积的办法,往往不够精确,也难以避免开发人员存在在代码上线前“夹带私货”的场景,并且没有量化的、直观的主观数据来撑持。 为了在无限的工夫及人力老本内保障我的项目品质,实现对我的项目品质的精细化治理,咱们研发了 Finder —— 全栈代码测试覆盖率及用例发现零碎(下文简称 Finder),通过精确化的数据量化代码品质,从而实现精准化测试。本文将介绍 Finder 的总体架构,以及它作为品质保障体系中的重要一环,如何在我的项目中实现精确化测试。 2. Finder 我的项目介绍Finder 次要分为两个模块,一个是测试过程中对代码测试覆盖率进行收集与统计,一个是剖析代码和用例的映射关系,精准确定回归测试范畴。 代码测试覆盖率统计模块,可能满足多环境、多需要、多服务的简单测试场景,实时收集测试过程中的覆盖率信息,并生成覆盖率统计报告;其反对多端语言接入(Web、React Native、Golang),实现前后端我的项目全笼罩,买通整体研发流程。 相干用例发现模块,针对变动的代码剖析函数调用关系,追溯残缺的调用关系链路,标记出所影响的 API 接口及相干用例,确定测试回归范畴。 3. 架构设计 Finder 分为代理层、应用层、外围服务层三个模块: 代理层 Finder Agent,负责后期数据采集的工作,包含编译阶段的代码插桩、覆盖率数据的采集、解析源码函数调用关系信息等;应用层 Finder Platform,蕴含需要信息管理、分支信息管理、单文件覆盖率染色图展现、API 信息展现、测试用例关联、函数调用链展现等页面模块;外围服务层 Finder Server,其中,覆盖率剖析和服务调用剖析是最次要的两个模块: 覆盖率剖析,对收集到的覆盖率数据进行数据聚合、差别增量剖析、数据修改等操作;服务调用剖析,将源码解析工具传输来的数据进行数据结构转换后,实现调用拓扑图生成、API 信息关联、测试用例发现等操作。在后期实现数据采集的接入工作后,测试人员无需额定操作,失常进行业务测试,测试实现后能够在可视化平台中查看覆盖率数据、相干测试用例等信息。 4. 实现计划4.1 代码测试覆盖率模块 代码覆盖率模块次要分为两个步骤,第一步是通过对我的项目源码插桩,采集覆盖率信息;第二步是对覆盖率信息进行剖析,通过可视化平台展现统计报告。 步骤一:插桩与数据采集代码插桩,意为在程序中插入一些代码,用于跟踪被测程序的某些信息。对于覆盖率测试而言,插桩的目标是检测程序中可执行语句被执行(即被笼罩)的状况。 Finder 反对 JS 和 Golang 两种程序语言的代码覆盖率统计,接入成本低,对业务需要无侵入性。 对于 JS 程序,咱们在 babel 编译阶段进行插桩操作,注入到全局对象 window 中。咱们提供了上报覆盖率数据的 npm 包 —— coverage-report,前端利用接入后会被动上报数据到 Finder Server;Golang 程序的覆盖率接入对业务我的项目零侵入,只须要引入 Finder Agent —— 覆盖率收集工具:它在编译阶段对源码插桩,包含 Git 信息和覆盖率信息注入;插桩实现后的服务会启动一个统计覆盖率的 Http Server,Finder Server 通过该 Http Server 提供的接口定时申请覆盖率数据。步骤二:差别覆盖率统计比起全量代码的覆盖率,实际上咱们更关怀改变代码局部的覆盖率状况。能够通过 Git 指令比照性能分支与 master 分支的代码差别,过滤无关代码,只针对改变代码局部进行覆盖率统计。 ...

July 1, 2022 · 2 min · jiezi

关于测试:揭秘百度智能测试在测试自动执行领域实践

上一篇,介绍了测试流动测试输出、测试执行、测试剖析、测试定位和测试评估五个步骤中测试输出智能化钻研和实际,蕴含异样单测生成、接口用例生成、动作集生成等钻研与实际。本章节重点介绍测试执行环节的智能化实际。测试执行是指将测试生成的用例集、数据集利用手动和自动化的形式对这些汇合运行,测试执行实质上不能晋升揭错程度,但如何高效稳固的执行完测试汇合也是影响测试成果的要害。 测试执行智能化通过将数据、算法、工程等相干技术有机联合,个别蕴含测试用例举荐、测试流量筛选、测试任务调度、智能构建、执行自愈等方面,在学术界和工业界均有十分优良的钻研和实际。方法论上个别蕴含基于覆盖率相关性抉择算法、基于数据建模或两者联合的形式。本章节将从多个实际的角度,介绍相干畛域的指标、思路、波及到的技术点、成果,心愿能给到大家肯定参考。 01 基于危险的手工用例举荐测试执行,因为代码变动、环境等因素,往往不须要执行全副的用例,如何在用例全集中找到最有可能揭错的用例,是本方向的钻研畛域,也是业绩钻研最多的畛域。 手工测试用例举荐次要指通过代码变更举荐出关联手工用例,一个要害指标是心愿能精选覆盖度高的用例组合,尽早发现问题。间接应用代码覆盖率关联举荐,会呈现公共函数关联的多个用例将被冗余举荐,执行效率低,也不利于问题的及时发现。因而引入基于危险的手工用例举荐,优先依据危险代码举荐用例,更为精准。首先,数字化度量代码,将代码形象为语法树,抽取了代码环路、分支信等21个能够反映设计复杂度和程序开发难度的指标;其次,选取适合的模型进行推理,获取针对代码的有缺点预测和无缺点预测,获取关联的用例;最初,排序去重,选取预测有缺点的后果和无缺点中重要水平比拟高的用例作为举荐后果。其中,缺点推理可应用贝叶斯分类、SVM、KNN、逻辑回归等算法,也能够向深度学习转移,联合长短期记忆模型(LSTM)和深度神经网络(DNN)进行缺点预测。落地该计划后,用例举荐比继续降落由50%压缩到20%,回归天数由3天升高到1天,举荐发现bug的用例比例继续进步。 02 基于并行覆盖率的流量筛选计划在测试过程中,常常会遇到利用线上流量对系统进行diff、性能和压测,如何从线上海量的流量选取最合适的流量进行测试,是本课题钻研的要害。 并行覆盖率的流量筛选计划,是为了可能从海量的线上流量中,找出笼罩最多测试场景较小的流量集,从而达到测试笼罩场景,缩小问题的漏出,保障系统的稳定性的目标。在传统场景下,通常不可能把线上全流量的数据照搬到线下,因为量级太大,所以会有一些筛选计划;最罕用的就是依据机房、工夫等属性随机抽样,尽量晋升抽样的覆盖面,然而这样随机性太强,不确定最终业务和场景的覆盖面。基于并行覆盖率的流量筛选计划次要在覆盖率的指引下,尽量减少流量的量级,晋升业务的笼罩。次要分为两个步骤:通过对源日志进行剖析,进行流量初筛,经典场景有通过设施,地区,用户属性等,筛选能够笼罩这些场景的最小集,在第一步能够通过日志初筛出大部分有意义的流量。第二步通过对于发压流量的覆盖率进行剖析,应用贪婪算法,针对不同流量的覆盖率进行剖析,通过尽可能少的流量笼罩尽可能多的场景。以上两点,能够从业务理论场景和覆盖率两个方面联合一起晋升流量筛选的覆盖面。目前曾经多个产品线和模块利用,在覆盖率无损,甚至晋升60%前提下,流量缩减了一半,晋升效率的前提下也保障的流量的笼罩。 03 智能构建智能构建致力于在动态CI工作编排中动静执行工作,实现工作精简、工作跳过、工作勾销、后果复用、自愈、主动标注等性能,保障测试工作高效稳固构建实现。在日常的变更中,可能常常遇到以下场景: 1、变更仅批改了日志、格局或不重要的一些性能,这时是否有必要回归全量测试工作; 2、代码重复迭代,同一工作执行屡次是否有必要; 3、同一次工作在分支和骨干阶段是否有必要反复运行。 传统做法是执行全量工作,但会导致测试构建效率低,资源耗费大。 利用智能构建就能够依据变更场景动静调整构建工作,无效缩短构建工夫,晋升构建效率。具体来说,智能构建可拆分为剖析和决策两局部,剖析是针对业务代码库,以及本次变更(如git diff),利用工具算出进行本次变更的特征分析(变更代码行数、变更代码的具体函数、变更代码的调用链信息等等);决策工作是否执行/期待/重启/勾销等行为,做出最终的决策,比方业务设置业务相干的的白名单,若剖析特色全命中白名单则可跳过指定工作;智能构建是在保障测试用例揭错能力的前提下,利用无限的资源满足用户对时效性的需要。目前百度已创立蕴含策略开发、插件方、业务线在内的智能构建体系,其中策略开发者依照构建零碎接口标准开发策略,并将策略注册进入构建零碎,构建零碎凋谢策略给业务方应用;插件通过构建策略进行响应操作,如有效工作的勾销执行、偶发工作的自愈、流程管控工作的拦挡等;业务方则通过构建零碎进行流水线上策略的配置;目前智能构建已辐射3000+个模块。 04 基于工作优先级的算法调度本方向钻研的是如何在无限的资源状况下,依据稳定性和揭错能力调度测试工作。 在测试执行阶段,在无限的资源下大量的并行测试任务调度艰难,因为用户感知的等待时间是所有测试工作的排队工夫和执行工夫,不合理的测试调度会导致测试效率的低下。因而摸索一种基于工作优先级的算法调度策略用以解决上述问题。 在挪动端测试中,针对大量并行任务提交,建设工作优先级队列。依据工作重要水平,等待时间,资源需要,生成了有益于升高重点工作排队工夫的优先级公式。基于公式剖析后果,优化测试任务调度。在保障均匀排队工夫的状况,升高重点工作的均匀排队工夫。 针对单个case工作的执行效率,最后咱们基于离线历史工作分组的时长,单位工夫覆盖率等数据,寻找最优收敛点用以预测工作的最佳进行工夫,优化测试工作执行时长。成果上,外围产品线在覆盖率,问题发现数量未进化的状况下,执行时长缩短了10%,但仍存在无奈感知工作实时状态问题,因而在此基础之上,建设进行决策模型,通过实时监控工作的执行状况,基于执行工夫,截图数,测试控件笼罩变化率等特色,实时决策工作是否可达到进行状态,并辨认出执行成果不佳的工作,提前终止,升高有效执行的耗时。在优化成果上,在测试覆盖率进步10%的同时,执行时长缩小12%。 05 UI自动化自愈App自动化用例在执行过程中,上下文环境会遇到各种非预期的简单状况,如,App触发降级弹窗、页面加载迟缓呈现白屏、页面xpath门路变更等。现有自动化运行机制,不具备解决这些异样边界状况的能力,导致Case执行中断而失败。这些自动化稳定性问题,带来自动化用例保护老本的减少,大大降低了自动化工作的ROI。咱们剖析现有自动化工作top失败起因,应用3类通用Case执行自愈技术,晋升case执行稳定性,升高保护老本。 1、异样弹窗解决,当自动化执行遇到弹窗而失败后,应用弹窗检测技术去除弹窗后持续复原执行。面对弹窗品种多样的难点,应用对象检测技术,实现泛化的弹窗及弹窗敞开控件的辨认;面对不同语境下举荐动作不统一难点,利用基于页面文案进行弹窗分类的技术,实现不同场景下的弹窗都可能被精确了解,并举荐正确动作去除。 2、原子期待技术,自动化执行过程中的异步加载期待技术属于畛域里公认技术瓶颈,咱们利用视觉UI了解技术,在Case执行过程中,应用高效的视频流并行采集,以及图像识别算法对间断图片剖析,实现页面稳固态和非稳固态的智能断定,领导Case实时的智能提早期待和智能缩短等待时间,保障Case稳固高效执行。 3、通用Case自愈技术,提供基于时空上下文的Locator,去弹窗,图像等辨认形式按程序进行辨认自愈,具体来讲,将历史执行胜利时刻的xpath,icon图片等信息记录下来,当呈现失败时,尝试用历史胜利过的元素类型顺次进行重试。 通过以上Case执行自愈的技术,在咱们自动化执行实际过程中,实现了51%的Case自愈修复成果,无效晋升自动化用例执行稳定性。 举荐浏览【技术加油站】系列: 揭秘百度智能测试在测试主动生成畛域的摸索 【技术加油站】浅谈百度智能测试的三个阶段 【技术加油站】揭秘百度智能测试规模化落地

June 29, 2022 · 1 min · jiezi

关于测试:转正实录|陪你走一段路

转行的第一喜事,当然是收到Offer啦~拿到Offer的那一天,我松了一口气,算是实现了一个小指标。但我又意识到,接下来,游戏要降级了,行将要面临试用期的考验。 后面的文章,分享过如何度过试用期。在试用期这段时间里,你只有不犯原则上的谬误,大概率是能够留下来的。毕竟企业从新招人,培训,直到可能熟悉业务独立测试,所有都须要老本。 转正这一段路,你带着如履薄冰的心态去面对,不是件好事。只有这样,你才不会懈怠,仅仅满足于入行,知有余才会一直去晋升本人。 在这里,我想陪你走过转正这一段路。通过比照前后两份工作,从入职的那天起,围绕整个测试流程,日常工作,以及分享工作中的应用工具。让你提前看看,转行测试,将要面对哪些艰难。同时,给你打个样,提前评估一下,本人是否应该转行。 心愿有我的陪伴,在转正的路上,你不会感到迷茫~

June 18, 2022 · 1 min · jiezi

关于测试:WeTest质量云平台618盛惠活动开启

2022年6月9日,腾讯WeTest全面降级为“品质云平台”,不仅对平台现有产品进行了翻新降级,还推出了多项全新的性能服务,以解决不同行业畛域日益多样化、复杂化的痛点需要,全方位助力企业测试效力晋升。 今日,腾讯WeTest 618年中盛惠流动正式开启!此次迭代降级的所有产品服务都在本次流动范畴内,更有全新产品能力尝鲜试用,下文将为大家具体介绍产品新个性与618优惠活动全攻略,亮点多多,等你来体验! 01 品质云时代 翻新产品能力迭代在数字化、智能化转型迈入“深水区”的过程中,新兴技术在给企业带来了便当与价值的同时,也对数字产品质量把控提出了更高的要求,“降本增效”逐步成为企业生存和倒退的外围指标。全新的WeTest品质云平台不仅以科技、翻新驱动了技术能力的晋升,同时也在产品服务层面进一步欠缺,力求为企业发明价值,构建企业数智化长期倒退的基石。 在产品服务层面,WeTest品质云平台对已有的多项服务进行了降级,WeTest云手机提供了笼罩更全面的设施机型,并对iOS零碎云手机的启动工夫、触摸反馈进行了优化,为用户提供更为晦涩、便捷的操作体验。随同此次降级,平台正式上线了全新调试工具WeTest Debug Bridge,用户可间接体验云手机近程调试。 降级后的WeTest兼容测试海量笼罩海内机型,助力企业疾速实现出海前本地化适配测试。对测试报告页全面优化,线上报告UI降级后果更直观,线下报告数据拓展类型更丰盛,并提供额定平安检测报告与修复计划倡议,保障用户产品质量。 当下,应用软件已被广泛应用到社会的各个行业畛域,为人们的生产生存带来了全方位的改革。与此同时,用户对软件的稳定性和晦涩度的高要求,设施差异性大、服务器性能瓶颈等因素也为开发测试从业者带来了更大的挑战,这就须要通过性能测试、全链路压测等伎俩找到产品质量破绽并取得无效解决方案。 PerfDog是腾讯WeTest针对挪动开发者性能专项需要推出的挪动全平台性能测试工具。5月,PerfDog全新公布了7.1版本,针对游戏性能评估翻新公布全新指标稳帧指数Smooth、渺小卡顿SmallJank、帧能耗FPower等。同时,新版本独家新增安卓零碎GPU、Battery、NPU温度等泛滥指标,为开发者对游戏/利用性能优化提供了更为充沛的数据撑持。 WeTest压测巨匠作为全链路服务器性能测试平台,其具备百万级别并发能力、寰球分布式压力源、灵便构建压测场景链路、一键查看性能指标、应用门槛低等特点。此次降级,WeTest压测巨匠重磅推出压测巨匠海内SaaS版,为国内业务出海提供高效助力。新增反对疾速录制业务接口,用户可一键导入压测用例,用例编写效率晋升50%以上,反对链路性能监测和服务器性能监测,实时监测异样服务,帮忙企业及开发者迅速、深度定位性能问题,全面晋升业务稳定性。 微信小程序自推出以来便凭借其强用户体验、低开发门槛和疾速迭代等个性实现了用户与市场规模的高速增长,但危险隐患也随之同步转移,小程序破绽攻打、数据泄露、山寨仿冒等平安问题近年来一劳永逸。 基于多年深耕小程序服务场景与业务实际,腾讯WeTest品质云平台的小程序平安计划再次降级,反对的小程序类型全面拓展,笼罩知名企业各类基于H5的自研小程序。测试报告新增扫描CGI数据、页面门路信息、提醒类危险等后果展现。新增小程序平安专业版扫描,着重强化危险端口扫描、WEB平安防护检测项。随着此次迭代降级,WeTest小程序平安正式推出小程序平安防护私有化平台,为企业及开发者提供疾速、继续、全面的小程序平安服务反对。 02 解决方案上新 适配用户新需要近年,以大数据、人工智能、5G等为外围的新兴数字技术与各畛域产业深度交融,衍生出一系列新产品、新业态及新模式的蓬勃发展。为应答疾速变动的市场需求与日益强烈的行业竞争,在数字产品开发迭代和翻新过程中,DevOps、麻利以及云计算逐渐成为企业的支流。数字产品的品质把控也同样须要更前沿的技术能力以匹配更加简单的业务需要。 WeTest品质云平台基于丰盛的企业服务教训积攒和研发能力,联合当今数字倒退的支流技术,推出多项全新行业通用解决方案,进一步夯实数智化生态底座,助力不同行业畛域数智化转型倒退。 // 专有云解决方案 专有云畛域,WeTest品质云平台推了一套从IaaS层机房设备、PaaS层主动测运行能力到SaaS层云真机和自动测试服务三个层面构建起的的企业级云测试专有云解决方案,可能为用户提供稳固平安、高效快捷的全链路云自动化测试能力,并在兼容、性能、性能等畛域提供测试解决方案,助力研发测试效率的晋升。 // 云测出海解决方案 随着经济全球化水平的加深,出海正在成为企业冲破增长瓶颈的无效办法。面对简单的海内环境,企业的出海之路也面临着新的时机和挑战。针对企业出海过程中面临的设施适配、研测生态等问题,腾讯WeTest品质云平台正式推出云测出海解决方案。 WeTest云测出海解决方案反对私有云、专有云、公有云等多种真机部署模式,笼罩1000+寰球各区热门机型,无效升高因为兼容适配问题导致的用户散失。反对10+国内支流挪动端测试框架及自定义测试环境,全方位满足企业的特定测试需要。此外,云测出海解决方案深刻DevOps研发流程,反对CI/CD插件、API等多种提测形式,企业可依据本身状况接入服务,让出海变得更加简略高效,从而助力企业实现海内业务的继续、无效增长。 // 智能硬件行业解决方案 WeTest品质云平台冲破挪动端边界,实现 “万物互联测试” 的理念,聚焦智能硬件应用层/软件层测试,一站式帮忙物联网行业解决硬件兼容、性能、平安、联通、性能的测试,为智能硬件品质保驾护航。 03 新能力上线 凋谢尝鲜体验腾讯WeTest作为翻新的品质云服务平台,此次降级,WeTest基于行业倒退改革与用户需要变动推出了多项全新性能服务,感兴趣的小伙伴扫描下方二维码填写“试用申请表”,即可申请收费试用体验。 扫码立刻申请试用 CrashSight、PerfSight、小程序异样监控服务,WeTest新能力尝鲜试用: // CrashSight异样治理服务 当游戏运行在各个平台和终端上,难免会遇到各种各样的问题,其中,异样解体始终是开发者无奈疏忽的痛点问题。新上线的CrashSight作为专为游戏打造的异样解体治理服务,可能为开发者提供异样上报和数据分析能力,具备反对支流平台、支流引擎、全面精确、灵便拓展、实时稳固、数据合规等特点,帮忙开发者疾速定位并解决异样问题,无效升高产品解体率,晋升产品整体用户体验。 试用规定:研发期我的项目收费搀扶(每月沉闷设施数不超过1000) // PerfSight手游客户端性能治理 新上线的PerfSight可能为企业及开发者提供外网实在用户的性能数据,笼罩游戏全生命周期,反对挪动、主机全平台,兼容支流游戏引擎,PerfSight提供包含FPS、PSS、帧工夫、流量网络提早等在内的游戏性能指标监测、数据分析,并实时智能告警,助力开发者实时把握性能变动,晋升游戏要害指标,优化玩家体验。 试用规定:研发期我的项目收费搀扶(每月沉闷设施数不超过1000) // 小程序异样监控 因为线上环境绝对简单,一些问题只会在特定网络环境或者设施上产生,对于这类问题,异样信息的监控起到了重要的作用。小程序异样监控是腾讯WeTest品质云平台针对小程序品质畛域新推出的服务能力,聚焦于小程序经营过程中异样问题的实时监控。目前可笼罩的异样类型包含页面异样、API调用异样、函数调用异样、网络异样等。接入异样监控SDK,即可实时查看异样详细信息,零碎提供异样触发工夫、设施机型、操作系统、堆栈信息等帮助开发者疾速定位问题。 试用规定:每个小程序APPID可收费进行90天性能试用;试用过程中,小程序月活峰值不超过2000,达到下限后,将进行异样数据的上报,历史数据可反对查看,下一个月将清零从新统计。 // MiniTest小程序云测插件 MiniTest小程序云测是一套由微信测试团队自主研发,联结WeTest云手机能力,独特推出的小程序自动化测试服务。服务基于云手机,反对开发者简略快捷地实现小程序智能化Monkey测试、录制回放、自定义测试等多种UI自动化测试能力;反对主动获取跑查过程中的多种性能数据,并提供欠缺的性能剖析后果。 试用规定:每个我的项目每周收费工夫150分钟(第三方服务商我的项目每周1000分钟收费工夫) 试用入口:复制下方链接至PC端浏览器查看详情。https://developers.weixin.qq.... 04 618盛惠流动全攻略 // 流动规定: 一、流动工夫:2022年6月16日-2022年9月30日 二、流动对象:全员可参加 三、流动特惠: 618产品特惠流动,线上折扣礼包请返回WeTest官网(wetest.qq.com)购买。其中"PerfDog小时包"不限购,其余每款折扣礼包每个账号限购2次(企业账号与集体账号别离最多可购买2次),次数指参加流动产品的最小可购买单位;PerfSight、CrashSight、游戏平安、利用平安、小程序平安、自动化测试、压测巨匠、专有云、云测出海云手机,云测出海自动化测试,购买以上任一服务或组合可参加满减流动。订单金额满50000元立减2000元,满100000元立减5000元,满300000元立减20000元,满700000元立减50000元。具体购买流程请分割官网在线客服或商务征询详情。四、流动阐明: 流动期间的产品服务优惠不与平台现有其余优惠政策叠加;"新能力尝鲜试用"流动请参考具体产品关联的体验规定阐明,按流程操作或填写申请表;任何人通过不正当伎俩取得本次流动利益的,WeTest有权撤销用户所获利益并要求抵偿相干损失。五、免责条款: ...

June 17, 2022 · 1 min · jiezi

关于测试:手把手转行|入职不意味着万事大吉

回想起当初入职的第一个月,如履薄冰。工作中谨小慎微,每做一个决定前,都会先被动问问其余小组成员:这件事,是不是这样做?该如何做?这种感觉,置信不少转行测试的同学,多多少少有些感同身受吧。 其实,通过转行求职以及跳槽,我集体感触是,企业招聘老本挺高的,个别只有你不犯原则性的谬误,根本能够顺利度过试用期。 后面的分享,我强调过,不倡议过分包装简历。如果动不动就把本人包装成3年工作教训的,你会很容易被人识破的。根本的诚信,还是要有的。在这条准则的根底上,你也该有本人的抉择。这家公司值不值得留下来,要留多久?也就是说,公司是否合乎你的预期,包含测试的团队规模,整体流程,项目组内的气氛,以及对于你集体的晋升等等,都是须要你入职后去做评估的。 确认过要留下来,那么接下来,就是要尽快上手工作了。 1. 尽快相熟新人指引事项测试组的工作指引:1 相熟部门的组织架构状况第一家公司,我的项目负责人会带我意识在测试过程中会接触到的共事,包含开发,运维,产品等。不过第二家公司,因为团队规模大,就跳过这一步了,须要我在理论工作中接触意识。2 日常工作所需的权限与工具: 各种账号权限的申请:bug治理平台-JIRA/禅道、测试环境的数据库,服务器等测试须要用到的工具装置:写用例-Xmind、数据库可视化管理工具-Workbench、Linux客户端-MobaXterm、录屏截图工具-Snipaste 等2. 学会发问上一环节中提到的工具、权限申请,如果花了超过半小时还不晓得怎么弄,就尽快问,别让你的共事给你贴上一个“不爱问”的标签。你本人也不要给他人造成这种刻板印象: 你越是认为本人不爱问问题,越是不敢问问题;当他人都认为你不爱问问题,你更加不敢问问题。像我目前这家企业,会给我安顿导师,所以工作上有纳闷,会优先去问他,这体现的是一种尊重。其次,当有一个测试工作跟其余共事单干时,能够去问跟你单干的共事。 对于发问的技巧: 调配一个工作给你时,你先本人思考下这件事要达成什么样的后果。如果想不通,就带着你的思考去确认。这个事要快,不能拖,因为如果方向都错了,前面的后果就不是他人想要的。同类事件,产生几次,他人就容易对你失去急躁。问题要集中问:例如给你一个要测试的需要,边看边整顿有疑难的点,而后一并去问。这让别人认为你做事有效率。如果你一个一个问题去问,换做谁都会烦,并且你容易打断他人的思路。问过的问题,本人做好总结:同样的问题反复问,很烦人。当你学会解决一个问题后,能够总结一份文档,下次遇到同样的问题,记不起来了,就回过来看,不须要再去麻烦他人了。能百度的先百度:有些简略问题,本人百度一下就有答案,就尽量别麻烦其余共事。3. 看需要文档、bug库、用例库看需要文档:便于疾速了解零碎的性能,特地是看你行将要负责的功能模块。看bug库:理解这里的开发个别会呈现什么类型的bug,那么你测试时就有侧重点。另外,理解其余共事提bug的颗粒度有多细,以及有什么样的标准。看用例库:次要是为了不便你理解测试的颗粒度,关上你的测试思路。后续你测试的需要,有相似的性能,能够间接模拟,或者借用。 4. 同步工作进度调配给你的工作,在认真完成的同时,须要及时同步工作进度,特地是让你的导师,下级理解你的进度。不要怕本人进度慢,就不反馈,或者过于乐观地评估进度。我这段时间的体验就是,如实反馈进度,以及遇到的艰难。一方面是让其他人释怀,毕竟你是新人嘛,慢一点,遇到困难都很失常,会给你提供些帮忙。另一方面是开释本人的压力,不是什么问题都能本人扛着,靠加班加点来实现的,有时候逞强是一种正确的抉择。 5. 闲暇工夫,多体验应用公司的产品特地是到线上环境,跟实在用户一起应用体验。联合本人的感触以及用户的反馈,能给产品提供些优化的倡议就更好。 总结作为新入职的转行者要:态度好、好学习、多总结、多反馈、不犯原则性谬误、知错能改。当你能做到以上几点,度过试用期个别问题不大。毕竟,公司也是花了不少老本来招聘、培训。从新再招聘一个人,是有肯定的沉没老本的。 因而,有时候,能力并不是决定你是否留下来的关键因素。能力不够,那就怠惰补。而工作态度、习惯是很难短时间改过的,并且这些在面试时很难裸露进去。 后面的分享说过,面试时,你要超过期待,而后一举成名。到了理论工作也一样,要逐步满足公司对你的期待,而后超过它。加油,置信本人是能够的~

May 29, 2022 · 1 min · jiezi

关于测试:如何做好手工测试

手工测试是一种软件测试,手工测试人员执行测试用例不应用任何自动化测试工具,俗称点点点。 手工测试是最原始的测试类型,帮忙发现软件系统的缺点。 任何新应用程序必须手动测试前测试能够主动执行。手工测试须要更多的致力,然而有必要查看自动化可行性。 手工测试不须要任何测试工具的常识。 软件测试的根本之一是“99.99%自动化是不可能的”。 这使得手工测试命令。 手工测试的指标 手工测试的要害概念是确保应用程序无错,是在合乎指定的功能测试需要。 测试套件或状况下,目标是在测试阶段,应该有99.99%的测试覆盖率。 它也确保报告缺点是固定的开发人员和测试曾经实现了测试人员在固定的缺点。 基本上,这个测试查看的品质零碎和提供无缺点的产品给客户。 举荐浏览: app压力测试怎么做 小程序兼容性测试怎么做 手机兼容性测试怎么做 缺点管理工具有哪些 app性能测试工具有哪些 自动化测试工具有哪些

May 11, 2022 · 1 min · jiezi

关于测试:什么是冒烟测试

冒烟测试是自在测试的一种,由开发人员与测试人员独特进行。在测试过程中发现问题,测试人员找到了一个Bug,而后开发人员会来修复这个Bug,冒烟测试是否通过决定了下一轮零碎测试是否能够执行。 第一次看到他的时候,有人给过解释即:应用一袋烟的功夫疾速对软件的次要功能测试,天经地义仍人为很简略,轻易点点就好啦。这次正式开始理解后明确冒烟测试的重要性不作用于自身而是决定了下一轮测试是否能达到现实的成果,与零碎测试不同之处在于冒烟测试是一种不要求覆盖面有多广测试,然而要保障被测对象的次要局部性能要失去测试,不要求每一个性能都八面玲珑,然而要保障所有被批改过以及与批改相干的性能、次要的性能都是可用的,即证实这个版本可进行零碎测试。 举荐浏览: 接口测试关注点是什么? 疾速找出bug的几点倡议 如何无效的进步软件测试的品质 为什么要做探索性测试

May 6, 2022 · 1 min · jiezi

关于测试:华测教育年薪50W高级测试开发全栈系列课

【华测教育】年薪50W-高级测试开发全栈系列课download:网盘链接手把手教使用python实现人脸识别 什么是人脸识别人脸识别,是基于人的脸部特色信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并主动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相干技术,通常也叫做人像识别、面部识别。 目前的人脸识别技术已经非常成熟了,还发展成3D人脸识别。而且现在各大厂商也都提供了人脸识别的API接口供咱们调用,可能说几行代码就可能实现人脸识别。然而人脸识别的根本还是基于图像处理。在Python中最弱小的图像处理库就是OpenCV。 OpenCV简介OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可能运行在Linux、Windows、Android和Mac OS操作系统上。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。它轻量级而且高效——由一系列 C 函数和大量 C++ 类形成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV基本使用安装pip install opencv-python # 基础库pip install opencv-contrib-python # 扩大库pip install opencv-python-headless复制代码读取图片读取和浮现图片是最基本的操作了,OpenCV当中使用imread和imshow实现该操作 import cv2 as cv 读取图片,路径不能含有中文名,否则图片读取不进去image = cv.imread('1111.jpg') 浮现图片cv.imshow('image', image) 等待键盘输入,单位是毫秒,0示意有限等待cv.waitKey(0) 因为最终调用的是C++对象,所以使用完要开释内存cv.destroyAllWindows()复制代码 将图片转为灰度图OpenCV中数百中对于不同色彩控件之间转换的方法。目前最罕用的有三种:灰度、BGR、HSV。 灰度色彩空间是通过去除黑白信息来讲图片转换成灰阶,灰度图会大量缩小图像处理中的色彩处理,对人脸识别很无效。BGR每个像素都由一个三元数组来示意,别离代码蓝、绿、红三种色彩。python中还有一个库PIL,读取的图片通道是RGB,其实是一样的,只是色彩次序不一样HSV,H是色调,S是饱和度,V是光明的程度将图片转换为灰度图import cv2 as cv 读取图片,路径不能含有中文名,否则图片读取不进去image = cv.imread('1111.jpg') cv2读取图片的通道是BGR,PIL读取图片的通道是RGBcode抉择COLOR_BGR2GRAY,就是BGR to GRAYgray_image = cv.cvtColor(image, code=cv.COLOR_BGR2GRAY) 浮现图片cv.imshow('image', gray_image) 等待键盘输入,单位是毫秒,0示意有限等待cv.waitKey(0) 因为最终调用的是C++对象,所以使用完要开释内存cv.destroyAllWindows()复制代码 绘制矩形image = cv.imread('1111.jpg')x, y, w, h = 50, 50, 80, 80 绘制矩形cv.rectangle(image, (x, y, x+w, y+h), color=(0, 255, 0), thickness=2) ...

May 5, 2022 · 2 min · jiezi

关于测试:手把手转行|你真的要转行吗

首先,我不激励自觉转行。凡是你还有抉择的机会,转行,都不是你的第一抉择。如果你是为了回避而转行,那多半会以失败告终。起因是,你当初想要回避的问题,以后不解决,换一家公司,也要面临同样的问题;即便换一个行业,可能也无奈扭转。 当你想要转行的时候,先认真思考: 你真的只有转行这条路了呢?留在以后的公司,调整心态,晋升常识技能程度,是否能有久远的倒退呢?通过自我晋升,换个公司会不会是更好的抉择?其次,你须要面临的问题是: 你转行有什么劣势?像转行测试,这就是一个很事实的问题?一部分公司,对于测试新人的要求,并不高。那么,公司能够有很多抉择: 应届生,工资要求低,能够本人造就,这不香吗?多花点钱,聘用一个有点教训的人,公司投入更少的培训老本,这不香吗?为什么要抉择你?一个短少我的项目教训的转行者。 联合我2段求职教训: 你须要超出面试官的预期。面试前平平无奇,面试中一举成名。我,大龄转行,双非(非计算机专业,非互联网行业)。记得过后,在知乎上搜转行的教训,在年龄这一点上,可把我愁死了,越看越焦虑。我就在想,这几年我都在干嘛?为什么不早点口头?然而事实问题就摆在那里,无奈扭转了? 第1份工作超出预期的点是,我对系统的业务逻辑。面试官没有预料到,我对这类零碎的性能逻辑说得有条有理;并且作为一个自学转行的人,测试思维也足够清晰。 这得益于过往的工作,接触应用的都是相似的零碎,而且都是遇到公司数字化转变阶段,投入使用的阶段,本人又常常跟IT部门对接。所有的机缘巧合之下,我拿到转行后的第1份Offer。 第2份工作超出预期的点是,编程程度与自动化测试框架的利用。面试官没有预料到,我对 Python 会把握到这种水平,例如多线程的利用;其次,对于自动化测试框架,pytest 相干的利用,都能对答入流。 这得益于,在过来一年多的工夫里,我没有进行学习,并且把所把握的内容,利用到公司的我的项目当中。付出终将失去回报,我才拿到了第2份工作的Offer。 最初,你须要思考的问题: 如果转行胜利,你将来的指标以及倒退方向是什么?为了实现这些,你打算如何口头?并不是说转行后,眼前的问题就迎刃而解,层峦叠嶂了。 如果感觉转行胜利就高枕无忧,告一段落的话,那跟以前有什么区别呢?无非是在另一个行业里迷茫。 当然,这一点并不是简简单单地就能想得明确的。然而你不能进行思考,要通过你本身的继续学习,对理论工作的思考,与同行的交换…… 一点一点,抽丝剥茧般,逐步想明确的。 所以,你真的要转行吗?

May 2, 2022 · 1 min · jiezi

关于测试:转行历程|用一年时间写一份简历成功跳槽

用一年工夫写一份简历。不是指拖拖拉拉,一份简历写了一年。而是指,要用一年的工夫,不断丰富简历内容,包含常识技能、我的项目教训等。 尽管曾经胜利转行测试,但不意味着满足现状。如果仅仅停留在功能测试的程度上,那是走不远的,过了35岁,又会面临新一轮的焦虑。 当你决定转行的那天起,就要学会与孤单共处。须要就义娱乐工夫去学习,晋升技能程度。即使胜利入职了,也要花工夫去适应新工作,突破他人对你的质疑,让本人可能胜利地留下来。留下来之后,利用公司的平台来实际,丰盛简历上的内容。 2022年,我遇到了一个假的金三银四。但最终,在3月中旬,如愿拿到一家中等规模的互联网企业的offer。那么,当初开始回顾过去一年以来所产生的事件。 2020年11月曾经入职2个多月了,零碎行将迎来第1次正式上线,每天都是加班加点在测试。这段时间,我的感触是,宿舍只是一个提供睡觉的中央而已。不过,如果好好利用这一年,等到适合的机会,就可能更上一层楼。 正好项目组须要在正式上线前进行压测,面试过我的下级以及项目经理,理解我会性能测试,就把这项任务分配给我。 只能硬着头皮上,总不能说本人为了面试通过,仅学了些皮毛吧。因而,找了些课程,开始边学边做。那段时间,根本学习到早晨12点,第二天早上6点起床持续学习。周末双休,办公室没有人,我就利用这2天的工夫,把学到的常识技能使用到我的项目当中。应用 Jmeter + Grafana + InflunDB,最终输入一份称心的压测报告。 这是我第一次尝到从自学到落地的苦头。过后对本身的技术水平评估是: 把握 Python 编程,UI自动化/接口自动化 根本会用,但对于如何联合我的项目落地,没有一套残缺的框架思路于是,趁着双十一,决定对本人狠一点,又一次分期报了个培训班。这次重点冲破的是自动化测试的落地。整个学习周期是4个月,上课模式是录播的课程,再加上工作日一个早晨,以及周末一个下午的直播上课。当你决定走上转行这条路,那就得接受降级打怪的那段孤单时光,你得有所取舍。 2022年1月转眼间,曾经过来一年多了。这一年,没有停下学习的脚步。从去年9月份开始,我就陆陆续续整顿总结本人做过的我的项目,性能测试,UI自动化,接口自动化,以及过来承受过大大小小的我的项目需要。工作的空闲工夫,俗称摸鱼工夫,看面经,整顿面试题。 期间,产生一件事,使我不得不把到职的事件提上日程。测试负责人找我谈话,对于加薪,名额有限,我是其中一个,须要本周筹备作简略的报告。出于职业道德,也是为了好聚好散,既然本人决定要走,就没必要占去一个名额,把这个机会给到违心留下来的人吧。当天早晨,我把本人决定到职的事,跟负责人说了。 又一次裸辞了,我真是个喜爱“逼上梁山”的人。但这一次,我对本人是有信念的,分明本人将来的方向怎么走。 自从提出到职后,我过上朝九晚五的工作生存。新的需要评审不叫我了,那就当作带薪学习吧。 2022年2月这个新年不太闲,将过来几个月总结下来的货色,一点一点地写进简历中。另外,还要参考几个心仪岗位的 JD,去优化简历,补充本人不太熟悉的知识点。面试题要刷,常见的算法题,只管可能性比拟小,也要刷,去 LeetCode 找一些优良的答案,看看他人的思路。看待面试题,别无他法,唯手熟尔。半天一个温习主题,半个月,能够循环3-4次。 终于迎来了下班的日子,开始投简历。重大狐疑往年是一个假的金三银四。在拉勾、BOSS直聘上投出去的简历,都杳无音信。要求逐渐升高,眼看行将进入2月底,一次面试邀请都没有,本来不在思考范畴内的公司,都只能尝试性地去投简历。 不能把路走窄了,于是开始寻求内推。终于,通过培训学院内推,争取到了一家互联网企业的面试机会。也是总结为4个字:一击命中。整体过程,经验了4轮面试,前后用了半个月工夫,才敲定了最终的offer。 总结这两次“一击命中”的面试,我感觉是入地开始懂得眷顾我了。我总感觉本人的运气开始变好了。然而,从决定转行,到第一次转行胜利,再到当初跳槽胜利,所经验过的所有,都历历在目。 作为一个转行者进入一个新的行业,你的学习一刻都不能停下来。等你从望其项背,达到与同行者齐头并进的时候,能力让本人略微松一口气。在互联网行业里生存,就是如此,常识更新迭代十分快,更强调一生学习。 心愿我的这两段求职经验,可能为你带来一些帮忙。

May 2, 2022 · 1 min · jiezi

关于测试:转行历程|裸辞9个月后拿到第一份Offer

在裸辞9个月后,终于拿到了第一份测试工程师的 Offer。 这是一个漫长的过程, 有了这一次的经验,万不得已,不倡议裸辞转行,危险切实太大。 自我反思,次要有2方面的起因: 高估了本人的能力,低估了转行的难度转行测试,是转行开发失败后的另辟蹊径,须要重新学习那当初开始,从时间轴上,具体回顾下我的转行历程。 这篇文章是第1局部,分享我取得第一份测试工作的全过程。 2019年初过完新年后,给本人立了 flag:通过自学编程,转行进入互联网企业,做一名后端开发工程师。 这个决定,不是头脑发热,我过后的思考是: 我的理工思维尽管大学转业余读了经管类业余,然而通过几年的社会毒打,证实我不适宜做治理, 特地是须要协调简单关系的工作,本人做不到四面楚歌,面面俱到,尝试过扭转,始终无功而返,身心疲乏。 与此同时,我始终有打算学习编程的念头,那时没认真思考将其转化为职业,仅想作为一种业余爱好吧~ 公司倒退不佳,有更多的安闲工夫过后就任的公司,业务量低,下班内容不多,根本能够失常上班,所以会有富余的学习工夫。 即使不胜利,我的损失也不至于太大。 那段时间,根本就是下班尽可能利用空进去的工夫看电子书,敲代码; 上班回家看教学视频,做我的项目。 2019年12月前几个月还完了车贷,加上过来大半年的工夫,边工作边自学编程,工作有所懈怠,下级的埋怨更加强烈。 我比原定打算更早地到职了。 这段时间,整体的安顿是,白天学习,早晨家教。 因为在家里学习,集体开销不多。 毛病就是接受家人所带来的压力,他们嘴上不说,我能领会到他们的担心。 2020年,受疫情影响,转行仿佛变得更难了。 当我真正开始去写简历的时候,发现自己基本无从下手。 我有什么能力? 他人会要我吗? 如果我入职后,我能胜任工作吗? 能过试用期? …… 当我真正去 拉勾/boss直聘 上搜寻职位时,看到职位形容,才发现自己真不知天高地厚,本人啥都不是。 硬着头皮写出一份简历后,越投越没信念。 期间有外包公司分割过我,当我老老实实说本人是自学时,失去的回答是: 那可能不太适宜了,打搅了。 我陷入了纠结中,进退维谷。 2020年3月转行 Python 后端开发,看来已有望。 但不意味着要放弃转行。 经征询,我还有2个岗位能够思考: 运维测试门槛绝对较低的是「测试」,加上本人把握一门编程语言,这是一个劣势。 没有犹豫太久,决定切换到测试工程师的方向上。 绝对容易,不意味着我间接能拿开发的简历,去投测试的岗位。 在知乎等平台上,付费征询了几位测试工程师前辈,联合他们提供的倡议,开始备战 测试工程师。 学习测试相干的理论知识、工具等。 大略用了一个月的工夫,恶补了测试的常识技能,能写出一份像模像样的简历。 如我所料,这一次能接到面试邀请了。 5月份,面试了2家企业,发现存在的有余点: 无理论我的项目教训,测试思考不全面,不深刻;测试工具(如性能测试工具-Jmeter)仅会根本的应用,无奈落地看来社会对转行者的宽容度,并不是我设想中的敌对。 2020年6月我用支付宝分期,报了一个线上的培训班,培训周期是3个月。 依照培训班提供的我的项目,需要文档,练习编写测试用例。 培训班个别会提供禅道平台、浏览器我的项目(通常是电商平台)、挪动端我的项目(性能简略的App或小程序,可能是点餐或者日常工具类我的项目)。 培训期间,通常只是在禅道上写用例,不会真正去测试。 因为一来是没有实在需要文档的, 其次,这种培训班提供的简陋我的项目,真正去测的话,个别会发现漏洞百出。 即便提了bug,也没有人给你反馈: 这算不算是bug? 这个bug产生的起因? 没有人去修复这个bug,你也无奈验证。 …… 对于抉择培训班,倡议能抉择提供实在我的项目的,即便他只是拿你当作一个外包的劳动力,那也是更为靠近理论的我的项目教训。 2020年8月培训根本完结,老师根本都会教你包装简历。 然而,这样的包装,根本相当于造假。 这种办法,仅实用于那些伶牙俐齿,长于临场随机应变的同学。 因为培训班的我的项目,如果你是面试同类型我的项目的企业,是经不起斟酌的。 甚至,你的简历都过不了面试官这一关。 HR 感觉你的简历看似不错,然而面试你的不是 HR,而是测试的负责人或者组长。 ...

May 2, 2022 · 1 min · jiezi

关于测试:查漏补缺

一、 CentOS和Linux的区别1.1 二者关系centos是基于linux建设的操作系统;linux属于内核零碎,只有终端命令界面、无图形界面centos同时领有终端命令界面和图形界面;linux和centos都是属于开源零碎。1.2 什么是Linux?Linux 是一套收费应用和自在流传的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、反对多线程和多 CPU 的操作系统。Linux 能运行次要的 UNIX 工具软件、应用程序和网络协议。它反对 32 位和 64 位硬件。Linux 继承了 Unix 以网络为外围的设计思维,是一个性能稳固的多用户网络操作系统。1.3 什么是CentOS?CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux按照凋谢源代码规定释出的源代码所编译而成。二、 git治理我的项目2.1 用户信息配置git config --global user.name "John Doe"git config --global user.email johndoe@example.com2.2 查看配置信息 git config --list查阅某个环境变量的设定,只有把特定的名字跟在前面 git config remote.origin.url(获取仓库的地址) git config user.name git config user.email2.3 git仓库的根底操作从现有仓库拉代码 通过HTTPS协定克隆git clone https://gitee.com/example.git通过SSH协定克隆git clone git@gitee.com:xxxx/xxxx.git仓库根本治理 初始化一个Git仓库(以/home/gitee/test文件夹为例) cd /home/gitee/test #进入git文件夹 git init 将文件增加到Git的暂存区 git add "readme.txt" 注:应用git add -A或git add . 能够提交以后仓库的所有改变 查看仓库以后文件提交状态(A:提交胜利;AM:文件在增加到缓存之后又有改变) git status -s 从Git的暂存区提交版本到仓库,参数-m后为当次提交的备注信息 git commit -m "1.0.0" 拉取代码(同步) git pull origin 分支名 将本地的Git仓库信息推送上传到服务器(推送) git push https://gitee.com/***/test.git git push origin master 强制推送(不倡议应用,可能会笼罩他人的代码) git push origin master -f(不倡议应用,可能会笼罩他人的代码) 查看git提交的日志 git log近程仓库治理 ...

April 25, 2022 · 1 min · jiezi

关于测试:百思买Best-Buy-网站EDI-测试流程

在此前公布的文章批发行业L公司对接百思买Best Buy EDI我的项目案例 中,咱们对百思买的 EDI 需要以及对应的解决方案进行了介绍。明天的文章次要针对在百思买网站上进行EDI测试的流程开展。 与百思买进行EDI连贯之前,须要和百思买沟通,提出须要接入EDI的动向,百思买确认后将会给供应商提供百思买网站的链接。接下来所有EDI报文的业务测试都将在下面进行。流程如下: 一、百思买提供给供应商的要害信息百思买会向供应商提供测试环境以及生产环境的EDI Id,蕴含ISA Identifier、ISA Qualifier 以及GS Identifier 三项信息。 除了以上信息之外,百思买还将为您提供其X12分隔符信息,如下图所示:二、供应商开始EDI接入流程前须要晓得的信息拿到百思买提供的信息之后,供应商便能够开始EDI接入流程了。百思买提供的网站是由供应商自主操作的EDI 测试平台,供应商能够更加便捷地与百思买进行EDI测试。这些测试大量波及到EDI方面的业余内容,供应商间接操作起来较为艰难,倡议供应商能够委托其EDI团队合作进行,这样会顺畅许多。知行的EDI参谋已胜利为客户实现百思买的业务测试,如有相干疑难,能够来找咱们哟~ 百思买对于EDI我的项目的工夫要求是非常严格的,心愿供应商可能在接到EDI对接邀请的三周内与其实现所有的EDI 需要以及EDI文件测试。如果供应商未能及时在规定工夫内实现测试,测试链接将会生效,EDI接入流程将须要重新启动。 三、填写测试和生产环境的EDI ID供应商须要填写本人的EDI ID,次要包含测试环境以及生产环境的相干信息以及VAN供应商的相干信息。这部分填写工作将由咱们的EDI参谋来实现。四、下载EDI文件在百思买网站上下载EDI 850 PO,EDI 860 PO Change 。其中会下载6个EDI 850 PO文件,订单号别离为: DDEEFF, GGHHII,AABBCC,LLMMNN,PPQQRR以及SSTTUU。 还须要下载7个 EDI 860,发动的变更包含以下7种状况: Add item 增加物料Increase Quantity 减少物料数量Cancellation 勾销订单Ship and Delivery Date Change 装运日期变更Quantity Decrease 缩小物料数量Decrease item quantity to 0 物料数量缩小为0Price Change 价格变更五、上传EDI文件在百思买EDI测试平台上传EDI 856 ASN,EDI 810 Invoice以及EDI 997 functional acknowledgement 并进行数据验证。文件上传页面如下图所示:以构造最为简单的EDI 856 ASN 测试为例,次要分为两步开展: 第一步,点击上图中的+New按钮上传文件。EDI 856是依据咱们下载的EDI 850生成的,上传并进行验证。 第二步,须要上传一个EDI 856用于信息变更。 ...

April 22, 2022 · 1 min · jiezi