25、软件测试与移动数据通信故障检测技术解析

软件测试与移动数据通信故障检测技术解析

1. 软件测试相关技术

在软件测试领域,有多种基于不同理论和工具的方法。UPPAAL 是一种用于生成测试用例的工具,但它要求确定性规范,这限制了其适用用例的范围。还有基于符号化定时自动机(STA)的方法,它结合了符号转换系统(STS)和定时自动机(TA)的定时处理能力,允许使用属性值作为定时约束的边界。基于 STA 还描述了测试一致性关系 stioco,它是 tioco 的符号扩展。不过,目前 STA 不包含组合的形式化描述,并且忽略了不可观察事件。

Spec Explorer 可以使用 Spec# 作为规范语言,通过交替模拟来定义被测单元(IUT)与模型之间的一致性。它最近得到扩展,可以处理用于测试和程序切片的 UML 序列图,还支持类似的模型组合,并允许基于模型组合生成测试序列。但与其他方法相比,它无法对定时行为进行建模,不过由于它不进行完整的符号状态空间探索,所以支持更广泛的数据类型,而有些方法则局限于整数和布尔值。

2. 扩展符号转换系统(ESTS)

介绍了一种基于已有 STS 的扩展符号转换系统(ESTS)。该方法通过引入延迟和完成转换来扩展框架,并为其提供了形式化语义。在 ESTS 之上定义了一种通信方案,明确了组合行为。与之前的方法不同,这里使用交替模拟作为测试关系,而不是 ioco,通过区分内部和外部通信,实现了环境可观察或可控信号与内部使用信号的清晰分离。

使用这个符号框架进行随机测试用例生成,既可以实时进行,也可以离线进行。引入延迟转换和转换执行时间使得能够对被测系统(SUT)进行定时检查,例如验证包含时间戳的跟踪文件。ESTS 包含与 UML 状态机类似的元素,因此可以直接进行模型转换,可作为 UML 状态机语义的形式化表示,用于测试用例生成。

3. 移动数据通信系统概述

移动运营商为用户提供多种移动数据通信服务,如电子邮件、网页浏览和公司专有服务等。移动数据通信系统由多个组件组成:
- 应用程序 :运行在移动终端和应用服务器上,为用户提供服务,服务由两者上的应用程序组合提供。
- 移动终端 :由移动运营商的基站和无线接入网络容纳。
- 会话管理节点 :为服务提供授权和计费功能,移动终端发送会话创建请求消息并获得授权后,才能向应用服务器发送数据请求。
- 应用服务器 :由移动运营商或第三方应用提供商运营,位于核心网络中。
- 异常检测工具 :基于流量监控检测异常,由开发者开发。

用户获取服务分为两个步骤:
- 会话创建步骤 :移动终端向会话管理节点发送会话创建请求消息,运营商验证消息后授权用户,会话管理节点创建会话,并可根据会话对用户数据进行计费,请求消息包含移动终端和请求服务的标识信息。
- 数据通信步骤 :会话创建后,移动终端上的应用程序向应用服务器发送数据请求消息,服务器返回数据响应消息,通信为请求 - 响应式,如网页浏览服务中的 HTTP Get 请求和响应消息。

4. 异常检测方法
4.1 异常检测原理

异常是系统某些组件的异常行为,通常由故障引起。为了识别故障,先总结了系统中各组件可能出现的故障,这些故障分为会话创建步骤和数据通信步骤两类:
|步骤|组件|可能的故障|
| ---- | ---- | ---- |
|(A) 会话创建步骤|移动终端|硬件故障、协议软件程序错误|
|(A) 会话创建步骤|会话管理节点|硬件故障、节点软件程序错误、过载|
|(A) 会话创建步骤|无线接入网络|网络拥塞、网络设备(如以太网交换机、路由器)故障、链路故障|
|(B) 数据通信步骤|移动终端|应用程序软件错误|
|(B) 数据通信步骤|应用服务器|硬件故障、应用程序软件错误、过载|

通常在互联网中,消息(数据包)数量的突然变化被定义为异常。为了确定哪个组件出现故障,需要监控所有组件发送的消息,但这种方法成本过高,不适合商业应用。因此,使用尽可能少的工具,在连接会话管理节点的链路上设置少量异常检测工具,该工具捕获会话创建请求消息。会话创建步骤的故障容易检测,而数据通信步骤中由数据请求失败引起的异常检测是关键问题。

基于观察到的现象:当移动数据通信服务未成功完成时,用户(移动终端)会重新连接到应用服务器,即重新发送会话创建请求消息。因此,将重新发送会话创建请求消息的移动终端定义为重新连接,将重新连接的突然增加(变化)定义为异常。

graph LR
    A[移动数据通信服务开始] --> B{服务是否成功完成}
    B -- 否 --> C[移动终端重新发送会话创建请求消息]
    C --> D[异常检测工具捕获请求消息]
    D --> E{重新连接是否突然增加}
    E -- 是 --> F[检测到异常]
    B -- 是 --> G[服务正常结束]
4.2 异常检测工具及应用

开发了一种异常检测工具,用于检测用户行为的突然变化。该工具监控网络上的服务请求消息,在每个采样周期(如 180 秒)计算重新连接到服务器的用户数量。当当前采样周期的重新连接终端比率(重新连接到服务器的终端与所有终端的比率)与上一周期相比突然变化时,检测到异常。

