基于白盒测试的Parlay_API接口测试方法设计

基于白盒测试的Parlay_API接口测试方法设计
基于白盒测试的Parlay_API接口测试方法设计

基于白盒测试的Parlay API接口测试方法设计

下一代网络(NGN)是可以提供语音、数据和多媒体等各种业务的综合开放的网络架构,可以支持快速业务部署以及第三方业务控制。NGN开放式业务提供的是一个分布式系统,为了实现第三方业务开发,业务结构应采用开放式接口控制技术,正在研究和开发的技术包括移动代理技术、主动网络技术和应用编程接口(API)技术。目前现实可行的是API技术。许多组织提出了开放业务平台的API,Parlay是其中最活跃、最有影响力的一个。

在Parlay组织成立后不久,3GPP和ETSI启动了3G系统UMTS的开放式业务架构的研究,称之为OSA。两者非常类似,最初的OSA标准就是由Parlay 1.2和2.1加上少量的3GPP 新增功能组成的。其后,两个组织决定从Parlay 3.0和OSA R5开始统一发布接口标准,命名为Parlay/OSA,这奠定了固定和移动NGN业务层融合的技术基础。两者的差别在于,Parlay 是单纯的接口标准,而OSA是一种业务结构,不仅包括业务接口,还包括体系结构以及Parlay 至移动网络协议,如MAP、CAP等的映射。

一、Pariay APl对业务的支持

Parlay API是一种基于分布式技术的、开放的、面向对象的下一代业务开发技术,它通过协议映射技术把底层网络的通信细节抽象成标准的API形式供业务开发者开发业务逻辑程序。它带来的好处是降低了业务开发的技术门槛,能使业务开发者更快捷地满足用户的个性化需要,提供丰富多彩的业务,为下一代网络的应用和发展提供最有效的驱动力。

Parlay APl是一个标准的接口,从而能够使第三方通过此接口利用运营商的基础网络提供丰富多彩的业务,例如统一消息业务、基于位置的业务、呼叫中心业务等,这些业务的业务逻辑都位于应用服务器上。

通过Parlay提供的第三方业务主要分为以下几类:

·通信类业务,如点击拨号、VoIP、点击传真、可视通话、会议电话,以及与位置相关的紧急呼叫业务等;

·消息类业务,如统一消息、短消息、语音信箱、E-mail、多媒体消息、聊天等;

·信息类业务,如新闻、体育、旅游、金融、天气、黄页、票务等各种信息的查询、订制、通知,以及基于位置的人员跟踪、找朋友等;

·娱乐类业务,如游戏、博彩、谜语、教育、广告等。

各类业务可以相对独立,也可以有机地结合,例如可以在查询信息时根据相应的信息进行支付类业务,而且各种娱乐可以通过不同的消息方式来表现(短消息、E-mail),将娱乐与消息业务相结合。

框架服务器接口和业务能力接口是Parlay API定义的两类主要接口。业务逻辑程序通过Parlay网关中框架服务器接口的鉴权后,被授权接入规定的业务,然后使用框架服务器接口提供的业务能力发现和业务能力选择功能,通过签订在线业务能力使用协议,获得在框架服务器中注册的、满足业务需求的业务能力管理类接口引用。业务逻辑通过获得业务能力管理类接口引用就可以和其对应的业务能力接口进行通信,实现特定业务逻辑的呼叫控制、用户交互及计赞等功能。

Parlay标准定义的是控制底层网络资源的API,并非网络协议。两者的差别在于:协议面向具体的网络,由严格定义的一组消息和通信规则组成;API面向软件编程者,由一组抽象的操作或过程组成。在不同的网络中完成同样的功能所用的协议可能完全不同,但是所用的API则完全相同。这样,原来对通信网技术知之甚少的软件人员也可以利用Parlay接口自如地开发应用业务程序。

二、开放式业务接口Parlay API的测试

业务支撑环境是业务实现的重要环节,下一代网络的业务支撑环境主要包括应用服务

器、业务服务器和业务生成环境,它们互相配合,共同完成向用户提供多样灵活的基于下一代网络的增值业务的任务。其中应用服务器是支撑环境的主体,它通过开放的协议或者API 与软交换设备之间的交互来间接地利用底层网络资源,从而实现了业务与呼叫控制的分离,有利于新业务的引入。

应用服务器可分为SIP应用服务器和Parlay应用服务器两类,前者与软交换之间采用SIP 协议进行交互,后者将采用Parlay API作为与软交换之间的接口。通过协议开发业务的主要特点是:开发的业务与特定的网络和协议有关,即应用与具体的协议和网络相联系,这样开发的业务互通性不好,同时业务也不可移植。而采用基于开放API开发方法的主要特点是:互通性好,具有可编程性,可扩展性好,支持第三方业务开发。Parlay应用服务器的框架如图1所示。

图1Parlay应用服务器的框架

Parlay API主要由两部分组成:①业务接口(service Interface):这类应用编程接口可以访问Parlay服务器所提供的一系列基本业务能力,比如建立或释放路由、与用户交互、发送用户消息及设定QoS级别等。业务供应商可以按照不同的业务逻辑调用它们以实现不同的业务。②框架接口(Frame-work Interface):它们对客户端使用业务接口提供必需的安全、管理支持。框架服务器保证了底层通信网的安全开放和Parlay服务器的有序运行。业务逻辑程序通过Parlay网关中的框架服务器接口鉴权后,被授权接入规定的业务,然后使用框架服务器接口提供的业务能力发现和业务能力选择功能,通过签订在线业务能力使用协议,获得在框架服务器中注册的、满足业务需求的业务能力管理类接口调用。业务逻辑通过获得业务能力管理类接口调用就可以和其对应的业务能力接口进行通信,实现特定业务逻辑的呼叫控制、用户交互及计费等功能。

Parlay API实际上定义了一套能使外部网络访问通信网络各种资源的标准接口,并屏蔽了底层网络以及复杂的信令交互,使得业务开发人员无需掌握太多的通信背景知识,即可编写出丰富多彩的业务应用。所以,Parlay应用服务器除了要为Parlay业务提供一个安全可靠、高性能、开放的运行环境外,还要充当业务与下层网络之间的中间者,实现对与下层网络通信的CORBA对象的本地化封装,向运行其中的业务提供本地APl接口,为业务开发者屏蔽复杂的CORBA接口,因此,对Parlay API接口进行测试,以保证与下层网络的互通和业务的正常运行是必须的。

CORBA作为Parlay API的一种常用的底层通信环境,实现了功能实体的位置透明性和执行状态的透明性,使Parlay业务具有良好的分布特性。而CORBA复杂的调用接口参数配置也给对接口的测试带来了很大的难度。对于应用服务器所封装的Parlay API接口进行测试,可以有多种测试方法,业务也是复杂多样,如果想完全模拟全部的业务是不可能的,因此需

要设计一套基于自盒测试的模拟测试环境,仿真整个网络的业务生成环境,这样不但可以节省购置大量硬件设备的资金,也可以对业务的触发进行软件控制。

白盒测试又称为结构测试或逻辑驱动测试,主要是列程序模块进行如下检查:

·对逻辑模块的所有独立的执行路径至少测试一遍;

·对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一遍;

·在循环的边界和运行的界限内执行循环体;

·测试内部数据结构的有效性。

应用白盒测试的思想,通过测试用例设计和脚本的编写,即可实现对Parlay API接口调用的业务逻辑进行更准确的测试。

三、Pariay APl测试方案的设计

测试方案可以细化为被测系统、被测实体和服务SP三个部分,其中,被测系统为Parlay 应用服务器;被测实体是Parlay应用服务器的Parlay接口功能;为测试系统和被测系统提供互联功能的服务SP可以是Parlay API所采用的CORBA环境。首先,可以把Parlay API接口分为业务侧和网关侧,其中网关侧API实现了对下层网络能力的封装,向上层应用提供统一的调用接口。而业务侧API则用来为网关侧提供回调的接口,网关侧通过此接口向上层应用上报所有的呼叫事件及业务的操作结果。因此,在整个测试环境中需要两个测试器:位于网关侧的呼叫模拟和位于业务侧的业务模拟。对于两侧的测试器,可以设置两个观察窗口,对两侧API的调用情况分别进行监测。

