EBSE专题连载共分为“五个”篇章。此文为该连载系列的“第三”篇章,在之前的“篇章(二)”中已经分析了EBSE步骤一:关于优势和挑战的案例研究。在本篇章(三)中,我们将结合具体研究实践,详细阐述“EBSE步骤二,通过系统调研确定改进方案”等内容。
汽车EBSE测试流程分析(一):汽车软件测试的特征和问题https://blog.csdn.net/NewCarRen/article/details/130137367?spm=1001.2014.3001.5502
汽车EBSE测试流程分析(二):关于优势和挑战的案例分析https://blog.csdn.net/NewCarRen/article/details/131374011?spm=1001.2014.3001.5502
5.EBSE 步骤二:通过系统调研确定改进方案
本节描述了我们在系统文献综述和价值流映射中,改进测试过程的方法的目的和设计。这部分的研究问题是RQ3:文献中基于实践经验对汽车测试过程提出了哪些改进建议?
在专题连载篇章(二)的第4节中,我们确定了行业中与软件测试相关的挑战。在本节中,我们介绍EBSE步骤二。我们执行特定领域的系统文献审查以研究最新技术水平。其次,我们根据审查结果创建解决方案提案以应对已确定的挑战。这样做是源于基于证据的软件工程精神:在创建诊断和解决方案建议时需要参考证据库。
5.1.系统文献综述(SLR)
我们的SLR的目的是确定汽车软件领域的测试相关问题,以及已在行业中提出和应用的解决方案。我们的SLR设计包括以下几个步骤。我们的SLR基于研究人员提供的指南,但我们没有排除基于质量的研究,因为我们的目标是确定所有基于行业经验的潜在解决方案,而不是因为缺乏报告的流程等放弃它们。
我们调研文献的步骤是:
• 定义审查的研究问题
• 论文识别
• 研究选择
• 解决方案和识别出来的挑战的映射
5.1.1. 论文识别
在这一步中,我们制定了搜索词,以便它们能够识别研究论文。搜索词是在数字图书馆中的几次测试搜索中详细验证的。为此,我们使用了五个不同的搜索字符串(见表6)。前两个字符串标识有关汽车领域测试的文章,以及支持汽车软件开发的基于模型的工具,以涵盖与测试相关的挑战领域的解决方案。确定的需求问题是非常普遍的需求问题,但对测试有影响。因此,这些也包含在单独的搜索字符串中。鉴于一些项目以敏捷的工作方式进行,这被认为是一种优势,我们还寻找了与汽车敏捷相关的研究。
表6:搜索字符串
搜索字符串应用于IEEEXplore、ACM数字图书馆、Springerlink、ScienceDirect和Wiley Interscience数据库中的标题和摘要。我们没有在全文上应用搜索字符串,因为发现这种方法通常会产生太多不相关的结果。
5.1.2.研究选择
为了选择与我们的目标相关的论文,我们制定了纳入/排除标准。首先,我们排除了2000年之前发表的非英文论文(鉴于近年来汽车包含大量软件,挑战与最近的研究更相关)以及没有全文的文章。由于我们的目标是寻找同行评审文献中提供的问题和解决方案,因此我们排除了编辑注释、评论等。由于我们打算寻找在行业中应用的解决方案,因此我们收录了一些解决方案在产业,特别是汽车软件领域进行了实证评估的论文。纳入研究的一个主要标准是他们提出了与软件测试相关的问题的解决方案。软件测试是指跨越整个软件开发生命周期的任何V&V活动(需求验证、测试用例生成、单元或回归测试等)。为了确保满足这些标准,根据清单过滤了论文。
• 论文是英文的吗?
• 论文有全文吗?
• 论文是在2000年或之后发表的吗?
• 研究汽车软件领域的背景是什么?
• 论文是否讨论了与任何软件V&V相关的任何问题和解决方案或工具?
• 论文是否包含行业背景下的实证评估?
搜索SLR 1和SLR 2得到221篇关于SLR 1的论文和66篇关于SLR 2的论文。表7显示了跨数据库的主要研究分布概览,还显示了最终选择的研究数量。
搜索SLR 3、SLR 3和SLR 4分别得到301、12和107篇论文。表8给出了概述。
5.1.3.基于系统调研的解决方案
我们将SLR中确定的挑战和提供的解决方案映射到访谈中发现的挑战。此外,我们还陈述了在本研究中发现挑战的其他参考资料。这些内容如表9所示。根据我们的SLR,我们提出了七个解决方案建议。需要指出的是,通常不可能针对每个问题都有一个单一的解决方案。这完全取决于项目的类型和团队采用的怎样的策略(例如资源管理、预算管理)实施这些解决方案。
与解决方案建议相关的参考数量取决于信息的可用性。当我们创建类别时,我们的目标是不要有一个需要小/简单解决方案的类别和另一个涵盖大面积解决方案的分类。尽管测试管理(SP7)只有一个参考,但我们认为研究的重点是测试管理与测试自动化和工具一样大的范围,看看它的复杂性和解决它的难度。总的来说,问题的范围是决定类别颗粒度的基础。
SP1:需求管理 (RM):总的来说,我们发现良好的需求是汽车软件开发中良好测试的先决条件。可以通过更好的需求管理来解决与需求相关的问题,例如本专题连载篇章(二)的需求不明确 (C03_1)、需求波动性(C03_2)、需求可追溯性(C03_3)。此外,我们可以理解,质量属性规范问题(C08_2)以及客户沟通问题(C06_1和C06_3) 可以通过需求工程领域的想法得到改进。我们的特定领域SLR能够找到许多解决这些问题的方法(见表9)。例如,来自戴姆勒-克莱斯勒1的Grimm建议尽早模拟需求并从规范中导出测试用例,并建议在整个软件开发生命周期中跟踪和管理需求;研究人员提出并评估了一种方法,其中基于文本的用例是在来自不同利益相关者的访谈中引出的,以引出和指定用户对汽车软件的需求;研究人员提出了软件、功能、系统和车辆的抽象级别。每个抽象级别的每个要求依次链接到系统目标和场景。
表7:选定研究的数量(SLR 1、SLR 2)
表8:选定研究的数量(SLR 3、SLR 4、SLR 5)
SP2:能力管理(CM):确定能力管理是为了解决一些挑战。我们根据缺乏专职测试人员(C04_1)、缺乏测试人员(C04_2)、知识转移(C05_1)和缺乏基本测试知识(C05_2)等问题确定了能力管理需求。研究人员仅找到了一个特定领域的SLR来源,他们提出了让专家参加与项目中经验不足的测试人员共享知识和专业知识的方法,例如,建议举办研讨会,测试团队与专家交流测试信息,将工具作为非正式培训的一种方式。
SP3:质量保证与标准:质量保证和标准也可以帮助解决一些问题。研究人员为汽车软件工程提出了瀑布式流程,其中通过对设计、实施和测试阶段产生的人工制品进行同行评审来执行质量保证。为此,戴姆勒-克莱斯勒为其汽车项目开发了自己的软件质量管理手册,有助于解决C01_1/C01_2问题,这些问题与缺乏统一的测试过程定义和测试规划有关。ISO 26262(道路车辆功能安全)标准定义了需求规范、架构设计、实施和测试、系统集成和验证的人工制品和活动。该标准还规定了需求验证的正式方法的使用、设计和控制流分析的符号、测试用例生成和在环验证机制的使用,例如硬件在环、软件在环(与测试设备上的挑战C07_3有关)。
表 9:挑战领域与解决方案参考的映射(C01-C010参见本专题连载篇章(二))
SP4:测试自动化和SP5:测试工具部署:自动化显然是行业中最重要的问题之一,并且有大量研究描述了实践的状态(C07_1)。如表9所示,已经在汽车领域提出并使用了许多测试自动化解决方案。例如,针对具有高安全性和可靠性要求的系统(C08_1)提出了基于模型的黑盒测试;许多作品提出了进化测试作为自动化功能测试挑战的解决方案,并已在戴姆勒-克莱斯勒使用名为AUSTIN的工具成功实施(C07_2);此外,还提出了其他类型的测试和质量保证工具,例如分类树编辑器CTE,用于功能测试用例设计的系统方法;软件设计过程的半自动安全性和可靠性分析,已在沃尔沃涉及52项主动安全功能的案例研究中得到验证;以及用于资源使用和时序分析的工具(C08_1)。总的来说,可以得出结论,当谈到测试自动化或工具时,不乏针对汽车领域的建议。
SP6:敏捷合并:敏捷开发方法近几年在业界流行,也可以帮助解决案例公司遇到的很多问题。根据我们的访谈,我们确定了案例组织中使用的软件开发过程需要更改,以应对需求更改(C02_1、C03_1、C02),在这里,敏捷过程是一种自然的适合,因为它们提供了可以更改或澄清需求的定期沟通。敏捷还强调协作和沟通,这可以被视为解决所发现的知识转移和交互问题(C05_1、C06_1、C06_2、C06_3)。最后,一些敏捷方法强调持续和自动化测试,这可能有助于解决所遇到的许多测试问题(C01_1、C01_2、C09_1和C09_2)。尽管敏捷在理论上可以与许多问题联系在一起,但我们的特定领域SLR无法找到许多关于敏捷的学术出版物。戴姆勒-克莱斯勒公司已经实施了敏捷开发,据观察,敏捷提供了灵活性、高速开发和高质量。有研究人员报告了在嵌入式产品上使用极限编程(XP)的经验,他们认为TDD和单元测试自动化是成功的关键因素。
SP7:测试管理:从上面确定的解决方案建议中可以发现,大多数活动都与测试及其工件的组织有关。从我们的采访中也可以明显看出,案例研究中确定的大多数挑战或多或少与测试活动的管理有关。没有确定的研究必须集中在与汽车领域相关的测试管理活动上。然而,在文献中很少有文章描述测试管理必须集中精力进行的活动,以改进适合该研究背景的测试。因此制定此解决方案提案以协调上述提出的解决方案。在我们的研究中观察到的测试管理活动可以包含以下活动。
• 测试过程管理:管理测试过程中的各种活动,例如测试计划、测试分析、测试构建和测试执行。当引入敏捷实践时,此活动也适用。
• 测试工件和资产组织:重用和维护测试工件,如测试用例、测试版本、测试工具、测试环境、测试结果和测试文档。此活动也可以称为测试配置管理,可以管理测试活动整个生命周期中的更改。
• 根据测试进行需求管理:负责分析和确定需求变更,以便合理调整测试进度和测试策略,从而改进测试用例以满足新的需求。
• 能力管理:负责分配具有执行特定测试活动所需技能和知识的测试人员。
• 缺陷管理:负责及早发现需要有效管理的缺陷,并在各个阶段由不同的人一起工作提供支持。
更多内容,请关注“汽车EBSE测试流程分析(四):步骤三,反思及基于证据的问题解决”,关注牛喀网,学习更多汽车科技。有兴趣的朋友,可以添加牛小喀微信:NewCarRen,了解更多详情