将该工具应用于商业移动数据通信系统,结果表明它可以检测到导致重新连接终端比率突然增加的故障,例如服务器和网络设备等同时处理多个会话的组件停止工作。但如果只有一小部分用户重新连接,工具可能会错过故障,软件故障往往属于这种情况。有些软件故障可能在特定条件下发生,或者只存在于某些特定型号的软件程序中。

通过对移动数据通信系统的日志数据进行分析,发现可以通过对移动终端进行适当分组来检测软件故障。例如,如果新发布的软件程序存在故障,下载该软件的移动终端的重新连接终端比率会增加。通过计算特定组移动终端的比率,可以判断在测试阶段被忽略的软件故障是否被检测到。

该异常检测技术的贡献主要有三点:一是通过分析日志数据实际发现了移动终端的软件故障,表明对移动终端进行适当分组可以检测具有共同特征(如相同版本和相同应用程序)的移动终端的软件故障;二是仔细确定了用于检测异常的阈值;三是该异常检测工具具有良好的可扩展性,几台配备该工具的个人计算机就可以监控商业移动数据通信系统。

软件测试与移动数据通信故障检测技术解析

5. 异常检测技术优势与实际应用情况

异常检测技术在移动数据通信系统中具有显著优势。它通过监测用户重新连接行为,能够快速发现系统中的故障。与传统的全面监测所有消息的方法相比,异常检测技术使用少量工具,降低了成本,提高了商业应用的可行性。

在实际应用中,异常检测工具在商业移动数据通信系统中表现出了良好的效果。它可以检测到导致重新连接终端比率突然增加的故障,如服务器和网络设备的故障。这些故障会使许多用户同时重新连接到服务器,异常检测工具能够及时捕捉到这种异常变化。

然而,该技术也存在一定的局限性。当只有一小部分用户重新连接时,工具可能会错过故障,软件故障往往就属于这种情况。软件故障可能在特定条件下发生,或者只存在于某些特定型号的软件程序中,这些故障导致的重新连接行为不明显,容易被忽略。

为了克服这一局限性,通过对移动终端进行适当分组来检测软件故障是一种有效的方法。以下是具体的操作步骤:
1. 确定分组依据 :可以根据软件版本、应用程序类型、移动终端型号等因素对移动终端进行分组。
2. 计算重新连接终端比率 :在每个采样周期内,计算每个分组中重新连接到服务器的终端与所有终端的比率。
3. 分析比率变化 :观察每个分组的重新连接终端比率是否突然变化,如果某个分组的比率突然增加,可能表示该分组中存在软件故障。

6. 异常检测技术与软件测试的关系

异常检测技术与软件测试是相辅相成的关系。软件测试是在开发阶段对软件进行全面检查,以发现潜在的故障和漏洞。然而,由于系统的复杂性和测试的局限性,一些软件故障可能在测试阶段被忽略。

异常检测技术则在系统运行阶段发挥作用,通过监测用户行为,及时发现系统中的异常情况。它可以检测到那些在测试阶段未被发现的软件故障,为软件的稳定性和可靠性提供了额外的保障。

例如,在移动数据通信系统中,软件测试可以发现一些常见的软件故障,但对于一些在特定条件下才会出现的故障,可能无法检测到。而异常检测技术可以通过监测用户的重新连接行为,发现这些隐藏的软件故障。

7. 未来发展方向

未来,异常检测技术可以在以下几个方面进行进一步的发展和改进:
- 拓展分组方式 :除了根据软件版本、应用程序类型和移动终端型号进行分组外,可以探索更多的分组方式,如根据用户使用习惯、地理位置等进行分组,以更精准地检测软件故障。
- 优化阈值确定方法 :目前虽然仔细确定了用于检测异常的阈值,但可以进一步研究更科学、更自适应的阈值确定方法,以提高异常检测的准确性。
- 结合其他技术 :可以将异常检测技术与机器学习、人工智能等技术相结合,提高异常检测的效率和智能化水平。例如,使用机器学习算法对大量的日志数据进行分析,自动识别异常模式。

8. 总结

异常检测技术在移动数据通信系统中具有重要的应用价值。它通过监测用户重新连接行为,能够快速发现系统中的故障,尤其是那些在测试阶段被忽略的软件故障。通过对移动终端进行适当分组,可以提高软件故障的检测率。

同时,异常检测技术与软件测试相辅相成,为软件的稳定性和可靠性提供了双重保障。未来,随着技术的不断发展,异常检测技术有望在更多方面得到改进和拓展,为移动数据通信系统的稳定运行提供更强大的支持。

技术优势 具体表现
降低成本 使用少量工具,减少了设备投入
快速发现故障 通过监测重新连接行为,及时捕捉异常变化
可扩展性好 几台配备工具的个人计算机就可监控商业系统
graph LR
    A[异常检测技术] --> B[监测用户重新连接行为]
    B --> C{是否检测到异常}
    C -- 是 --> D[分析故障原因]
    D --> E[采取修复措施]
    C -- 否 --> F[继续监测]
    A --> G[与软件测试结合]
    G --> H[提高软件稳定性和可靠性]

总之,异常检测技术是一种有效的故障检测方法,在移动数据通信领域有着广阔的应用前景。通过不断地改进和完善,它将为用户提供更优质、更稳定的移动数据通信服务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值