本文从 DeepSeek 测试开发岗位的招聘需求出发,聊聊 AI 时代测试岗位正在发生的变化,以及测试开发者可以如何应对。
一、传统测试范式正在失效
软件测试的核心逻辑建立在确定性之上。给一个输入,程序应该产生可预期的输出;测试工程师编写用例,自动化执行,断言结果是否符合预期。过去二十年,这套方法一直管用。
大模型的出现打破了这个前提。当我们向一个大模型提问时,同样的输入每次可能得到不同的回答。概率分布驱动了模型的输出,使得相同的提示词在不同调用、不同温度设置下可能产生语义相近但字面完全不同的答案。
传统的精确匹配断言在这种场景下完全失效。模糊匹配或语义相似度判断虽然可行,但引入了新的复杂度。不过,测试思维、缺陷分析能力、用例设计方法依然是底层能力,只是具体执行手段需要更新。
二、Agent 评测体系:多维度的新标准
从 DeepSeek 测试开发岗位的 JD 来看,AI 时代的测试已经从"验证程序行为"演变为"评测 Agent 能力"。DeepSeek JD 中提到的评测维度包括:
| 评测维度 | 核心关注点 |
|---|---|
| 可用性 | Agent 产出的结果对用户是否有实际价值 |
| 代码规范 | Agent 生成代码的可维护性 |
| 工程质量 | 架构设计、模块解耦、错误处理 |
| 任务完成度 | 对"任务完成"本身的定义 |
| 规划能力 | 将复杂任务拆解为可执行的子步骤 |
| 工具调用准确率 | Agent 在使用外部工具时的精确性 |
| 多轮交互连贯性 | 长对话中是否保持上下文一致性 |
| 指令跟随能力 | 对复杂或模糊指令的理解和执行程度 |
这些维度之间可能存在权衡。例如一个 Agent 可能在任务完成度上表现优异但代码规范性较差,另一个 Agent 可能指令跟随能力强但规划能力弱。评测体系需要能够呈现这种多维度的能力图谱。
三、技术栈的迁移
DeepSeek JD 中明确将 Go 和 Rust 列为首选语言,而非常见的 Python 和 Java。
Go 语言的优势:
// 典型的评测请求并发处理
func processEvaluation(ctx context.Context, requests []EvalRequest) ([]EvalResult, error) {
var wg sync.WaitGroup
results := make(chan EvalResult, len(requests))
for _, req := range requests {
wg.Add(1)
go func(r EvalRequest) {
defer wg.Done()
result := evaluateAgent(r)
results <- result
}(req)
}
wg.Wait()
close(results)
var evalResults []EvalResult
for r := range results {
evalResults = append(evalResults, r)
}
return evalResults, nil
}
Go 在并发编程和性能方面的优势更适合高并发评测场景。Rust 则在内存安全和性能之间提供了更好的平衡,对于需要极致性能的评测组件来说是合理的选择。
Benchmark 框架的知识也是必需的:
- HumanEval:OpenAI 发布的代码能力评测基准,通过让模型生成代码并与正确答案对比来评估能力
- SWE-bench:从真实的 GitHub Issue 中提取任务,考察模型解决实际软件问题的能力
理解这些基准的设计逻辑,有助于测试工程师设计更贴合实际的评测方案。
四、测试开发者的实践路径
路径一:快速上手 Agent 评测
第一步:建立 LLM 行为认知
了解以下核心概念:
- Transformer 架构的基本工作机制
- 注意力机制对输出的影响
- 提示词工程的基础原则
推荐学习资源:OpenAI 官方文档、Anthropic 技术博客、Stanford CS224N 课程笔记
第二步:掌握基准测试框架
从公开基准入手,理解其评测逻辑:
# HumanEval 风格评测示例
def evaluate_code_generation(model_response: str, expected_output: str) -> dict:
"""评估代码生成质量"""
# 语法检查
try:
compile(model_response, '<string>', 'exec')
syntax_valid = True
except SyntaxError:
syntax_valid = False
# 功能等价性(简化判断)
semantic_similarity = compute_embedding_similarity(
model_response,
expected_output
)
return {
"syntax_valid": syntax_valid,
"semantic_similarity": semantic_similarity,
"pass": syntax_valid and semantic_similarity > 0.85
}
第三步:积累 Prompt Engineering 经验
设计评测 Prompt 时需要考虑:
- 指令的明确性和无歧义性
- 输出格式的标准化设计
- 边界 case 的覆盖策略
- 多次采样的一致性分析
路径二:传统测试智能化
将 AI 能力融入现有测试流程:
用例生成智能化:
# 用 LLM 自动生成测试用例
def generate_test_cases(function_docstring: str, function_code: str) -> list:
prompt = f"""
基于以下函数设计测试用例,覆盖正常路径、边界条件和异常情况:
函数签名:{function_docstring}
实现:{function_code}
输出格式:JSON数组,每个元素包含用例描述、输入参数、预期输出
"""
response = call_llm(prompt)
return parse_test_cases(response)
回归测试自动化:
用 Agent 自动执行回归测试,对比历史输出与当前输出,识别潜在回归。
路径三:深入 Agent 评测体系
面向专职 AI 测试工程师方向:
工具调用评测设计:
# 工具调用准确率评测框架
class ToolCallEvaluator:
def __init__(self, tool_definitions: list[dict]):
self.tools = {t["name"]: t for t in tool_definitions}
def evaluate(self, agent_trajectory: list[dict]) -> ToolCallMetrics:
total_calls = 0
correct_calls = 0
tool_selection_errors = 0
parameter_errors = 0
for step in agent_trajectory:
if step["type"] == "tool_call":
total_calls += 1
expected = step["expected_tool"]
actual = step["actual_tool"]
if expected["name"] != actual["name"]:
tool_selection_errors += 1
elif expected["params"] != actual["params"]:
parameter_errors += 1
else:
correct_calls += 1
return ToolCallMetrics(
accuracy=correct_calls / total_calls if total_calls > 0 else 0,
tool_selection_error_rate=tool_selection_errors / total_calls,
parameter_error_rate=parameter_errors / total_calls
)
多轮对话连贯性评估:
设计对话测试集,评估 Agent 在长程对话中的上下文保持能力。关键指标包括:上下文关键信息保留率、话题切换准确性、实体引用一致性。
五、评测体系本身也有坑
基准过拟合风险: 当某个基准被广泛使用后,模型开发者可能针对这个基准做专门优化,导致基准分数虚高。SWE-bench 作者团队持续在扩展和更新测试集以应对这个问题。
评测一致性验证: 同一模型在同一套评测体系下的结果是否稳定,评测与人类评估之间有多大相关性。在设计评测流程时,需要考虑引入多次评估取平均、引入人工评审作为对照等机制。
评测维度的主观性: 哪些维度重要、权重如何分配,会直接影响对 Agent 能力的判断。不同团队可能得出截然不同的结论,不要把任何单一评测体系奉为圭臬。
总结
AI 时代测试岗位的核心变化是测试对象变了,测试方法论也得跟着变。传统软件测试的核心技能不会消失,但具体执行框架需要扩展。
三条实践路径总结:
| 路径 | 适合人群 | 关键技能 |
|---|---|---|
| 快速上手 Agent 评测 | 希望快速转型 | LLM 基础、Prompt Engineering、基准测试框架 |
| 传统测试智能化 | 计划在现有团队推动 AI 落地 | 用例自动生成、回归测试自动化 |
| 深入 Agent 评测体系 | 志在成为专职 AI 测试工程师 | 评测体系设计、多维度指标构建、数据分析 |
早一步布局,就多一分主动。