Embedded systems are ubiquitous and play critical roles in management systems for industry and transport. Software failures in these domains may lead to loss of production or even loss of life, so the software in these systems needs to be reliable. Software testing is a standard approach for quality assurance of embedded software, and many software development processes strive for test automation. Out of the many challenges for successful software test automation, this thesis addresses five: (i) understanding how updated software reaches a test environment, how testing is conducted in the test environment, and how test results reach the developers that updated the software in the first place; (ii) selecting which test cases to execute in a test suite given constraints on available time and test systems; (iii) given that the test cases are run on different configurations of connected devices, selecting which hardware to use for each test case to be executed; (iv) analyzing test cases that, when executed over time on evolving software, testware or hardware revisions, appear to randomly fail; and (v) making test results information actionable with test results exploration and visualization. The challenges are tackled in several ways. [Abstract truncated.]
翻译:嵌入式系统无处不在,在工业和运输管理系统中发挥着关键作用。这些领域的软件故障可能导致生产损失甚至生命丧失,因此这些系统中的软件需要可靠。软件测试是嵌入软件质量保证的标准方法,许多软件开发过程都力求测试自动化。在成功软件测试自动化的诸多挑战中,本论文涉及五个问题:(一) 了解更新软件如何到达测试环境,测试环境如何进行,测试结果如何到达首先更新软件的开发者手中;(二) 鉴于现有时间和测试系统的限制,选择在测试套件中执行的测试案例;(三) 鉴于测试案例是在不同的连接装置配置下运行的,选择每个测试案例使用何种硬件;(四) 分析测试案例,这些测试案例在不断演变的软件、测试软件或硬件修改过程中执行时似乎随机失灵;以及(五) 使测试结果信息在测试结果的探索和可视化中可操作;(三) 挑战以几种方式得到解决。 [摘要转。]