前言:中文期刊网精心挑选了系统测试范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
系统测试范文1
摘要:
介绍了一款针对航空器上电子设备进行监测的系统的设计与测试方法。该系统可以完成数据的采集与传输、错误曼彻斯特码生成、消息监听等功能,其采用可编程逻辑器件(FPGA),在详细分析1553B总线协议的前提下,采用硬件编程语言VHDL,完成功能逻辑部分设计。最后通过现有的1553B总线通信网,搭建硬件测试平台,完成总体的设计实现与功能测试。
关键词:
1553B总线;信息监听;可编程逻辑器件;系统测试
一、引言
随着航空业的飞速发展,飞行器上出现了越来越多的功能各异的电子终端设备,这些终端设备绝大部分是由不同的设计者设计生产出来的,那么由不同设计者设计生产的终端是否可以在同一个航空总线系统中实现完美融合呢?拥有众多终端的总线系统上所传输的消息是否可以完整记录?当总线系统中出现错误的编码类型时,对终端是影响如何?这是飞行器设计制造者需要妥善解决的问题,并且也是众终端设计生产者迫切想要知道的问题[1]。本系统可以完成数据采集与传输,通过测试后,就解决了终端与总线的融合问题;此外,系统还可以生成若干错误类型的曼彻斯特编码,可以对总线上终端面对错误编码的反应进行测试;最后系统与计算机相结合可以完成总线网络的全信息监听,为飞行器设计与制造提供有效数据。
二、总体设计
根据对系统的功能设想,系统的组成大致分为如下几部分,如图1所示:时钟管理部分为中心逻辑器件提供时钟信号;配置口主要实现对中心逻辑器件的配置;USB接口主要实现系统与计算机的连接;RT地址和功能选择部分主要作用是选择系统的功能和设置系统的终端号;A/D采集部分完成数据的采集,将模拟信号转为数字信号;电源管理为系统各部分提供合适的电源;收发器和变压器连通总线和中心逻辑器件;最后中心逻辑器件选择FPGA。系统的数据流向主要有三条:其一,总线上数据经变压器和收发器进入中心逻辑器件,经处理后通过USB接口传至计算机,实现对总线的消息监听;其二,模拟信号经A/D处理后存入中心逻辑器件,收到发送命令后,经收发器和变压器发送至总线上;其三,收到发送错误码命令后,中心器件直接发出错误码,经收发和变压器发送至总线,用以测试总线网络中其余终端的反应[2]。
三、中心逻辑器件功能模块设计
本设计选择FPGA做为中心逻辑器件,中心逻辑器件功能模块的设计及完成是系统实现的重点和难点,也是我们系统设计及实现最耗费时间的部分。FPGA中功能模块大致有如下几个:编码器,主要是实现数据的曼彻斯特码化,然后发至收发器;译码器,主要是实现从总线上得到的数据进行译码,分析出有效数据或命令;数据整合和缓存,主要是完成对数据的加标处理及缓存转入计算机;协议处理模块,主要是完成对命令字的解读;数据采集模块是可调整部分,可根据用户要求灵活设计;错误数据发生模块,主要是生成不同类型的错误编码。具体划分如图2所示[2]。
四、仿真测试
系统的仿真测试平台主要由北京神州飞航科技有限责任公司生产并销售的AEC1553-31RT/S2型通信板卡和总线耦合器、耦合电阻搭建而成,通信板卡和总线耦合器、耦合电阻、计算机形成了一个小型的航空总线网络,我们可以利用这个网络,测试系统的总线监听功能,测试现场图如图3所示;另外中心逻辑器件FPGA中的各功能模块的测试主要利用QuartusII软件内嵌的在线信号分析工具SignalTapII,该模块可以让使用者实时、在线观测到相关模块的工作运行情况,例如图4所示;缓存模块FIFO的主要信号测试数据表明:触发信号为rdreq,检测时钟为读时钟,wrusedw有效说明存储容量半满,其值为80H时,给出读时钟和读使能,在以后每一个时钟读出16位并行数据。最后,对于系统的错误码发生功能,可以通过示波器直接观察,确认其错误类型。根据以上测试方法,测试后系统达到设计要求。
五、结论
该系统设计功能多样,随着航空业的发展,其应用面也会越发广泛,并且系统中有一部分可以根据用户要求进行灵活设计,适应度高。但是本设计仍然存在一定的不足:其一,功能选择,终端地址配置靠硬件实现,更改不灵活,该部分在未来可以结合配套软件做出设计修整;其二,数据采集设计,因为没有参考具体的用户要求,暂时应用逻辑器件片内存储,导致容量小,可以结合具体要求增添片外存储器,扩大容量;第三,错误编码以字为主,未能拓展至消息类型,尚有较大发展空间。随着更大的需求和更广的应用,系统的设计将会越来越完善,功能也将越来越强大。
参考文献:
[1]张义,张红旗.1553B数据总线用电缆阻抗的测试方法[J].光纤与电缆及其应用技术,2014,(3).
[2]牛茜.基于FPGA的1553B总线监测系统设计[D].太原:中北大学,2011.
[3]王诚,吴继华,等.AlteraFPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社,2005.
[4]夏宇闻.Verilog数字系统设计教程[第二版][M].北京:北京航空航天大学出版社,2008.
系统测试范文2
(一)测试输入要素自身分析
在银行管理系统中,系统功能输入主要包括文本框、下拉框、选取、日期等。测试输入要素自身分析如下:首先根据具体功能输入判断其合法性;然后确定输入要素规则中取值的有效等价类个数,每个要素规则的1个有效等价类为1个输入要素测试点;最后汇总所有输入要素的有效等价类ni=1∑ftpi,记为FTP。
(二)单一功能输入要素分析
单一功能输入要素分析是从需求文档出发,通过对每个单一功能可能涉及的规则进行输入要素测试点计数,求得该功能点的输入要素测试点数。首先按照需求文档功能框架对每个单一功能涉及的输入要素进行枚举。接着根据业务规则的要求,从输入要素的值域出发,分析可能的取值,确定其等价类。然后计算等价类组合总数,如果等价类取值之间有判定或者依赖关系,则输入要素之间等价类数相乘,否则相加。最后将单一功能输入要素所有等价类组合计数的测试点相加,汇总得到单一功能输入要素测试点nj=1∑sftpj,记为SFTP。
(三)组合功能输入要素分析
在银行管理系统中,组合功能是多个单一功能业务流、数据流的组合,包含多个组合实例。首先结合输入要素自身分析,得到组合功能中单一组合实例中的单一功能的输入要素个数,根据输入要素个数和组织级定义,计算出该功能相应的复杂度C,则该功能的输入要素测试点为1×C。然后汇总该组合实例中所有单一功能的输入要素测试点,得到组合功能中单一实例的输入要素测试点计数。最后枚举管理系统中所有可能的功能组合实例,所有功能组合实例输入要素计数点之和即为组合功能输入要素计数点nk=1∑mftpk,记为MFTP。
(四)测试劳动生产率
软件测试生产率包括测试设计生产率和测试执行生产率。影响测试设计生产率的因素有:测试用例的可重用性、测试用例的复杂度、人员熟练度等。影响测试执行生产率的因素有:测试用例的复杂度、测试用例的可执行性、人员熟练度、测试所需的软硬件环境的稳定性和可用性、测试数据的可用性、测试工具的复杂度、业务复杂度等。结合企业级和项目级劳动生产率,可以确定项目采用的测试劳动生产率TLC。通过以上分析,可以估算出基于输入要素分析的测试点总数,即测试工作规模TS=FTP+SFTP+MFTP。根据测试工作量=测试工作规模/测试劳动生产率,可以计算出技术活动工作量TAW。
(五)非测试技术活动工作量
非测试技术活动指测试过程中的测试计划撰写、测试环境准备、测试管理与沟通、测试总结等活动。在定性与定量结合估算的模型中,需要考虑非技术活动风险因素,包括测试人员经验、项目需求清晰度与稳定性、关联系统接口复杂度、测试条件完备性、测试资产要求、测试质量要求、测试全面性等。结合风险模型:RNTAW=NRNTAW×(1+beta)。其中,RNTAW为考虑风险因素非技术活动工作量,NRNTAW为不考虑风险因素非技术活动工作量为,beta=人员经验+需求清晰度与稳定性+关联系统接口复杂度+测试条件完备性+,根据项目经验,beta的取值约为-0.5~0.5。
二、结论
系统测试范文3
关键词:系统测试;软件开发;在线即时通信
中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2012) 18-0022-02
为了开发的软件满足用户需求,软件设计开发人员运用了大量分析、设计和调试方法,在分析设计的每个部分结束前,对相应的分析设计结果进行严格的审查和评定。由于人为能力有一定的局限性,审查很难发现所有的错误和缺陷,而且在编码调试阶段会引出大量的错误,在所设计的软件投入运行之后,这些缺陷和错误最终会暴露出来。而这可以通过系统测试来解决,系统测试就是在软件投入运行之前,对软件的需求分析阶段、概要设计阶段、详细设计阶段和编码部分的最终审查,是保证软件质量的关键步骤[1]。
一、系统测试的含义
系统测试是指为了发现软件的错误而执行程序的过程。系统测试的最基本任务是尽可能多的、彻底的检查出程序运行中的错误,提高软件系统的可靠性,从而能检验出系统是否存在问题。在软件开发的整个过程中,通常使用大量保证软件质量的方法分析、设计和实现软件,但仍然难免会出现一定的错误,从而导致软件产品中隐藏一些错误和缺陷。尤其是对于规模较大、复杂性较高的软件更会如此。在这些错误和缺陷中,有些是致命的,如果不排除掉,就可能会导致重大损失。基于这种情况迫使设计者必须认真计划、彻底地进行系统测试[2]。
二、系统测试的原则
系统测试的原则是必须最大限度地模拟出被测试软件的实际运行环境,以保证测试的可靠性[3]。
在进行有效无误的系统软件测试之前,系统测试工程师必须了解软件系统测试的基本原则:
(1)查找错误的源泉。系统测试的最终目标在于查找软件错误,而最严重的错误(用户角度)就是完成的用户需求分析模型是错误的。
(2)系统测试计划要在需求分析模型完成时形成,详细的系统测试过程要在软件的任意代码产生之前就进行计划和设计。
(3)Pareto原则。Pareto原则意喻在系统测试中发现的错误有80%可能来源于程序模块中的20%。
(4)系统测试应按照有“小规模”到“大规模”的方式进行。最初的测试要把焦点定位在单个程序模块上,然后在逐渐向集成的模块簇转变,最后在整个系统中寻找错误。
(5)穷举测试是无法实现的。选择尽可能充分覆盖程序逻辑关系的数据。
(6)系统测试的实现要由第三方来独立完成。创建系统的软件设计工程师不是构造软件测试的最佳人选。
系统测试工作人员通常站在用户的角度(第三方)来把握系统,并且在软件开发的整个阶段中时刻与用户进行不间断的交流和沟通,理解系统业务需求、理顺业务关系,测试系统的可靠性、可用性、正确性、完整性和可维护性等。依据软件开发各阶段的规格说明和程序的内部结构认真设计各种测试用例,用这些精心设计的测试用例去执行程序进行系统测试,以发现程序的错误。软件测试所追求的是通过各种不同的系统测试方法,发现软件中错误,完善丰富的错误诊断信息,以便于改正错误,达到预错误的发生,减少软件相应开发费用的目标[1]。
如果系统测试对软件的审查不够严格,引起了大量的错误,待到那时,不仅要付出很高的代价来改正这些错误,还会造成无法弥补的损失。系统测试在软件整个生命周期中主要经历两个阶段:通常在编写出每一个模块之后就对它做必要的测试,这称为单元测试。编码与单元测试属于软件开发生命周期中的同一阶段。在结束这个阶段之后,对整个软件系统还要进行各种不同的综合测试,这是软件生命周期的另一阶段,即测试阶段[2]。
三、系统测试的方法
黑盒测试和白盒测试是系统测试的基本方法。这两种方法主要是依靠一组精心挑选的测试用例为输入执行程序,对程序的行为进行逐个检验,确定其是否与软件预期的结果相符。因此,对系统进行实时性测试时,要借助相应的测试工具对应用程序的算法复杂度和操作系统的任务调度进行分析测试。从测试是否针对具体实现算法的角度和系统的内部结构来看,软件测试可以分成黑盒测试和白盒测试。
(1)黑盒测试又称为功能测试,它是通过测试输入和输出来检测每个功能模块是否都能正常使用。在测试过程中,把每个功能模块程序看作是一个不能打开的黑盒子,在完全不考虑其程序内部结构和内部特性的情况下,在程序的输入和输出接口处进行测试,它仅仅检查程序的每个模块功能是否按照需求规格说明书的规定正常运行,以及程序是否能准确地接收输入数据而输出正确的结果信息。黑盒测试主要是从程序的外部结构出发,不考虑程序本身的内部逻辑结构,主要针对的是软件界面和软件基本功能进行测试。黑盒测试是站在用户的角度,从输入数据与输出数据的对应关系出发进行测试的。这种测试方法的缺点是如果程序外部特性本身有问题或规格说明的规定有误,用墨盒测试方法是检测不出来的。
(2)白盒测试又称为逻辑驱动测试或结构测试,它主要按照程序内部的结构来进行测试的,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都是按照预定要求进行正确工作的。这种方法是把被测试对象看作一个打开的盒子,测试工程师依据程序内部的逻辑相关信息,设计或选择对应测试用例,对程序所有可能的逻辑路径进行测试,通过在不同的测试点检查程序的状态,确定实际的状态是否与预期的状态一致[4]。
四、系统测试举例
这里以用户自行开发的一款在线即时通信系统为测试用例进行系统测试,本系统实现的通信功能极其复杂,运用多个线程进行前台和后台的消息发送和接收。使用ServerSocket创建要连接的端口,线程连接socket打通前后台的消息通道。在线即时通信系统登录界面如图1所示。
根据这一逻辑,在线用户登陆成功后就将登陆ID保存在线程中,打开在线好友通信窗口时,也会将接收者的ID进行保存,这样就能正确保证消息的发送者和接收者。消息的传递会通过前台发送给连接后台的线程,经后台线程处理后,找到接收者,再将信息进行转发,这样就完成了好友间的在线即时通信。同时,在用户登录时,也会进行上线提示,将自己在线情况通知给所有在线用户,又将所有在线用户的状态进行显示。这样就能正确的显示在线用户列表,也能准确的实现在线用户间消息传递。
在线即时通信模块功能测试过程和要求如下:
1.登录模块
(1)测试描述。用户需正确输入用户名和密码,才能正确登录并跳转到好友列表界面。系统默认用户名为1-50之内的任意数字,密码为123456。
(2)测试步骤。首先打开在线即时通信登录界面,输入用户名和密码;然后点击登录按钮;最后确认是否能够正常登录。
(3)合格标准。输入正确的用户名和密码后,能够成功登录,并跳转到我的好友列表;或者用户名和密码不正确时会弹出相应的错误提示。
2.好友列表界面
(1)测试描述。登录成功的用户在好友列表会以彩色头像显示,后登录的用户会通知所有在线用户更新好友列表。双击在线好友能正确打开通信对话框。
(2)测试步骤。首先由登录用户跳转到好友列表,确认好友列表可以将自己的头像设置成彩色在线状态;然后再登录一个用户,确认能正确通知所有在线用户进行好友在线更新,鼠标滑过在线用户时,确认是否有不同颜色提示;最后双击在线好友头像,能实时打开通信对话框。
(3)合格标准。登录成功在好友列表显示自己的头像为彩色在线状态,并获取所有在线好友;后登录的用户会通知所有在线用户更新自己的在线好友列表;鼠标滑到在线用户名上时,用户名由黑色变为红色;鼠标滑过时,又会从红色变为黑色;双击在线好友,能成功打开通信对话框,发送者和接收者均正确。
3.通信界面
(1)测试描述。在线好友间的消息能够准确发送和接收,并正确显示在通信界面上。
(2)测试步骤。首先互相打开在线好友的通信界面;然后在文本框中输入通信内容,可以是任意字符,点击发送按钮;最后确认发送的消息是否能准确显示在接收者的通信界面上。
(3)合格标准。输入任意通信内容,点击发送后,接收者的通信界面上即时显示好友发送的消息,同时好友也能接收返回的信息,并正确显示。
五、总结
将系统测试的基本方法用于软件开发过程中,可以增加软件的可靠性,使软件在投入运行之后基本不出错误,或者错误很少。对实际开发的软件系统按照测试步骤进行测试,满足测试通过原则的软件系统安装到用户现场能够顺利实施和运行,得到用户认可。
参考文献:
[1]马瑞芳,王会燃.计算机软件测试方法的研究[J].小型微型计算机系统,2009,12.
[2]张新华,何永前.软件测试方法概述[J].科技视界,2012,2.
[3]郭远东,黄荣瑛.基于模块化设计的嵌入式软件测试方法[J].单片机与嵌入式系统应用,2005,1.
系统测试范文4
介绍了铁路区间信号系统测试评估平台的研制背景,给出平台的硬件分布式系统和软件系统结构。简要介绍了平台软件系统各个子系统的功能。阐述了平台专用数据库的设计过程。
【关键词】
区间信号;数据库设计
铁路区间信号系统是安全性苛求系统。在区间安全性控制和防护设备的研制、生产、使用过程中,运用现代技术手段对设备的可靠性和安全性进行科学、高效、全面、按标准的检测,以取代目前国内主要依靠专家经验进行的手工测试和实际线路试运行的非完善的方法,是十分迫切和必需的。
1.区间信号系统测试平台的结构
铁路区间信号系统测试评估平台(以下简称平台)硬件采用分布式结构,如图1所示。平台由主控机、数据库机和仿真机组成。被测系统通过网络与平台互联。网络通信采用TCP/IP协议。
平台软件系统结构框图如图2所示。其中:主控及测试案例自动生成子系统一方面向仿真子系统发送区间状态的仿真设置命令,另一方面动态监控现场信号状态等,实现测试案例的动态扩展和连续加载、测试结果的动态判定,并将测试结果存入数据。
传输信道仿真及区间现场仿真子系统为被测系统提供了一个模拟的传输仿真及现场环境。数据采集与处理子系统在被测系统与仿真信道之间进行数据处理及转换。测试用基础数据生成子系统通过读取区间拓扑数据文件,生成区间测试用基础数据。专用数据库子系统负责存储各种测试用基础数据和测试结果。
2.平台专用数据库设计
平台的数据库不仅是一般意义上的数据库应用,它还负责协调各个子系统之间的数据联系。平台数据的类型与结构在一定程度上反映了整个平台的测试水平。基于对平台数据以及平台分布式结构的考虑,经过深入的比较,选择SQL Server 作为平台的数据库开发工具。数据库设计一般分为四步:需求分析、概念设计、逻辑设计和物理设计。应用数据库设计理论,平台专用数据库设计的具体步骤如图3所示。
2.1需求分析
平台的数据按其对时效性的不同要求可以分为动态数据和静态数据两大类。动态数据是指具有严格时效性的数据,并且随着时间推移而动态刷新;静态数据则指相对稳定,不随时间变化的数据。
2.1.1动态数据及其传输
测试结果信息。平台的测试结果记录是一种比较特殊的动态数据,包括经信道传输前后的实时电信号(数据)。它们是评价被测系统的重要依据,必须完整、正确地记录。
动态数据传输首先必须满足实时性要求,当不能及时传送时,根据数据特性的不同,或丢弃,或重发。例如被测系统发送的数据如不能及时传送,或数据有误,则该数据必须丢弃。主控机发给仿真子系统的故障及干扰仿真命令、列车运行仿真命令,在网络传输出现差错的情况下,为了确保命令被正确执行,必须重发。
2.1.2静态数据及其复制
生成和校验正确后的静态数据,在平台对被测系统进行测试的过程中不再变化,具有相对的稳定性。同样需要对静态数据进行存储、查询、校验和修改等操作。
区间现场拓扑数据。包括闭塞分区、发送端、接收端的位置和相互关系。这种描述有两方面用途,一方面用于现场仿真的动态显示,另一方面是作为测试用基础数据生成的原始依据。静态数据的复制是通过开放式数据库互连(ODBC)机制实现的。
2.2概念设计
在数据库设计中,笔者使用实体-联系(ER)模型作为概念设计的工具,得到概念设计的E-R图。E-R图由实体、联系和属性3个基本成分组成。测试用基础数据所处理的基本实体是城市轨道交通区间的信号设备:接收端、发送端、闭塞分区;设备之间的关系也就是最直接的实体间联系。通过E-R图,可以十分清楚地描述测试用基础数据的结构。图4为列车运行线路数据的E-R图。
2.3物理设计
物理设计要根据具体的数据库管理系统(DBMS)和相应的操作系统、计算机硬件所能支持的存储结构、存取方法以及资源来进行设计。SQL Server 提供索引或表键机制来帮助SQL Server 优化对查询的响应。在测试平台上,对结果数据的查询,是将记录计数号与测试项目的组合作为索引。这是因为大多数的查询都要直接或间接地将该两项作为SQL语句中WHERE子句后的首列。
3.结语
建立在SQL Server上的平台专用数据库要兼顾通用数据库的设计要求和区间测试平台的特殊性。只有综合考虑这两方面的因素,才能使专用数据库既高效又安全。当然,随着平台水平的不断提高,专用数据库的功能必将随之扩展,日趋完善。
参考文献:
[1]
吴芳美.铁路安全软件测试评估[M].北京:中国铁道出版社,2001,23
[2]荆剑.基于计算机联锁安全软件测试评估平台的CL IEN T/ SERV ER 数据库[学位论文][D].上海:上海铁道大学电信系,1999:23
系统测试范文5
关键词:多核嵌入式操作系统;时间性能;测试方法
中图分类号:TP316.2 文献标识码:A 文章编号:1007-9416(2017)02-0184-04
在单核操作系统中,内核负责任务管理、资源管理、中断管理、事件处理及通信管理等工作。在多核操作系统中,这些功能同样具有,除此之外,还包括核间通信与同步、核间任务调度管理、资源共享及设备管理等部分。性能方面主要考虑任务切换时间、中断响应时间、运算性能、信量延迟时间、内存读写性能等常规的嵌入式实时操作系统性能以外,针对多核还需要检测核间同步时间,针对图形的操作系统检测图形的运行性能,针对文件系统进行文件读写性能。以下是针对某国产多核嵌入式实时操作系统的测试方法。
1 功能测试
针对多核嵌入式实时操作系统以下几方面的功能进行测试:
多核管理功能:操作系统能在系统初始化阶段,完成引导可用的所有处理器核。支持处理器集合操作,对处理器核能够进行启停状态查询的功能进行测试,通过对已加载被测系统的目标机上电,在上电完成后监测所有处理器核的启停状态,验证多核管理功能的正确性。
多核同步功能:提供自旋锁、原子操作、内存屏障等机制实现多个处理器核间数据可重入的功能进行测试,通过运行测试程序,构建多个任务,对比使用和不使用自旋锁的方式访问共享的临界资源,监测这些任务对临界资源访问的正确性(符合数据的可重入),验证多核同步功能的正确性;通过在使用内存屏障的情况下,多任务并发访问同一全局变量,通过对比编译之后的汇编代码及运行结果,验证多核环境下内存屏障能够保证数据运算顺序的正确性;通过运行测试程序,对启用原子操作和不启用原子操作时程序运行结果进行对比,验证多核环境下启用原子操作能够保证运行结果的正确性。
多核调度功能:支持多核并行运行,支持核心可抢占、提供基于优先级抢占调度、时间片轮转调度,保证任务不会有饿死的情况;采用统一的任务队列管理,基于高效的核间中断机制实现多核任务统一调度,赋予多核环境中各CPU调度本地就绪队列的能力;支持处理器亲和性,提供任务和中断绑定到指定处理器核的编程接口,用户可以根据应用的需要把任务绑定到指定的处理器核上运行的功能进行测试。通过运行测试程序,测试多种优先级任务组合情况下,同时运行的环境下监测任务调度情况,查看系统中各个CPU的负载情况,验证多核调度功能的正确性。设置了如下几种优先级任务组合情况,查看是否依据任务优先级进行调度,假设任务优先级由0~255个级别。
运行4个任务,优先级相同(250),不指定运行在哪个cpu上,观察4个任务在cpu上的分布情况,之后运行4个新任务,优先级逐一提高(251、252、253、254),观察任务抢占调度。是否高优先级任务抢占低优先级任务。四个核上运行任务为(251、252、253、254),待这4个任务完成之后再运行优先级为250的4个任务。
运行4个任务,优先级各不相同(250、251、252、253),不指定运行在哪个cpu上,观察4个任务在cpu上的分布,之后运行4个新任务,优先级逐一提高(251、252、253、254),观察任务抢占调度。是否高优先级任务抢占低优先级任务。251的抢250、252的抢251、253的抢251、254的抢252,此时四个核上运行的任务应该为254、253、253、252,待任务运行完之后再按顺序调度252、251、251、250的任务。
运行4个任务,优先级相同(250),不指定运行在哪个cpu上,观察4个任务在cpu上的分布,之后运行4个新任务,优先级逐一提高(251、252、253、254),观察任务抢占调度;之后动态调整优先级252任务的优先级到249,观察任务抢占调度。是否高优先级任务抢占低优先级任务。动态调整优先级252任务的优先级到249后,252任务运行的核被优先级为250的任务抢占。
运行4个任务,优先级各不相同(250、251、252、253),指定cpu(对应顺序0、1、2、3),观察4个任务在cpu上的分布。是否每个任务运行在指定的核上。
运行4个任务,优先级各不相同(250、251、252、253),指定cpu(对应顺序0、1、2、3),观察4个任务在cpu上的分布;之后运行4个新任务,不指定CPU,优先级254,观察任务抢占调度。是否高优先级任务抢占低优先级任务。四个核上运行的任务应该均为254,待任务运行完之后再按指定的CPU调度253、252、251、250的任务。
运行4个任务,优先级各不相同(250、251、252、253),指定cpu(对应顺序0、1、2、3),观察4个任务在cpu上的分布;之后运行1个新任务,优先级252,指定CPU0(对应优先级250的任务),观察任务抢占调度。是否高优先级任务抢占低优先级任务。优先级为252的任务抢占优先级250的任务运行在CPU0上,待任务运行完之后CPU0再运行优先级250的任务。
运行4个任务,优先级各不相同(245、246、247、248),不指定cpu,观察4个任务在cpu上的分布,之后运行4个新任务,优先级为250、251、252、253,指定CPU(对应顺序0、1、2、3),观察任务抢占调度。是否高优先级任务抢占低优先级任务。优先级为250、251、252、253的任务运行在指定的核上,待运行完毕后再运行优先级245、246、247、248的任务。
运行4个任务,优先级各不相同(245、246、247、248),指定CPU(对应顺序0、1、2、3),观察4个任务在CPU上的分布,之后运行4个新任务,优先级为250、251、252、253,指定CPU(对应顺序3、2、1、0),观察任务抢占调度。是否按照指定的核进行任务抢占,250抢248运行在CPU3上,251抢247运行在CPU2上,252抢246运行在CPU1上,253抢245运行在CPU0上,待新任务运行完毕后,优先级245、246、247、248的任务再运行在指定的核上。
运行2个任务,优先级各不相同(250、251),指定CPU0和1,观察2个任务在CPU上的分布;之后运行1个新任务,优先级252,指定CPU0(对应优先级250的任务),观察任务抢占调度。高优先级任务抢占低优先级任务。优先级252的任务抢占CPU0,待运行完毕后CPU0再运行优先级250的任务。
运行2个任务,优先级各不相同(250、251),指定CPU0和1,观察2个任务在CPU上的分布;之后运行1个新任务,优先级252,指定CPU0(对应优先级250的任务),观察任务抢占调度;之后取消优先级250任务的CPU绑定,观察任务抢占调度。高优先级任务抢占低优先级任务。优先级252的任务抢占CPU0,取消优先级250任务的CPU绑定后,优先级250的任务选择空闲CPU继续运行。
2 性能测试
2.1 任务切换时间
任务切换时间,即CPU 的控制权由运行任务主动转移到另外一个就绪任务时所花费的时间。任务切换时间包括保存当前运行任务上下文的时间、选择下一个任务的调度时间以及将要运行任务的上下文恢复时间。
为了测试任务切换时间,需要制造任务之间的切换事件。在非抢占情况下,制造的测试场景是让当前正在执行的任务激活另一个任务,然后自身挂起,那么,被激活的任务将处于就绪状态,从而引起调度。切换过程包含了一系列的操作,如当前任务上下文的保存、新任务上下文的恢复等,这一过程所需要的时间开销就是任务切换时间。
设当前正在运行的任务为TASK[i],将要运行的新任务为TASK[i+I]。用T1表示新任务TASK[i+I]的激活时刻,T2表示新任务TASK[i+I]表示新任务开始运行的时刻,可以用T2.T1来近似地表示两个任务之间的切换时间。
测试用例设计,构建my_test_performance工程,通过在任务一中调用pthread_suspend(此处任务调度函数为Posic通用接口)挂起任务二,之后调用pthread_resume恢复任务二的执行,插桩获取从调用pthread_resume到任务二开始执行之间的时间,测试多核环境下的任务切换时间。
2.2 任务抢占时间
任务抢占时间,即系统将控制权从低优先级任务转移到高优先级任务所花费的时间,它包括识别引起高优先级任务就绪的事件,比较两个任务的优先级,最后进行任务的切换。
构建my_test_performance工程,通过在任务一中调用pthread_suspend挂起任务二,之后调用pthread_resume恢复任务二的执行,插桩获取从调用pthread_resume到任务二开始执行之间的时间,测试多核环境下的任务响应时间。
2.3 中断响应时间
中断响应时间,即从中断产生到开始执行中断处理程序的第一条指令之间的时间间隔。主要由系统锁中断时间和中断执行准备时间组成。
系统中断是一种重要的异步事件,使用中断的目的在于提高系统的效率。避免CPU对某些事件的轮询,占用资源。在中断驱动的系统中,CPU运行正常执行程序,当输入输出设备需要服务时,输入输出设备会通过中断的方式通知CPU,CPU通过中断服务程序对其作出快速的反应。
测试时制造场景IntrResp_test工程。安装用户自定义异常处理程序,之后触发中断,通过sys_timestamp获取从中断触发时刻到进入异常处理程序所需时间,得到多核环境下的中断响应时间。多次测试取最大值。
2.4 运算性能
多核设定不同的参与计算的CPU核数进行各种典型计算,比对消耗的运算时间,测试多核环境下CPU计算性能。PI运算、n皇后算法、Fibonacci数列算法。
此处同时还移植Linux平台测试工具CPU2006,在操作系统上运行。获取bzip、specrand、libqua、hmmer等运算处理时间。
2.5 信号量延迟时间
信号量延迟时间,即一个任务释放信号量到另一个任务等待信号量的任务获得信号量的时间间隔。当无任务等待信号量时,信号量延迟即为其释放操作和获取操作所需时间。当信号量的等待队列上有阻塞等待的任务时,信号量延迟时间包含从等待队列中解除阻塞任务,到该任务被调度执行的时间间隔。
2.6 核间同步时间
通过构建cpc_call_test工程,测试多核环境下的核间同步时间。
运行my_test_performance工程。通过启动两个优先级相同任务,任务1调用spin_lock关任务抢占再spin_unlock开抢占,任务2也调用spin_lock关任务抢占,使用Testbed RtInsight工具插桩获取从任务1调用spin_unlock开抢占到任务2spin_lock关任务抢占之间的时间,测试多核环境下的核间同步时间。多次测试取最大值。
2.7 内存读写速度
程序代码按预先分配好的地址空间存放在ROM中,不可能重新分配地址,程序的最终加载地址必须生成程序时重新分配,由于数据存储在RAM中,系统要分别对代码和数据定位,同时,为了节省昂贵的RAM,需要确定ROM中的只读数据和可变数据,大量的只读数据不用传到RAM中。嵌入式系统存储管理不仅仅包括RAM(片内RAM,SRAM)管理, 还包括ROM(MASK-ROM、FLASH)管理及虚拟内存管理(仅对含有MMU的MCU/CPU)。本文不论虚拟内存管理。嵌入式系统的内存管理可以细分为:
全局内存管理:任务共享数据管理及设备驱动的内存管理。
虚拟内存管理:主要用于需要大内存并且FLASH大的情况,虚拟内存管理是页式管理。
局部内存管理:使用全局内存管理时要内存管理状态为malloc_mem_null时调用全局内存管理并设为临界态。
系统内存管理:只能由系统使用的内存。
使用mbw测试程序进行用户内存读写速度进行测试,包含MEMCPY、DUMB、MCBLOCK(固定块大小的MEMCPY测试,默认块大小262144)。导入mbw工程,分别以参数50调用mbw运行测试,获取运行结果。
2.8 文件读写速率
简单的嵌入式系统没有文件系统的支持,也能运行的很好,但对于现代嵌入式系统,需要管理和传输固态硬盘或U盘上的文件数据,文件系统必不可少。文件系统应具有大容量持久性存储数据管理支持功能和文件可携带。文件系统可以放在闪存Flash中,当系统启动时引导程序将文件系统拷贝到RAM中执行。一个嵌入式多任务文件系统主要具有如下功能:
实现文件命名、存取、更新及保护数据的基本功能。
提供嵌入式系统与其他系统之间的数据传输功能,处理多个用户文件I/O存取,具有文件共享功能。
具有逻辑组织数据的能力,采用随机存取数据方法,使系统能快速查找信息。
支持设备无关性,使应用程序文件操作独立于存储介质,文件操作在其所支持的每个设备上产生同样的结果。
兼容多个文件系统(FAT16,FAT32),标准的I/O接口(ANSI C、POSIX或WIN32)。
支持多种存储介质(如固态硬盘和U盘)的可靠存储。
文件系统的实现需要解决文件和目录的存储、存储介质空间的管理工作。嵌入式文件系统测试的重点在性能测试,使用iozone工具进行测试。
U盘读写速率:
使用performance_test工程,调用iozone("-i 0 r 32k s 32m")和iozone("-i 1 r 32k s 32m")分别测试文件读写速率。
(-i #n 指定的测试项,n的值为0到12,其中0=write/rewrite, 1=read/re-read。-r 为指定的文件块大小,以KB为单位。-s 为指定的文件大小,其单位为MB。)
performance_test,在C中运行iozone:
mount("dosfs","/dev/umass0p1","/c")
sp iozone,"-i 0 -i 1 -r 32k -s 32m"
2.9 图形性能测试
对于GUI图形系统的测试修改通用的性能工具DMA进行。
重点测试对于系统绘制矩形、直线、填充矩形的时间进行测试:
加载gtk_demo_new工程,通过调用canvas.c文件中的 do_canvas_test1函数,在画布上使用surface->DrawRectangle函数,得到画矩形的时间。
加载gtk_demo_new工程,通过调用canvas.c文件中的 do_canvas_test1函数,在画布上使用surface->DrawLine 和surface->DrawArc函数,得到画线的时间。
加载gtk_demo_new工程,通过调用canvas.c文件中的 do_canvas_test1函数,在画布上使用surface->FillRectangle函数填充矩形的时间。
另外对于GUI图形系统的内存使用情况进行测试。对比加速和非加速情况下内存使用情况:
加载gtk_demo_new工程,设置canvas.c文件的 do_canvas2函数, 窗口大小为400*300,编译下载到目标机,通过调用 do_canvas_test2和mi函数记录打开窗口后的内存使用情况,关闭400*300的窗口,通过调用mi函数记录打开窗口后的内存使用情况,比较内存差值。
加载gtk_demo_new工程,设置canvas.c文件的 do_canvas2函数, 窗口大小为800*600,编译下载到目标机,通过调用 do_canvas_test2和mi函数记录打开窗口后的内存使用情况,关闭800*600的窗口,通过调用mi函数记录打开窗口后的内存使用情况,比较内存差值。
加载gtk_demo_new工程,设置canvas.c文件的 do_canvas2函数, 窗口大小为1024*768,编译下载到目标机,通过调用 do_canvas_test2和mi函数记录打开窗口后的内存使用情况,关闭1024*768的窗口,通过调用mi函数记录打开窗口后的内存使用情况,比较内存差值。记录打开关闭1024*768的窗口所使用的内存差值。
加载GTK_DMA工程,确认配置文件中勾选图形系统配置和显示驱动,设置df_dok_2.c中PRIMARY为0(开启DMA加速,屏下)执行df_dok_demo2(0,0)命令获得测试结果,设置PRIMARY为1(关闭DMA加速,屏上)获得测试结果。得到开启和关闭硬加速的情况下对比数据。
3 安全性测试
操作系统安全评测的基础是需求说明,即把一个操作系统称为“安全”的真实含义是什么。一般来说,安全系统规定安全特性、控制对信息的存取,使得只有授权的用户才有读、写、建立或删除信息的存取权等。主要对以下几方面进行测试:
测试嵌入式操作系统的死锁检测机制。系统可以检测到死锁并打破死锁。
测试可能发生优先级反转的各种情况下,系y防止优先级反转的措施。系统防止优先级反转。
测试引用无效内存地址的情况下,系统能否进行出错处理。系统进行出错处理。
测试系统出现异常状况(例如:虚拟存储区缺页、算术溢出、非法操作码等)时,操作系统能否检测到异常错误并进行处理。操作系统能检测到异常错误,并由异常处理程序进行处理。
测试应用程序资源使用超出范围时,操作系统的处理能力。系统进行出错处理。
测试系统的内核运行状态监视机制。系统提供内核运行状态监视机制。
测试系统的内核故障检测能力。系统能成功检测到故障,并进行出错处理。
测试系统的应用故障检测能力。系统检测到故障并终止故障运行。
测试安全关键数据的冗余备份机制。提供安全关键数据的冗余备份。
在具有内存管理单元(MMU)的硬件平台上;设计并运行应用进程试图对内核数据进行访问的测试用例,测试系统能否给出出错提示。系统给出出错提示。
在配置网络通信模块时,设计并运行系统在一个时间段内的并发会话数量超过最大值的测试用例,测试系统能否给出出错提示。系统给出出错提示。
在配置网络通信模块时,测试操作系统能否提供端口访问控制。提供端口访问控制。
在配置网络通信模块时,y试系统对非法攻击的检测、预警和防范机制。系统提供检测、预警和防范机制。
具体方法包括:
测试方法:采用人工模拟故障的方法,验证嵌入式实时操作系统在出现异常时是否会采取保护措施不影响其他任务的执行;在操作系统使用过程中输入错误数据,验证操作系统是否具有提示或报警功能,系统资源监控功能在系统监控测试项中进行。判断准则:嵌入式实时操作系统在出现异常时能够采取保护措施不影响其他任务的执行,应对用户的错误输入具有提示或报警功能。
测试方法:操作系统与用户应用地址空间进行隔离,用户空间和内核空间将映射到不同的地址空间。用户应用地址空间进一步基于MMU机制对应用构件进行地址空间隔离,不同的应用构件将占用不同的地址。一个应用构件访问其它应用构件的地址空间时将发生异常。同时对构件中的任务栈空间作了栈溢出保护,当构件中的任务出现栈溢出时将会触发异常。对构件中的文本段也作只读保护,当试图改写时,将发生异常。判断准则:嵌入式实时操作系统在出现异常时能够采取保护措施不影响其他任务的执行,应对用户的错误输入具有提示或报警功能。
测试方法:系统在发生TLB无效异常、保留指令异常、协处理器不可用异常以及浮点异常时,若系统未掉电将能通过日志服务记录故障发生时的CPU异常信息、源文件名、行号、时间、寄存器信息、栈回溯、错误地址以及附加信息等内容。判断准则:嵌入式实时操作系统在出现异常时能够采取保护措施不影响其他任务的执行,应对用户的错误输入具有提示或报警功能。
系统测试范文6
【关键词】 智能化变电站 二次系统 检测调试 比对试验
1 引言
非常规互感器的数字化输出特性和高速以太网组成变电站数据采集传输系统,以及基于IEC61850标准实现变电站内设备连接的高速化、网络化,通过站控层、间隔层、过程层真正实现数据、资源共享和智能化应用,是数字化变电站最鲜明的特点[1]。
与常规变电站相比较,智能化变电站二次系统的测试设备、方法及手段均发生深远变化,如非常规互感器(NCIT)、合并单元(MU)等,由于是在物理层面上隔离、联系一次设备和二次设备的全新装置,传统的检测方法和手段均不适用,这方面相关的研究和工程化应用都较缺乏。国内外科研机构、测试设备生产厂家提供的测试设备往往不具备测试这些装置的功能,只是将传统的模拟量输出转换为数字量输出,有的只能进行单项目调试、有的没有考虑到智能化变电站的工程化应用[2-4]。所以,对智能化变电站二次系统的测试设备、测试方法及测试手段进行深入研究,是非常有必要的。
2 智能化变电站测试的要求和必要性
要实现智能变电站二次系统的测试,主要完成智能设备制造商家出厂单装置调试、第三方试验验证中心进行系统级联合检测调试、安装运行单位现场安装调试及现场性能调试。
其主要内容为设备制造厂家出厂调试、第三方试验验证中心进行系统级联调、安装运行单位现场安装调试及现场性能调试等相关内容。
设备制造厂家出厂调试主要是对智能站设备和装置从硬件检查、功能测试、性能测试、稳定性测试进行试验。
第三方试验验证中心进行系统级联调主要对智能变电站的保护控制装置作为一个整体系统,进行协议测试、网络测试等,检验智能站全站实现的一致性,满足IEC61850系列标准和工程实施规范。
安装运行单位现场安装调试及现场性能调试包括二次系统性能测试和系统投运调试。该调试在现场所有二次设备安装完成后进行,对二次系统、装置进行功能及性能测试,以达到符合运行条件的目的。
启动调试是在智能变电站采用非常规互感器后,无法通过传统的通流、加压及极性试验对二次交流系统在实际带电运行时能否正常工作进行验证,应通过相关试验仪器对全站二次交流设备进行试验验证,使之符合运行要求[5]。
3 现场测试的主要内容分析及方案的提出
智能变电站现场二次系统的试验涉及范围较广,这里主要对一些和常规变电站不同的试验项目进行分析,对试验的相关内容及试验手段进行探讨,对试验指标和要求进行进一步说明。
3.1 网络性能测试
对于智能变电站,按照对网络系统的功能的实现和性能的要求,重点应对网络数据吞吐量、数据转发时延及数据丢包率等进行测试。吞吐量测量交换设备的数据包转发能力,通常指在不丢包条件下每秒转发包的极限。一般可用二分法和步进法查找该极限点。丢包率测试交换设备在不同负荷情况下丢弃数据包与应转发数据包的比例。不同负荷通常指线路上传输包的最高速率,以最高速率的10%递增进行测试[6]。
3.2 时钟准确度及同步测试
对智能变电站系统实施时间同步测试,确保时间同步对时系统的输出时间准确度满足设备对时精度要求,是智能变电站运行必要条件之一。
(1)电流采样同步性测试。与常规变电站不同,由于每个非常规电流互感器存在数据处理时间的差异、采样网络存在传输延时的差异等,使得智能变电站的各个模拟量之间存在采样非同步问题,所以必须对不同电流互感器采样同步性进行测试、调整。这项试验,可以在一次通流试验时同时进行,通过对同时使用多个电流互感器的站端保护,如母线差动保护、主变差动保护等,在多个非常规电流互感器一次侧并联后通入大小相同方向一致的电流,可以根据保护装置中这两个电流量的采样角度差判断采样的同步性,也可以通过数字式示波器来判断采样的同步性。(2)电压采样同步性测试。在具备同期合闸的测控装置及电压并列装置中,需要对不同非常规电压互感器的电压采样进行同步。这项试验,可以在一次加压试验时同时进行,将不同非常规电压互感器一次侧并接升压,可以在测控装置及电压并列装置上检查不同电压采样的角度差,以判断电压的同步情况,也可以通过数字式示波器来判断采样的同步性[7]。
3.3 交流回路正确性检查
智能站中非常规光电式互感器的使用,使其传统的二次回路的试验手段,如极性测试、通流试验将不能完成保证互感器变比、极性和二次回路的正确性。目前,对智能站非常规光电式互感器进行一次通流、加压是检验回路完整性正确性的较佳选择。一次通流加压就是让电流流过站内非常规光电式互感器,从而来验证互感器变比、极性和二次绕组的接入方式,以保证互感器二次回路的完整性和正确性。为经济、安全、可靠的完成一次通流、加压,要先建立好变电站相关数学模型,设计通流加压方案,主要要保证各侧互感器全部能够验证,其次要保证通流时短路阻抗较小,一般应分别在高压等级侧通流、高压侧对中压侧通流和中压侧对低压侧通流。
4 结语
本文对智能变电站二次系统的测试方法及测试手段进行分析研究,对试验流程、试验的相关内容进行探讨,对试验指标和要求进行进一步说明。尤其对与常规变电站不同的部分进行了深入研究,提出了基于现场实际的最佳方案,使其测试方案更具备可操作性和实用性
对智能变电站二次系统试验验证技术的研究探讨,也将随着智能变电站技术的发展而不断进步,如何更好的完成智能变电站二次系统的测试,仍有待进一步研究与实践。
参考文献:
[1]高翔.数字化变电站应用技术[M].北京:中国电力出版社,2008.