测试工程师面试问题及答案_第1页
测试工程师面试问题及答案_第2页
测试工程师面试问题及答案_第3页
测试工程师面试问题及答案_第4页
测试工程师面试问题及答案_第5页
已阅读5页,还剩30页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测试工程师面试必备问题及答案基础理论类1.问题:软件测试的核心目标是什么?和质量保证(QA)的核心区别是什么?答案:软件测试的核心目标是三个层面:第一,发现软件中存在的各类缺陷,包括功能不符合需求、逻辑错误、体验异常等;第二,评估软件的质量水平,为项目上线决策提供量化依据;第三,提前识别质量风险,推动相关方优化方案,降低线上故障发生率。软件测试的核心原则是“证伪”而非“证真”,即测试只能证明软件存在问题,无法证明软件完全没有问题。和QA的核心区别:两者所属的质量管控阶段不同,QA是质量保证,偏向全流程的过程管控,核心目标是预防缺陷产生,工作范畴包括制定研发流程规范、管控需求评审/代码评审等过程的合规性、推动流程优化等,不直接参与具体的产品测试;测试是质量校验环节,偏向最终交付物的缺陷发现,核心目标是检出已存在的缺陷,工作范畴包括用例设计、测试执行、缺陷跟踪等,直接面向待发布的软件产品。例如某金融项目中,QA负责审核需求评审是否覆盖了合规要求,测试负责验证最终的产品功能是否符合合规要求。2.问题:请解释软件测试的V模型,以及其优缺点和适用场景答案:V模型是软件测试的经典模型,核心逻辑是测试阶段和开发阶段一一对应,形成左侧开发、右侧测试的V型结构。左侧开发阶段从下到上依次为编码、详细设计、概要设计、需求分析;右侧测试阶段从下到上依次为单元测试、集成测试、系统测试、验收测试,每一个测试阶段都对应左侧同层级的开发阶段的输出作为校验依据:单元测试校验编码逻辑的正确性,集成测试校验详细设计中模块交互的正确性,系统测试校验概要设计中整体系统功能的正确性,验收测试校验需求分析中用户需求的满足度。优缺点:优点是阶段划分清晰,责任明确,每个开发阶段都有对应的测试校验环节,可早期开展测试用例设计,降低需求理解偏差的风险;缺点是模型为线性结构,测试介入时间晚,前期需求、设计阶段的缺陷往往到后期测试阶段才会被发现,返工成本高,无法适配快速迭代的项目模式。适用场景:适合需求稳定、变更少、对安全性和合规性要求高的项目,例如银行核心系统、医疗管理系统、工业控制系统等传统项目。3.问题:黑盒测试、白盒测试、灰盒测试的区别和适用场景分别是什么?答案:三者的核心区别是测试过程中是否关注软件内部的代码逻辑和实现路径:黑盒测试完全不关注内部实现逻辑,仅将软件看做一个黑盒子,校验输入和输出是否符合预期,无需掌握编码能力。适用场景包括集成测试阶段的功能校验、系统测试、验收测试,覆盖功能测试、兼容性测试、易用性测试等范畴。白盒测试完全开放内部逻辑,基于代码结构设计测试用例,校验代码的分支、路径、条件是否全部覆盖,需要掌握编码能力和代码调试能力。适用场景包括单元测试、安全测试的代码审计、接口测试的逻辑校验等范畴。灰盒测试结合两者的特点,既关注输入输出的正确性,也会参考内部实现逻辑设计更高效的测试用例,但不需要深入到代码级的路径覆盖,是当前互联网项目中最常用的测试模式。适用场景包括集成测试、接口测试、端到端测试等范畴,例如测试下单接口时,除了校验接口返回的下单成功信息,还会校验数据库的订单数据、库存扣减数据、日志记录是否符合预期,就属于灰盒测试的范畴。4.问题:什么是测试用例?设计测试用例的常用方法有哪些?分别举一个应用场景答案:测试用例是测试执行的最小单元,是为了校验特定需求点或者场景而设计的测试执行说明,核心要素包括前置条件、测试数据、操作步骤、预期结果四个部分,缺一不可。常用测试用例设计方法及应用场景:(1)等价类划分:将所有可能的输入划分为有效等价类和无效等价类,同一等价类内的输入触发的软件行为一致,仅需选取代表性的数值测试即可,可大幅减少用例数量。应用场景:测试手机号输入框,有效等价类为符合国内运营商号段的11位数字,无效等价类包括长度不足11位、长度超过11位、包含非数字字符、为空、不符合号段规则的11位数字等,每个等价类选取1-2个测试值即可覆盖该类场景。(2)边界值分析法:针对输入、输出的边界值设计用例,统计显示80%的缺陷出现在边界位置而非中间区间。边界值选取遵循“点上、离点”原则,例如要求输入1-100的整数,边界点包括0(小于最小值的离点)、1(最小值点)、99(小于最大值的相邻值)、100(最大值点)、101(大于最大值的离点)。应用场景:测试金额输入框、分页查询接口的页码和页大小参数、会员等级的积分阈值等场景。(3)错误推测法:基于测试人员的行业经验、对项目的熟悉程度、历史缺陷数据,推测可能存在的缺陷点,针对性设计用例。应用场景:支付场景下设计断网、余额不足、重复点击支付按钮、后台退款异常等场景的用例;App升级场景下设计跨版本升级、升级过程中断网、存储空间不足等场景的用例。(4)场景法:基于用户真实的使用路径设计用例,将多个功能点串联成完整的业务流,覆盖用户的核心使用场景。应用场景:电商项目的完整下单路径:商品浏览→加购→修改购物车数量→结算→选择收货地址→选择支付方式→支付成功→查看订单→确认收货,将整个路径作为一个测试场景设计用例,可有效检出单功能测试无法发现的流程类缺陷。(5)因果图法:针对多输入条件组合、输出和输入之间存在明确因果关系的场景,梳理所有输入的组合情况以及对应的输出结果,设计用例覆盖所有组合。应用场景:登录功能的测试,输入条件包括账号正确/错误、密码正确/错误、验证码正确/错误,三个条件共8种组合,每种组合对应不同的输出结果(登录成功、账号错误提示、密码错误提示、验证码错误提示等),用因果图法可避免组合场景的遗漏。5.问题:测试用例的优先级怎么划分?划分依据是什么?答案:行业通用的测试用例优先级分为4级,划分核心依据是功能的重要程度、用户使用频率、缺陷的影响范围:P0级:核心主流程用例,覆盖用户最高频使用、影响核心业务流转的功能点,例如电商项目的登录、下单、支付、退款,金融项目的转账、理财购买等。P0用例必须100%执行通过,才能进入下一个测试阶段,任何P0用例不通过的版本都不允许上线。P1级:重要功能用例,覆盖用户常用的次核心功能,占所有用例数量的60%左右,例如用户信息修改、订单查询、优惠券使用、收货地址管理等。P1用例的通过率需达到95%以上,未通过的P1缺陷需经产品经理评估确认接受风险后才可上线。P2级:次要功能用例,覆盖用户使用频率较低的边缘功能、异常场景的校验,例如账号注销、历史账单导出、输入参数的异常校验等。P2用例的通过率需达到80%以上,未修复的P2缺陷需记录在测试报告中同步项目组。P3级:体验类、UI类用例,覆盖不影响功能使用的UI展示、交互体验类的需求,例如按钮颜色、页面排版、提示文案的准确性等。P3缺陷可根据项目排期灵活安排修复时间,不影响核心上线节点。技术工具类1.问题:你常用的接口测试工具有哪些?请描述Postman实现接口自动化的核心流程答案:常用的接口测试工具包括Postman、Jmeter、Apifox、curl命令行工具等,其中Postman是中小项目接口测试和轻量自动化的首选工具,实现接口自动化的核心流程如下:(1)接口归类管理:新建Collection(集合)按照项目、模块分类存储接口,例如电商项目分为用户模块、订单模块、支付模块等,每个模块下存储对应的接口,便于后续批量管理和执行。(2)环境变量配置:配置多套环境变量,包括测试环境、预发环境、生产环境的域名、公共请求头、全局参数(比如全局token、签名密钥)等,避免在接口中硬编码地址和参数,切换环境时仅需切换环境配置即可,无需修改接口参数。(3)单接口调试:单个接口配置请求方法、URL、请求参数、请求头,添加断言规则,常用断言包括校验响应状态码为200、校验返回体的业务状态码为成功标识、校验返回体的核心字段值符合预期、校验响应时间低于阈值等,确保单个接口的功能符合预期。(4)脚本配置:配置前置脚本(Pre-requestScript)实现前置逻辑,比如生成接口请求所需的时间戳、签名、动态获取验证码等;配置后置脚本(Tests)实现参数传递,比如从登录接口的返回体中提取token,设置为全局变量,后续所有需要登录的接口直接引用该变量即可,无需手动复制。(5)批量执行与集成:使用CollectionRunner批量执行整个集合下的所有接口,可配置执行次数、并发数;也可使用Newman命令行工具执行Postman的用例集合,将其集成到CI/CD流水线中,实现每次代码提交后自动触发接口自动化测试,不通过的版本无法进入后续的部署流程。2.问题:缺陷管理的核心流程是什么?缺陷的核心字段有哪些?严重程度和优先级的区别是什么?答案:缺陷管理的核心流程是全生命周期的闭环管理:测试人员发现缺陷→提交缺陷到缺陷管理平台→开发人员确认缺陷是否有效→有效缺陷进入修复队列,无效缺陷驳回并说明原因→开发修复完成后修改缺陷状态为待回归→测试人员回归验证,验证通过则关闭缺陷,验证不通过则打回开发重新修复。缺陷的核心字段包括:缺陷唯一ID、所属项目、所属模块、缺陷标题、缺陷详细描述、前置条件、复现步骤、预期结果、实际结果、严重程度、优先级、提交人、提交时间、处理人、当前状态、附件(截图、日志、录屏、复现用的测试账号等)。严重程度和优先级的核心区别是评估维度不同:严重程度是缺陷本身对产品功能、用户、业务的影响程度,是缺陷的固有属性,不会随项目排期变化,分为四级:致命(导致核心功能完全不可用、数据泄露、资金损失、系统宕机等,比如支付成功后订单未生成、用户资金被无故扣除)、严重(核心功能部分不可用、重要功能完全不可用、影响大范围用户使用,比如所有商品无法加入购物车、登录功能完全失效)、一般(次要功能不可用、不影响核心流程使用,比如订单筛选功能失效、优惠券展示错误)、轻微(不影响功能使用的UI问题、文案错误、体验优化点,比如按钮错位、提示文案错别字)。优先级是缺陷需要修复的紧急程度,根据项目排期、业务需求灵活调整,分为最高优先级、高优先级、中优先级、低优先级。两者并不绝对挂钩,例如首页的品牌logo显示错误,严重程度为轻微,但优先级为最高,因为直接影响品牌形象;边缘功能的严重缺陷,如果该功能当前没有用户使用,且迭代排期紧张,优先级可调整为中。3.问题:请描述你常用的抓包工具的使用场景和操作流程(以Charles为例)答案:抓包工具的核心作用是截取客户端和服务器之间的HTTP/HTTPS请求和响应数据,常用场景包括三类:第一是前后端bug定位,比如前端页面展示异常,通过抓包查看接口返回的数据是否符合预期,如果接口返回正确则是前端渲染问题,接口返回错误则是后端逻辑问题;第二是Mock测试,通过断点修改请求参数或者响应数据,模拟无法通过正常操作触发的场景,比如测试支付失败的场景,不需要真实走支付流程,直接修改支付接口的返回状态为失败即可;第三是弱网测试,模拟2G/3G、高延迟、高丢包的网络环境,测试App、网页的加载速度和容错能力。Charles的核心操作流程:(1)基础配置:电脑和测试设备(手机/平板)连接同一WiFi,打开Charles,设置代理端口为默认的8888,开启允许远程连接的选项;(2)设备配置:手机端打开WiFi的代理设置,将代理地址设置为电脑的局域网IP地址,端口设置为8888,访问Charles的证书下载地址,下载并安装Charles的根证书,在手机的信任证书设置中开启Charles证书的完全信任,否则无法抓取HTTPS请求;(3)抓包操作:操作手机端的App或者网页,Charles即可展示所有的请求数据,可通过过滤功能筛选特定域名的请求;设置断点后可修改请求参数或者响应数据,修改后再发送给服务器或者客户端;开启弱网模拟功能,设置延迟、丢包率、带宽限制等参数,即可实现弱网测试。4.问题:你常用的版本控制工具有哪些?测试人员在Git协作流程中的主要工作是什么?答案:常用的版本控制工具是Git,部分传统企业会使用SVN。测试人员在Git协作流程中的主要工作包括:第一,拉取对应分支的代码部署测试环境,按照项目分支管理规范,测试环境对应develop分支,预发环境对应release分支,生产环境对应master分支;第二,提交测试过程中发现的缺陷对应的代码版本号,便于开发定位问题;第三,参与代码评审,重点关注业务逻辑相关的代码变更,评估测试覆盖范围;第四,将自动化测试用例、测试脚本、测试数据等文档同步存储到Git仓库,统一版本管理,避免文件丢失或者版本混乱。项目实践类1.问题:当需求不明确的时候,你怎么开展测试工作?答案:需求不明确是测试工作中的常见场景,需按照“对齐优先、分层测试、风险同步”的原则开展工作:(1)首先梳理需求疑问清单,拉通产品经理、开发人员、需求提出方召开需求对齐会,逐点确认疑问点,形成书面的需求共识文档,所有相关方确认后作为测试依据,避免口头约定导致的理解偏差;(2)如果暂时无法对齐需求,参考同类型成熟产品的功能逻辑、行业通用的用户使用习惯制定临时测试标准,在测试用例中明确标注该部分用例的参考依据;(3)采用分层测试策略,优先测试核心主流程功能,再测试次要功能、边缘功能,优先保障核心路径的质量,待需求明确后再补充边缘功能的测试用例;(4)测试过程中发现的歧义点第一时间同步相关方对齐,随时调整测试预期,避免无效测试;(5)输出测试报告时明确标注需求不明确的模块范围、对应的测试覆盖情况、残留的质量风险,同步给项目所有相关方评估,确认是否接受风险后再决定是否上线。2.问题:你怎么评估测试的充分性?怎么判断版本可以上线?答案:测试充分性需从四个维度综合评估,所有维度达标后才可上线:(1)用例覆盖率达标:需求覆盖率100%,即所有需求点都有对应的测试用例覆盖;核心功能的代码覆盖率不低于80%,边缘功能的代码覆盖率不低于60%(代码覆盖率由自动化测试工具或者开发侧的代码覆盖率统计工具输出);(2)缺陷收敛达标:最近两轮迭代测试没有新增的致命、严重级别的缺陷;所有致命、严重级别的缺陷100%修复;一般级别的缺陷修复率不低于90%;轻微级别的缺陷修复率不低于70%;未修复的缺陷全部经过产品、项目负责人评估,确认接受残留风险;(3)专项测试达标:性能测试的核心指标(响应时间、吞吐量、资源使用率)符合需求要求;安全扫描没有高危、中危漏洞,低危漏洞已经过评估确认不影响上线;兼容性测试覆盖了要求的所有设备、系统、浏览器版本,没有兼容性问题;(4)上线检查清单全部确认:上线checklist的所有项(包括配置项检查、数据库脚本检查、回滚方案确认、灰度发布策略确认、运维值班人员确认等)全部经过对应负责人签字确认;灰度发布期间没有用户反馈异常,核心指标监控无波动。3.问题:线上出现用户反馈的bug,你作为测试应该怎么处理?答案:线上bug处理需遵循“快速响应、定位根因、复盘优化”的闭环流程:(1)快速响应复现:第一时间联系用户收集信息,包括用户的设备信息、系统版本、App版本、操作路径、问题截图/录屏、账号信息,优先在测试环境、预发环境尝试复现问题,如果无法复现,申请拉取线上的用户操作日志、请求日志定位问题;(2)定级同步:评估缺陷的严重程度和影响范围,如果是致命、严重级别的bug,第一时间同步项目组,触发紧急回滚流程或者热修复流程,避免影响更多用户;(3)根因排查:协同开发、运维人员排查缺陷的根本原因,确认是需求理解偏差、开发编码问题、测试漏测问题还是线上环境配置问题;如果是测试漏测,需要进一步分析漏测的原因:是需求遗漏、测试用例没有覆盖该场景、还是测试环境和线上环境不一致导致无法复现;(4)回归验证:开发修复完成后,先在测试环境回归所有相关场景,确认没有问题后再发布到预发环境验证,预发验证通过后再全量发布,上线后持续跟进用户反馈和线上监控数据,确认问题完全解决;(5)复盘优化:输出线上bug复盘报告,针对漏测的场景补充对应的测试用例,优化测试流程,例如如果是环境不一致导致的漏测,就优化测试环境和线上环境的同步机制,每次上线前同步线上的配置和数据到测试环境,避免后续出现同类问题。4.问题:接口测试需要覆盖哪些测试点?答案:接口测试需要覆盖六大类测试点,避免场景遗漏:(1)功能校验:正常场景下接口的返回是否符合预期,业务逻辑是否正确,例如下单接口是否正确扣减库存、生成正确的订单数据、推送订单消息到消息队列;(2)参数校验:覆盖所有参数的异常场景,包括必填参数为空、参数类型错误、参数长度超限、参数值超出合法范围、传入非法参数(比如SQL注入语句、XSS脚本、特殊字符),接口是否能返回正确的错误提示,不会出现500错误、数据异常、系统宕机等问题;(3)边界校验:覆盖参数的边界场景,例如下单数量的最大值最小值、分页接口的page=0、page=-1、pageSize超过最大值的场景,接口是否处理正确;(4)并发校验:针对核心写操作接口,测试并发场景下是否存在数据异常,例如同一个用户同时提交多个下单请求,是否会出现重复下单、超卖的问题;多个用户同时抢购同一个限量商品,是否会出现库存扣减错误的问题;(5)权限校验:覆盖权限场景,未登录用户调用需要登录的接口、低权限用户调用高权限的接口、A用户调用只能B用户访问的接口,是否返回权限不足的提示,不会出现越权访问的问题;(6)兼容性校验:针对迭代升级的接口,校验旧版本的客户端调用旧版本接口是否还能正常使用,避免出现版本不兼容导致的旧版本用户无法使用的问题。性能测试专项1.问题:性能测试的核心指标有哪些?分别代表什么含义?答案:性能测试的核心指标分为三类,分别对应用户体验、系统处理能力、资源使用情况:(1)响应类指标:衡量用户的使用体验,核心指标包括平均响应时间、TP90、TP95、TP99。平均响应时间是所有请求的响应时间的平均值,参考价值有限;TP90是指将所有请求的响应时间从小到大排序,第90%的请求的响应时间,代表90%的用户的体验不会低于该值;TP99是指第99%的请求的响应时间,代表最差的1%的用户的体验,是核心的体验指标,例如核心接口要求TP99≤200ms,即99%的用户的请求响应时间都不超过200ms。(2)吞吐量指标:衡量系统的处理能力,核心指标包括QPS(每秒查询数)、TPS(每秒事务数)。QPS是指系统每秒可以处理的查询请求的数量,适用于读接口的性能衡量;TPS是指系统每秒可以处理的完整事务的数量,一个事务包含一次完整的业务操作,例如下单事务包含提交订单、扣减库存、生成订单等多个接口调用,适用于写接口的性能衡量,例如支付系统要求峰值TPS≥10000,即每秒可以处理1万笔支付请求。(3)资源类指标:衡量系统服务器、中间件、数据库的资源使用情况,核心指标包括:服务器的CPU使用率、内存使用率、磁盘IO使用率、网络带宽使用率;数据库的连接数、慢查询数量、锁等待时间;缓存中间件Redis的缓存命中率、过期key数量;消息中间件MQ的消息堆积数量、消费成功率等。性能测试过程中要求所有资源使用率在峰值场景下不超过阈值,例如CPU使用率≤70%,内存使用率≤80%,Redis缓存命中率≥95%。2.问题:请描述性能测试的完整流程,以及JMeter做性能测试的核心配置项答案:性能测试的完整流程分为五个阶段:(1)需求分析阶段:明确性能测试的核心场景(比如首页加载、下单支付、批量查询等)、对应的性能指标要求、预估的峰值用户量、峰值吞吐量,输出性能测试方案;(2)测试准备阶段:搭建和线上服务器配置、数据库容量一致的性能测试环境,准备测试数据(比如百万级的用户数据、订单数据、商品数据,避免数据量太少导致性能测试结果不准),编写性能测试脚本,调试通过;(3)测试执行阶段:依次执行四类测试:基准测试(单用户单线程执行场景,获取性能基线,判断是否存在明显的性能问题)、负载测试(逐步增加并发用户数,观察系统的性能变化,找到系统的性能拐点,即吞吐量不升反降的并发点)、压力测试(用超过预估峰值的并发量持续施压,观察系统的容错能力,是否会出现宕机、数据异常等问题)、稳定性测试(用70%左右的峰值并发量持续施压4-72小时,观察系统是否会出现内存泄漏、服务宕机、吞吐量下降等问题);(4)瓶颈定位优化阶段:如果性能指标不达标,协同开发、运维人员定位性能瓶颈,优化后重新执行性能测试,直到所有指标达标;(5)报告输出阶段:输出性能测试报告,明确标注测试结论、性能指标达标情况、瓶颈点、优化建议,作为上线决策的依据。JMeter做性能测试的核心配置项包括:线程组(配置并发用户数、Ramp-Up时间(即所有线程启动的时间)、循环次数、执行时长)、HTTP请求采样器(配置请求的方法、URL、参数、请求头)、配置元件(HTTP信息头管理器、CSV数据文件配置用于参数化测试数据、HTTPCookie管理器)、断言(响应断言,判断请求是否成功,避免错误的请求被计入性能指标)、监听器(聚合报告、查看结果树、吞吐量报告、响应时间曲线图、服务器性能监控插件)。3.问题:常见的性能瓶颈有哪些?怎么排查?答案:常见的性能瓶颈分为四类,对应不同的排查方式:(1)应用代码瓶颈:代码逻辑设计不合理导致的性能问题,比如循环嵌套过多、没有加缓存、大量的重复计算、序列化/反序列化耗时过长。排查方式:查看应用的错误日志、慢接口日志,使用Arthas等Java诊断工具查看方法的执行耗时,定位耗时最长的方法,优化代码逻辑。(2)数据库瓶颈:数据库层面的性能问题,比如SQL语句没有加索引、索引不合理、慢查询过多、锁冲突、连接数不足、数据库配置不合理。排查方式:查看数据库的慢查询日志,用explain命令分析慢SQL的执行计划,确认索引是否命中,查看数据库的CPU、IO、内存使用率,调整数据库配置或者优化SQL语句。(3)中间件瓶颈:缓存、消息队列、网关等中间件的性能问题,比如Redis缓存命中率低、热点key过期、MQ消息堆积、Nginx连接数不足。排查方式:查看中间件的监控指标,比如Redis的缓存命中率低于90%则需要优化缓存策略,MQ的消息堆积数量持续上涨则需要优化消费逻辑或者增加消费者数量。(4)基础设施瓶颈:服务器、网络等基础设施的性能问题,比如服务器CPU、内存、磁盘IO配置不足,网络带宽不足。排查方式:查看服务器的监控数据,如果峰值场景下CPU使用率持续超过90%、内存不足,则需要升级服务器配置或者扩容集群。自动化测试专项1.问题:你怎么判断一个项目要不要做自动化测试?自动化测试的投入产出比怎么评估?答案:自动化测试不是所有项目都适用,需要满足三个核心条件才值得投入:第一,项目迭代周期长,版本迭代频繁,每次版本发布的回归测试工作量大;第二,核心功能稳定,不会频繁变动,否则自动化用例的维护成本过高,甚至高于手工测试的成本;第三,项目有长期维护的价值,不是短期上线后就下线的活动页、营销页等项目。投入产出比(ROI)的评估方式:统计手工回归测试每次需要的时长×每年的迭代次数,得到每年手工回归的总耗时;再统计自动化测试脚本的开发时长+每次迭代的用例维护时长+每次自动化执行的时长,得到每年自动化测试的总耗时;如果后者低于前者,说明投入产出比为正,值得投入。例如某电商项目,每个月迭代2次,每次手工回归需要3天,一年手工回归总耗时为3×2×12=72天;自动化脚本开发耗时10天,每次迭代用例维护需要0.5天,每次自动化执行耗时0.1天,一年自动化测试总耗时为10+(0.5+0.1)×2×12=24.4天,远低于手工回归的耗时,ROI很高,适合做自动化测试。2.问题:UI自动化和接口自动化的区别是什么?分别适用什么场景?答案:两者的核心区别是测试的层级不同,各有优劣,适用场景也不同:接口自动化测试的是后端服务的接口,位于前端和后端之间的交互层,优点是执行速度快、稳定性高、不受前端变更影响、维护成本低、可以更早介入测试;缺点是无法覆盖前端的交互和UI展示问题。适用场景:每次版本迭代的回归测试、CI/CD流水线的门禁测试、核心接口的功能和参数校验、性能测试的脚本基础,当前互联网项目的自动化测试优先做接口自动化,投入产出比最高。UI自动化测试的是前端页面的交互和展示,位于用户交互层,优点是可以模拟用户的真实操作,覆盖端到端的完整业务流程、前端的UI展示和交互问题;缺点是执行速度慢、稳定性差(受页面加载、网络波动、元素变更的影响大)、维护成本高(前端页面只要有变更,对应的用例就需要修改)。适用场景:核心主流程的端到端测试、多浏览器/多设备的兼容性测试、需要模拟用户真实操作的场景,一般作为接口自动化的补充,仅覆盖核心的P0级场景,不需要覆盖所有功能。3.问题:自动化测试的PageObject模式是什么?有什么优势?答案:PageObject(PO)模式是UI自动化测试的经典设计模式,核心思想是将每个页面封装成一个独立的Page类,页面的元素定位、页面的操作方法都封装在该类内部,测试用例层不需要关心元素的定位方式,只需要调用Page类提供的方法即可完成测试操作。例如登录页面封装成LoginPage类,内部封装用户名输入框、密码输入框、登录按钮的元素定位,以及login(username,password)的登录方法,测试用例中仅需要调用loginPage.login("test","123456")即可完成登录操作。PageObject模式的核心优势有三点:第一,代码复用性高,多个测试用例用到同一个页面的操作时,直接调用Page类的方法即可,不需要重复写元素定位和操作代码;第二,维护成本低,当页面的元素定位发生变更时,只需要修改对应Page类的元素定位代码即可,不需要修改所有用到该元素的测试用例;第三,用例可读性高,测试用例层的代码完全是业务逻辑的描述,没有底层的元素定位代码,即使不懂编码的测试人员也能看懂用例的业务含义。安全测试专项1.问题:常见的Web安全漏洞有哪些?分别怎么测试?答案:常见的Web安全漏洞及测试方法如下:(1)SQL注入漏洞:攻击者在输入参数中拼接SQL语句,绕过校验获取数据库数据或者修改数据,比如在登录框的用户名输入'or1=1--,就可以绕过密码校验直接登录。测试方法:在所有用户可输入的参数位置(包括输入框、URL参数、接口请求参数)拼接SQL注入语句,查看是否可以绕过校验、获取敏感数据、导致数据库报错。(2)XSS跨站脚本攻击漏洞:攻击者在输入参数中植入恶意脚本,提交后页面会执行该脚本,获取用户的cookie、跳转到钓鱼网站等。测试方法:在所有用户可输入、可展示的位置输入XSS测试脚本,比如<script>alert('xss')</script>,提交后查看页面是否会弹出提示框,如果弹出说明存在XSS漏洞。(3)CSRF跨站请求伪造漏洞:攻击者诱导用户在已登录目标网站的情况下,访问攻击者构造的恶意页面,发起跨站请求,执行敏感操作(比如修改密码、转账、删除数据)。测试方法:查看敏感操作的请求(比如修改密码、转账、删除数据)是否携带除了cookie之外的校验参数,比如csrftoken、短信验证码、操作密码等,如果仅靠cookie就可以完成操作,说明存在CSRF漏洞。(4)越权访问漏洞:分为水平越权和垂直越权,水平越权是指同权限的用户可以访问其他用户的私有数据,比如A用户可以查看B用户的订单;垂直越权是指低权限用户可以访问高权限用户的功能,比如普通用户可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论