32、IoT测试与数据分析:IV&V和SODA的应用探索

IoT测试与数据分析:IV&V和SODA的应用探索

1. IV&V工具与常见差异

在物联网(IoT)系统的开发和测试中,独立验证与确认(IV&V)起着至关重要的作用。IV&V工具存在不同的层级,并且在开发和测试过程中存在一些常见的差异,如下所示:
- 需求与控制逻辑之间的逻辑差异
- 浮点值的数值表示差异
- 需求到设计推导的差异
- 开发产品与测试产品之间的问题
- 错误的数据加载和初始化值
- 开发组和测试组使用工具的差异

2. IV&V的经验教训

经过多年的IV&V实践,总结出以下主要经验教训,这些对于大型、复杂且高度关键的IoT开发项目尤为重要,也可作为每个项目的强制审查清单:
1. 尽早参与开发周期 :IV&V团队应尽早参与软件开发周期。对于已有的项目,开发者应向测试团队提供系统设计的详细技术信息和文档。
2. 明确范围并达成共识 :所有相关方必须确定并同意IV&V的范围,管理范围应包括工作说明(SOW)、报告结构、标准交付和支持的接口要求以及最终可交付软件程序。
3. 设立独立预算 :最好由IV&V承包商控制一个独立预算,用于协商范围和可交付产品的变更,警惕范围蔓延,以免影响预算和进度。
4. 建立外部客户 :在软件开发组之外,应为IV&V工作建立一个客户。为了使IV&V工作影响软件设计,应将发现和建议报告给对软件开发组负有组织责任的感兴趣的第三方。
5. 创建数据交换列表 :开发组织和IV&V组织之间应创建一个记录在案的数据交换列表,以及控制文档和产品交换的格式。
6. 制定联合进度表 :为所有任务制定联合进度表,并对受进度影响的活动进行主动审查和通知,这是一项管理职能。
7. 积极规划任务 :对所有任务进行积极规划,包括审查进度、指标(趋势和预测)和交付物,并向管理层报告。
8. 建立信息交流论坛 :定期建立一个交流技术、成本、进度和其他信息的论坛,每周一次似乎效果最佳。
9. 开发需求可追溯性矩阵 :开发和IV&V团队应独立开发一个共享的需求可追溯性矩阵,以确保所有需求可测试、所有变更可跟踪以及任何需求的关闭。配置管理(CM)和软件配置管理(SCM)工具可提供帮助。
10. 实施完整的配置管理 :IV&V团队应实施所有交付产品的完整配置管理(CM和SCM),确保每个人都清楚测试内容,不允许出现“未知”或可疑的软件或硬件。
11. 关注软硬件接口验证 :随着项目的推进,测试的主要重点应是验证软件和硬件元素之间的接口和集成。兼容性问题难以发现,即使经过大量测试和IV&V仍可能存在。
12. 考虑复用软件的隐藏成本 :使用复用和遗留软件存在隐藏成本,通常需求文档和接口可能存在问题,增加使用的复杂性。
13. 合理估计测试成本和时间 :开发测试软件、流程和工具的成本和时间往往被低估,导致这些工作失败。此外,人员实际培训的成本也常被忽视。
14. 明确需求定义 :任何只说明要做什么或不明确、不完整的需求都会带来问题。对于关键或安全相关的代码,每行代码都应有相应的需求定义信息或客观评估标准。
15. 配备专业的SQA团队 :如果存在软件质量保证组(SQA),应配备软件开发工程方面的专家,因为他们需要对测试、工具、流程和IV&V工作的有效性做出决策。对于大型、复杂或高度关键的IoT项目,SQA应是强制性的。
16. 建立问题报告和跟踪数据库 :确保CM/SCM人员为所有项目用户和可能的利益相关者建立一个通用的问题报告(问题)和跟踪数据库,并制定适当的使用和访问程序。CM/SCM记录对项目管理非常有价值。允许CM/SCM根据需要定期召开变更委员会会议,以确保开发和IV&V的日常运营顺利进行,并在关闭跟踪数据库中的问题之前对任何配置变更进行充分评估和测试。