整个测试系统的主要目的就是对应用服务器所封装的Parlay API接口进行测试,验证其是否将Parlay网关和业务之间发送的Parlay API调用正确地进行了传递,其中包括了函数名、参数是否正确以及在传递过程中是否正确地维持了方法调用的逻辑顺序,特别是在大话务量情况下,这种正确性是否仍然能得到保证。因此,对于网关侧的测试器发出和处理Parlay API 所依据的规则并不要求必须是基于动态呼叫状态的,所以,没有必要在网关侧实现一个复杂的仿真网络环境。对于Parlay API的发送、接收和处理所依据的规则采用静态定义的方法即可,即对所要测试的业务控制功能(SCF),甚至是SCF中定义的某些方法编写测试用例,由测试用例来控制各方法、参数和调用的逻辑顺序。

Parlay API的呼叫APl分为一般呼叫控制、多方呼叫控制、多媒体呼叫控制和会议呼叫控制接口。

1.一般呼叫控制

一般呼叫控制服务是整个呼叫模型的子集。呼叫局限于两方且不可控制呼叫线路(Call Leg)。由于一般呼叫控制服务不能处理多媒体连接,所以不可能控制媒体信道。一般呼叫控制由网络侧的两个接口,即IpCallControlManager和IpCall,以及相对应的企业侧的两个接口,即IpAppCallControlManager和IpAppCall构成。

IpCallControlManager提供管理呼叫的方法。该接口的CreateCall()方法可建立新的呼叫对象(即实现IpCall接口的对象)。它也提供请求向客户应用通知呼叫事件的方法。例如,客户应用能够调用IpCallControlManager接口请求将送到指定电话号码或一定范围电话号码的呼叫事件通知给客户应用,如果由于某种错误呼叫通知不可进行,则不允许客户应用请求呼叫通知。

一旦调用了呼叫通知请求,就可以通过接口更改或删除。接口也提供在一系列呼叫上实施的负载控制方法和取消先前设嚣的负载限制的方法。

IpCall接口提供将呼叫路由到目的方或监视呼叫状态的方法。例如,客户应用能调用接口的方法,请求当呼叫结束时,设置与呼叫相关的信息(例如计费)。使用lpCall接口,客户应用也能请求监视呼叫,即经过指定时长后,将呼叫的状态报告送到客户应用且将呼叫的控制交给应用。这在预付费应用中很有用,以防止当预付费账户为零时,呼叫仍然继续。

IpCall接口也提供设置呼叫计费的操作,IpCall提供的另两个接口是请求用户提供更多的双音多频(DTMF)输入和计费建议操作,它通知用户有关呼叫计费的信息(即消息被发送到它的终端,如果终端有能力显示这一信息)。

IpAppCalIControlManager是IpCallContrdManager企业侧的对应接口。这个接口提供当呼叫事件(通过IpCallControlManager接口请求)到达时被调用的方法。也提供用以接受底层网络呼叫通知状态(能或不能)信息和当网络遇到呼叫过载时Parlay网关发送的通知信息的方法。接口也提供指示网络中呼叫终止的方法,当网络检测到呼叫(应用感兴趣的)终止后,由Parlay 网关调用。

IpAppCall是IpCall接口企业侧对应的接口。该接口提供用以处理呼叫请求的响应和状态报告的方法。例如,IpAppCall接口被通知有关路由请求的状态:路由成功和被叫应答,或被叫忙等。IpAppCall接口接受所有通过IpCall设置的请求的状态报告。

2.多方呼叫控制

在多方呼叫控制服务中,有六个重要的接口:IpMultiPartyCallControlManager、IpAppMultiPartyCallCaontrolManager、IpMultiPartyCall、IpAppMultiPartyCall、IpCallLeg和IpAppCallLeg。

接口IpMultiPartyCallControlManager、lpAppMultiPartyCallControlManager和IpAppMultiPartyCall从一般呼叫控制继承了所有方法目没有引入新的方法,IpMultiPartyCall 接口是IpCall的扩展。它包含显式接入呼叫Leg的操作。注意在多方呼叫中,一个呼叫能包含两个以上呼叫Leg。接口也提供一个建立实现IpCallLeg接口对象的方法。

IpCallLeg接口提供将呼叫Leg路由到指定目的方以及合并或分离与入/去呼叫相联系的媒体的方法,也提供当呼叫Leg终止时将Leg指定的请求信息发送到应用的方法。虽然能请求详细的Leg事件报告,但不提供连续监视Leg的方法。将来,通过IpCallLeg接口提供几个接入功能,例如找回呼叫Leg所属的ID。注意一个呼叫能有多个Leg,但一个Leg同时仅能是一个呼叫的部分。

IpAppCallLeg接口是]pCalILeg接口企业侧的对应接口。它接受通过IpCallLeg接口设置的请求的响应。

接口lpMuhiPartyCall继承自lpCall,新增方法有:

·GetCallLeg(),此方法请求与呼叫对象相关的呼叫Leg对象的标识;

·CreateCallLeg(),此方法请求创建新的呼叫Leg对象;·CreateAndRouteCallLegReq(),此异步操作请求创建并对新创建的呼叫Leg选路。

接口IpAppMultiPartyCall继承自IpAppCall,新增方法有:·CreateAndRouteCallLegErr(),此异步方法指示呼叫路由至目的地的请求不成功。

接口IpCallLeg继承自IpService,呼叫Leg接口用地址代表与呼叫相关的逻辑呼叫Leg。·RouteReq(),此异步方法请求呼叫Leg路由至目的地址指示的一方;

·EventReportReq(),此异步方法设置、清除或改变Leg对象监视的事件标准;

·Release(),此方法请求释放呼叫Leg,如果成功,呼叫Leg被删除;

·GetInfoReq(),此异步方法请求在适当的时候提供与呼叫Leg相关的信息;

·GetCall(),此方法请求与呼叫Leg相关的呼叫:

·AttachMedia(),此方法请求呼叫Leg与它的呼叫对象相连;

·DetachMedia(),此方法使呼叫Leg与它的呼叫相分离;·GetLastRedirectedAddress(),此方法用来查询要转向的最后地址;·ContinueProcessing(),此操作继续呼叫Leg的处理,在呼叫Leg处理由于应用预约的事件通知被检出而中断后调用此操作;

·SetChargePlan(),设定操作员定义呼叫的计费策略。计费策略必须在呼叫Leg路由至目的地

前设定。此方法也可以用来改变目前呼叫的计费策略;

·SetAdviceOfCbarge(),此方法允许AOC信息发送到可以接收该信息的终端;·SuperviseReq(),调用此方法监视呼叫Leg;

·Deassign(),此方法请求重新指定应用和呼叫Leg以及相关对象的关系。

接口IpAppCallLeg继承自IpInterface,应用呼叫Leg接口用来处理与呼叫Leg请求相关的响应和错误。

·EventReportRes(),此异步方法报告所要请求报告的事件;

·EvenlReportErr(),此异步方法指示处理呼叫Leg事件报告的请求未成功以及原因;·GetlnfoRes(),此异步方法报告应用所请求的所有必要信息;

·GetInfoErr(),此异步方法报告源端请求错误;

·RouteErr(),此方法报告路由错误;

·SuperviseRes(),此异步方法报告呼叫Leg监视事件给应用;

·SuperviseErr(),此异步方法报告呼叫Leg监视错误;

·CallLegEnded(),此方法指示应用网络中Leg已结束。

3.多媒体呼叫控制

在多媒体呼叫中,涉及以下七个接口:IpMultiMediaCallControlManager、IpAppMultiMediaCallControlManager、IpMultiMediaCall、IpAppMultiMediaCall、IpMultiMediaCallLeg、IpAppMultiMediaCallLeg以及IpMultiMediaChannel。

接口IpMultiMediaCallControlManager继承了IpMultiPartyCallControlManager提供的所有方法而且通过提供两个新的方法扩展了它的能力。通过这些方法可以媒体信道通知能力。当激活媒体信道通知能力时,包含两个标准集。两个标准集必须在信道报告给客户应用前全部实现。首先,多媒体呼叫必须与呼叫标准匹配(即目的呼叫码必须在一定范围内),而且媒体信道指示也必须匹配。企业侧的对应接口IpAppMultiMediaCallControlManager继承了IpAppMultiPartyCallControlManager接口的所有方法,引入了一个新方法,即媒体信道事件通知方法。

