背景:
基于证据的软件工程(EBSE:Evidence Based Software Engineering)提供了一种基于严格审查方法解决实际问题的过程。重点是通过系统性的评审映射和汇总证据。
目标:通过在项目案例中使用EBSE流程,扩展现有的基于证据的软件工程工作,从而帮助组织改进其测试流程。并使用基于证据的流程,来分析实际汽车测试流程的经验,为汽车软件测试过程的挑战提供相关解决方案。
方法:在本专题连载中,我们使用扩展的EBSE过程对汽车软件测试过程进行了深入调查,包括案例研究(了解实际问题以定义研究范围)、系统文献综述(通过系统文献确定解决方案)和价值流图(根据当前情况和确定的改进建议制定改进的汽车测试流程)。随后是对所用EBSE流程的回顾。
结果:在EBSE过程的第一步中,我们确定了26个独立挑战中的10个。然后对26个挑战中的15个,针对特定领域的系统文献评审确定了解决方案。基于挑战和解决方案的输入,我们创建了当前和未来流程的价值流图。
结论:总的来说,我们发现本专题连载中提出的基于证据的测试过程,有助于研究成果向产业的技术转移,但同时也面临一些挑战(例如,确定系统评审的范围以更多地关注具体的行业问题,以及了解实施EBSE的策略与努力和证据质量有关)。
EBSE专题连载共分为“五个”篇章。此文为该连载系列的“第一”篇章,阐述了汽车软件工程的特点,并具体分析了使用混合方法设计的分阶段基于证据的测试过程以及每个步骤中提出的研究问题。
基于证据的软件工程包括以下步骤:1) 确定对信息(证据)的需求并提出问题,2) 追踪最佳证据来回答问题并批判性地评价证据,3) 批判性地反思所提供的证据,这些证据应该有助于解决问题和背景。总的来说,目的是支持在工作中遇到问题的从业者,就如何依靠证据解决问题做出良好的决定。
在软件工程中,两种识别和聚合证据的方法(系统图和系统评审)受到了广泛关注,这在大量系统评审和出版的涵盖各个领域的图中可以看出。这包括非常具体和范围广泛的问题(例如,公司内部与跨公司成本估计)到非常一般的问题(如我们对软件生产力测量或配对编程的了解)。到目前为止,还没有人使用基于证据的测试过程来解决工业案例中提出的具体问题,然后尝试通过基于证据的测试过程为该具体问题/案例提供解决方案。我们通过使用基于证据的测试过程来分析汽车软件测试过程,扩展了基于证据的软件工程的现有工作。
本专题连载的第一个贡献是在工业案例中展示基于证据的测试过程的使用,反映了使用该流程对公司的改进。该过程是一个分阶段的过程,后续阶段使用先前阶段的输入,从而提供从实际挑战到改进建议的可追溯的整体图景。步骤是:确定需要解决的信息/问题(通过案例研究);确定解决方案并对其进行批判性评估(通过系统的文献综述);批判性地反思与问题有关的解决方案,并将其映射以解决问题(通过价值流映射);对EBSE过程的反思。
第二个贡献是深入了解汽车软件测试过程的现状(优势和劣势),并根据文献中提供的证据定义目标过程。换句话说,它展示了基于文献证据的改进的汽车软件测试过程的样子。有必要更好地理解和解决与汽车领域软件测试相关的挑战,并确定汽车公司可以使用哪些解决方案来应对这些挑战,由于汽车软件工程的特定领域特征,这一点尤为重要。
本专题连载的其余部分结构如下:第2节介绍了相关工作,阐述了汽车软件工程的特点。第3节介绍了使用混合方法设计的分阶段基于证据的测试过程,以及每个步骤中提出的研究问题。第4至7节介绍了本研究中提出的EBSE过程的不同阶段及其结果。第8节介绍了有效性威胁。此后,第9节讨论结果,然后是第10节的结论。
本章阐述汽车软件工程领域软件测试解决方案的信息和挑战。
特征1-异构子系统:许多不同类型的系统(例如多媒体、远程信息处理、人机界面、车身/舒适软件、安全电子软件、动力传动系和底盘控制软件以及基础设施软件)是当今制造的汽车的一部分。它们高度异质,因此没有标准,而是采用非常不同的方法、过程和工具。
特征2-组织单位划分明确:从历史上看,汽车行业的特点是垂直组织的单位负责汽车的不同配件。然后组装起来。鉴于软件更加复杂,需要实现系统之间的通信,集成成为一个挑战。一个普遍的(但在汽车系统中被放大的)挑战是,鉴于缺乏完善的标准,供应商可以自由地实现他们的解决方案。因此,非常需要在许多不同的利益相关者之间进行沟通。鉴于涉及的利益相关者数量众多,新需求的来源也很多,这导致需求波动。
特征3-软件分布:以前不相关的机械功能,现在由于软件的引入而相关(例如,驾驶任务与舒适性和信息娱乐交互)。分发要求不同的功能单元通过中间件/总线进行交互。此外,汽车中嵌入了多个实时和操作系统。这增加了复杂性,并可能导致无意或有意的特征交互,从而使质量保证更加困难。
特征4-高度可配置的系统:汽车软件是高度可配置的。有人统计一辆汽车有80多个电子配件,这必须反映在软件中,他们还报告了具有3488种不同组件实现的组件。此外,配置随时间变化并具有不同的生命周期。硬件配置可能比电子单元及其各自的软件实现,具有更长的生命周期。这导致汽车中存在许多不同版本的软件,从而导致兼容性问题。
特征5-成本压力和对基于单元的成本模型的关注:汽车领域的特点是成本压力,并且非常关注基于单元的成本模型。优化单元成本(例如,通过针对特定处理器或受其容量限制的内存定制软件)会在以后导致问题,例如,在移植或扩展/维护该软件时。
已经发现,从行业收集的关于汽车领域如何执行测试过程的证据很少,并且没有评估这方面的挑战。此外,测试过程、方法、工具和技术与测试管理和版本管理之间的交互是不为人知的。需要在实时约束下尽早地在多个集成级别上进行测试,这对正在使用的测试过程和程序提出了很高的要求。研究人员确定了量化汽车环境中测试活动的质量保证的必要性。有人对如何在汽车环境中执行与发布过程相关的系统测试进行了详细研究,并确定了这方面的几个挑战。此外,他们观察到需要对具有改进潜力的区域进行详细辨别和优先排序。但是,还没有人从汽车软件环境中的过程改进这一角度,深入关注整个测试过程中的优势和挑战。
因此,需要深入了解该领域的挑战,并探索哪些解决方案可用于应对这些挑战,并将这些解决方案映射到软件测试过程。
在基于证据的软件工程(EBSE)中,应根据证据选择实际问题的“最佳”解决方案。EBSE包括以下步骤:1) 确定对信息(证据)的需求并提出问题,2)追踪“最佳”证据来回答问题,并批判性地评价证据,3)批判性地反思所提供的关于证据应该有助于解决的问题和背景的证据。最后(第4步),应严格评估基于证据的测试过程(第1-3步)。
在以前的工作中,EBSE的步骤是孤立进行的,例如调查挑战和问题的案例研究,进行系统评审以回答问题,并对解决方案进行评估等。
在本专题连载中,我们使用多阶段EBSE过程,其中后续阶段建立在先前阶段的基础上(见图1)。此外,为了系统地缩小Step 1(确定对信息(证据)的需求并提出问题)和Step 2(追踪“最佳”证据来回答问题,并批判性地评估证据)的结果之间的差距。在基于证据的测试过程中,我们在Step 3中使用了价值流分析(批判性地反思所提供的关于证据应该有助于解决的问题和背景的证据)。
图1:分阶段EBSE过程
总体目标是在汽车软件工程的背景下改进软件测试过程。目标如下:
EBSE Step 1:首先,我们需要深入了解测试过程的挑战和优势,以解决正确的问题。案例研究适合深入了解现实世界的情况和过程。案例研究中提出的研究问题如下:
• RQ1:哪些测试实践可以被视为汽车领域的优势?通过这个问题提供了在测试过程中充当优势的活动清单。这是从访谈获得的定性数据中提取的。
• RQ2:在测试汽车系统时发现的挑战/瓶颈是什么?收集了在测试过程中作为初始质量障碍的挑战或表现不佳的实践清单,来回答这个问题。
EBSE Step 2:在下一步中,我们通过特定领域的系统审查确定了有助于解决与汽车软件测试相关的挑战(EBSE Step 1)的解决方案。我们出于多种原因进行了特定领域的系统审查。首先,汽车领域具有与其他领域不同的特定特征。因此,领域上下文中解决方案的发现更有可能是可转移的。其次,鉴于对整个测试过程进行了研究,评审的范围将无法管理,我们将无法为解决方案提供及时的输入。EBSE Step2的结果可以看作是解决方案的清单,在此基础上可以提出改进建议。来自EBSE Step 1的与强度相关的结果添加到该清单中。
• RQ3:基于实践经验建议对汽车测试过程进行哪些改进?
EBSE Step3:根据优势和挑战的详细定义,以及我们使用价值流分析的解决方案。选择价值流分析作为分析方法的原因如下。首先,价值流图区分当前状态图,其中分析当前情况的价值(什么运作良好并为客户增加价值)和浪费(对客户价值没有直接或间接贡献的东西)和未来状态图(基于改进的过程的期望映射)。因此,当前状态图使用案例研究作为输入,而未来状态图使用案例研究和系统审查来绘制所需的过程,代表向从业者提供如何进行测试过程的基于证据的建议。其次,价值流图起源于汽车领域,这使得它在所研究的环境中的使用变得容易。然后回答以下问题:
• RQ4:考虑到EBSE Step 1中确定的流程活动、优势和劣势,流程中的价值和浪费是什么?
• RQ5:基于EBSE Step 2中确定的解决方案,当前价值流图所代表的流程应该如何改进?
EBSE Step 4:在最后一步中,我们反思基于证据的测试过程在改进软件工程当前实践中的使用。
• RQ6:使用基于EBSE过程的混合方法,哪些方面运作良好?如何改进该过程?
更多内容,请关注“汽车EBSE测试流程分析(二):Step 1关于优势和挑战的案例研究”,关注牛喀网,学习更多汽车科技。有兴趣的朋友,可以添加牛小喀微信:NewCarRen,加入专家社群参与讨论。
文末福利!
软件静态和动态代码测试工具免费试用申请,添加牛小喀,回复"软件测试"