物联网测试中的SODA与AI应用及职业发展指南
1. SODA在物联网测试中的应用
SODA(Self-Organizing Data Analytics)为物联网数据的测试分析和理解提供了有力支持。其一条路径是利用云端信息进行非实时分析,云挖掘是许多团队寻找项目流程改进思路的方向,但鉴于云端数据规模,需要一些SODA模型概念,如经典错误分类法和模式识别,以改进未来项目。
在实际应用中,经过一段时间和迭代,测试团队会给出分析测试预测,如测试进度、完成估计和产品交付适用性等。管理者会直接利用分析系统的信息来控制项目,随着产品成熟,管理者会依据测试和其他分析信息决定系统交付或产品发布。需要注意的是,在这个过程中,测试人员并非产品发布的“守门人”,但他们提供的分析系统信息和预测会辅助管理层做出决策。
SODA信息在物联网测试中有诸多用途:
- 向利益相关者推销测试工作,增加测试力度和合理性。
- 改进测试团队和工作。
- 识别测试、开发过程和产品中的问题。
- 改进项目产品和流程。
- 支持风险和机会分析。
- 判断软件交付时机。
- 向管理层提供测试状态和完成预测信息。
- 测量被测产品的质量。
- 进行未来项目/产品规划和成本/进度估算。
然而,在物联网测试中使用SODA时,存在数据和分析偏差的问题,即使使用AI也无法避免。这些偏差因素包括:
|偏差因素|具体表现|
| ---- | ---- |
|算法问题|工具、AI或软件中使用的逻辑存在缺陷|
|工具或方法错误|使用了错误的工具或方法|
|数据采样和偏差错误|涉及数据大小、来源、老化等方面|
|偏见|工程师有意误判分析中使用的数据来源|
|测量和分析错误|无意中使用或错误应用了错误的数据|
团队在使用SODA和AI时,必须意识到这些偏差因素,并对其信息进行偏差风险测试。
2. AI SODA的未来展望
SODA的下一个扩展将在测试实验室中引入AI,并结合来自现场的数据。AI SODA将延伸到边缘和雾计算领域,具有处理大量数据、实时处理和更好的用户反馈等优势。
有人曾使用神经网络(NN)进行AI数据分析,分析测试和代码复杂度指标。通过对项目中数千份错误报告进行训练,并与测试级别、技术和代码区域进行交叉关联,同时结合代码复杂度测量工具的数据。原本认为错误率会与代码复杂度相关,但实际结果却出乎意料,即注释更多、更好的模块错误更少。这表明AI SODA可能会得出意外的分析结果,测试人员需要运用批判性思维来对待这些结果。
AI在测试中有诸多积极作用:
- 分析数据模式,识别异常和威胁。
- 在安全测试中帮助测试人员攻击系统。
- 在安全攻击中保护测试隐私。
不过,AI也可能会让一些测试人员感到恐惧或拒绝,测试人员应保持开放的心态和合理的怀疑态度。目前,IEEE和ISO等组织正在制定AI标准,未来关于AI SODA的故事还将不断展开。
3. 物联网支持标准
物联网测试涉及多种支持标准,以下为你列举一些常见的接口、硬件、平台和协议标准:
-
接口标准
:
- Wi-Fi (802.11)
- 802.15.4: Zigbee, 6LoWPAN (RFC 6282)
- Bluetooth Smart (原低功耗蓝牙)
- Bluetooth
- Ethernet and PoE
-
硬件标准
:
- Raspberry Pi和Beaglebone
- Atheros AR9331: Arduino Yun, WeIO, Black Swift, Onion
- TI CC3200和CC3100
- ESP8266 (见Hackaday, Arduino IDE port, Nodemcu)
- Electric Imp
- Spark: Core, Photon, Electron
- Intel Edison
-
平台标准
:
- Electric Imp (Imp001, Imp002, Imp003)
- Spark (Core和Photon)
- Thingsee
- TinkerForge
- SmartThings
- WICED (Broadcom)
- Cosino
- littleBits
-
协议标准
:
- MQTT
- ZeroMQ
- Thread (6LoWPAN on 802.15.4)
- Protocol Buffers
- HTTP和WebSockets,常与JSON结合使用
- CoAP (RFC 7252)
这些标准为物联网测试提供了参考,但由于技术发展迅速,部分标准可能会发生变化。
4. 物联网测试职业发展
测试人员通常关注技能培养、学习、信息提供和按时完成工作,同时追求职业发展、合理薪酬和就业机会。然而,工作满意度也是一个重要方面。
测试人员应该在工作中找到乐趣,将工作视为挑战,并期待一个令人兴奋的职业。为了实现这一目标,可以制定职业规划,不断学习和实践新技能。例如,学习支持测试的语言、人工智能知识,运用神经网络进行数据分析,研究分类法和模式识别以改进软件测试,甚至可以撰写相关论文和出版书籍。
以下是一些提升物联网测试能力的建议:
- 培养艺术素养,技术并非一切,艺术领域可能会带来意外收获。
- 勇于学习新事物,承担一定风险。
- 学习不同领域的工程概念,如土木工程、医学、电子学、机械学、心理学、生物学等。
- 建立丰富的个人参考资料库。
- 尝试在不熟悉的领域构建技能。
- 了解物联网向元宇宙的发展趋势。
- 学习相关标准,进行产品改进和安全工程工作,如ISO/IEC/IEEE 12207、ISO/IEC/IEEE 15288等。
- 尝试创业。
- 适度承担风险和挑战。
- 制定近期和长期的职业规划。
- 持续提升技术技能。
- 锻炼身体素质,如滑雪、骑自行车、帆船运动和瑜伽等。
5. 物联网测试启动清单
物联网测试启动清单可以帮助测试人员系统地开展工作,以下是具体的操作步骤:
-
开始物联网测试
:
1. 进行纸质原型测试,在实施或设计之前,在纸上画出用户界面(UI)和架构,分析概念是否可行,听取测试人员的意见。
2. 测试竞争对手的应用程序,了解其优点,思考如何使自己的物联网产品更出色、独特。
3. 制定测试计划,在物联网设备进入开发阶段后,至少每周进行一次测试,检查所有有风险的功能,了解实际功能与预期的差异。
4. 按照相关要求进行测试规划,制定战略并创建STA(Software Test Architecture),以了解边界、风险和定制化需求。
5. 确保规划了合适的安全、攻击、游览、质量、技术和框架测试级别,并获得利益相关者的共识。
6. 应用相关的OWASP表格。
-
可用性测试
:
测试设备的基本线框,了解用户在当前设计下可能进行的不当操作,通过测试UI和导航,寻找高效的设计结构,减少用户操作次数,提高导航的简便性和安全性。
-
兼容性和集成测试
:
1. 对于需要集成测试的物联网设备,创建所有硬件、软件、通信和用户界面的检查表或矩阵。
2. 评估关键检查表项目。
3. 使用组合测试方法测试集成情况。
4. 测试触摸屏、输入和按钮功能,包括按照规格测试每个按钮和功能、进行按键压力测试、同时测试输入组合以及检查按钮大小是否符合行业和法律要求。
-
应用本地化问题
:
1. 确保物联网设备在多语言环境中没有编码问题、显示截断问题或因字符长度和语言变化导致的UI变化。
2. 进行社交应用集成测试,社交应用集成功能在很多设备中是必备的,但在嵌入式环境中可能存在安全风险。同时,思考在手机银行应用中是否应该具备与社交应用的登录或接口功能。
-
外部连接问题
:
1. 测试以下连接的连通性:Bluetooth、Wi-Fi、USB、NFC、2/3/4/5/6G网络、GPS功能等。
2. 检查物联网设备在不同连接之间的切换能力。
3. 进行网络中断和波动测试。
4. 使用所需的硬件和软件进行测试。
5. 检查连接失败时的错误提示信息。
-
传感器/执行器检查
:
1. 测试传感器记录的读数是否准确,可能需要特定的STA/环境要求来刺激和校准输入。
2. 测试执行器的输出是否准确,可能需要特定的STA/环境要求来采样和记录输出进行分析。
3. 如果有多个传感器和执行器,需要单独和组合进行测试。
-
中断测试
:
1. 测试物联网设备在通信、电池/电源状态、内存问题或其他中断通知时,是否能正常运行而不影响性能。
2. 识别中断级别和相应的操作,并进行测试。
-
操作测试
:
1. 测试物联网设备/系统在崩溃时的恢复能力,系统应能优雅地恢复或降级,这应在规格或用例故事中明确规定。
2. 测试设备在恢复后是否能检索备份数据,以及是否能识别错误输入数据。
3. 以正向和负向(失败)模式测试所有用户故事或用例。
4. 在低内存、低或降级电源、慢网络或不稳定传感器/执行器的情况下运行测试。
-
安装测试
:
1. 检查支持应用是否能在合理时间内完全安装或升级。
2. 检查物联网软件版本更新是否能顺利添加,并评估对用户的提示操作。
3. 检查安装过程是否遵循用户指南。
4. 测试卸载功能,确保卸载成功,无垃圾文件残留,并获得用户确认。
5. 检查必要的历史数据和信息(如设置)是否未被不当覆盖。
-
其他杂项
:
1. 测试用户指南/文档的准确性。
2. 确保规划和设计了回归测试,并在更新/升级时进行复查。
3. 检查物联网边缘 - 云 - 服务器 - 客户端关系的兼容性与性能。
通过遵循这些步骤,测试人员可以更全面、系统地开展物联网测试工作,提高测试效率和质量。
物联网测试中的SODA与AI应用及职业发展指南
6. 各项测试的关联与整体流程
各项测试并非孤立进行,而是相互关联、形成一个整体的流程。下面通过一个mermaid流程图来展示物联网测试的整体流程:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始物联网测试]):::startend --> B(纸质原型测试):::process
B --> C(测试竞争对手应用):::process
C --> D(制定测试计划):::process
D --> E(测试规划与STA创建):::process
E --> F{规划测试级别并获共识}:::decision
F -->|是| G(应用OWASP表格):::process
F -->|否| E
G --> H(可用性测试):::process
H --> I(兼容性和集成测试):::process
I --> J(应用本地化问题测试):::process
J --> K(外部连接问题测试):::process
K --> L(传感器/执行器检查):::process
L --> M(中断测试):::process
M --> N(操作测试):::process
N --> O(安装测试):::process
O --> P(其他杂项测试):::process
P --> Q([结束测试]):::startend
从这个流程图可以看出,物联网测试从最初的概念验证开始,逐步深入到各个方面的测试,每个阶段的结果都会影响到后续的测试工作。例如,在可用性测试中发现的问题可能会反馈到兼容性和集成测试中,促使对硬件或软件进行调整。
7. 不同测试阶段的重点与挑战
不同的测试阶段有各自的重点和挑战,以下是详细分析:
|测试阶段|重点|挑战|
| ---- | ---- | ---- |
|开始物联网测试|概念验证、了解竞争对手、制定合理计划|准确判断概念可行性、获取竞争对手全面信息、平衡测试频率与开发进度|
|可用性测试|优化用户体验、减少操作复杂性、提高安全性|理解不同用户的操作习惯、发现潜在的安全风险|
|兼容性和集成测试|确保设备在各种环境下正常工作、发现硬件和软件的兼容性问题|覆盖所有可能的硬件和软件组合、处理复杂的通信协议|
|应用本地化问题测试|解决多语言环境下的显示和功能问题、评估社交应用集成的安全性|处理不同语言的字符编码、平衡功能需求与安全风险|
|外部连接问题测试|保证设备在各种网络条件下稳定连接、测试网络切换和中断恢复能力|模拟各种真实的网络环境、检测网络波动对设备的影响|
|传感器/执行器检查|确保传感器和执行器的准确性和可靠性|需要专业的测试设备和环境、处理多个传感器和执行器的组合测试|
|中断测试|保证设备在中断情况下正常运行、识别和处理不同级别的中断|模拟各种中断场景、准确判断中断对设备性能的影响|
|操作测试|测试设备的恢复能力和容错能力、验证用户故事和用例|模拟各种异常情况、确保数据的完整性和准确性|
|安装测试|确保应用安装和升级的顺利进行、保护用户数据|处理不同的安装环境、避免数据丢失和损坏|
|其他杂项测试|保证文档的准确性、进行回归测试、检查系统关系的兼容性|及时更新文档、发现回归问题、优化系统关系|
8. 应对测试挑战的策略
针对不同测试阶段的挑战,可以采取以下策略:
-
开始物联网测试阶段
:
- 邀请多领域专家参与纸质原型测试,从不同角度评估概念可行性。
- 通过市场调研和用户反馈,全面了解竞争对手的优势和不足。
- 与开发团队密切沟通,根据项目进度灵活调整测试计划。
-
可用性测试阶段
:
- 进行用户调研和测试,收集不同用户的操作习惯和反馈。
- 采用安全审计工具,发现潜在的安全风险。
-
兼容性和集成测试阶段
:
- 建立全面的测试矩阵,覆盖所有可能的硬件和软件组合。
- 与硬件和软件供应商合作,解决兼容性问题。
-
应用本地化问题测试阶段
:
- 使用专业的本地化测试工具,处理不同语言的字符编码。
- 进行安全评估,权衡社交应用集成的功能需求和安全风险。
-
外部连接问题测试阶段
:
- 搭建模拟网络环境,包括不同的网络速度、稳定性和信号强度。
- 开发网络监控工具,实时检测网络波动对设备的影响。
-
传感器/执行器检查阶段
:
- 投资专业的测试设备和环境,确保传感器和执行器的准确性。
- 采用组合测试方法,高效处理多个传感器和执行器的测试。
-
中断测试阶段
:
- 编写模拟中断场景的脚本,覆盖各种可能的中断情况。
- 建立性能监测系统,准确判断中断对设备性能的影响。
-
操作测试阶段
:
- 设计全面的异常情况模拟方案,包括系统崩溃、数据丢失等。
- 采用数据备份和恢复机制,确保数据的完整性和准确性。
-
安装测试阶段
:
- 在不同的操作系统和设备上进行安装测试,确保兼容性。
- 开发数据保护机制,避免数据丢失和损坏。
-
其他杂项测试阶段
:
- 建立文档管理系统,及时更新文档内容。
- 采用自动化回归测试工具,提高测试效率。
9. 持续学习与职业成长的重要性
在物联网测试领域,技术不断发展,新的标准和方法不断涌现。因此,持续学习和职业成长至关重要。测试人员需要保持对新技术的敏感度,不断更新自己的知识和技能。
可以通过参加行业会议、培训课程、在线学习等方式,了解最新的技术趋势和测试方法。同时,积极参与开源项目和社区讨论,与同行交流经验和心得。
另外,将所学知识应用到实际工作中,不断总结经验教训,也是提升自己的重要途径。例如,在使用SODA和AI进行数据分析时,不断优化分析方法,提高分析结果的准确性和可靠性。
10. 总结与展望
物联网测试是一个复杂而又充满挑战的领域,涉及到多个方面的知识和技能。SODA和AI的应用为物联网测试带来了新的机遇和方法,但也带来了数据偏差等问题。通过合理运用SODA和AI,结合全面的测试清单和科学的测试流程,可以提高物联网测试的效率和质量。
同时,测试人员的职业发展也需要不断努力和规划。通过持续学习、实践和创新,测试人员可以在这个领域中取得更好的成绩,实现自己的职业目标。
未来,随着物联网技术的不断发展,测试的要求和挑战也会不断变化。我们需要密切关注技术发展趋势,不断调整测试策略和方法,以适应新的需求。相信在SODA、AI等技术的支持下,物联网测试将迎来更加美好的未来。
超级会员免费看
694

被折叠的 条评论
为什么被折叠?