为代表网络侧的多媒体呼叫,使用一个实现IpMultiMediaCall接口的对象。接口继承了IpMultiPartyCall接口的操作,引入一个新方法去设定一个呼叫认可的数据流量(以微秒测算)。当给定的数据量过期后,企业侧称IpAppMultiMediaCall的对应接口收到事件的通知。

接口IpMultiMediaCallLeg继承了IpCallLeg的所有操作,客户应用通过调用这个接口的方法能够监控和影响媒体信道。该接口提供了三个新的操作,其中一个是能够监控打开和关闭媒体信道,这又包括两种监控类型:一般监控(满足任何媒体类型)或指定监控(仅当使用指定媒体类型的信道才发送通知)。如果监控设置为中断模式,为打开这种媒体信道,应用必须显式地允许接入。IpMultiMediaCallLeg接口提供相应的方法,其引入的最新方法使得可以接入所有与这个呼叫Leg相关的已打开的媒体信道列表的方法(注意,一个呼叫Leg可与几个媒体信道相联系)。

在企业侧必须实现IpAppMuhiMediaCallLeg接口,它继承了父类IpAppCallLeg的方法。引入一个新的操作,即媒体信道通知,当打开或关闭满足请求的检测标准时,由Parlay网关调用。

多媒体呼叫控制包含的最后一个接口是IpMulfiMediaChannel,这个接口表现为与呼叫Leg联系的单向数据流。只有一个方法可用,即关闭信道。

4.会议呼叫控制控制

会议呼叫控制是Parlay API定义的最高级的呼叫控制形式。会议呼叫控制服务用会议和子会议的概念提升了多媒体呼叫控制服务。会议与多媒体、多方呼叫的不同点是会议资源可提前保留。子会议是会议中全部Legs的子集,只有在同一子会议中的Legs才能相互通信(即

只有在同一子会议的Legs间才有媒体通路)。

有两种会议开始方式:没有会议资源的优先保留和有会议资源的优先保留。在会议呼叫控制服务中,有六个接口最重要:

·IpConfCallControlManager是必须用以生成会议和资源管理的接口。它继承了父类接口IpMultiMediaCallControlManager,但也增加了重要的新成员。该接口提供建立新会议及检测会议是否有足够的资源可用、为会议预留资源和释放分配资源的方法。当建立一个新的会议时,应用必须指明要用的子会议数目。它至少为1,会议参加者数目和预期的会议时长也在建立会议的请求时提供,网络随后尽力在指定的时间分配必要的资源。如果资源可用,会议开始。当会议时长超出了资源预留的时间,资源不再保证,但会议可以继续。注意,如果需要资源满足另外的请求,会议可能被网络结束或拒绝。

IpConfCallControlManager接口也提供检测在给定的预计时间是否有足够的资源可用的方法。调用此方法时,必须输入指定的开始和结束日期以及时间(代表搜索间隔)、可选的期望参加者数目和会议周期。搜索算法返回实际可利用的资源、会议时长和开始时间。注意此方法仍然没有保留资源。为了保留资源,IpConfCallControlManager接口提供了另一个方法。作为此方法的参数,必须制定开始的日期和时间,参加者数目和会议预期时长,以及会议指定的策略、内容、是否允许会议建立以后实体加入等。

IpConfCallControlManager接口提供的最后一个方法专为释放先前保留的资源,本方法有效地取消了资源预留。

·IpAppConfCallControlManager提供了当会议因先前的预约由网络建立时,Parlay网关调用的方法。它继承了IpAppMuhiMediaCallManager接口,除了以上描述的方法外,没有引入新的方法。

·lpConfCall接口继承了IpMuhiMediaCall接口,用以管理子会议,也可向不需要知道有多个子会议的应用隐藏子会议。除了继承的方法外,该接口提供了请求会议中所有子会议列表的新方法,以建立新子会议和请求监控事件。

·IpAppConfCall是相对于lpConfCall接口的企业侧接口。IpAppConfCall接口接收通过IpConfCall接口调用的请求的响应。它继承了父接口IpAppMultiMediaCall的方法,且提供了两个新方法。

首先,通过lpAppConfCall接口,提供当到达一个新的实体(和呼叫Leg)时的通知方法。例如可以用于计划会议(会议资源已经预留),这里参加者使用资源预留期间提供的地址可以拨进会议(如果会议策略允许拨入)。

第二个新的操作是通知应用实体的离去,当实体离开会议和监控实体提前申请离开,应由Parlay网关调用。

·IpSubConfCall提供管理子会议的操作。子会议又称为一个会议中所有Legs的子集,所以仅在同一子会议的Legs才能相互通信。它继承了IpMultiMediaCall,并提供几个新的方法。其中一个方法是分拆子会议,在这种情况下,子会议中的一些Legs移往新建的子会议。相应的,也提供了合并子会议的方法,在这种情况下,该子会议中的所有Legs移往一已经存在的子会议,且释放空子会议。该接口也提供了将呼叫Leg移往另一子会议的方法。通过IpSubConfCall接口,可以改变多媒体(子)会议策略。

·IpAppSubConfCall接口允许通知应用关于子会议的事件。它继承了IpAppMultiMediaCall 接口,并引入了两个新的操作,都是用来调用去通知应用网络所作的请求。一个方法用于提供主席请求,另一个提供坐席请求。

整个测试系统由四部分组成(如图2所示):

·模拟Parlay网关模块:主要实现Parlay网关的功能;

·测试用例运行模块:主要实现对测试用例的加载、运行;

·测试结果保存模块:保存测试用例测试的结果,并可查询和对比;

·辅助工具模块:对测试提供辅助工具。

其中,测试用例运行模块和模拟Parlay网管模块在测试平台中起关键作用,可以通过测试用例运行模块编写测试用例。此模块可以设计成并行执行,每次可以加载多个测试用例同时进行。特别是在验证大话务量的情况下,应用服务器在Parlay API传递中是否能够保证消息、参数以及调用顺序上的正确性。

(二)基于白盒测试的Parlay API接口测试方法设计

图2Parlay API测试方案的整体架构

模拟Parlay网关模块对外提供两种接口:一种是基于CORBA的远程调用接口,该接口主要用于同Parlay应用服务器进行正常的Parlay API交互;另一种是向测试用例提供的Java 本地API接口,测试用例通过使用此接口通知模拟网关应该向应用服务器发送哪个Parlay API 调用。因此,该接口需要为测试用例提供的功能,包括创建各种IP侧接口实例,设定Parlay 方法的各个参数,指定应该向Parlay应用服务器发起哪一个方法调用等。实际上,模拟Parlay 网关模块的这种本地API接口就是提供给测试用例使用的控制接口,测试用例通过该接口来控制模拟Parlay网关模块完成CORBA对象的创建和Parlay方法的封装及调用工作,而测试过程中的呼叫状态信息主要由测试用例自身保存和更改。

四、基于白盒测试的测试用例的实现

在此测试系统中,每个测试用例应分为两个部分。①网关侧测试集:主要功能是测试用例运行时,向Parlay应用服务器发送一个模拟呼叫清求,然后配合业务逻辑执行测试操作。

②业务侧测试集:主要是接收由Parlay应用服务器转发来的网关侧呼叫请求,然后配合网关部分执行测试操作,并将测试结果保存到相应的文件中。

网关侧和业务侧的测试集分别在测试平台和Parlay应该用服务器中运行,测试用例需要分别单独编写。其中,业务侧的测试集作为业务的一种,网关侧的测试集需要调用测试系统中的ITestInstance接口。测试用例的相关信息在测试用例脚本文件中提供。这些相关信息包括:①测试用例的名称,用来惟一表示测试用例。②网关侧测试类的类名,每个测试用例都对应着一个网关侧的Java类,测试平台对测试用例的加载实际上就是创建并加载相应的Java 类,测试用例的执行就是执行该Java类的相应接口方法。③业务侧测试类名。每个测试用例都要有对业务的支持,因此需要在脚本文件中为每个测试用例指定相应的业务名称。④测试用例所使用的呼叫类型,该呼叫类型指定测试用例所对应的上层业务是基于何种呼叫类型。

对于Parlay API的测试方案,我们采取白盒测试的方法进行测试。

白盒测试应用于本测试系统中,主要是对业务逻辑调用的考察,因此,我们必须制订好测试的实施步骤:

·测试计划阶段:根据业务说明书,制定测试进度;

·测试设计阶段:依据业务的程序没计说明书,按照一定规范化的方法进行软件结构划分和测试用例的设计;