3. 额外的测试级别和行动

由于上述经验教训在整个生命周期中存在局限性,因此应考虑增加以下测试级别和行动:
- 安全漏洞测试 :进行专门的安全攻击测试,以发现历史代码中的安全漏洞。
- 系统性能测试 :进行额外的性能测试,包括长时间等待(秒级而非毫秒或微秒级)、负载测试、慢速网络和连接中断等情况。
- 数据评估 :在运营过程中评估记录数据的可行性和完整性。
- 系统可用性评估 :评估系统在新连接和扩展使用情况下的可用性。
- 耦合影响评估 :评估新逻辑、新硬件和系统之间的耦合影响。
- 现成软件监控 :持续监控现成软件的问题。

4. IV&V工具示例

以下是IV&V工具的标准采样:
| 活动 | 工具 | 功能 | 好处 |
| ---- | ---- | ---- | ---- |
| 验证 | 商业覆盖工具 | 测试测量 | 科学验证 |
| 验证 | 引擎实用程序 | 控制系统模拟 | 评估测试数据值 |
| 确认 | 硬件测试环境 | 执行软件系统 | 对软件进行现实评估 |

在验证过程中,团队测试代码与设计、设计与需求以及可执行配置与其源文件的合规性。而确认则测试需求、设计或代码是否对利益相关者“有效”,这需要人类专家来量化“有效”的含义。

IV&V团队使用大量计算机模拟进行科学验证,分析需求,这些模拟作为实际“黑盒”系统测试结果的参考。模拟可以是整体系统的,也可以是单个低级功能的,允许从微观到宏观层面评估系统。此外,团队还会开发一个包含硬件、软件和系统的综合测试环境,尽管创建这样的环境成本较高,但这是在现实环境中测试软件的最佳方式。

5. 何时考虑IoT测试独立性和IV&V环境

IV&V并非适用于每个IoT项目。当软件系统失败的风险较高时,全面、完全独立的IV&V是合理的。风险可能来自成本和质量因素,包括安全性、功能性、安全性和可靠性。IV&V还必须从客户和管理层的角度考虑。如果客户和管理层愿意积极参与软件开发,并且其他人可以提供“独立的外部视角”,那么不太严格的IV&V可能是可以接受的。IV&V确实可以发现错误,但如果发现错误的成本不能抵消IV&V的成本,那么其好处就值得怀疑。IV&V可用于IoT、工业物联网(IIoT)或高风险软件项目。

除了纯粹的全IV&V,还有其他获得IoT系统独立性和认证的方法:
1. 众包测试 :将IoT系统提供给“付费”的自由职业测试人员和测试团队,通过赏金系统支付报酬。
2. 内部IV&V团队 :在企业内部运行的IV&V团队。
3. 独立的Alpha和Beta测试人员 :人们出于“乐趣”或赏金进行测试。

不同的方法存在不同的成本问题和支付方式,但没有单一的正确答案。模型、混沌工程和基于模型的测试通常是IV&V测试的关键部分,独立实验室可能采用这些测试方法。

6. SODA模型概述

在IV&V、测试、测试环境等问题之后,自组织数据分析(SODA)为理解IoT数据提供了一种新的工具和分析方法,有助于工程和测试工作。SODA的概念并不神秘,它代表了一种数据处理和分析的方式,许多测试人员和工程师可能在无意识中已经在应用类似的方法。

SODA的核心思想是建立一个自组织的数据分析系统,由测试人员设置并在项目中使用。对于大型项目,可能需要聘请统计、AI或分析方面的专家来帮助设置SODA。推荐自组织的原因是数据分析和预测工作存在重复性,适合自动化处理。测试人员和管理人员关注的不是原始数据,而是数据中的趋势、模式、图形和可能的“答案”。随着现代AI系统的发展,它们可以承担更多的分析工作。

