
一、基础概念篇1. 什么是机器学习核心目标是什么机器学习是一门通过设计算法让计算机从数据中自动学习规律、调整参数进而实现对未知数据进行预测或决策的技术。它核心是“数据驱动”目标不是依靠人工编写固定指令完成任务而是让计算机借助数据“经验”自主优化模型最小化在未知数据上的预测误差提升泛化能力。比如软件测试中可通过分析历史测试数据让机器学习模型自动识别潜在bug。2. 监督学习、无监督学习和强化学习有何区别监督学习使用带标签数据训练学习输入与标签的映射关系用于预测已知输出。典型场景如垃圾邮件检测、房价预测算法有线性回归、决策树等。在测试中可用于根据测试用例标签预测用例执行结果。无监督学习在无标签数据中寻找隐藏模式如客户分群、异常检测常用算法有K-Means、PCA。测试里可用于聚类分析测试用例发现相似用例组。强化学习智能体通过与环境互动依据奖励信号学习决策策略如机器人控制、游戏AI代表算法有Q-Learning、PPO。在自动化测试中可让测试智能体根据测试环境反馈优化测试路径。3. 偏差和方差的权衡是怎样的偏差是模型预测值与真实值的系统性偏离源于模型假设过简单导致欠拟合方差是模型在不同训练集上预测结果的波动程度源于模型过复杂导致过拟合。总误差偏差²方差不可约误差。在测试模型构建中若训练集表现好但测试集差是高方差问题可通过增加训练数据、降低模型复杂度解决若训练集和测试集表现都差是高偏差问题可增加特征数量、选用更复杂模型。二、经典算法篇4. 逻辑回归是线性模型还是非线性模型逻辑回归是广义线性模型。其原始形式是非线性的但决策面是线性的。它通过Sigmoid函数将线性回归的输出映射到0-1之间用于二分类任务。在测试中可用于预测测试用例是否会发现bug。5. 逻辑回归为何使用对数损失而非平方损失从损失函数角度逻辑回归预测函数非线性用MSE得到的损失函数是非凸函数梯度下降易陷入局部极小值对数损失是凸函数便于求全局最优解。从梯度更新角度平方损失的梯度更新速度与Sigmoid函数梯度相关Sigmoid梯度不大于0.25训练慢对数损失的导数是误差差值误差大更新快误差小更新慢符合训练需求。6. 支持向量机SVM的核心思想是什么SVM目标是找到一个分类超平面将不同数据分隔开使两类数据到超平面的距离最大化。它通过核函数将低维数据映射到高维解决非线性分类问题。在测试中可用于对测试用例进行分类区分有效用例和无效用例。7. 决策树如何进行特征选择决策树通过信息增益、信息增益比或基尼指数进行特征选择。信息增益是划分前后数据集熵的变化信息增益比是信息增益与特征熵的比值基尼指数衡量数据集的纯度。选择能使数据集纯度提升最大的特征进行划分。在测试中可用于分析影响测试结果的关键特征。三、模型评估篇8. 准确率、精确率、召回率和F1-score有何区别准确率分类正确的样本占总样本的比例适用于正负样本均衡场景。但在测试中若bug样本占比极低即使模型将所有样本预测为无bug准确率也很高无法体现模型真实性能。精确率分类正确的正样本个数占预测为正样本的比例反映模型预测正样本的准确性。召回率分类正确的正样本个数占实际正样本的比例衡量模型对正样本的识别能力。在测试中高召回率意味着能尽可能多发现bug。F1-score精确率和召回率的调和平均数综合反映模型分类性能适用于正负样本不均衡场景。9. ROC曲线和AUC是什么ROC曲线以假阳性率FPR为横坐标真阳性率TPR为纵坐标反映模型在不同阈值下的分类性能。AUC是ROC曲线下的面积取值范围0-1AUC越大模型排序能力越强即越能将正例排在负例之前。在测试模型评估中AUC能更全面反映模型性能。10. 交叉验证的作用和常见方法有哪些交叉验证用于评估模型泛化能力避免过拟合。常见方法留出法将数据划分为训练集和测试集简单但结果随机性高对小数据集不友好。K折交叉验证将数据划分为K个子集轮流用一个子集做验证集其余做训练集取K次结果平均值工业界常用K5或10。留一法每个样本单独做验证集计算开销大适合极小数据集。四、深度学习篇11. 神经网络的基本结构是什么神经网络由输入层、隐藏层和输出层组成。输入层接收数据隐藏层对数据进行特征提取和变换输出层输出预测结果。每层包含多个神经元神经元之间通过权重连接通过激活函数引入非线性。在测试中可用于构建复杂的测试预测模型。12. 梯度下降法有哪些变体各有何优缺点批梯度下降每次用所有训练数据更新参数能获得全局最优解但计算量大数据量大时更新慢。随机梯度下降每次用一个样本更新参数更新频繁可能跳到更好的局部最优解但收敛过程复杂方差大。小批量梯度下降每次用n个样本更新参数结合前两者优点减少更新次数收敛更稳定是深度学习常用方法。13. 什么是过拟合如何解决过拟合是模型在训练集上表现极好但在测试集上泛化能力差原因是模型学习了训练数据的噪声。解决方法正则化L1正则化使部分特征权重为0实现特征选择L2正则化压缩特征权重防止过拟合。早停当验证集性能不再提升时提前停止训练。数据增强对图像、文本等数据进行旋转、翻转、加噪声等操作增加数据多样性。Dropout在训练中随机失活部分神经元减少神经元之间的依赖。五、生产部署与测试结合篇14. 机器学习模型在软件测试中的应用场景有哪些测试用例生成通过学习已有测试用例自动生成新的测试用例覆盖更多场景。缺陷预测根据代码特征、历史缺陷数据预测哪些模块容易出现缺陷指导测试重点。自动化测试利用强化学习让测试智能体自动执行测试任务优化测试路径。性能测试通过分析性能数据预测系统在不同负载下的性能表现。15. 如何评估机器学习模型在测试中的性能除了常规的准确率、精确率等指标还需结合测试场景关注缺陷发现率模型预测的缺陷中实际存在的比例。测试覆盖率提升模型生成的测试用例对代码的覆盖程度。测试效率提升模型节省的测试时间和人力成本。16. 机器学习模型部署到测试环境中需要注意什么数据一致性确保训练数据和测试环境数据分布一致避免模型性能下降。实时性对于实时测试场景模型响应速度要满足要求。可解释性测试人员需要理解模型决策依据便于排查问题。监控与维护实时监控模型性能定期更新模型适应测试环境变化。