功能 #3365
打开Task #3240: FORD文档输出
功能 #3349: SWQA文档
TDR_RQT_003701_705586 Software Testing
50%
描述
RQT-003701-705586 软件测试
需求文本
任何包含非AUTOSAR操作系统、AUTOSAR Classic、AUTOSAR Adaptive或第三方软件实现的电子模块,必须满足以下要求:
测试方法
在首次向福特发布软件/硬件前,必须完成完整的软件设计验证(DV)。此验证至少需覆盖功能规格书中的所有功能需求、所有衍生需求及供应商内部软件需求。
软件DV测试应尽可能采用黑盒测试方法。若需使用灰盒/白盒测试,必须在执行测试前与福特D&R团队审核并说明未采用黑盒测试的合理性。
所有功能性软件DV测试必须在看门狗未禁用的条件下完成(除非福特D&R明确批准并在本文档可追溯性章节中记录)。
对于枚举型配置参数,必须测试所有枚举值。
对于数值型配置参数(如时间、限制、阈值等),需测试范围端点、中间值及初始/默认值。若底层数据类型支持,还应测试低于和高于范围的值。
驱动外部负载的ECU:测试时必须连接实际负载(包括基于私有或专有通信总线的负载接口)。
读取外部传感器的ECU:测试时必须使用实际传感器(包括基于私有或专有通信总线的传感器接口)。
测试可追溯性
供应商需提供可追溯性报告,将功能规格书中的功能需求、供应商需求、衍生需求及测试结果与测试用例关联,供福特审核。非可测试需求需明确标注,福特可选择性审核。
注:ISO 26262要求更高的可追溯性,但本文档不涉及相关内容。
报告内容细节需包含:DV类型(完整、回归、可构建组合)、需求编号(功能规格书、衍生需求、供应商需求)、测试过程ID、通过/失败标识、测试日期、测试类型(白盒、黑盒、不可测试)、失败测试摘要。注:福特不限定报告格式,供应商可使用其工具支持的任何格式,前提是包含上述信息。
验证/证据:软件技术设计评审
对此RQT的符合性验证需通过完成并接受软件设计验证计划与报告(DVP&R),以及完成软件技术设计评审和/或符合以下设计规则:
DR-003701-708367 软件DV测试
DR-003701-708354 软件单元测试
DR-003701-708368 压力测试
DR-003701-708366 回归测试
DR-003701-708223 测试用例与功能需求的可追溯性
DR-003701-718028 堆栈监测测试
RQT说明
电子控制单元(ECU)中的软件可能包含潜在错误,导致客户投诉及分布式系统中的接口故障。通过在软件发布前执行严格的测试方案,此类问题可被减少或消除。硬件/软件接口规范或功能规格书中对软件的许多要求,无法在整车环境甚至台架模块层级进行测试。上述设计规则描述了福特期望在软件发布至福特软件库(用于福特车辆)前需执行的最小测试集。此外,这些规则定义了满足福特验证与确认计划及报告需求的可追溯性与报告要求。
若未遵循这些设计规则,可能导致发布包含潜在软件错误的模块,从而增加未检测错误流入车辆的风险,引发产品责任、可靠性问题或客户不满。
福特倾向于所有功能测试均在不修改软件且不关闭看门狗的条件下进行,以便检测潜在故障。此外,应根据压力测试设计规则中规定的负载条件验证最坏情况计算。
注:下文表格中提及的“状态机”“状态”“状态转换”均指功能规格书(FS)中定义的相关内容。
若存在以下任一情况,福特可能要求执行完整DV测试:
编译器/工具链变更
变更影响多个功能/接口或模块
第三方软件包的替换/更新
注:ISO 26262可能包含更多测试要求,但本文档不涉及相关内容。
黑盒测试:通过激励输入并分析所有输出变化的测试方法。黑盒测试无需了解模块内部工作原理,测试用例直接源于需求。
衍生需求:从高层需求中推导或转换而来的需求。
功能测试:针对模块内外需求的测试,可使用真实或模拟负载,但需覆盖模块输入输出层级所有可测试需求。
灰盒测试:基于软件内部结构知识(非源码结构)设计的测试,用例基于功能接口、类层次结构、模块调用树及预期循环终止条件。
不适用功能:软件中存在但无硬件支持且配置为未启用的功能。
未实现功能:尚未编码实现导致测试用例无法执行的功能。
不可测试功能:无法通过输入/配置激活以生成唯一输出集合的功能。
软件功能DV测试:在目标硬件上运行完整软件时,验证其符合所有软件/功能需求(如子系统规范、ECU软件设计规则)的完整测试集。理想情况下所有测试应为黑盒测试,但部分需求可能需灰盒/白盒测试,需经福特D&R或软件TDR工程师批准。测试需由独立于开发团队的机构执行(可同公司但管理层级至少隔两级以确保独立性)。
压力测试:通过超常规负载测试系统稳定性的方法,常测试至系统断点以观察结果。
确认(Validation):证明工作项可被用户用于其特定任务(依据ISO/IEC/IEEE 29119)。
验证(Verification):通过客观证据确认工作项已满足指定需求(依据ISO/IEC/IEEE 29119)。
白盒测试:基于模块源码内部知识设计的测试,用例直接关联代码结构,验证代码可执行性及结果正确性,确保代码路径可达且无死循环或未初始化变量。