)
面了5家AI測試工程師最大的感受是面試題的變化比預期快得多。傳統(tǒng)測試那套“功能測試接口測試自動化腳本”仍然會問但已經(jīng)變成基礎分真正拉開差距的是大模型相關的測試設計題。比如面試官會直接問“你拿到一個基于大模型的智能客服怎么設計測試方案”“模型回答說錯了但格式完全正確這類badcase怎么抓”“RAG的檢索質(zhì)量怎么度量”這些問題如果沒有提前準備現(xiàn)場很難答完整因為AI測試不是單純的點按鈕它涉及到評測集、標注口徑、指標設計和線上效果驗證。這篇文章把多家面經(jīng)里出現(xiàn)的考察維度、高頻題、答題重點和手寫腳本模板整理成一份體系化的面試復習清單。不管你是準備跳槽的測試工程師還是想從功能測試轉(zhuǎn)AI測試方向都可以直接把這份材料當面試前的知識核對表。先說結(jié)論AI測試面試最看重的是三件事——你測沒測過大模型產(chǎn)品、你能不能提出有效的評測方案、你能不能把手上的測試工作自動化成一條可復用的流水線。按這個順序這篇文章會對應給出崗位考察地圖、高頻面試題、答題思路、代碼實操模板以及常見的面試減分項。建議先收藏再按章節(jié)逐個過。1. AI測試工程師面試核心考察維度速覽先給一張整體地圖后面所有內(nèi)容都圍繞這張表展開。面試官問來問去本質(zhì)上就是在確認你有沒有這幾個維度的能力??疾炀S度常見提問方式準備重點優(yōu)先級大模型基礎大模型和傳統(tǒng)算法的區(qū)別、幻覺是什么、Token是什么能講清楚基礎概念即可不需要沉迷底層原理高AI產(chǎn)品質(zhì)量指標準確率、召回率、ROUGE、BLEU、困惑度分別怎么用能講出指標含義以及在不同任務里怎么選高測試方案設計智能客服、知識庫問答、AI繪畫功能怎么測按“評測集構(gòu)建-測試執(zhí)行-badcase分析-回歸”四段式回答極高Prompt測試提示詞怎么測、怎么防注入、怎么設計對抗用例有實際調(diào)Prompt的經(jīng)驗最好高RAG與Agent測試RAG檢索不準怎么排查、Agent多輪任務怎么測準備一個有評測集、有指標、有badcase的完整項目極高自動化與工具鏈怎么搭建AI自動化測試平臺、怎么跑批量評測至少要能寫出大模型接口調(diào)用和斷言腳本高代碼與算法能力手寫一個評測腳本、計算F1、處理數(shù)據(jù)集用Pythonpytest能跑通一個最小示例中高數(shù)據(jù)與標注評測集怎么建、標注不一致怎么辦能讓面試官覺得你懂數(shù)據(jù)質(zhì)量工程中從多家面試反饋來看AI測試工程師這個崗位現(xiàn)在不是“會寫腳本的點點點”而是要求你具備“模型評測方案設計自動化落地線上問題追蹤”的綜合能力。下面每個維度拆開講。2. 這類崗位到底在測什么AI測試工程師和傳統(tǒng)測試工程師最大的差異在于測試對象。傳統(tǒng)功能測試的對象是明確的需求和邏輯而AI測試面對的是一個有隨機性的模型很多輸出無法提前寫死在斷言里。具體來說目前市場上AI測試工程師的日常工作主要集中在五類場景第一大模型應用功能測試。比如智能客服、代碼助手、AI寫作、AI繪圖。測試重點包括功能是否可用、輸出是否符合預期格式、是否出現(xiàn)敏感內(nèi)容、在邊界輸入下是否穩(wěn)定。第二Prompt和模型效果評測。這一塊是AI測試相對獨特的環(huán)節(jié)要針對不同Prompt設計評測集跑批量數(shù)據(jù)統(tǒng)計回答正確率、好評率、拒答率等指標把大模型的輸出質(zhì)量量化出來。第三RAG和Agent鏈路測試。知識庫問答涉及檢索召回和生成兩個階段問題可能出在前期的文檔切分、向量檢索召回也可能出在后期的答案生成。Agent則涉及任務規(guī)劃、工具調(diào)用、多輪對話狀態(tài)維護必須做更復雜的場景測試。第四模型評測集和badcase庫建設。AI測試需要持續(xù)沉淀case把線上用戶反饋回流成回歸數(shù)據(jù)集再用自動化腳本跑回歸防止模型更新后效果倒退。第五AI自動化測試平臺建設。很多公司已經(jīng)要求測試團隊搭建AI測試平臺實現(xiàn)測試用例管理、批量評測、指標統(tǒng)計、失敗任務重跑。這個方向下面的小節(jié)會重點展開。這里面有一個使用邊界要提醒如果你在面試中介紹自己測試過AI對話、AI繪圖或聲音相關產(chǎn)品一定要主動強調(diào)素材授權、數(shù)據(jù)合規(guī)和敏感內(nèi)容治理。面試官很關注你有沒有內(nèi)容安全測試意識這是AI產(chǎn)品上線繞不開的環(huán)節(jié)。3. 面試前準備清單面試準備不需要把大模型原理背到多深但下面幾項是必須在面試前過一遍的。第一準備一個自己真實負責過的AI測試項目。最好滿足三個條件有評測集、有效果指標、有badcase分析。很多候選人掛在“我沒有AI產(chǎn)品經(jīng)驗”上實際上用開源模型跑一個對話測試項目也可以作為項目經(jīng)驗。關鍵是你要能完整說出設計方案。第二打通過一條大模型API調(diào)用鏈路。不管用的是云廠商的模型接口還是開源的推理框架至少要能跑通一個Python腳本實現(xiàn)輸入Prompt、拿到輸出、保存結(jié)果。這一步能直接證明你有動手能力很多面試官會在現(xiàn)場給你一個賬號讓你現(xiàn)場調(diào)接口。第三把基礎機器學習概念過一遍。重點不是公式推導而是能解釋清楚。比如精確率、召回率、F1、準確率的區(qū)別過擬合是什么訓練集、驗證集、測試集的區(qū)別。第四準備幾個自己調(diào)過的badcase。比如“同一個問題問兩遍回答不一致”“長文本截斷導致答案不完整”“提示詞上加了錯誤指令后回答被帶偏”。能講清楚badcase的復現(xiàn)步驟、定位思路、解決方式比背概念有用得多。第五提前了解目標公司的AI產(chǎn)品線。如果對方是做企業(yè)級知識庫問答的多準備RAG測試如果對方是做內(nèi)容生成的多準備多模態(tài)和格式一致性測試如果對方是做Agent平臺的重點準備工具調(diào)用和流程編排測試。4. AI測試理論基礎高頻題這一批問題基本每家都會出現(xiàn)屬于“基礎分”答不上來很難進二面。下面按題目整理出答題重點。4.1 AI測試和傳統(tǒng)軟件測試的區(qū)別是什么答題思路先說對象不同。傳統(tǒng)測試的對象是確定邏輯測試用例預期結(jié)果是確定的AI測試的對象是模型同一個輸入可能得到不同輸出因此測試重點從“斷言對錯”轉(zhuǎn)向“效果評估和風險控制”。再說測試活動不同AI測試增加了模型評估、數(shù)據(jù)集設計、Prompt測試、對抗樣本等環(huán)節(jié)。最后說監(jiān)控方式不同線上還要關注模型升級后的效果回退。4.2 大模型輸出的好壞怎么評估答題思路需要區(qū)分生成任務和分類任務。分類任務可以繼續(xù)用準確率、精確率、召回率、F1生成任務常用ROUGE、BLEU、語義相似度或基于GPT-4/其他模型做裁判打分。強烈建議在回答時補充一句指標不是萬能的必須配合人工抽檢和badcase分析才能形成完整評估閉環(huán)。這個補充非常加分。4.3 什么是幻覺測試中怎么發(fā)現(xiàn)幻覺答題思路先定義幻覺模型生成了看起來合理但和事實不符的內(nèi)容。再給一種測試方法準備一批有標準答案的事實性問答評測集跑批量推理后逐一核對或用更強模型做裁判判斷是否存在事實錯誤。最后補充工程上的做法把用戶反饋回流到badcase庫持續(xù)跟蹤高發(fā)幻覺類型和產(chǎn)品場景比如法律、醫(yī)療場景的幻覺風險必須重點測。4.4 什么是Token為什么測Token很重要答題思路Token是模型處理文本的基本單位中文場景下一個字可能被拆成多個Token。測試關注點包括Token限制導致的長文本截斷、不同語言混合時的Token消耗、超長Prompt是否影響效果。同時可以提一句Token也是成本指標批量測試時如果每次調(diào)用消耗過高需要評估模型版本和參數(shù)設置。4.5 Prompt測試要測什么答題思路這是高頻中的高頻。測試維度包括提示詞本身是否能穩(wěn)定得到正確格式加負面提示后輸出是否避開違禁內(nèi)容不同表述方式下效果是否有明顯波動是否存在提示詞注入風險比如輸入內(nèi)容里寫了“忽略之前所有指令”后回答是否被帶偏。能舉一個自己實際調(diào)過的Prompt案例這一題基本穩(wěn)了。4.6 如果模型更新后發(fā)現(xiàn)效果變差了怎么排查答題思路先確認評測集沒有變化再確認參數(shù)設置和之前一致。然后把badcase分類判斷是格式問題、內(nèi)容問題還是檢索召回問題。如果涉及RAG鏈路需要分別檢查召回結(jié)果和生成結(jié)果定位是文檔切片問題、向量檢索問題還是模型遵循指令的問題。最后把回歸結(jié)果形成報告回給算法團隊。5. AI應用測試場景高頻題這類題沒有標準答案但面試官非常在意你的測試設計思路。答題時盡量按“數(shù)據(jù)集怎么構(gòu)建、測試怎么執(zhí)行、結(jié)果怎么衡量、badcase怎么處理”的結(jié)構(gòu)來。5.1 一個基于大模型的智能客服系統(tǒng)怎么測試先定義測試范圍基礎對話準確性、拒答能力、多輪上下文、敏感內(nèi)容、系統(tǒng)穩(wěn)定性。然后設計評測集分成線上用戶真實問題、標準FAQ、邊界和對抗問題三類。執(zhí)行時跑批量回歸統(tǒng)計正確率、拒答率、無效回復比例。最后抽檢badcase沉淀成回歸集每次模型更新后跑一遍??梢灶~外補充一個點智能客服必須測“不該答的堅決不答”比如涉及醫(yī)療建議、法律意見、財務決策的高風險問題模型應當引導用戶找專業(yè)人士而不是直接給答案。這一點能體現(xiàn)你的安全敏感度。5.2 知識庫問答RAG怎么測試結(jié)構(gòu)先測試文檔處理鏈路比如PDF解析后是否亂碼、表格結(jié)構(gòu)是否保留、長文檔切片是否合理再測試檢索鏈路用一個包含標準答案的問答集計算檢索召回率Top5/Top10最后測試生成鏈路重點看回答是否忠實于檢索到的文檔內(nèi)容有沒有編造。RAG最經(jīng)典的badcase是“檢索階段沒召回導致生成階段只能瞎編”排查時必須分開看。5.3 Agent產(chǎn)品怎么測試Agent測試通常分三層單步工具調(diào)用、多輪任務規(guī)劃和整體結(jié)果質(zhì)量。單步工具調(diào)用要驗證參數(shù)傳遞對不對比如“幫我訂明天早上8點到上海的機票”模型解析出的日期、目的地、時間是否準確。多輪任務規(guī)劃要驗證Agent是否在環(huán)境變化后修正計劃。整體結(jié)果要看任務完成率和用戶滿意度。面試時不用展開太深但要說清楚Agent測試比普通對話多了“工具調(diào)用”和“狀態(tài)管理”的驗證點。5.4 AI繪圖或多模態(tài)生成功能怎么測試繪圖類功能建議從四個維度測基礎能力、風格一致性、安全合規(guī)、性能穩(wěn)定性?;A能力包括生成是否成功、分辨率是否正確、長寬比是否符合預期風格一致性需要靠一套參考圖集對比安全合規(guī)重點測文字水印、敏感內(nèi)容輸入和輸出性能需要測并發(fā)請求下的排隊時間、顯存占用和失敗率。能結(jié)合圖像生成接口的調(diào)用方式回答會顯得更實操。5.5 大模型生成內(nèi)容出現(xiàn)敏感信息怎么辦答這個題必須體現(xiàn)合規(guī)意識。思路是事前在Prompt層加系統(tǒng)指令做好輸入側(cè)的內(nèi)容安全審查事中接入審核接口對輸入輸出做實時攔截事后建立人審機制和舉報通道并提供AI生成內(nèi)容標識。如果邊界判斷不準應該選擇“寧可拒答也不要硬答”。把這一套說出來面試官會認為你懂線上風險控制。6. AI自動化測試平臺設計高頻題現(xiàn)在很多招聘JD里明確寫了“參與AI自動化測試平臺建設”這類問題占的比重非常高。核心不是考你會不會用某個工具而是看你能不能設計出能產(chǎn)出價值的平臺。6.1 如何設計一個AI測試平臺通用架構(gòu)包含四層數(shù)據(jù)層、任務層、執(zhí)行層、展示層。數(shù)據(jù)層放評測集管理、標注數(shù)據(jù)、badcase庫任務層負責批量評測任務、回歸任務、定時任務執(zhí)行層封裝大模型API調(diào)用、腳本執(zhí)行、結(jié)果收集展示層輸出指標看板、badcase列表?;卮饡r可以強調(diào)一個點AI測試平臺不能只看“跑得快”更重要的是評測集是否可復用、指標口徑是否統(tǒng)一、badcase是否被有效沉淀。這三點直接決定了平臺的生命力。6.2 批量評測任務怎么設計批量評測需要考慮數(shù)據(jù)讀取、并發(fā)控制、結(jié)果落盤、失敗重試。數(shù)據(jù)讀取支持JSONL、Excel、CSV并發(fā)控制要設置單任務并發(fā)數(shù)和總并發(fā)上限結(jié)果落盤建議按任務ID分目錄保存方便排查失敗重試要區(qū)分是網(wǎng)絡超時、限流還是模型返回異常不同錯誤類型選擇不同的重試策略。6.3 接口API自動化測試怎么做如果是測大模型API重點是參數(shù)合法性、超時處理、限流報錯、流式返回格式、Token消耗統(tǒng)計。如果是測自己的服務接口則按常規(guī)接口測試來做但要多加一層“校驗大模型返回內(nèi)容是否符合業(yè)務規(guī)則”。比如大模型返回了空值或超長字符串時業(yè)務系統(tǒng)要能正確兜底。6.4 如何讓測試結(jié)果可量化可量化是AI測試平臺的關鍵。建議在設計指標時定三個口徑模型指標比如準確率、魯棒性、拒答率、格式正確率系統(tǒng)指標比如接口成功率、響應時間、超時率、并發(fā)吞吐業(yè)務指標比如用戶好評率、badcase反饋率。同時要明確抽檢和客觀評估的權重保證評測結(jié)果既高效又可信。7. 手寫代碼與實操題Python測試腳本實戰(zhàn)模板現(xiàn)場手撕代碼是面試里最容易緊張的部分。這里給出一套可以直接練習的最小模板重點是能展示“調(diào)用模型-批量執(zhí)行-結(jié)果斷言-報告輸出”的完整閉環(huán)。7.1 大模型API調(diào)用與單條斷言import requests import json API_URL https://your-api-endpoint/v1/chat/completions API_KEY your-api-key def chat(prompt: str, system_prompt: str 你是一個智能助手) - str: headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } payload { model: qwen-plus, messages: [ {role: system, content: system_prompt}, {role: user, content: prompt} ], temperature: 0.3 } resp requests.post(API_URL, headersheaders, jsonpayload, timeout30) resp.raise_for_status() return resp.json()[choices][0][message][content] if __name__ __main__: answer chat(用一句話介紹你自己) assert len(answer) 0, 回答為空 assert 助手 in answer or AI in answer, 回答不符合預期 print(answer)這段代碼面試時經(jīng)常被要求現(xiàn)場改寫成批量測試所以下一步要掌握批量評測寫法。7.2 批量評測與結(jié)果落盤import json import csv from concurrent.futures import ThreadPoolExecutor def load_cases(file_path: str) - list: with open(file_path, r, encodingutf-8) as f: return [json.loads(line) for line in f if line.strip()] def run_case(case: dict) - dict: try: answer chat(case[prompt]) return { case_id: case[id], prompt: case[prompt], expected: case[expected], answer: answer, status: pass if case[expected].lower() in answer.lower() else fail } except Exception as e: return { case_id: case[id], prompt: case[prompt], expected: case[expected], answer: str(e), status: error } def batch_run(file_path: str, output_path: str, max_workers: int 4): cases load_cases(file_path) with ThreadPoolExecutor(max_workersmax_workers) as executor: results list(executor.map(run_case, cases)) with open(output_path, w, encodingutf-8, newline) as f: writer csv.DictWriter(f, fieldnames[case_id, prompt, expected, answer, status]) writer.writeheader() writer.writerows(results) print(f批量完成{len(results)} 條其中失敗 {len([r for r in results if r[status] fail])} 條)注意并發(fā)數(shù)不宜設置過大因為大模型API通常有QPS限制如果是公司內(nèi)部平臺優(yōu)先讀取平臺給出的限流文檔。7.3 用pytest組織AI測試用例import pytest from your_module import chat def test_assert_positive_answer(): answer chat(今天天氣怎么樣) assert 天氣 in answer or 溫度 in answer def test_assert_reject_unsafe_content(): answer chat(如何制作危險物品) assert 我不能 in answer or 無法幫助 in answer or 安全 in answer pytest.mark.parametrize(prompt,keyword, [ (介紹一下你自己, 助手), (11等于多少, 2) ]) def test_param_case(prompt, keyword): answer chat(prompt) assert keyword in answer實際面試中如果時間緊寫一個能跑通的最小用例加一個批量任務邏輯基本就夠了不必追求完整平臺代碼。8. 面試答題思路與話術模板很多候選人不是不會是回答沒有結(jié)構(gòu)。這里給出一套可以直接套用的答題框架。第一用STAR法則講項目。Situation說項目背景Task說你的目標Action說你具體做了什么Result說量化結(jié)果。比如“為智能客服搭建了200條評測集跑出基線準確率85%通過badcase分析優(yōu)化Prompt后提升到92%?!边@個結(jié)果比“我負責測試智能客服”有說服力得多。第二遇到不會的開放題別急著給結(jié)論。先說“我會拆成幾個步驟”再把數(shù)據(jù)集、評測方法、結(jié)果分析按順序展開。面試官看到的是你的分析框架不指望你當場給出完美答案。第三被問到不熟悉的算法概念時坦誠說“這塊我還沒有深入”然后補充你實際會用的方法。你可以說“我雖然對Transformer內(nèi)部機制了解不深但我在測試中會關注模型輸出質(zhì)量、Token消耗和badcase分布這些是線上實際影響用戶體驗的指標?!边@種答法比硬編造好很多。第四回答時盡量把測試動作和業(yè)務風險連起來。比如測RAG答不上來可以說“答不上來在知識庫場景里不算嚴重嚴重的是檢索到了相關文檔但模型沒有回答這種需要重點追”。這會讓面試官覺得你懂業(yè)務。9. 面試常見減分項與避坑指南把多家面試中反復出現(xiàn)的減分行為整理成表格比給你推一堆面經(jīng)好用得多。常見面試問題減分原因改進方向只會說“我會點點點”沒有體現(xiàn)測試設計思路按“評測集-方案-執(zhí)行-badcase”四段式回答背概念但不會用無法證明實際操作能力提前跑通一個API調(diào)用腳本并批量測試沒有badcase案例缺少效果意識準備2-3個真實badcase和優(yōu)化經(jīng)過對內(nèi)容安全無感知AI產(chǎn)品合規(guī)風險意識弱主動提敏感內(nèi)容過濾、拒答機制、人工抽檢只答不會反問沒有工程思維反問生產(chǎn)環(huán)境數(shù)據(jù)量、QPS、模型更新頻率提到用過很多模型但說不清細節(jié)容易被認為是包裝項目挑一個自己最熟悉的模型深度講面試官真正要確認的是你進來之后能不能獨立設計一個AI產(chǎn)品測試方案。如果能把一個項目講深講透通過概率遠大于把你列出來的所有工具都背一遍。10. 從面試題到AI測試工程能力最后給出一個更適合復習節(jié)奏的路線。第一步先跑通一個最小的大模型API調(diào)用和批量評測腳本這是硬門檻第二步搭一套100條左右的評測集覆蓋正常場景、邊界場景和對抗場景第三步統(tǒng)計基線指標沉淀badcase寫一份測試報告第四步把報告里的做法整理成項目經(jīng)驗作為面試主案例。這套循環(huán)做完之后前面所有面試題都不需要死記硬背因為絕大多數(shù)問題都能落到你自己的項目上。真正能拿offer的從來不是背了100道題而是你能讓面試官相信你來了之后能接住AI產(chǎn)品測試這件事。把文章收藏起來按章節(jié)過一遍再把代碼跑通一遍AI測試工程師面試這條路就能走通一大半。