·测试执行阶段:加载测试用例,得到测试结果;

·测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

由于本测试操作主要是通过API的调用情况和调用顺序来体现的,这就要求在每次测试操作中,测试用例需要将业务侧对网关侧以及网侧对业务侧的APl调用信息,API所继承的类名、方法名等保存到相应的测试结果文件中,最后通过比较相关的测试结果文件就能获知测试用的执行结果是否正确。在整个测试过程中,对Parlay API的调用情况可以分为两类:业务侧和网络侧调用情况。每种情况又可以分为两类:主动调用和被动调用。这四种情况是对应的,业务侧的主动调用和网关侧的被动调用情况对应,网关侧的主动调用情况和业务侧的被调用情况对应。

基本操作流程:

第一步:测试系统首先应根据配置文件中所设置的参数初始化CORBA环境,创建Parlay 中各网络侧Manager接口类的CORBA对象以及测试结果保存模块所必须的CORBA对象,并将这些CORBA对象注册到CORBA命名服务中,以供应服务器和测试用例使用;

第二步:测试系统从测试用例脚本文件中读取所有要执行的测试用例的相关信息,包括测试用例的名称、网管侧测试类名、业务侧测试类名以及呼叫类型等,并保存下来;

第三步:加载测试用例到Parlay应用服务器中,然后激活;

第四步:运行测试用例;

第五步:在测试过程中,测试用例的业务侧测试类,测试平台的模拟Parlay网关模块把各自对Parlay API的调用情况,通过测试结果保存模块将相应的测试结果保存到结果文件中去;

第六步:测试用例执行结束后,清除所有进程,去掉前面已经加载的测试用例。

第七步:统计、分析测试结果,用户可通过各种文本文件比较工具比较测试结果文件内容的异同。

对于Parlay应用服务器接口测试的需求,这种自动化测试平台具有如下优点:

·测试平台实现比较简单,本测试平台只需按照测试用例的要求生成相应的Parlay API调用,无需维护模拟呼叫的状态信息;

·测试用例编写灵活,模拟呼叫的状态信息以及各Parlay API方法的参数均由测试用例提供,只要测试用例的功能足够,即可支持真实业务的功能测试;

·测试操作的自动化。

五、结语

Parlay应用服务器可以提供不同抽象层次的业务开发接口、以便不同能力不同类型的业务开发者开发丰富多彩的业务,例如,可以提供基于CORBA的Parlay API接口、基于JAIN SPA 标准的Java API接口、以及基于Javabeans的接口,基于XML、CPL、VoiceXML的接口等,业务开发者也可以根据业务的需要和自己的能力来选择合适的开发接口。

业务的多样性给测试带来了很大的不便,购买大量设备建设模拟环境的确不是一个理想的测试方案,上述基于白盒的检测方法大大简化了模拟环境的配置,可以通过软件来模拟网络环境,考察API的调用情况。

关键功能接口测试用例

1.目的 测量手机各关键硬件接口在工作状态的性能符合设计规范,以确保手机性能的稳定性符合设 计要求; 2.适用范围 适用于新开发手机产品在试产阶段的评测及相关功能重大更改时; 3.测试准备和说明: 3.1电池或程控电源,四通道数字示波器,相关机型的原理图及PCB丝印图,万用表(直流电 流档),原配耳机,各种不同类型的SIM卡至少三张以上,不同容量的TF卡至少三张,烙 铁,电批,细导线若干,SIM卡转接座(自制),100欧可调电阻器一个。 3.2各项测试前应确保手机基本功能正常; 3.3测试过程中必须配带静电环,确保静电安全; 3.4测试结果如有必要需附测试波形图; 3.5测试过程中示波器负极应就近接地,如有必要,测试结果应附波形图。 3.6 DP04034数字示波器的使用请参考指导:。 4.内容: 4.1 摄像头回路测试(测试用例编号: 5.1.1) 4.1.1 测试条件: 3.8V电源,示波器,相关机型的原理图及PCB图,细导线,电流表,拍照状态。 4.1.2 测试步骤: 1)手机开壳,根据原理图、PCB图找到摄像头AVDD/DVDD/CMRST脚,将数字示波器CH1,CH2,CH3分别接入手机AVDD,DVDD及CMRST端,负极接地。 2)示波器选用采样直流模式;电压标度设置1V/格,时间标度设为1S/格;添加测量幅值和最大值; 3)手机开机进入拍照模式,记录进入拍照过程中示波器的电压变化情况;测量VCAM-A 上升2/3到CMRST所需时间T1; 4)在VDD供电端串入一个电流表,测量摄像头工作状态的电流并记录。 4.1.3 预期结果: 摄像头工作电压、电流最大不应超过规格书要求的额定功率。 4.2 MIC偏置电压(测试用例编号: 5.1.2) 4.2.1 测试条件: 电源,示波器,原理图及PCB图,细导线,耳机,录音状态。 4.2.2 测试步骤:

如何进行白盒测试

摘要:单元测试是软件测试的基础,本文详细的论述了单元测试的两个步骤人工静态检查法与动态执行跟踪法,所需执行的工作项目及相关的策略和方法。通过对这两个步骤的描述作者将多年的单元测试经验及测试理论注入于全文。 关键词:单元测试、人工检查、白盒测试、测试用例、跟踪调试 1 概述 单元测试是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。其目的在于发现每个程序模块内部可能存在的差错。 单元测试也是程序员的一项基本职责,程序员必须对自己所编写的代码保持认真负责的态度,这是也程序员的基本职业素质之一。同时单元测试能力也是程序员的一项基本能力,能力的高低直接影响到程序员的工作效率与软件的质量。 在编码的过程中作单元测试,其花费是最小的,而回报却特别优厚的。在编码的过程中考虑测试问题,得到的将是更优质的代码,因为在这时您对代码应该做些什么了解得最清楚。如果不这样做,而是一直等到某个模块崩溃了,到那时您可能已经忘记了代码是怎样工作的。即使是在强大的工作压力下,您也还必须重新把它弄清楚,这又要花费许多时间。进一步说,这样做出的更正往往不会那么彻底,可能更脆弱,因为您唤回的理解可能不那么完全。 通常合格的代码应该具备以下性质:正确性、清晰性、规范性、一致性、高效性等(根据优先级别排序)。 1. 正确性是指代码逻辑必须正确,能够实现预期的功能。 2. 清晰性是指代码必须简明、易懂,注释准确没有歧义。 3. 规范性是指代码必须符合企业或部门所定义的共同规范包括命名规则,代码风格等等。 4. 一致性是指代码必须在命名上(如:相同功能的变量尽量采用相同的标示符)、风格上都保持统一。 5. 高效性是指代码不但要满足以上性质,而且需要尽可能降低代码的执行时间。 2 单元测试步骤 在代码编写完成后的单元测试工作主要分为两个步骤人工静态检查和动态执行跟踪。 人工静态检查是测试的第一步,这个阶段工作主要是保证代码算法的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性。并尽可能的发现程序中没有发现的错误。 第二步是通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。经验表明,使用人工静态检查法能够有效的发现30%到70%的逻辑设计和编码错误。但是代码中仍会有大量的隐性错误无法通过视觉检查发现,必须通过跟踪调试法细心分析才能够捕捉到。所以,动态跟踪调试方法也成了单元测试的重点与难点。 3 人工检查 通常在人工检查阶段必须执行以下项目的活动: 第一、检查算法的逻辑正确性;确定所编写的代码算法、数据结构定义(如:队列、堆栈等)是否实现了模块或方法所要求的功能。 第二、模块接口的正确性检查;确定形式参数个数、数据类型、顺序是否正确;确定返回值类型及返回值的正确性。 第三、输入参数有没有作正确性检查;如果没有作正确性检查,确定该参数是否的确无需做参数正确性检查,否则请添加上参数的正确性检查。经验表明,缺少参数正确性检查的代码是造成软件系统不稳定的主要原因之一。 第四、调用其他方法接口的正确性;检查实参类型正确与否、传入的参数值正确与否、

网站功能测试的方法

网站功能测试方法 功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。 针对Web系统的常用测试方法如下: 1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。 2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。 3. 检查按钮的功能是否正确:如更新、取消l、删除、保存等功能是否正确。 4. 字符串长度检查:输入超出需求所说明的字符串长度的内容,看系统是否检查字符串长度,会不会出错。 5. 字符类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错。 6. 标点符号检查:输入内容包括各种标点符号,特别是空格、各种引号、回车键。看系统处理是否正确。 7. 中文字符处理:在可以输入中文的系统输入中文,看会否出现乱码或出错。 8. 检查带出信息的完整性:在“查看”信息和“更新”信息时,查看所填写的信息是不是全部带出,带出信息和添加的是否一致。 9. 信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否做出正确处理。

10. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”删除”,看系统如何处理,会否出错; 然后选择一个和多个信息,进行删除,看是否正确处理。 11. 检查添加和修改是否一致:检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填; 添加规定为整型的项,修改也必须为整型。 12. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错。同时,也要注意,会不会报和自己重名的错。 13. 重复提交表单:一条已经成功提交的纪录,“返回”后再提交,看看系统是否做了处理。 14. 检查多次使用“返回”键的情况:在有“返回”的地方,“返回”,回到原来页面,再“返回”,重复多次,看会否出错。 15. 搜索检查:在有“搜索”功能的地方输入系统存在和不存在的内容,看“搜索”结果是否正确。如果可以输入多个“搜索”条件,可以同时添加合理和不合理的条件,看系统处理是否正确。 16. 输入信息位置:注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。 17. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。 18. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*

【WebService】接口的测试方法

【WebService】接口的测试方法 有以下多种方式: 一、通过WSCaller.jar工具进行测试: 前提:知道wsdl的url。 wsCaller可执行程序的发布方式为一个wsCaller.jar包,不包含Java运行环境。你可以把wsCaller.jar复制到任何安装了Java运行环境(要求安装JRE/JDK 1.3.1或更高版本)的计算机中,用以下命令运行wsCaller: java -jar wsCaller.jar 使用wsCaller软件的方法非常简单,下面是wsCaller的主界面: 首先在WSDL Location输入框中输入你想调用或想测试的Web Service的WSDL位置,如“https://www.360docs.net/doc/0615530282.html,/axis/services/StockQuoteService?wsdl”,然后点“Find”按钮。wsCaller就会检查你输入的URL地址,并获取Web Service的WSDL信息。如果信息获取成功,wsCaller会在Service和Operation下拉列表框中列出该位置提供的Web Service服务和服务中的所有可调用的方法。你可以在列表框中选择你要调用或测试的方法名称,选定后,wsCaller窗口中间的参数列表框就会列出该方法的所有参数,包括每个参数的名

称、类型和参数值的输入框(只对[IN]或[IN, OUT]型的参数提供输入框)。你可以输入每个参数的取值。如下图: 这时,如果你想调用该方法并查看其结果的话,只要点下面的“Invoke”按钮就可以了。如果你想测试该方法的执行时间,则可以在“Invoke Times”框中指定重复调用的次数,然后再按“Invoke”按钮。wsCaller会自动调用你指定的方法,如果调用成功,wsCaller会显示结果对话框,其中包括调用该方法所花的总时间,每次调用的平均时间和该方法的返回值(包括返回值和所有输出型的参数)。如下图:

基于白盒测试的Parlay_API接口测试方法设计

基于白盒测试的Parlay API接口测试方法设计 下一代网络(NGN)是可以提供语音、数据和多媒体等各种业务的综合开放的网络架构,可以支持快速业务部署以及第三方业务控制。NGN开放式业务提供的是一个分布式系统,为了实现第三方业务开发,业务结构应采用开放式接口控制技术,正在研究和开发的技术包括移动代理技术、主动网络技术和应用编程接口(API)技术。目前现实可行的是API技术。许多组织提出了开放业务平台的API,Parlay是其中最活跃、最有影响力的一个。 在Parlay组织成立后不久,3GPP和ETSI启动了3G系统UMTS的开放式业务架构的研究,称之为OSA。两者非常类似,最初的OSA标准就是由Parlay 1.2和2.1加上少量的3GPP 新增功能组成的。其后,两个组织决定从Parlay 3.0和OSA R5开始统一发布接口标准,命名为Parlay/OSA,这奠定了固定和移动NGN业务层融合的技术基础。两者的差别在于,Parlay 是单纯的接口标准,而OSA是一种业务结构,不仅包括业务接口,还包括体系结构以及Parlay 至移动网络协议,如MAP、CAP等的映射。 一、Pariay APl对业务的支持 Parlay API是一种基于分布式技术的、开放的、面向对象的下一代业务开发技术,它通过协议映射技术把底层网络的通信细节抽象成标准的API形式供业务开发者开发业务逻辑程序。它带来的好处是降低了业务开发的技术门槛,能使业务开发者更快捷地满足用户的个性化需要,提供丰富多彩的业务,为下一代网络的应用和发展提供最有效的驱动力。 Parlay APl是一个标准的接口,从而能够使第三方通过此接口利用运营商的基础网络提供丰富多彩的业务,例如统一消息业务、基于位置的业务、呼叫中心业务等,这些业务的业务逻辑都位于应用服务器上。 通过Parlay提供的第三方业务主要分为以下几类: ·通信类业务,如点击拨号、VoIP、点击传真、可视通话、会议电话,以及与位置相关的紧急呼叫业务等; ·消息类业务,如统一消息、短消息、语音信箱、E-mail、多媒体消息、聊天等; ·信息类业务,如新闻、体育、旅游、金融、天气、黄页、票务等各种信息的查询、订制、通知,以及基于位置的人员跟踪、找朋友等; ·娱乐类业务,如游戏、博彩、谜语、教育、广告等。 各类业务可以相对独立,也可以有机地结合,例如可以在查询信息时根据相应的信息进行支付类业务,而且各种娱乐可以通过不同的消息方式来表现(短消息、E-mail),将娱乐与消息业务相结合。 框架服务器接口和业务能力接口是Parlay API定义的两类主要接口。业务逻辑程序通过Parlay网关中框架服务器接口的鉴权后,被授权接入规定的业务,然后使用框架服务器接口提供的业务能力发现和业务能力选择功能,通过签订在线业务能力使用协议,获得在框架服务器中注册的、满足业务需求的业务能力管理类接口引用。业务逻辑通过获得业务能力管理类接口引用就可以和其对应的业务能力接口进行通信,实现特定业务逻辑的呼叫控制、用户交互及计赞等功能。 Parlay标准定义的是控制底层网络资源的API,并非网络协议。两者的差别在于:协议面向具体的网络,由严格定义的一组消息和通信规则组成;API面向软件编程者,由一组抽象的操作或过程组成。在不同的网络中完成同样的功能所用的协议可能完全不同,但是所用的API则完全相同。这样,原来对通信网技术知之甚少的软件人员也可以利用Parlay接口自如地开发应用业务程序。 二、开放式业务接口Parlay API的测试 业务支撑环境是业务实现的重要环节,下一代网络的业务支撑环境主要包括应用服务

接口自动化测试方案

接口自动化测试方案 2018年4月9日 文档编号:(V1.0) 目录 目录 1测试需求及范围 (2) 1.1测试目的 (2) 1.2测试需求 (2) 2测试方法 (3) 3测试工具及框架拓扑图 (3) 3.1测试工具 (3) 3.2自动化测试拓扑图 (3) 4流程示例 (3) 5测试环境 (5) 2.1硬件配置 (5) 2.2软件配置 (5)

6测试思路 (6) 6.1通用测试场景 (6) 6.2逻辑场景 (7) 6.3断言检查 (7) 1测试需求及范围 1.1测试目的 随着公司项目的不断增大,接口的服务随之增多,回归的任务量越来越大,需要对接口进行定时回归测试来保证系统的稳定性。 1.在开发提交新的接口前进行冒烟测试,以保证系统是能够正常开展测试的 2.功能测试完成/bug回归完成后进行回归测试,保证bug修改完成后没有引入新的问题 1.2测试需求 1、目前提供的接口多为Rest 规范的接口,需要使用JMeter进行自动化接口测试,核对接口入参及返回报文格式、内容的正确性,最终通过Jenkins持续集成生成测试报告。 2、对开发人员的需求 接口文档的规范,如:输入输出模板,输出类型是否全面

2测试方法 根据开发人员提供的接口访问地址、入参格式、请求格式,进行接口请求数据拼接,并查看返回结果及返回报文、响应时间,检查返回Json内容是否符合接口定义规范,是否符合预期的返回结果。 3测试工具及框架拓扑图 3.1测试工具 Jemeter+Jenkins 3.2自动化测试拓扑图 4流程示例 测试数据从csv或者txt文件里读取,包含入参、出参、预期结果/断言

