版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2025年(軟件工程)軟件開發(fā)與測試試題及答案一、單項選擇題(每題2分,共30分)1.在敏捷開發(fā)中,以下哪項最能體現(xiàn)“個體和互動高于流程和工具”的價值觀?A.每日站會由ScrumMaster主導并記錄會議紀要B.團隊成員通過即時通訊工具隨時溝通需求細節(jié)C.需求變更必須走正式變更控制委員會審批D.所有代碼提交必須通過SonarQube掃描后方可合并答案:B解析:敏捷宣言強調“個體和互動高于流程和工具”,即時通訊工具支持實時互動,減少流程束縛。2.某微服務接口平均響應時間從120ms升至450ms,但CPU利用率僅由35%升至38%,最可能的瓶頸是:A.線程池核心參數設置過小B.數據庫行鎖競爭加劇C.網絡帶寬被視頻流量擠占D.垃圾回收進入FullGC周期答案:B解析:CPU未飽和而響應時間大幅增加,通常指向外部依賴延遲,數據庫行鎖競爭最符合。3.在DevOps流水線中,Canary發(fā)布階段通常首先把新版本流量比例設置為:A.100%B.50%C.10%D.0%答案:C解析:Canary發(fā)布以小比例真實流量驗證穩(wěn)定性,10%為常見起點。4.以下關于變異測試(MutationTesting)的描述,正確的是:A.通過插入真實業(yè)務需求驗證代碼正確性B.變異得分越高說明測試用例越弱C.等價變異體需人工審查后決定是否剔除D.只能用于單元測試層級答案:C解析:等價變異體行為與原程序一致,需人工判斷;變異得分高代表測試強。5.使用SpringBoot構建RESTful服務時,若希望全局捕獲自定義業(yè)務異常并返回統(tǒng)一JSON,應優(yōu)先采用:A.@ControllerAdvice+@ExceptionHandlerB.Filter+HttpServletResponseC.HandlerInterceptorD.AOP環(huán)繞通知答案:A解析:@ControllerAdvice可集中處理控制器層異常,返回統(tǒng)一格式。6.在TDD循環(huán)中,正確的順序是:A.綠-紅-重構B.紅-綠-重構C.重構-紅-綠D.紅-重構-綠答案:B解析:TDD先寫失敗測試(紅),再寫實現(xiàn)通過測試(綠),最后重構。7.某系統(tǒng)采用CQRS模式,命令端使用樂觀鎖,事件存儲采用EventSourcing。當并發(fā)修改同一聚合根時,最終一致性由哪項機制保證?A.Kafka分區(qū)順序性B.聚合根版本號沖突檢測C.Saga事務補償D.讀寫庫同步延遲答案:B解析:樂觀鎖通過版本號檢測沖突,拒絕并發(fā)修改,保證事件順序。8.以下哪項最能體現(xiàn)“測試右移”(ShiftRight)理念?A.在本地使用JUnit做分支覆蓋率達80%B.生產環(huán)境通過混沌工程注入延遲故障C.代碼提交前強制Sonar掃描D.每日凌晨運行全量回歸用例答案:B解析:測試右移強調在生產環(huán)境驗證,混沌工程是典型實踐。9.在GitFlow模型中,準備發(fā)布生產時,應從哪個分支拉出release分支?A.mainB.developC.featureD.hotfix答案:B解析:release分支基于develop,用于集成測試與版本定版。10.對一段包含8個判定節(jié)點的代碼使用McCabe公式計算圈復雜度,結果為:A.7B.8C.9D.10答案:C解析:V(G)=判定節(jié)點數+1=8+1=9。11.在Kubernetes中,若要保證Pod在節(jié)點故障后最多30秒內重新調度,應調整:A.readinessProbe.timeoutSecondsB.livenessProbe.periodSecondsC.terminationGracePeriodSecondsD.PodDisruptionBudget的minAvailable答案:C解析:terminationGracePeriodSeconds控制優(yōu)雅終止時長,影響重調度速度。12.以下關于模糊測試(Fuzzing)的敘述,錯誤的是:A.可基于代碼覆蓋反饋生成新輸入B.適用于閉源二進制程序C.只能發(fā)現(xiàn)崩潰類缺陷D.AFL++屬于覆蓋引導模糊器答案:C解析:模糊測試還能發(fā)現(xiàn)邏輯缺陷、內存泄漏等非崩潰問題。13.在MySQL8.0中,為了降低可重復讀隔離級別下的幻讀概率,應優(yōu)先使用:A.表級鎖B.一致性非鎖定讀C.臨鍵鎖(Next-KeyLock)D.讀提交隔離答案:C解析:臨鍵鎖結合記錄鎖與間隙鎖,抑制幻讀。14.某API限流算法采用令牌桶,桶容量1000,每秒放入200令牌,瞬時突發(fā)最多可處理:A.200請求B.800請求C.1000請求D.1200請求答案:C解析:令牌桶允許突發(fā)消耗全部存量,最大1000。15.在SonarQube質量閾中,若要求新代碼的“安全熱點”必須為零,應配置:A.leakperiodB.qualitygate條件C.ruleseverityD.webhook回調答案:B解析:qualitygate可設置新代碼安全熱點數=0。二、多項選擇題(每題3分,共15分,多選少選均不得分)16.以下哪些指標可直接用于衡量持續(xù)交付成熟度?A.部署頻率B.需求故事點完成率C.變更失敗率D.平均恢復時間(MTTR)E.代碼行數答案:A、C、D解析:DORA四大關鍵指標包含部署頻率、變更前置時間、變更失敗率、MTTR。17.關于契約測試(Consumer-DrivenContract),正確的有:A.消費者編寫契約并發(fā)布到BrokerB.提供者運行契約驗證可早于消費者開發(fā)C.契約可替代端到端集成測試D.使用Pact框架時,契約文件格式為YAMLE.契約測試失敗會阻塞CI流水線答案:A、B、E解析:契約文件默認JSON;契約測試減少但不替代端到端測試。18.以下屬于靜態(tài)應用安全測試(SAST)工具特征的是:A.無需運行程序B.可檢測硬編碼密鑰C.依賴運行時堆棧信息D.通常集成在CI階段E.可發(fā)現(xiàn)SQL注入模式答案:A、B、D、E解析:SAST不依賴運行,靜態(tài)分析源碼或字節(jié)碼。19.在性能測試中,可用來定位內存泄漏的監(jiān)控項有:A.GC后老年代使用率趨勢B.線程死鎖次數C.堆外內存使用量D.系統(tǒng)CPUstealtimeE.網絡包重傳率答案:A、C解析:老年代持續(xù)上升、堆外內存增長均提示泄漏。20.以下關于藍綠發(fā)布的說法,正確的有:A.需要雙倍資源B.切換流量通過修改LoadBalancer指向實現(xiàn)C.可快速回滾D.數據庫Schema必須向前兼容E.適用于客戶端長連接場景答案:A、B、C、D解析:長連接在藍綠切換時會斷開,不適用。三、判斷題(每題1分,共10分,正確打“√”,錯誤打“×”)21.在Git中,執(zhí)行gitrevert會生成新提交以撤銷指定提交,歷史記錄保持完整。答案:√22.采用分布式事務Saga模式時,補償事務必須冪等。答案:√23.測試金字塔中,UI層測試數量應最多。答案:×解析:單元測試最多,UI層最少。24.使用Dockerfile的RUN指令合并多條命令可減少鏡像層數,提高構建緩存命中率。答案:×解析:合并減少層數但可能降低緩存命中率。25.在JMeter中,僅當響應碼為200時斷言才生效,非200會被自動標記失敗。答案:×解析:需顯式添加斷言,JMeter不會自動判斷。26.對于高并發(fā)計數器,Redis的INCR命令本身具備原子性。答案:√27.在Java中,volatile關鍵字可保證復合操作的原子性。答案:×解析:僅保證可見性與有序性,不保證復合操作原子。28.采用FeatureToggle可實現(xiàn)主干開發(fā)(Trunk-BasedDevelopment)。答案:√29.在Prometheus中,Counter類型指標只能增加,不能減少或重置。答案:×解析:Counter可隨服務重啟歸零。30.使用OAuth2的ClientCredentials模式時,資源服務器需要驗證用戶上下文。答案:×解析:客戶端模式無用戶上下文。四、簡答題(每題8分,共24分)31.描述一次完整的CI/CD流水線中,如何在不降低安全性的前提下,將機密信息(如數據庫密碼)注入容器化應用。答案:1.機密存儲:使用Vault或KMS集中管理,開啟審計日志與最小權限。2.流水線拉?。篊I服務器通過短期ServiceAccountToken訪問Vault,采用ResponseWrapping一次性令牌。3.注入方式:a.運行時通過InitContainer調用VaultAgent,將機密寫入tmpfs內存卷,應用通過環(huán)境變量或文件讀取。b.避免在鏡像層出現(xiàn)明文密碼,Dockerfile中不寫入任何機密。4.輪換策略:Vault定期自動輪換數據庫憑據,應用通過Reload信號重新讀取。5.審計與回滾:流水線記錄機密版本哈希,若部署失敗可快速回滾至舊版本憑據。6.網絡隔離:Vault與運行時集群通過mTLS通信,拒絕公網訪問。通過以上步驟,機密不落盤、不進鏡像、可審計、可輪換,兼顧安全與自動化。32.某電商系統(tǒng)在秒殺場景下出現(xiàn)“超賣”現(xiàn)象,庫存數據庫為MySQL。請分析原因并給出三種不同層次的解決方案,要求越靠前越低成本。答案:原因:1.并發(fā)扣減庫存SQL未加行鎖,導致臟讀。2.應用層緩存與數據庫不一致,緩存擊穿后大量線程同時通過。3.分布式環(huán)境下,多個節(jié)點本地緩存未同步。方案:低成本(應用層):a.將庫存字段改為無符號整數,利用數據庫溢出拋異?;貪L。b.在事務內使用“updatestock=stock-1whereid=?andstock>0”,利用MySQL行鎖原子性,返回影響行數為0則回滾。中等成本(緩存層):c.引入Redis單線程INCR+Lua腳本,先預扣庫存,成功后發(fā)MQ異步落庫,失敗則回滾緩存。高成本(架構層):d.采用庫存分片+隊列串行化,將熱點商品哈希到獨立隊列,單線程消費,徹底消除并發(fā)。e.使用分布式鎖(Redisson)+租約機制,保證任一時刻僅一個節(jié)點處理庫存,但需評估鎖粒度與性能損耗。33.解釋“flakytest”對持續(xù)集成的影響,并給出五種根因及對應治理策略。答案:影響:?虛假失敗降低團隊對CI信任,導致“紅墻”被忽視,真實缺陷漏網。?重復運行浪費計算資源,延長反饋周期。根因與治理:1.時間依賴:測試用例使用System.currentTimeMillis,導致跨時區(qū)或午夜失敗。治理:注入Clock接口,測試使用固定時鐘。2.并發(fā)競爭:共享靜態(tài)變量未同步,線程調度差異導致斷言不一致。治理:使用隔離注解@DirtiesContext或ThreadLocal。3.網絡超時:依賴外部服務,偶發(fā)延遲。治理:WireMock錄制回放,或引入Testcontainers啟動本地鏡像。4.資源泄漏:數據庫事務未回滾,后續(xù)測試數據污染。治理:采用@Transactional+@Rollback,或Flyway每次重建schema。5.隨機數據:使用Random生成訂單號,斷言硬編碼預期值。治理:改用FixedSeed或偽隨機生成器,保證可重復。持續(xù)治理:?建立flakytest度量面板,標記“不穩(wěn)定”標簽,三次失敗禁止合并。?引入重試插件前需審批,禁止“掩蓋”而非修復。?每周評審TOP10flakytest,分配owner限時解決。五、綜合設計題(21分)34.背景:某金融科技公司計劃上線“聚合支付”微服務,需同時支持微信、支付寶、銀聯(lián)通道。系統(tǒng)要求:1.單筆支付延遲≤500ms(P99)。2.每日交易量峰值500萬筆,可水平擴展。3.資金類操作不允許臟寫,需可審計。4.上線周期兩周一次,禁止停機發(fā)布。任務:a.畫出核心領域模型(限界上下文、聚合根、實體、值對象),并說明為什么這樣劃分。(6分)b.給出支付鏈路的技術選型(語言、框架、中間件、數據庫、緩存、注冊中心、網關、監(jiān)控),并闡述選型理由。(6分)c.設計灰度發(fā)布方案,要求支持按用戶白名單、渠道維度、金額區(qū)間三維灰度,并能在5分鐘內全量或回滾。(5分)d.針對資金不允許臟寫,設計一套“可審計”的并發(fā)控制機制,包含SQL示例、事件結構、對賬腳本思路。(4分)答案:a.領域模型:限界上下文:?支付核心上下文(PaymentBC)?渠道網關上下文(ChannelGatewayBC)?賬務上下文(AccountBC)?審計上下文(AuditBC)支付核心聚合根:PaymentOrder(訂單號、用戶ID、金額、幣種、狀態(tài)機)實體:ChannelRoute(渠道路由規(guī)則)、PaymentEvent(領域事件)值對象:Money、Currency、EncryptedCardNo劃分理由:?渠道網關上下文隔離外部渠道差異,內部用防腐層轉換。?賬務上下文處理資金變動,采用事件驅動,避免直接調用。?審計上下文監(jiān)聽所有事件,寫入不可變日志,滿足合規(guī)。b.技術選型:語言:Kotlin+SpringBoot3,協(xié)程降低延遲。框架:SpringWebFlux響應式,Netty非阻塞IO。注冊中心:Nacos,支持灰度元數據。網關:SpringCloudGateway+Redis限流腳本。緩存:RedisCluster,存儲渠道可用性、用戶白名單。消息:RocketMQ5,事務消息保證最終一致。數據庫:MySQL8主從+ShardingSphere分庫分表,按用戶ID分片。監(jiān)控:Prometheus+Grafana+Loki+Tempo,鏈路追蹤OpenTelemetry。理由:?Kotlin協(xié)程單線程模型減少線程切換,P99延遲低。?RocketMQ事務消息支持本地事務與消息原子提交。?ShardingSphere支持柔性事務,滿足峰值擴展。c.灰度發(fā)布:配置中心:Apollo新增灰度維度鍵(userWhiteList、channel、amountRange)。網關過濾器:1.用戶維度:查詢Redis白名單集合,存在則路由到新版本tag。2.渠道維度:請求體解析channel字段,匹配灰度渠道列表。3.金額區(qū)間:解析amount,落在配置區(qū)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖南岳陽汨羅市第三人民醫(yī)院面向社會招聘編外勞務派遣制專業(yè)技術人員7人備考題庫附答案
- 2026福建廈門市湖里區(qū)國有資產投資集團有限公司招聘1人參考題庫附答案
- 2026福建省標準化研究院下屬國有企業(yè)第一批人員招聘5人備考題庫附答案
- 2026福建省順昌人力資源服務有限公司( 就業(yè)見習崗位)招聘1人參考題庫附答案
- 2026西北工業(yè)大學材料學院輻射探測材料與器件團隊招聘1人(陜西)參考題庫附答案
- 公共交通車輛購置管理制度
- 三臺縣2025年縣級事業(yè)單位面向縣內鄉(xiāng)鎮(zhèn)公開選調工作人員(16人)參考題庫附答案
- 豐城市2025年機關事業(yè)單位公開選調工作人員【48人】考試備考題庫附答案
- 山東高速集團有限公司2025年下半年校園招聘(管培生和戰(zhàn)略產業(yè)人才招聘)(60人) 考試備考題庫附答案
- 招130人!海北州公安局2025年度面向社會公開招聘警務輔助人員(第二批)參考題庫附答案
- 傳染病報告卡的填寫
- 公園建設項目環(huán)境影響報告書
- 系統(tǒng)解剖學顱骨及其連結
- 基坑支護設計總說明資料
- 員工就業(yè)規(guī)則
- GB/T 33598-2017車用動力電池回收利用拆解規(guī)范
- SS3和SS4簡明電路圖教案
- 路面施工風險告知書
- 新生兒常用藥物外滲后的處理課件
- 標準園林綠化工程施工組織設計方案范本
- 糖尿病治療-三重奏到八重奏課件
評論
0/150
提交評論