7. SODA的定义

在SODA模型中,分析和分析学有不同的定义:
- 分析 :使用数学、图形、模拟、统计和AI等方法,将原始数据收集和处理成人类更容易理解的形式。例如,将数十亿个数据点绘制成图形,以便观察历史趋势,还可以将数据输入其他数学、统计工具和AI中,以获得更多的理解。
- 分析学 :发现、解释和传达数据中有意义的模式。数字分析是一组业务和技术活动,用于定义、创建、收集、验证或转换数字数据为报告、研究等。分析学更注重“展望未来”,寻找诸如“下一个错误可能何时发生”或“应该测试哪些类型的错误以及在哪里寻找”等问题的答案。

SODA不仅仅是一个特定的工具系统,而是一种数据分析的理念。测试人员可以根据自己的需求调整活动、输入和输出。数据分析和分析学是管理层沟通的重要方式,SODA有助于提高测试质量和产品质量,受到管理层和利益相关者的青睐。

8. SODA的实施选项

从简单到高级,SODA的实施可以分为以下几个阶段:
1. 简单分析工具
- 饼图 :通过饼图可以确定分析的重点区域,例如需求故事中的问题区域。
- 思维导图 :思维导图包含分析数据点和关联,有助于确定新的测试用例。
- 电子表格 :使用电子表格进行故障分类分析,为测试规划提供数据支持。

以下是创建思维导图和电子表格分析所需的实际错误分类数据点:
- IV&V在一个项目上提交了超过1600份错误报告,约占项目发现的所有错误的60%,用于手动生成分类和分析。
- IV&V在测试产品上发现了30%的软件问题。
- 20%的IV&V定义的问题导致代码或需求变更,包括可能导致任务性能下降的错误。
- 一个错误可能导致整个系统损失数百万美元。
- 超过80%的IV&V发现的问题存在于文档中,虽然不影响代码,但有助于降低维护成本和改进项目流程。
- IV&V发现的逻辑错误包括软件配置管理问题、代码标准违规、错误的数据参数、逻辑故障、设计故障和影响设计和代码的错误需求,这些错误在剩余20%的错误报告中平均分布。
- 超过75%的总错误在初始开发期间被发现。然而,在一个项目经过多年的运营和维护后,在一次重大系统升级期间提交了30份错误报告,即使在运营阶段也出现了错误。

  1. 图形化展示 :使用图形来展示和组织复杂数据是成功的关键。图形能够使信息更易于理解,特别是对于管理层等视觉导向的用户。现代CM/SCM工具和Microsoft Excel电子表格可以提供原始数据的图形分析,并且数据可以在不同工具之间导出和共享,方便在企业工具中以各种形式展示。

  2. AI和神经网络 :虽然每个人都希望直接进入AI和神经网络(NN)的阶段,但实际经验表明,从“爬行到奔跑”的渐进过程更容易取得进展。目前,AI/NN系统在软件测试领域仍然昂贵且处于发展阶段,“爬行和行走”阶段的统计、数学和模拟模型仍然是重要的支持工具。然而,未来AI/NN有望为测试人员提供更大的帮助,例如类似于IBM Watson的软件测试AI系统可能会在市场上受到关注。

在实施SODA时,测试人员应牢记KISS原则(保持简单),避免陷入过多的分析和图表中。AI/NN和测试分析(SODA)将是未来许多测试人员的发展方向,对于勇于尝试的人来说,现在是培养相关技能和工具的好时机。

IoT测试与数据分析:IV&V和SODA的应用探索

9. SODA实施的关键要点