白盒测试用例设计方法

1白盒测试用例设计方法 1.1白盒测试简介 白盒测试又称结构测试、逻辑驱动测试或基于程序的测试,一般多发生在单元测试阶段。白盒测试方法主要包括逻辑覆盖法,基本路径法,程序插装等。 这里重点介绍一下常用的基本路径法,对于逻辑覆盖简单介绍一下覆盖准则。 1.2基本路径法 在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出独立路径集合,从而设计测试用例,设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。 在介绍基本路径测试方法(又称独立路径测试)之前,先介绍流图符号: 图1 如图1所示,每一个圆,称为流图的节点,代表一个或多个语句,流程图中的处理方框序列和菱形决策框可映射为一个节点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个节点,即使该节点并不代表任何语句,例如,图2中两个处理方框交汇处是一个节点,边和节点限定的范围称为区域。 图2

任何过程设计表示法都可被翻译成流图,下面显示了一段流程图以及相应的流图。 注意,程序设计中遇到复合条件时(逻辑or, and, nor 等),生成的流图变得更为复杂,如(c)流图所示。此时必须为语句IF a OR b 中的每一个a 和b 创建一个独立的节点。

(c)流图 独立路径是指程序中至少引进一个新的处理语句集合,采用流图的术语,即独立路径必须至少包含一条在定义路径之前不曾用到的边。例如图(b)中所示流图的一个独立路径集合为: 路径1:1-11 路径2:1-2-3-4-5-10-1-11 路径3:1-2-3-6-8-9-10-1-11 路径4:1-2-3-6-7-9-10-1-11 上面定义的路径1,2,3 和4 包含了(b)流图的一个基本集,如果能将测试设计为强迫运行这些路径,那么程序中的每一条语句将至少被执行一次,每一个条件执行时都将分别取true 和false(分支覆盖)。应该注意到基本集并不唯一,实际上,给定的过程设计可派生出任意数量的不同基本集。如何才能知道需要寻找多少条路径呢?可以通过如下三种方法之一来计算独立路径的上界: 1. V=E-N+2,E 是流图中边的数量,N 是流图节点数量。 2. V=P+1,P 是流图中判定节点的数量 3. V=R,R 是流图中区域的数量 例如,(b)流图可以采用上述任意一种算法来计算独立路径的数量 1. V=11 条边-9 个节点+2=4 2. V=3 个判定节点+1=4 3. 流图有4 个区域,所以V=4 由此为了覆盖所有程序语句,必须设计至少4 个测试用例使程序运行于这4 条路径。 在采用基本路径测试方法中,获取测试用例可参考以下方式:

接口测试方法

接口功能测试策略 分类:java 学习 2012-04-18 15:30 1105人阅读评论(0) 收藏举报 测试服务器数据库游戏平台网络协议 由于平台服务器是通过接口来与客户端交互数据提供各种服务,因此服务器测试工作首先需要进行的是接口测试工作。测试人员需要通过服务器接口功能测试来确保接口功能实现正确,那么其他测试人员进行客户端与服务器结合的系统测试过程中,就能够排除由于服务器接口缺陷所导致的客户端问题,便于开发人员定位问题。以下便是个人的平台服务器接口功能测试经验总结: 一、接口测试范围 根据服务器的测试需求,接口测试范围主要分为:1、新增接口的测试;2、新增业务功能接口测试;3、整个服务器的接口测试。所需测试测试接口依次增多,在测试时间足够的条件下,当然需要对所有接口进行测试用例的设计,但如果测试较短的情况下,则应该首先根据用户的典型操作对测试接口进行优先级划分,对调用频繁接口需要优先进行测试。 二、接口测试策略 在进行平台服务器接口测试之前,首先需要整理服务器接口的测试方案,分析接口测试的要点,平台服务器的接口测试内容主要有: 接口设计检查 接口用于服务器与客户端的数据交互,客户端通过网络协议传递的数据为服务器接口的输入数据,因此应该首先通过服务器接口文档及客户端数据约束文档进行交互数据的有效性检查: n 整数型数据位数 n 浮点型数据精度 n 字符串数据范围值 要求客户端的整数型、浮点型、字符串数据以及其最大值和最小值都能作为服务器接口的有效输入。这些工作在服务器设计评审时就可以进行,以便确保不会出现客户端上传数据被服务器自动进行截断或四舍五入的操作。 接口依赖关系检查 以上策略只谈到单个接口的测试方法,对于用户来说,一个操作可能会造成服务器调用多个接口来进行完成,因此还需要从业务处理的角度,对各种业务操作所涉及的多个接口之间依赖调用进行测试。

接口自动化测试框架设计

IAT框架设计 1 背景 1.1项目背景 在移动平台服务端接口测试覆盖度为零的情况下,根据服务端接口的特点,以及升级更新的速度较快等,需要开发此框架来实施服务端接口的自动化测试。 1.2接口测试 接口测试属于灰盒测试范畴,通常不需要了解接口底层的实现逻辑,但需要测试人员能够使用代码的方式来调用接口。接口测试主要用例测试接口的功能以及接口返回数据的正确性。根据接口测试的复杂度接口测试分为两种。即单一接口测试,以及多接口组合功能测试。由于接口测试是通过代码调用的方式完成,而且接口测试与前端 UI 属于松耦合(或无耦合)因此通过自动化手段将极大提高测试效率以及回归测试的复用率。本文中提到的接口测试主要是指基于 http,https ,rpc 协议的 web 接口。 1.3 适用性分析 移动平台大部分以 http 接口方式提供服务,通过前台 App 调用接口方式实现功能。同时大部分接口功能,以及表现形式稳定,对于前台变化敏感度较低。基于上述接口测试的特点,认为移动平台项目非常适合接口层级的自动化测试。 2 IAT 框架 2.1IAT 介绍 IAT 是 Interface Automation Testing 的简称。通过热插拔的方式支持 http,rpc,soap 类协议的 web 接口测试。框架支持单一接口,多接口组合测试,支持用户通过自定义方法实现精确验证结果的需求。 2.2框架特点 提供多种接口测试方式。即单一接口测试,多接口业务流程测试。目前多见的为单一接口的测试。根 据用户需求不同,不同的接口测试方式,用例开发难易度不同。用例开发门槛低,用户只需要将接口用例 数据填入格式化文件即可自动通过工具生成用例。对于高级需求,框架提供自定义配置包括数据构造,精 确匹配测试结果等。框架对于不同域名下的相同接口支持自定义配置,只需要简单修改测试平台配置即 可轻松将用例

白盒测试的六种覆盖准则

白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 白盒测试的概述 由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。 白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。 白盒的测试用例需要做到: ·保证一个模块中的所有独立路径至少被使用一次 ·对所有逻辑值均需测试true 和false ·在上下边界及可操作范围内运行所有循环 ·检查内部数据结构以确保其有效性 白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。 白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。 白盒测试的实施步骤: 1.测试计划阶段:根据需求说明书,制定测试进度。 2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。 3.测试执行阶段:输入测试用例,得到测试结果。 4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。 白盒测试的方法:总体上分为静态方法和动态方法两大类。

功能测试6步骤

