2025年软件工程试卷及答案_第1页
2025年软件工程试卷及答案_第2页
2025年软件工程试卷及答案_第3页
2025年软件工程试卷及答案_第4页
2025年软件工程试卷及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2025年软件工程试卷及答案一、单项选择题(每题2分,共20分)1.在持续集成流程中,触发构建的最常见事件是A.需求变更  B.代码提交  C.测试报告  D.用户反馈答案:B。持续集成的核心思想是“提交即构建”,代码提交触发自动编译、测试与质量检查。2.下列关于微服务“去中心化治理”的描述,正确的是A.所有服务共享同一数据库  B.统一技术栈  C.服务可独立选择技术栈  D.强制使用REST通信答案:C。去中心化治理允许团队根据业务特点选择最适合的技术栈,降低耦合。3.在Git工作流中,用于发布生产的分支通常命名为A.dev  B.feature  C.main  D.hotfix答案:C。main(或master)分支保存随时可部署到生产的稳定代码。4.以下哪项最能体现“契约测试”的价值A.验证单元逻辑  B.验证消费者与提供者之间的接口约定  C.验证UI交互  D.验证性能指标答案:B。契约测试确保服务间接口的向后兼容,降低联调成本。5.某系统采用事件溯源,其“事件存储”最主要的作用是A.缓存热点数据  B.记录所有状态变更事件  C.存储聚合快照  D.保存UI状态答案:B。事件存储是事件溯源的单一真相源,保存不可变的事件序列。6.在DORA指标体系中,衡量“部署频率”的单位通常采用A.次/人月  B.次/天  C.次/需求  D.次/故障答案:B。部署频率体现交付能力,以天为单位可直观反映快速交付水平。7.某团队使用Kanban,在制品(WIP)限额为5,当前“测试中”栏有6张卡片,此时应A.继续拉入新需求  B.暂停上游开发,聚焦测试完成  C.增加测试人手  D.提高WIP限额答案:B。超限说明瓶颈在测试,应冻结上游,先消化存量,保持流动。8.以下代码覆盖指标中,最能发现“未执行分支”的是A.语句覆盖  B.判定覆盖  C.条件覆盖  D.路径覆盖答案:D。路径覆盖要求所有可能路径至少执行一次,可发现隐藏分支。9.在领域驱动设计中,“限界上下文”划分的核心依据是A.技术分层  B.团队规模  C.通用语言一致性  D.数据库范式答案:C。通用语言在同一上下文内保持一致,跨语境必然产生歧义,需划分边界。10.某API网关采用“熔断”模式,当失败率超阈值时,后续调用将A.直接转发到备份中心  B.立即重试三次  C.快速失败并返回降级响应  D.随机路由到其它节点答案:C。熔断旨在保护下游,失败率高时快速失败,避免雪崩。二、多项选择题(每题3分,共15分,多选少选均不得分)11.以下哪些实践有助于实现“可观测性”A.结构化日志  B.分布式追踪  C.单元测试  D.指标暴露  E.混沌工程答案:A、B、D。结构化日志、追踪、指标是观测“三件套”;单元测试保障正确性,混沌工程验证韧性,均非直接观测手段。12.关于DevOps流水线安全,正确的做法包括A.将密钥硬编码在仓库  B.使用最小权限IAM角色  C.依赖镜像最新标签  D.在构建阶段运行SAST  E.对第三方库做SCA扫描答案:B、D、E。最小权限、静态扫描、成分分析可降低风险;硬编码密钥和随意使用latest标签均不安全。13.以下属于“不可变基础设施”特征的有A.服务器重启后配置漂移  B.通过镜像版本描述环境  C.手工SSH调优  D.蓝绿发布  E.容器镜像分层缓存答案:B、D、E。不可变强调“改镜像不改运行实例”,蓝绿与分层缓存均符合;漂移与手工调优违背原则。14.在TDD循环中,包含的步骤有A.写生产代码  B.写失败测试  C.重构  D.性能压测  E.代码评审答案:A、B、C。经典红-绿-重构循环;压测与评审非TDD核心。15.以下哪些情况适合使用“Saga模式”处理分布式事务A.高并发秒杀  B.跨服务资金转账  C.单体应用本地事务  D.旅游订票(机票+酒店+租车)  E.库存扣减与订单创建答案:B、D、E。Saga适合长事务、跨服务、可补偿场景;秒杀需极致性能,本地事务无需Saga。三、判断题(每题1分,共10分,正确打“√”,错误打“×”)16.在Scrum中,只有产品负责人可以在冲刺中期添加需求。答案:×。冲刺目标锁定,新增需求需经团队协商,PO不能单方面加入。17.使用语义化版本号时,兼容性功能新增应升级MINOR位。答案:√。MAJOR.MINOR.PATCH规则,MINOR表示向下兼容的功能性新增。18.代码审查时,发现圈复杂度过高,应直接拒绝合并请求。答案:×。需权衡风险与进度,可要求重构或创建技术债任务,非一律拒绝。19.在CAP理论中,分区容错性是分布式系统必须保证的。答案:√。网络分区客观存在,系统必须处理,只能在C与A间权衡。20.采用多活架构后,RTO可以为0。答案:×。多活可极大降低RTO,但网络、应用层切换仍需时间,无法绝对为零。21.日志中记录用户敏感信息属于“可观测性”最佳实践。答案:×。泄露敏感数据违反合规,应脱敏或禁止记录。22.在Git历史里执行republic操作可以永久删除提交记录。答案:×。republic非Git命令,应为rebase或filter-branch,且记录仍可通过reflog找回。23.使用容器后,就不再需要配置管理工具。答案:×。镜像构建、编排、运行时参数仍需管理,工具如Ansible、Helm依然有用。24.领域事件必须采用异步消息队列实现。答案:×。可同步发布于进程内,也可持久化到事件总线,视一致性需求而定。25.敏捷宣言更重视“工作的软件”高于“详尽的文档”。答案:√。宣言第二条明确“工作的软件高于详尽的文档”,但并非否定文档。四、简答题(每题8分,共24分)26.描述“蓝绿发布”与“金丝雀发布”在回滚策略上的差异,并给出各自适用场景。答案:蓝绿发布维护两套相同容量环境,切换通过路由层一次性完成,回滚只需切回蓝环境,速度秒级,但资源成本高,适用于资源充足、对停机零容忍的金融核心系统。金丝雀发布将新版本先部署到小规模实例(如5%流量),逐步扩大比例,回滚只需切断流量并缩容新版本,资源节省,但回滚时间取决于指标采集周期,适用于用户量大、可接受短暂异常的消费互联网业务。27.解释“零信任网络”在微服务通信中的具体落地措施,并给出两项开源工具示例。答案:零信任核心“永不信任、持续验证”。落地措施:1.双向TLS(mTLS)加密通道,服务身份基于SPIFFEID而非IP;2.每调用携带短期JWT,结合OPA做细粒度授权;3.网络分段与策略即代码,所有流量默认拒绝。开源工具:Istio(自动注入Envoy,实现mTLS、JWT鉴权)、OPAGatekeeper(Kubernetes策略引擎,可拒绝无有效声明的流量)。28.某团队采用事件溯源,发现事件流过大导致重放耗时,请给出三种优化方案并比较优劣。答案:1.快照机制:定期保存聚合快照,重放时只加载最新快照+后续事件,速度提升显著,但需额外存储快照,且快照频率需权衡。2.分区投影:将事件流按业务维度(如租户、订单号)分片到不同投影服务,并行重放,线性扩展,但增加部署复杂度,需处理跨区查询。3.增量物化视图:使用KafkaStreams/Flink持续消费事件,实时更新读模型,查询走读模型,不再重放,毫秒级响应,但牺牲一定一致性,需处理乱序与幂等。综合:读多写少场景优先增量物化;写多读少且需强一致则用快照;数据规模超大再引入分区。五、综合设计题(31分)29.背景:某跨境电商平台计划在2025年大促期间支撑全球流量峰值每秒12万次下单,系统现有单体架构,采用MySQL主从、Redis缓存、本地文件存储图片。需求:a)可弹性扩展,峰值后缩容节省成本;b)支持多币种、多语言、多时区;c)订单数据需满足《GDPR》与《个人信息保护法》,可删除与可迁移;d)99.99%可用性,RPO<30秒,RTO<5分钟;e)上线窗口为分钟级,每天可发布多次。任务:1)给出总体架构图(文字描述即可),包含主要服务、数据存储、流量入口、观测体系;2)针对“订单创建”核心链路,设计接口契约、事件流、数据一致性方案;3)说明如何满足合规删除与迁移要求,给出技术细节;4)给出成本优化方案,确保非促销期费用下降60%。答案:1)架构:流量层:全球AnycastIP接入CloudFront边缘节点,静态资源使用S3+CloudFront,动态流量通过AWSGlobalAccelerator回源到Region级APIGateway。服务层:采用Kubernetes多集群(EKS),按地域部署,服务网格Istio实现mTLS、限流、熔断。核心服务:用户、商品、库存、价格、营销、订单、支付、物流、通知。数据层:订单服务使用CockroachDB全球分布式SQL,提供强一致与水平扩展;库存采用RedisCluster+Lua脚本做预扣,异步消息(Kafka)落库;图片与视频转存S3,元数据放DocumentDB;事件总线使用Kafka跨RegionMirrorMaker同步,全局Topic统一命名。观测:Prometheus+Grafana监控指标,Loki收集日志,Jaeger做追踪,Alertmanager对接PagerDuty。2)订单创建链路:接口契约:POST/v1/orders,请求体{"skuId","quantity","currency","shippingAddress"},返回{"orderId","status","totalAmount","estimatedDelivery"}。事件流:a)订单服务接收请求,生成OrderCreated事件(含orderId、用户伪ID、快照金额);b)库存服务监听事件,执行DeductInventory命令,发布InventoryDeducted或InsufficientInventory;c)支付服务监听OrderCreated,调用第三方支付网关,发布PaymentSucceeded/PaymentFailed;d)订单服务根据事件聚合,状态机驱动,最终达到Paid或Cancelled。一致性:采用Saga模式,订单服务作为协调者,支持补偿:PaymentSucceeded后若库存不足,发送Refund命令;支付失败则自动释放库存。所有事件幂等Key=orderId+eventType。3)合规:数据分类:订单主表不含邮箱、电话明文,仅保存用户伪ID与加盐哈希;敏感信息加密后存独立Sensitive-Data服务,使用AWSKMSCMK,密钥按租户隔离。删除:用户调用DELETE/v1/user/{id},系统生成UserDeletionRequested事件,各服务监听后异步擦除本域数据,CockroachDB使用DELETECASCADE,S3对象加入生命周期规则7天后物理删除。迁移:利用CockroachDB的Export+AESParquet文件,用户可指定Region,系统生成签名URL,三日内可下载,完成后自动擦除临时文件。4)成本优化:自动扩缩:EKSClusterAutoscaler+Karpenter,根据Q

温馨提示

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

评论

0/150

提交评论