Automotive software development requires engineers to test their systems to detect violations of both functional and drivability requirements. Functional requirements define the functionality of the automotive software. Drivability requirements refer to the driver's perception of the interactions with the vehicle; for example, they typically require limiting the acceleration and jerk perceived by the driver within given thresholds. While functional requirements are extensively considered by the research literature, drivability requirements garner less attention. This industrial paper describes our experience assessing the usefulness of an automated search-based software testing (SBST) framework in generating failure-revealing test cases for functional and drivability requirements. Our experience concerns the VI-CarRealTime simulator, an industrial virtual modeling and simulation environment widely used in the automotive domain. We designed a Cruise Control system in Simulink for a four-wheel vehicle, in an iterative fashion, by producing 21 model versions. We used the SBST framework for each version of the model to search for failure-revealing test cases revealing requirement violations. Our results show that the SBST framework successfully identified a failure-revealing test case for 66.7% of our model versions, requiring, on average, 245.9s and 3.8 iterations. We present lessons learned, reflect on the generality of our results, and discuss how our results improve the state of practice.
翻译:汽车软件开发要求工程师测试系统以检测其是否违反功能与驾驶性能需求。功能需求定义了汽车软件的功能特性,而驾驶性能需求则涉及驾驶员对车辆交互的感知,典型需求包括将驾驶员感知的加速度与加加速度限制在给定阈值内。尽管功能需求在学术研究中得到广泛关注,但驾驶性能需求的研究相对较少。本工业论文描述了我们在评估基于自动搜索的软件测试(SBST)框架时,针对功能与驾驶性能需求生成失效揭示测试用例的实践经验。该研究基于业界广泛使用的虚拟建模与仿真环境——VI-CarRealTime模拟器。我们通过迭代方式在Simulink中为四轮车辆设计巡航控制系统,共生成21个模型版本。针对每个版本,使用SBST框架搜索能揭示违规行为的失效测试用例。结果表明,SBST框架成功为66.7%的模型版本识别出失效揭示测试用例,平均耗时245.9秒、迭代3.8次。我们总结了经验教训,反思了结果的普适性,并讨论了如何改进当前实践水平。