功能测试大全 1、在测试过程中所用到的测试方法: 1,输入非法数据;2,输入默认值;3,输入特殊字符集;4,输入使缓冲区溢出的数据;5,输入相同的文件名; 2、登陆 ①用户名和密码都符合要求(格式上的要求)②用户名和密码都不符合要求(格式上的要求)③用户名符合要求,密码不符合要求(格式上的要求)④密码符合要求,用户名不符合要求(格式上的要求)⑤用户名或密码为空⑥数据库中不存在的用户名,不存在的密码⑦数据库中存在的用户名,错误的密码⑧数据库中不存在的用户名,存在的密码⑨输入的数据前存在空格⑩输入正确的用户名密码以后按[enter]是否能登陆⑾输入的密码是否以*显示⑿输入密码错误次数是否有限制 ⒀密码输入框测试时要特别注意进行字母大写输入的测试。 3、添加 ①要添加的数据项均合理,检查数据库中是否添加了相应的数据②留出一个必填数据为空③按照边界值等价类设计测试用例的原则设计其他输入项的测试用例④不符合要求的地方要有错误提示⑤是否支持table键⑥按enter是否能保存 ⑦若提示不能保存,也要察看数据库里是否多了一条数据⑧如果存在两条相同的记录是否也能添加成功 4、删除 ①删除一个数据库中存在的数据,然后查看数据库中是否删除②删除一个数据库中并不存在的数据,看书否有错误提示,并且数据库中没有数据被删除③输入一个格式错误的数据,看是否有错误提示,并且数据库中没有数据被删除。④输入的正确数据前加空格,看是否能正确删除数据⑤什么也不输入⑥是否支持table键⑦是否支持enter键 ⑧若记录与其它表的数据有关联,是否允许删除 5、查询 1)精确查询: ①输入的查询条件为数据库中存在的数据,看是否能正确地查出相应得数据②输入正确的查询条件前加上空格,看是否能正确地查出相应的数据③输入格式或范围不符合要求的数据,看是否有错误提示④输入数据库中不存在的数据⑤不输入任何数据⑥是否支持table键⑦是否支持enter键 ⑧ 要关注组合查询和分页控件 2)模糊查询: ①输入一些字符,看是否能查出数据库中所有的相关信息 6、设计功能和界面测试用例 6.1文本框、按钮等控件测试 6.1.1文本框的测试 a,输入正常的字母或数字。b,输入已存在的文件的名称;c,输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多255个字符,尝试输入256个字符,检查程序能否正确处理;d,输入默认值,空白,空格;e,若只允许输入字母,尝试输入数字;反之;尝试输入字母;f,利用复制,粘贴等操作强制输入程序不允许的输入数据;g,输入特殊字符集,例如,NUL及\n等;h,输入超过文本框长度的字符或文本,检查所输入的内容是否正常显示;i,输入不符合格式的数据,检查程序是否正常校验,如,程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示 6.1.2命令按钮控件的测试 a,点击按钮正确响应操作。如,单击确定,正确执行操作;单击取消,退出窗口;b,对非法的输入或操作给出足够的提示说明,如,输入月工作天数为32时,单击”确定“后系统应提示:天数不能大于31;c,对可能造成数据无法恢复的操作必须给出确认信息,给用户放弃选择的机会; 6.1.3单选按钮控件的测试 a,一组单选按钮不能同时选中,只能选中一个。b,逐一执行每个单选按钮的功能。分别选择了“男”“女”后,保存到数据库的数据应该相应的分别为“男”“女”;c,一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空; 6.1.4控件文本框的测试 a,直接输入数字或用上下箭头控制,如,在“数目”中直接输入10,或者单击向上的箭头,使数目变为10;b,利用上下箭头控制数字的自动循环,如,当最多数字为253时,单击向上箭头,数目自动变为1;反之亦适用;c,直接输入超边界值,系统应该提示重新输入;d,输入默认值,空白。如,“插入”数目为默认值,点击“确定”;或,删除默认值,使内容为空,单击“确定”进行测试;e,输入字符。此时系统应提示输入有误。

实验一输入输出接口实验

实验一输入、输出接口实验 一、实验要求 1、P1 口做输出口,接八只发光二极管。 2、P3.0,P3.1 作输入口接两个拨动开关 3.要求若P3.0单独闭合,则LED灯从L7-L0循环闪烁,每次亮一个,若P3.1单独闭合,则led灯从L0-L7闪烁,每次亮一个。若P3.0 P3.1同时闭合,则所有灯一起闪烁,闪烁间隔为1S。若P3.0 P3.1全部断开,则所有灯全不亮。 4、将闪烁间隔修改为30MS,观察现象。 二、实验目的 1、学习 I/0 口的使用方法。 2、学习延时子程序的编写和使用。 三、实验设备 1、IPC-610研华工控机一台, 2、伟福LAB2000P教学实验系统。 四、实验电路及连线 五、实验说明 1、P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当 P1口用为输入口时,必须先对它置1。若不先对它置1,读入的数据是不正确的。 2、8051 延时子程序的延时计算问题,对于程序 Delay: MOV R6,#0H MOV R7,#0H DelayLoop: DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET 查指令表可知 MOV,DJNZ 指令均需用两个机器周期,在 6MHz 晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为: ((256×2+2)×256+4)×2=263176

六、实验报告 1、解释为什么P1端口作为输入口时,需先对它置1,才能读取正确的外部输入数据? 2、画出完整的实验电路原理图 2、整理实验程序

连线 连接孔 1 连接孔 2 1 P1.0 L0 2 P1.1 L1 3 P1.2 L2 4 P1.3 L3 5 单脉冲输出 T0 实验二 外中断及定时、计数器实验 一、实验目的 1、掌握外部中断的运用方法,本实验中采用边沿触发模式。 2、学习 8051 内部 T0 T1 定时/计数器使用方法。 3、掌握中断处理程序的编程方法。 二、实验内容及要求 1、用单次脉冲申请外中断INTO ,采用边沿触发模式,在外中断处理程序中对输出信号灯LED6(P3.1控 制)进行反转(采用CPL 指令) 2、8031 内部定时计数器 T0,按计数器模式和方式2工作,对 P3.4(T0)引脚进行计数。将其数值按二进制数在 P1 口驱动 LED 灯上(L0,L1,L2,L3)显示出来。 3、用 T1作定时器中断方式计时,实现每一秒钟LED7(L7)(P3.0控制)灯闪烁一次 三、实验设备 1、IPC-610研华工控机一台。 2、伟福LAB2000P 教学实验系统。 四、实验电路及连线 注意: 本实验中,“单次脉冲”同时作为计数脉冲输入T0引脚,同时也引到引脚INTO 申请外部中断,本实验中将要求同时开放外部中断INTO 和T1的定时中断这两个中断。 五、实验说明 1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验T0使用的是计数器。T1使用的是定时器。 2.本实验中内部T0起计数器的作用。外部事件计数脉冲由 P3.4 引入定时器 T0。 单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能 检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON 。TMOD 用于设置定时器/计数器 连线 连接孔 1 连接孔 2 1 P3.0 L7

白盒测试方法习题及答案

[试题分类]:[04]白盒测试方法/[0400][综合]白盒测试方法 1. 下面不属于白盒测试能保证的是。 A. 模块中所有独立途径至少测试一次 B. 测试所以逻辑决策真和假两个方面 C. 在所有循环的边界内部和边界上执行循环体 D. 不正确或漏掉的功能 答案:D 分数:1 题型:单选题 难度:1 2. 因果图方法是根据()之间的因果关系来设计测试用例的。 A. 输入与输岀 B. 设计与实现 C. 条件与结果 D. 主程序与子程序 答案:A 分数:1 题型:单选题 难度:1 3. 使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准 A. 程序的内部逻辑 B. 程序的复杂程度 C. 使用说明书 D. 程序的功能 答案:A 分数:1 题型:单选题 难度:1 4. 软件测试中常用的静态分析方法是()和接口分析。 A. 引用分析 B. 算法分析 C. 可靠性分析 D. 效率分析 答案:A 分数:1 题型:单选题 难度:1 5. 软件测试中常用的静态分析方法是引用分析和()。 A. 引用分析 B. 算法分析 C. 可靠性分析 D. 接口分析 答案:D 分数:1 题型:单选题 难度:1 6. 白盒方法中常用的方法是()方法。 A. 路径测试 B. 等价类 C. 因果图 D. 归纳测试

答案:A 分数:1 题型:单选题 难度:1 7. 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看作是() A. 路径的集合 B. 循环的集合 C. 目标的集合 D. 地址的集合 答案:A 分数:1 题型:单选题 难度:1 8. 软件测试白箱测试是对软件的结构进行测试,下述: I.边缘值分析n.语句测试 皿.分值测试IV .路经测试 )是其应包括的内容。 A. I B. n和皿 C.皿和V D. n .皿和V 答案:D 分数:1 题型:单选题 难度:1 9. 在进行单元测试时,常用的方法是()。 A. 采用白盒测试,辅之以黑盒测试 B. 采用黑盒测试,辅之以白盒测试 C. 只适用白盒测试 D. 只适用黑盒测试 答案:A 分数:1 题型:单选题 难度:1 10. 白盒测试法一般使用于()测试。 A. 单元 B. 系统 C. 集成 D. 确认 答案:A 分数:1 题型:单选题 难度:1 [试题分类]:[04] 白盒测试方法/[0401]逻辑覆盖法 11. 关于条件测试错误的是() A. 可以检查程序中所包含的逻辑条件 B. 条件中包含的错误有布尔算子错误 C. 条件中包含的错误有布尔变量错误 D. 条件中包含的错误有接口错误 答案:D 分数:1 题型:单选题 难度:1