在实施SODA时,有几个关键要点需要注意:
- 数据处理能力 :现代系统的数据量可能非常庞大,如数十亿个数据点。测试人员需要借助合适的工具和方法来处理这些数据,避免被海量数据淹没。例如,使用自动化工具进行数据清洗、转换和建模,以提取有价值的信息。
- 专业知识和技能 :无论是统计分析、数学建模还是AI应用,都需要相应的专业知识和技能。测试人员可以通过学习和培训来提升自己的能力,也可以与专业人员合作,如聘请统计专家进行准确的统计分析。
- 图形化展示 :如前所述,图形是展示和组织复杂数据的有效方式。在创建图形时,要确保信息清晰、易于理解,能够直观地传达关键信息。同时,要根据不同的受众和目的选择合适的图形类型,如饼图、折线图、柱状图等。
- 持续改进 :SODA是一个不断发展和改进的过程。随着项目的推进和数据的积累,测试人员需要不断调整和优化SODA的实施策略,以适应新的需求和挑战。

10. SODA实施流程

为了更好地实施SODA,可以参考以下流程:

graph LR
    A[数据收集] --> B[数据清洗和预处理]
    B --> C[数据分析]
    C --> D[数据可视化]
    D --> E[结果评估和反馈]
    E --> F{是否需要调整}
    F -- 是 --> B
    F -- 否 --> G[决策和行动]
  1. 数据收集 :从各种来源收集与项目相关的数据,包括测试结果、系统日志、用户反馈等。
  2. 数据清洗和预处理 :对收集到的数据进行清洗,去除噪声和错误数据,并进行必要的转换和归一化处理,以提高数据质量。
  3. 数据分析 :运用统计分析、数学建模、AI等方法对预处理后的数据进行分析,挖掘数据中的模式、趋势和关系。
  4. 数据可视化 :将分析结果以图形、图表等形式展示出来,使信息更直观、易于理解。
  5. 结果评估和反馈 :对可视化结果进行评估,判断是否达到预期目标,并根据评估结果提供反馈。
  6. 调整和优化 :根据反馈结果,对数据处理、分析方法或可视化方式进行调整和优化,以提高SODA的效果。
  7. 决策和行动 :根据最终的分析结果做出决策,并采取相应的行动,如调整测试策略、改进产品设计等。
11. SODA在不同场景中的应用

SODA可以应用于多种场景,以下是一些常见的应用场景:
- 测试用例优化 :通过分析测试数据,识别出经常出现问题的区域和功能,从而优化测试用例,提高测试效率和覆盖率。
- 故障预测 :利用数据分析和机器学习算法,预测系统可能出现的故障,提前采取措施进行预防和修复,减少系统停机时间。
- 性能优化 :分析系统性能数据,找出性能瓶颈和问题所在,为系统优化提供依据,提高系统的响应速度和吞吐量。
- 用户体验改进 :收集用户反馈数据,分析用户行为和需求,发现用户体验方面的问题,从而改进产品设计,提高用户满意度。

12. 总结

在物联网系统的开发和测试中,IV&V和SODA都发挥着重要的作用。IV&V通过独立的验证和确认过程,确保软件系统的质量和可靠性,特别是在高风险的IoT项目中具有不可替代的价值。而SODA则为测试人员和工程师提供了一种有效的数据分析方法,帮助他们从海量的数据中提取有价值的信息,优化测试流程,提高产品质量。

虽然AI和神经网络在软件测试领域具有巨大的潜力,但目前仍处于发展阶段。在实施SODA时,应从简单的工具和方法入手,逐步积累经验和技能,根据项目的实际情况选择合适的实施策略。同时,要注重数据处理能力、专业知识和技能的培养,以及图形化展示和持续改进,以确保SODA的有效实施。

对于测试人员和软件工程师来说,掌握IV&V和SODA的相关知识和技能是未来发展的趋势。通过不断学习和实践,他们可以更好地应对物联网系统开发和测试中的挑战,为企业提供更优质的产品和服务。

总之,IV&V和SODA是物联网系统开发和测试中不可或缺的工具和方法,它们的合理应用将有助于提高系统的质量、可靠性和用户体验,推动物联网行业的健康发展。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值