通讯协议与运用的测验是通讯范畴中十分要害和难处理的问题,它现已成为通讯协议工程学中最活泼的范畴之一。测验中两类最根本测验包含共同性测验和互操作性测验。共同性测验是互操作性测验的必要条件。蓝牙硬件产品的测验首要是互操作性测验和功用测验,由供给商完结;而协议软件既有共同性测验,又有互连测验和功用测验;关于运用程序来说,共同性测验只是停留在理论阶段,但互连测验和功用测验是必不可少的。因而,完结共同性测验一方面能够确保产品的正确性,另一方面能够在呈现过错的情况下,协助完结者去知道错在哪里,怎么批改过错。
本文以蓝牙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整合为一个模块,经过主动测验程序输入参数从外部循环次数的操控,主动顺次完结上述操作,如此循环,一起剖析并记载测验成果到日志文件。
测验程序的输入信息
测验程序发动以后会从初始化文件中读取一些输入信息,这些信息是测验人员针对不同的测验使命在测验开端之前设置的,测验开端之后就不能进行干涉。在整个测验进程中,参加测验的设备有必要安装了蓝牙运用软件而且进行了相应的装备,否则会影响测验的准确性。
主动测验的数据结构
首要用来寄存口地址信息的类
class CIPAddress
{
public:
charm_sHostName[MAX__PATH]; ,,用来标识主机名
charm
sIPAddress[MAX PATH]; ,/用来标识口地址
public:
CIPAddress0;
int startupo;
int CleanUP0;
int GetLocalHostName(ch卸r‘sHostName);
int
GetIPAddress(char。slPAddress);
void ShowIP0;
};
2.界说的用来获取PAN设置信息的数据结构
typedef
stnm PanInfo
{
SHORT
Role; //发送端仍是接纳端
SHORT
PingTnnes; /,履行ping指令的次数
CHAR
SendFilePath[MAX_PATH]; //要发送的文件途径
CHAR
ReceivedFilePath[MAX_PATH]; //接纳文件后寄存途径
}PANINFO,*PPANINFO;
在PAN主动测验程序整体流程如图3所示,发送文件和接纳文件分别是由不同的人物完结的,因而关于整个进程的同步的记载、剖析、除错十分困难,有时分不得不进行人工干涉。关于主动测验程序的要求是不能被反常情况所搅扰。假如主动测验程序自身的健壮性都得不到确保,测验成果的正确性就很难说了。
依据上述考虑,当过错发生时,首要依据过错类型判别过错的严峻程度以及是否需求人工干涉,这样既考虑了严峻过错对体系的影响又减轻了测验人员的担负。当然,假如过错累积到必定程序,再进行测验就毫无意义,这个时分就有必要中止测验,恳求人工剖析处理,在本体系中是经过一个累加器处理的.
图3 蓝牙PAN互操作性铡试流程图
PAN主动测验中发送方的流程如图4所示,这个流程图是图3调度履行发送方程序”进程的具体流程。发送方分为PANU、G|N、NAP多种人物,因而程序开端的时分也需求初始化设备。注册回调函数是为了在界面上显现测验进程状况信息和触发记载日志事情。发送方只能依据对发送进程的监听来判别文件发送成功与否,因而这个判别在某种程度上并不能确保彻底正确,需求和接纳方发生的成果汇总之后再次进行剖析,这个剖析进程由主动测验程序操控。
图4 主动测验发送方流程图
PAN主动测验中接纳方的流程如图5所示,这个流程图是图3调度履行接纳方程序进程的具体流程。接纳方的流程相对比较简单,接纳方有必要与发送方合作才干完结整个主动测验进程。
图5 主动测验接受方流程图
测验成果和总结
PAN主动测验程序意图是针对互操作性测验而进行的,整个测验流程以代替部分手艺测验、节省版别测验时刻和人力为动身点。经过将根本功用做成主动测验东西模仿用户操作完结大多数功用点的验证测验,能够很大程度上减轻测验人员的作业量。实践中,主动测验程序一般在晚上下班时刻运转,次日早上测验人员经过观察主动测验运转后发生的日志文件来对测验成果进行评价。PAN主动测验程序在这方面取得了很好的作用,经过接连运转一万次测验用例规划的主动测验的成果进行剖析,对进步软件的稳定性很有裨益。主动测验程序运转进程中保存下来的现场数据关于开发人员修正源程序中的Bug也很有协助。尤其是对长时间的项目、增量开发形式,主动测验不失为一种很好的挑选。