常用的测试方法和测试工具-1

常用的测试方法 一、黑盒测试 1.黑盒测试其实是一种功能测试,主要在软件的接口处进行。主要测试的以下几类错误: ·是否有不正确或遗漏的功能 ·在给出的接口处正确的输入是否有正确的输出 ·是否有数据结构错误或外部信息访问错误 ·性能上是否满足要求 ·是否有初始化或终止性错误 2.黑盒测试用例 ·等价类划分 等价类即输入域的子集合,测试用例设计时应设计出对应的有效等价类和无效等价类 ·边界值 边界值法是对等价类划分方法的补充,主要是测试发生在输入和输出域边界上的错误.等价类划分和边界值着重考虑输入条件,但测试时还应考虑输入条件之间的关系,各种条件的组合情况,即因果图 ·因果图 根据输入条件间的关系生成判定表,根据判定表的每一列来设计测试用例·功能图 包括状态迁移图和逻辑模型 二、白盒测试 1.白盒测试是对软件过程性细节做细致的检查。主要对软件程序模块做以下检 查: ·对模块的所有路径至少执行一次 ·对模块的所有逻辑判断,取“真”和“假”两种情况各执行一次 ·在循环边界和运行界限内执行循环体 ·测试内部数据结构的有效性 2.白盒测试用例 1)逻辑覆盖 ·语句覆盖 ·分支覆盖 对程序模块中的每个取真分支和取假分支执行一遍 ·条件覆盖 对程序模块中的每个判断的每个条件执行一遍 由于以上的测试用例都有较大的缺陷,所以一般不会使用,采用条件组合覆盖更为合理有效 ·条件组合覆盖(逻辑覆盖的主要方法) 2)基本路径测试用例 测试步骤: ①根据详细设计或源代码导出程序控制流图 ②计算程序环路复杂性,即独立路径的数目(一条新的路径必须包含

一条新边) ③生成测试用例(辅助工具:图形矩阵) 测试策略 一、单元测试 1.单元测试时主要对模块的以下5个方面进行检查: ·模块接口 ·局部数据结构 ·边界条件 ·独立路径 ·出错处理 二、集成测试 1.集成测试时主要要考察程序的以下几个方面: ·各个模块连接时,穿越模块接口的数据是否会丢失 ·一个模块是否会对另一个模块的功能产生不利的影响 ·各个子功能组合起来,能否达到预期的父功能 ·全局数据结构是否有问题 ·单个模块的误差累积起来,是否会被放大,从而达到不可接受的程度 2.集成测试的组织和实施中考虑的因素: ·选用何种系统集成方法来进行集成测试 ·各个模块连接的顺序 ·模块代码编制和测试进度是否集成测试的顺序是否一致 ·测试过程中是否需要有专门的硬件 3.集成测试完成的标志 ·成功执行了测试计划中规定的所有组装测试 ·修正了所发现的错误 ·测试结果通过了专门小组的评审 三、确认测试 1.确认测试流程: ·进行有效性测试,即在模拟的环境下(可能是开发环境),运用黑盒测试的方法,验证所没软件是否满足需求说明书列出的需求。对于测试结果与预期结果不相符进,要提交一份问题报告。 ·软件配置复查 软件配置复查的目的是保证软件配置的所有成份都齐全,各方面的质量都符合要求。 ·a测试和?测试 a测试是一个用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。?测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试 ·验收测试 验收测试时软件开发人员和QA人员也应参加,由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试结果。

Loadrunner 接口测试的两种方法

请求报文格式: < Publish > 123 456 2 123 456 Don't forget the meeting!

有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。 LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_s ubmit_data(),web_custom_request()。下面介绍两种我常用的方法: 方法一:使用web_submit_data() web_submit_data("insert", "Action=http://116.211.23.123/SNS/Publish.htm ", "Method=POST", "Referer=http://116.211.23.123/SNS/Publish.htm ",

"Mode=HTML", ITEMDATA, "Name= SNSID ","Value=6601",ENDITEM, "Name= UserID ","Value=123",ENDITEM, "Name= CommentsTypeID ","Value=1",ENDITEM, "Name= CommentsID ","Value=456",ENDITEM, "Name= AuthorID","Value=789",ENDITEM, "Name= CommentsContent ","Value=Just for testing",ENDITEM, LAST); 方法二:使用web_custom_request() char str[1000]; strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1 "); web_custom_request("Publish", "Url= http://116.211.23.123/SNS/Publish.htm", "Method=POST", "Referer=http://116.211.23.123/SNS/Publish.htm ", "Mode=HTTP", str, LAST); 这也是一种写法,可以跟web_submit_data互换。这种写法更利于拼接参数。 方法一适合一些xml结构的根元素下的子元素同处于根元素下面,且子元素数目较少的情况下,如果xml结构比较复杂,比如说根元素下面有多级子元素,或者xml树结构分叉较多的时候,我们可以先把x ml拼接成一个字符串然后通过web_custom_request()向服务器发送请求。 我们在做接口功能测试的时候会很注意接口的应答报文的信息,这时候我们可以通过LoadRunner 的日志信息查看或者可以通过web_reg_find()或者web_find()这样的API函数来统计接口的运行结果,推荐使用web_reg_find(),web_reg_find()和web_find()区别请大家百度一下,详细信息太多,在这里不便叙述。 因为web_reg_find()是注册型函数,所以应该放在web_submit_data()或者web_custom_request ()的前面。 如: web_reg_find("Text=0",//应答报文里边的信息 "SaveCount= StatusCodeCount", //统计查询字段的信息,如果找到值为1,如果未找到值为0 LAST);

白盒测试方法习题测验及答案

[试题分类]: [04]白盒测试方法/[0400][综合]白盒测试方法 1. 下面不属于白盒测试能保证的是。 A.模块中所有独立途径至少测试一次 B.测试所以逻辑决策真和假两个方面 C.在所有循环的边界内部和边界上执行循环体 D.不正确或漏掉的功能 答案:D 分数:1 题型:单选题 难度:1 2.因果图方法是根据()之间的因果关系来设计测试用例的。 A.输入与输出 B.设计与实现 C.条件与结果 D.主程序与子程序 答案:A 分数:1 题型:单选题 难度:1 3.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。 A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 答案:A 分数:1 题型:单选题 难度:1 4.软件测试中常用的静态分析方法是()和接口分析。 A.引用分析 B.算法分析 C.可靠性分析 D.效率分析 答案:A 分数:1 题型:单选题 难度:1 5.软件测试中常用的静态分析方法是引用分析和()。 A.引用分析 B.算法分析 C.可靠性分析 D.接口分析 答案:D 分数:1 题型:单选题 难度:1 6.白盒方法中常用的方法是()方法。 A.路径测试 B.等价类 C.因果图 D.归纳测试 答案:A 分数:1 题型:单选题

7.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看作是() A.路径的集合 B.循环的集合 C.目标的集合 D.地址的集合 答案:A 分数:1 题型:单选题 难度:1 8.软件测试白箱测试是对软件的结构进行测试,下述: Ⅰ.边缘值分析Ⅱ.语句测试 Ⅲ.分值测试Ⅳ.路经测试 ()是其应包括的内容。 A.Ⅰ B.Ⅱ和Ⅲ C.Ⅲ和Ⅳ D.Ⅱ.Ⅲ和Ⅳ 答案:D 分数:1 题型:单选题 难度:1 9.在进行单元测试时,常用的方法是()。 A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试 C.只适用白盒测试 D.只适用黑盒测试 答案:A 分数:1 题型:单选题 难度:1 10.白盒测试法一般使用于()测试。 A.单元 B.系统 C.集成 D.确认 答案:A 分数:1 题型:单选题 难度:1 [试题分类]: [04]白盒测试方法/[0401]逻辑覆盖法 11.关于条件测试错误的是() A.可以检查程序中所包含的逻辑条件 B.条件中包含的错误有布尔算子错误 C.条件中包含的错误有布尔变量错误 D.条件中包含的错误有接口错误 答案:D 分数:1 题型:单选题 难度:1 12.关于条件中包含的错误类型说法错误的是() A.关系算子错误 B.算术表达式错误 C.条件中包含的错误有布尔变量错误 D.条件中包含的错误有接口错误

相关文档
最新文档