18
社区成员
发帖
与我相关
我的任务
分享为什么基于服务的测试对IOT的成功至关重要
一旦采用了以服务为中心的方法,设计、实现和测试也随之进行是有意义的。意识到服务提供商业价值后,确保设备满足这方面的要求变得至关重要。显然,在单元、子系统和系统级别测试功能操作仍然很重要,但是扩大测试范围会带来立竿见影的好处。
扩大测试范围意味着,我们不再从满足单个设备要求的角度来观察系统质量,而是将范围扩大到考虑所提供服务的质量。在暖通空调示例中,一个新的温度传感器可能更轻、成本更低、电池寿命长,并且具有出色的无线覆盖范围。但是,它与整个楼栋的控制系统配合得如何,与所有新功能一样重要。
在服务层面的测试可以确保非功能性要求是满足的。例如,性能和可靠性很难在设备级别或在软件单元测试期间进行评估。基于服务的测试可以模拟设备的运行环境,来提供真实的负载条件。在HVAC示例中,可以用不同的请求速率测试新的温度传感器,来查看它是否满足性能要求。
针对物联网系统的网络攻击都是来源于网络本身的,大多数情况下都是通过攻击暴露的API。基于服务的测试可以通过模糊(随机和错误的数据输入)或拒绝服务攻击,为健壮的安全测试创建模拟环境。在HVAC示例中,一个新的温度传感器可能按照预期要求正常工作,但在过载时会崩溃。攻击者可能会利用这一点使系统过载并导致中断。所以说,测试不能只停留在小粒度,而是要“大小并重”,基于服务的测试可以很好的保证物联网产品经受市场考验。
IOT-测试自动化拯救世界
随着物联网实施规模的扩大,软件开发流程的自动化变得至关重要。随着连接性和规模的增加,安全性和非功能性需求变得更加重要。基于服务的自动化测试在集成和系统测试阶段变得至关重要,同时还支持安全性、稳定性和性能测试。
让我们看看Parasoft在测试自动化方面的深度和广度,如图1所示,因为它适用于SDLC的每个阶段。关键是每个解决方案如何与其他解决方案互补,以及如何随着产品的增长而扩展。静态和运行时分析是单元测试的补充。在集成期间,单元测试进展到API和服务测试工具,然后进展到服务虚拟化。

图1:测试自动化解决方案,及它们在软件开发生命周期中的引入
大多数开发人员熟悉测试自动化的某些方面;但是,许多人没有从服务或基于服务的测试和虚拟化的角度来考虑问题。随着范式从“事物”转移到“服务”,基于服务的测试的好处变得更加明显。
IOT-通过自动化降低风险和成本
随着产品从开发过程发展到集成,测试变得更加复杂和昂贵。这也是发现许多关键bug的阶段,包括在单元级别无法检测到的安全性和性能问题。要把测试“做好”,不仅要考虑到质量、速度、成本,还有其他很多因素,这是企业都面临的难题。
最好的解决方案是自动化。自动化提供了一种提高测试生产力、可重复性和系统测试范围的方法。基于服务的自动化测试方法对于新开发的物联网设备的成功至关重要。
好处包括以下几点:
• 提高测试效率:自动化可以帮助生成基于服务的测试,以及可重复和可扩展的测试负载。运行时分析工具与实时测试一起运行,以检测和跟踪错误。与手工测试相比,缺陷更容易被发现和修复。一旦修复完成,自动化提供了简单的回归测试。支持将重复测试作为连续测试、敏捷或迭代开发过程的一部分,来大大提高我们的效率。
• 消除硬件和受限资源瓶颈: 测试流程中最大的问题之一就是太过组件之间的依赖太强了。这些可能是网络上的其他设备,或者是物联网网络中的更高级功能。模拟这些依赖关系消除了测试瓶颈,同时使整个虚拟实验室在每个测试人员和开发人员的桌面上都可用。
• 适应当前和未来的需求:随着系统集成的进展,测试的范围扩大到包括越来越多的依赖组件。被测设备预计将在高度复杂的环境中运行,可扩展性是物联网系统的关键。在设备的生命周期环境中,复杂性会增加,自动化测试必须与产品一起扩展。
• 实际可行的性能和安全性测试:开发团队在集成过程中会尽力测试性能和安全性,但是如果没有自动化,在实验室中设置真实的场景通常会非常耗时和昂贵。面向服务的方法为指定和验证性能以及测试安全性提供了一个框架。
• 真实世界的测试环境:开发人员需要快速模拟大量环境,使他们能够测试预期和意外的功能场景。基于服务的测试使团队能够模拟出现故障的服务,确保他们的软件正确运行。