标题:
蓝牙个人局域网的应用测试步骤详解
[打印本页]
作者:
forsuccess
时间:
2015-2-12 00:04
标题:
蓝牙个人局域网的应用测试步骤详解
通信协议与应用的测试是通信领域中非常关键和难解决的问题,它已经成为通信协议工程学中最活跃的领域之一。测试中两类最基本测试包括一致性测试和互操作性测试。一致性测试是互操作性测试的必要条件。蓝牙硬件产品的测试主要是互操作性测试和性能测试,由提供商完成;而协议软件既有一致性测试,又有互连测试和性能测试;对于应用程序来说,一致性测试仅仅停留在理论阶段,但互连测试和性能测试是必不可少的。因此,完成一致性测试一方面可以保证产品的正确性,另一方面可以在出现错误的情况下,帮助实现者去知道错在哪里,如何修正错误。
本文以蓝牙PAN的互操作性测试模型为例,从工程实际需求出发,运用软件测试的自动化技术,结合协议一致性测试的一般理论和方法说明蓝牙应用的互操作性测试的特点,并总结出一种适用于蓝牙软件模型的应用规范的自动化测试方法。
测试理论概述
软件质量是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和(ISO 9126),软件的质量保证一直是软件产业的一个重大课题。随着社会信息化程度的提高,软件应用领域越来越广泛,软件产品也越来越复杂,软件产品质量的优劣也日益受到人们的重视,软件的质量保证已成为开发商和用户关注的焦点,质量保证能力的强弱直接影响着软件业的发展与生存。
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的质量。它是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。在目前形式化方法和程序正确性证明技术还没有成为实用性方法的情况下,软件测试在将来相当一段时间内仍然是软件可靠性保证的有效方法。因此,研究软件产品测试技术,开发软件自动测试工具,已成为软件质量保证的一个晕重要的任务。
通信协议的测试方法
目前协议测试主要包括四种测试:
·一致性测试
一致性的含义是:如果某实际系统与其它实际系统的通信过程符合所用协议的国际标准,则称该实际系统展示了一致性。一致性测试正是用来检测所实现系统与协议规范的符合程度。一致性测试的主要目的是提高不同系统之间能够互通的概率。虽然一致性是保证互通能力的必要条件,但并不是充分条件。即便两个实现都与同一个协议规范一致,它们也有可能完全不能互通。如果两个实现都能与某个协议标准的子集相一致,则这两个系统之间在此情况下互通要比在其它情况下互通容易实现。因此保证协议的一致性是实现协议以及应用互操作性的基础。
·互操作性测试
互操作性测试用来检测同一协议的不同实现版本之间、或同一类协议(如电子邮件协议X.400和sMTP)不同实现版本之间互通能力和互连操作能力。协议上的应用模型的互操作性测试是保证应用程序能否正确实现的重要指标。
·性能测试
它用来检测协议实体或系统的性能指标(数据传输率、连接时间、执行速度、吞吐量、并发度等);
·鲁棒性测试
检测协议实体或系统在各种恶劣环境下运行的能力(信道被中途切断、通信技术掉电、注入干扰报文等)。
软件测试的自动化技术
软件测试是检验软件是否产生了正确输出的过程,是通过在测试的实际输出与预期输出(当软件正确执行时的输出)之间完成一次或多次比较来实现的。自动化执行测试用例是自动测试的出发点,然而比较工作是重复性和复杂的任务,是软件测试中可论证的自动化程度最高的任务。常常是从自动化中受益最多的任务。自动执行测试用例会产生大量的输出,通常需要用某些方法验证这些输出,但是并非所有的测试都需要详细比较输出。因此,自动化执行测试用例和自动化比较执行结果是自动测试关注的最主要的两个问题。
自动化比较按比较的时机来分,可以分为动态比较和执行后比较。动态比较就是在执行测试事例时进行的比较。使用动态比较有助于为测试事例编入一些智能化的功能,使测试事例根据出现的输出采取不同的动作。例如,如果出现意外的输出,则说明测试脚本与测试的软件不一致,因此最好以异常的方式终止测试事例,而不是继续执行。执行后比较是在测试事例运行完毕后执行的比较。这两种比较方式对于测试结果都有决定性作用,因此自动化比较模块的性能对于自动化测试程序的影响至关重要,也是PAN自动测试重点关注的问题。
PAN的互操作性测试模型的设计
通用互操作性测试模型
互操作性测试是一致性测试的下一步。一致性测试是验证系统A和系统B都遵从规范X,而互操作性测试则是检验在多大程度上系统A和系统B相互间能进行工作.其基本结构模型如图1所示:
图1 互操作性测试模型
在上面的结构中,为了监视两个被测系统间传送的数据,可以在监视点A、B和C处放置监视仪。
互操作性测试一般是先通过定义测试目的,指定抽象测试集(Abstract TestSuite,ATs),然后根据ATS,在某个特定的硬件平台(如协议分析仪)上去实现ATS,变成可执行的测试集(ExecutiveTest Sui蛾ETS),接着在分析仪上执行ETS,对两个或多个被测系统(System Under Test,SUT)进行测试,最后由测试过程获得测试报告(可以借助监视仪在各个监视点获得的数据),发现SUT中的错误。
PAN互操作性测试模型
PAN测试结构包括五部分,如图3所示:自动测试程序(Auto-test Program)、被测系统(SUT)、测试系统(TestSystem)、PAN应用(Applicatiffa)、记录日志(Trace&l og)和分析设备(Analyzer)。
自动测试程序替代通用测试模型中Test Operator的作用,负责在被测系统上执行命令,并返回结果给测试系统,同时它还负责与分析设备交互,确认每一次测试结果。
被测系统是正被测试下的系统包括客户端和服务器端的文件传输应用、蓝牙协议栈和为自动测试提供图形用户界面的人机界面单元(MMI)。由于PAN应用的复杂性,还需要相应的系统支持,PAN Block就是专门处理与系统相关的事务的模块。
测试系统与通用模型类似,因为是互操作性测试,所以测试系统与被测系统需要拥有同样的硬件设备和配置。
PAN应用是客户端或服务器上运行的基于PAN服务的普通应用程序,它可以是telnet、FTP等应用,自动测试程序运行过程中,PAN应用被调度执行,测试结果被记录到日志,并由日志上报给分析设备。
分析设备作为一个监测工具。负责在自动测试执行过程中检测测试结果。在互操作性测试中提供详实的数据来验证我们的基于PAN的应用程序执行的可信度。
根据蓝牙互操作性测试模型和蓝牙规范中的相关定义,得出特定的PAN的测试模型如图2所示:
图2 蓝牙PAN的互操作性测试模型
PAN测试模型的特点是自动测试程序在测试进行过程中要监控测试结果,如果分析设备得到的.澳9试结果是错误的,分析设备就会把相关信息反馈给自动测试程序,由自动测试程序调度测试继续进行、终止运行、排查错误或者直接要求测试人员干预等操作。这样就可以使得自动测试更加高效,不会被小错误影响整个测试结果。
PAN互操作性自动化测试的实现
PAN自动化测试的功能
根据上述互操作性自动测试模型,结合工程实践中对于蓝牙PAN稳定性的要求,参考了ⅣT公司的测试用例,实现了基于PAN应用规范的自动测试程序。这个自动测试程序是针对应用层程序的自动测试,因此是通过应用程序的表现来间接的反映了蓝牙协议的一致性和互操作性性能。本工程中PAN的自动化测试具体功能描述如下:
1.建立连接。
模拟用户点击Shortcut,自动建立一个从本机到目标机器的PAN,要求本机的角色为PANU,目标机器的角色为GN(NAP),且两端机器都能够正确分配口地址。建立连接过程进行监控,一旦分析设备发现连接不正确或者口地址分配有误,立即反馈给自动测试程序,自动测试程序分析错误级别并重新调度。
2.酒试可达性和互联性。
在建立连接的情况下,模拟实现ping命令,要求发送方发出命令后,接收方收到并做出回馈,回馈信息能够正确抵达发送方。如果出现错误,由记录日志保存记录,并在测试完成之后由测试人员分析并给出最后结果。
3.传送文件。
在已经建立连接的情况下,通过蓝牙网卡,从发送端发送一个文件到接收端,要求接收端能够收到文件,且文件的大小和内容无误。整个传送过程中,自动测试程序监控发送和接收端口,这样可以保证最精确跟踪错误来源。
4.断开连接。
模拟用户要求断开PAN连接,进行相应的操作。
5.调度控制。
将模块1、2、3、4整合为一个模块,通过自动测试程序输入参数从外部循环次数的控制,自动依次完成上述操作,如此循环,同时分析并记录测试结果到日志文件。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0