时间:2022-05-10 14:40:57
序论:在您撰写系统测试时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
关键词:软件测试;系统测试;线索;压力测试;性能测试
中图分类号:TP39文献标识码:A文章编号:1007-9599 (2012) 05-0000-02
一、引言
软件测试作为软件质量保证的关键技术之一,其目的就是能够有效地发现软件中的错误或缺陷。系统测试是对完整集成后的系统进行测试的阶段,用来评价系统对具体需求规格说明的符合性,系统测试是在单元、组件和集成测试阶段之后进行的。主要针对软件系统和其他系统元素(及硬件、数据库和人机交互信息)组合构成完整的计算机应用系统中所有的元素配合是否合适以及整个系统的功能、性能、执行强度、安全性等是否达到规定标准而进行的测试。
二、系统测试概述
(一)系统测试概念
所谓系统测试是将通过集成测试的软件系统,作为计算机系统的一个重要组成部分,与计算机硬件、外设、某些支撑软件的系统等其他系统元素组合在一起所进行的测试,目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或矛盾的地方。
(二)系统测试前的准备工作
系统测试前的准备工作主要包括:对系统各种功能的描述;系统要求的数据处理及传输的速率;对系统性能的要求;对备份及修复的要求;对兼容性的描述;对配置的描述;对安全方面的要求等。
(三)系统测试的测试数据
系统测试所用的数据必须尽可能地像真实数据一样精确和有代表性。可以使用真实数据或者使用真实数据的一个复制,复制数据的质量、精度和数据量必须尽可能地代表真实的数据。
(四)系统测试与确认测试区别
确认测试始于集成测试的结束,那时已测试完单个构件,软件已组装成完整的软件包,且接口错误已被发现和改正。在确认测试时,传统软件与面向对象软件的差别已经消失,测试便集中于用户可见的动作和用户可识别的系统输出。
1.确认测试准则
软件确认是通过一系列表明已符合软件需求的测试而获得的。测试计划和规程都是用于确保满足所有的功能需求,具有所有的行为特征,达到所有的性能需求,文档是正确的、可用的。执行每个确认测试用例之后,存在下面两种可能条件之一:(1)功能或性能特征符合需求规约,因而被接受;(2)发现了与规约的偏差,创建缺陷列表。
2.配置评审
评审的目的是保证所有的软件配置元素已正确开发、编目,且具有支持软件生命周期的支持阶段的必要细节。
3.α测试与β测试
α测试是由最终用户在开发者的场所进行。软件在自然的环境下使用,开发者站在典型用户的后面观看,并记录错误和使用问题。α测试在受控的环境下进行。
β测试是最终用户场所执行。开发者通常不在场,因此,β测试是在不为开发者控制的环境下软件的现场应用。最终用户记录测试过程中遇见的所有问题(现实存在或想象的),并将其定期地报告给开发者。接到β测试的问题报告之后,软件工程师进行修改,然后准备向最终用户软件产品。
二、系统级功能测试技术
(一)线索的概念
线索(thread)的概念很难定义。事实上,一些已经公开的定义都是矛盾、容易产生误导或错误的。可以把线索看作是一种不需要形式化定义的原始概念。以下是对线索的多种看法:一般使用的场景;系统级测试用例;激励/响应对;由系统级输入序列产生的行为;端口输入和输出事件的交替序列;系统状态机描述中的转换序列;对象消息和方法执行的交替序列;机器指令序列;源指令序列;MM-路径序列;原子系统功能序列。
(二)需求规约的基本构造元素
根据一组基本需求规约构造元素,即数据、行动、设备、事件和线索,来讨论系统测试。每个系统都可以使用这五种元素表示。
1.数据
主要包括:变量、数据结构、字段、记录、数据存储和文件、实体关系模型高层数据描述。
2.行动
以行动为中心建模仍然是需求规约的一种常见形式,这是因为有命令式程序设计语言以行动为中心性质的历史原因。行动有输入和输出,这些输入和输出既可以是数据,也可以是端口事件。行动还可以分解为低层活动,例如数据流图。
3.设备
每个系统都有端口设备,这些端口设备是系统级输入和输出(端口事件)的源和目的地。在技术上,端口是I/O设备接入系统的点。
4.事件
事件既有数据方面的一些特征,又有行动方面的一些特征。事件是发生在端口设备上的系统级输入(或输出)。可以是离散的,也可以是连续的(例如温度、高度或压力)。端口输入事件是物理到逻辑的转换,同样,端口输出事件是逻辑到物理的转换。
5.线索
因为要测试线索,因此测试人员通常不能在数据、事件和行动之间的交互中找出线索。线索本身出现在需求规约中的惟一地方,是使用快速原型法并结合场景记录器。
(三)线索测试的结构策略及功能策略
结构策略实际上是基于有限状态机的行为建模中的结构来寻找测试线索的。首先自底向上组织各层次的状态机,然后寻找线索覆盖每个状态机的节点和边,同时还要找出节点与边覆盖指标。
线索测试的功能策略
1.基于事件的线索测试
(1)端口输入事件覆盖指标
五个覆盖指标为覆盖端口输入事件提供了一组线索:
(1)PI1:每个端口输入事件发生。
(2)PI2:端口输入事件的常见序列发生。
(3)PI3:每个端口输入事件在所有“相关”数据语境中发生。
(4)PI4:对于给定语境,所有“不合适”的输入事件发生。
(5)Pl5:对于给定语境,所有可能的输入事件发生。
(2)端口输出事件覆盖指标
根据端口输出事件定义两种覆盖指标:
(1)PO1:每个端口输出事件发生。
(2)PO2:每个端口输出事件在每种原因下发生
2.基于端口的线索测试
基于端口的测试是基于事件测试的有用补充。
对于每个端口都要询问端口上会出现什么事件。然后根据每个端口的事件列表寻找使用输入端口和输出端口的线索。有些需求规约技术要求提供这种端口的事件列表。
设备和事件之间的多对多测试应该在两个方向上进行:基于事件的测试覆盖从事件到端口的一对多关系,反之,基于端口的测试覆盖从端口到事件的一对多关系。SATM系统不能使用这种测试,因为SATM不发生在多个端口上。
三、系统测试的主要内容
系统测试一般要完成以下几种测试:功能测试、性能测试、可靠性、稳定性测试、兼容性测试、恢复性测试、安全性测试、强度测试、面向用户支持方面的测试、其他限制条件的测试。下面就对常用的系统测试做一个介绍:
(一)压力测试
压力测试是指模拟巨大的工作负荷以查看或评估应用程序在峰值或超越最大负载使用情况下如何执行操作。压力测试有如下特点:可以测试系统的稳定性;一般需要对用户的使用情况进行模拟。压力测试的方法包括:并发测试法、增加量级法、重复测试法。
(二)性能测试
性能测试一般需进行:对软件计算的精度有要求时,设计测试用例;对软件有时间要求时,设计测试用例;测试为完成功能所处理的数据量;测试程序运行所占用的空间;测试对系统的负载潜力;测试配置项各部分的协调性;测试软件性能和硬件性能的集成;测试系统对并发事务和并发用户访问的处理能力。
(三)恢复性测试
多数基于计算机的系统必须从错误中恢复并在一定的时间内重新运行。恢复性测试是通过各种方式强制地让系统发生故障并验证其能适当恢复的一种系统测试。若恢复是自动的(由系统自身完成),则对重新初始化、检查点机制、数据恢复和重新启动都要进行正确性评估。若恢复需要人工干预,则估算平均恢复时间(mean-time-to-repair,MTTR)以确定其是否在可接受的范围之内。
(四)安全性测试
安全性测试验证建立在系统内的保护机制是否能够实际保护系统不受非法入侵。系统的安全必须经受住正面的攻击,但是也必须能够经受住侧面和背后的攻击。在安全性测试过程中,测试者扮演试图攻击系统的角色。测试者可以试图通过外部手段获取密码;可以通过瓦解任何防守的定制软件来攻击系统;可以“制服”系统使其无法对别人提供服务;可以有目的地引发系统错误以期在其恢复过程中入侵系统;可以通过浏览非保密数据,从中找到进入系统的钥匙等等。
四、结语
系统测试有助于在其部署中客户发现缺陷之前,尽可能多滴发现缺陷,在系统测试期间要验证完整产品的行为,包括设计多个模块、程序和功能的测试,测试完整产品的行为是很关键的,因为很多人错误地认为经过单独测试的组件放到一起后仍能正常运行。
参考文献:
[1]薛冲冲,陈坚.软件测试研究[J].计算机系统应用,2011,2
[2]陶幸辉,宋志刚.软件系统测试类型及测试用例设计[J].科技经济市场,2011,6
[3]朱家云.浅析软件测试[J].信息系统工程,2011,4
[4王丽达.论软件系统的测试[J].经济研究导刊,2011,14
三年以上工作经验|男|29岁(1987年3月11日)
居住地:曲阜
电 话:158******(手机)
E-mail:
最近工作[1年7个月]
公 司:XX有限公司
行 业:通信/电信/网络设备
职 位:系统测试
最高学历
学 历:本科
专 业:通信工程
学 校:曲阜师范大学
自我评价
本人毕业于软件工程专业,在学校经过多年的努力,有着扎实的计算机基础。目前一直从事于IT 行业,热爱软件测试,有多年的测试经验,熟悉软件的开发的流程和测试流程,熟悉b/s 框架系统和C/框架的区别,有丰富的测试经验,了解 QTP 和 loadrunner 的工作原理。XX年测试经理,XX年的测试主管,积累了丰富的管理经验。希望从事测试经理以上职位(最好是高级测试经理和测试总监)的测试管理工作。
求职意向
到岗时间:一个月之内
工作性质:全职
希望行业:通信/电信/网络设备
目标地点:曲阜
期望月薪:面议/月
目标职能:系统测试
工作经验
2013/11 — 2015/6:XX有限公司[1年7个月]
所属行业:通信/电信/网络设备
测试部系统测试
1.熟悉手机功能机,智能机(MTK,展讯,高通,瑞芯微/INTEL 6321/SOFIA平台)方案,手机软件研发流程。熟悉安卓系统,将针对产品制定出全面测试案例,专项测试案例,压力测试案例。
2.测试报告的提出,回复,验证及BUG问题详细记录,做到可以追溯。
3.版本号规则命名,软件存储路径规范,软件测试流程的商讨等
4.协助和推动项目组将产品软件改善达到稳定状态。
2011/9 — 2013/8:XX有限公司[1年11个月]
所属行业:通信/电信/网络设备
测试部 系统测试
1.及时了解项目进度,及时了解软件状态,减少软件问题延误进度
2.未处理的严重问题,及时反馈,跟催.已改善的严重问题,反复测试验证,重点关注
3.硬件/软件问题及时与工程师沟通,反馈到所有相关人员.该重视问题会重点强调.
4.建立BUG数据汇总,让相关人员了解每周BUG处理情况
教育经历
2006/9— 2011/6 曲阜师范大学 通信工程本科
证书
2007/12 大学英语四级
本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于web的系统测试方法。/kF?RZNAX4^''''8gnv[本资料来源于贵州学习网计算机网络技术]/kF?RZNAX4^''''8gnv
随着internet和intranet/extranet的快速增长,web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上,电子商务迅速增长,早已超过了国界。范围广泛的、复杂的分布式应用正在web环境中出现。web的流行和无所不在,是因为它能提供支持所有类型内容连接的信息,容易为最终用户存取。
yogeshdeshpande和stevehansen在1998年就提出了web工程的概念。web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于web的系统。它"使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、和维护基于web的系统"。目前,对于web工程的研究主要是在国外开展的,国内还刚刚起步。
在基于web的系统开发中,如果缺乏严格的过程,我们在开发、、实施和维护web的过程中,可能就会碰到一些严重的问题,失败的可能性很大。而且,随着基于web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对web和internet的信心可能会无法挽救地动摇,从而引起web危机。并且,web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。
在web工程过程中,基于web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,internet和web媒体的不可预见性使测试基于web的系统变得困难。因此,我们必须为测试和评估复杂的基于web的系统研究新的方法和技术。
一般软件的周期以月或以年计算,而web应用的周期以天计算甚至以小时计算。web测试人员必须处理更短的周期,测试人员和测试管理人员面临着从测试传统的c/s结构和框架环境到测试快速改变的web应用系统的转变。
一、功能测试
1、链接测试
链接是web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的url地址才能访问。
链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个web应用系统的所有页面开发完成之后进行链接测试。
2、表单测试
当用户给web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
3、cookies测试
cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用cookies访问了某一个应用系统时,web服务器将发送关于用户的信息,把该信息以cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
如果web应用系统使用了cookies,就必须检查cookies是否能正常工作。测试的内容可包括cookies是否起作用,是否按预定的时间进行保存,刷新对cookies有什么影响等。
4、设计语言测试
web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的html等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了html的版本问题外,不同的脚本语言,例如Java、JavaScript、activex、vbscript或perl等也要进行验证。
5、数据库测试
在web应用技术中,数据库起着重要的作用,数据库为web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在web应用中,最常用的数据库类型是关系型数据库,可以使用sql对信息进行处理。
在使用了数据库的web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。,l/u,H*wjY-gM8-[此文转贴于我的学习网计算机网络技术
二、性能测试
1、连接速度测试
用户连接到web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
2、负载测试
负载测试是为了测量web系统在某一负载级别上的性能,以保证web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问web系统的用户数量,也可以是在线数据处理的数量。例如:web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?web应用系统能否处理大量用户对同一个页面的请求?
3、压力测试
【关键词】LVDS;测试
1.引言
随着现代电子科学技术的不断进步,雷达技术和体制的也在不断发展,DBF体制的相控阵雷达,机载预警雷达以及合成孔径(SAR)雷达等一些新体制的雷达不断出现在现代高科技战场。随着雷达体制的发展,其对信号带宽和大容量高速率的信号传输提出了越来越高的要求。LVDS这种接口标准为解决这一瓶颈问题提供了可能。目前LVDS技术在工业各领域已经得到了广泛应用,本文结合某雷达产品调试现状,提出了一套LVDS的全新测试方法,该方法简单易行,大大缩减了产品调试周期。
2.LVDS的基本原理
LVDS(LOW VOLTAGE DIFFERENTIAL SIGNALING)是一种低压差分信号传输技术,其基本原理如图1所示。其驱动器为一个恒流源驱动一对差分信号线组成,在接收端有一个高的直流输入阻抗,阻抗基本上不会消耗电流,所以几乎全部驱动电流都流经100W的终端电阻在接收器端产生。约350mV的电压,当驱动状态反转时,流经电阻的电流方向发生改变,于是在接收端产生逻辑状态的改变。
LVDS传输具有以下特点:
(1)高速率,LVDS的恒流源模式低摆幅输出决定了其高速的驱动能力,它允许单个通道的数据传输速率达到数百兆每秒。
(2)超低功耗,LVDS器件采用CMOS工艺,提供了低的静态功耗,负载(100W的终端电阻)功耗仅为1.2mW.
(3)低噪声和低电磁干扰,LVDS传输采用差分方式,接收端只关心两信号的差,噪声被抵消,同时由于差分传输,两条信号线周围的磁场也相互抵消,降低了电磁干扰。
3.提出方案
某型号雷达采用相控阵列天线,天线为N维阵列,从天线阵列下来的N路射频信号经过接收系统变换成数字中频信号,接收系统采用LVDS编码芯片将中频信号编码,一块LVDS芯片传输5路中频信号,接收系统通过专用的LVDS电缆将信号传输到信号处理系统,共N/5路数据组送到信号处理系统,其LVDS芯片将传送来的5路串行数据还原成5路并行数据。这N/5组并行传送的信号的直接送到波束形成插件内的FPGA内,完成数字波束形成、同时完成接收通道数据校正和发射通道数据校正等功能。
针对该型号雷达的波束形成插件调试记录及其插件的返修率进行统计分析发现,LVDS解码芯片本身质量引发的故障率为21%;表贴工艺引发的故障率为15%;印制线短、断路,阻值超标,故障率为18%。LVDS解码芯片自身为细间距芯片,在用探头点测时容易短路,一旦短路,容易致使芯片由于人为因素失效。
目前信号处理系统调试方法是在波束形成插件的程序中做扫频数据库,同时形成波束,这样在信号处理分系统调试过程中实际上并没有覆盖LVDS解码芯片,也不经过FPGA中的输入管脚,无法判断其状态好坏,只有在雷达整机上系统联调时才能测试其状态好坏,需要雷达系统人员配合,而且必须保障信号处理前端的状态正常才能测试。一旦发现问题,返工的周期也会影响雷达系统联调的总体时间进度,这样导致工作量增加,而且调试效果也不佳,售后服务返修件多数情况也无法处理。
针对以上情况,本文提出了一套简单易行的解决方案,通过搭建波束形成调试、测试工装,建立一个专门的波束形成插件调试、测试系统,可以在分系统测试时就完成LVDS解码芯片的功能测试、表贴工艺测试,以及LVDS解码芯片将信号送进FPGA器件的正交IQ信号M位数字信号的测试,测试是否存在表贴虚焊现象,是否存在印制线短路、断路现象,是否存在印制线阻值超标现象,测试结果简单明了,很容易判断故障的所在。
3.1 系统组成
整个测试系统由接收系统、信号处理系统组成,测试仪器与仪表主要有计算机和示波器各一台,整个测试系统连接框图如图2所示。其中时钟信号由接收系统产生提供,并通过
LVDS电缆传给信号处理系统。接收系统测试软件固化在其配置芯片中,信号处理系统端的测试软件通过计算机在线编程下载到FPGA芯片中。
3.2 软件设计
接收系统软件产生锯齿波信号,通过测试电缆送信号系统;实现方法:利用一个计数器产生所需锯齿波信号。具体如图3所示。
信号系统编写控制软件,根据接收系统送过来的信号所接通道,控制选择相应的LVDS解码芯片将解得的锯齿波测试信号送入FPGA器件,并能将接收系统送来的多位信号进行截位控制。重新设计FPGA控制电路,将收到的锯齿波测试信号采样、处理、还原成模拟信号、输出给示波器观测,这样测试结果快捷、直观。当所选通道经过的LVDS解码芯片和送入FPGA器件的IQ信号均正常,可以在示波器上看到如4所示的波形。
当波形产生插件故障时(比如LVDS解码芯片故障、送入FPGA器件的IQ信号虚焊、印制线制造故障),示波器上输出波形将不再是标准的锯齿波,不同的故障信号位可以根据故障波形基本定位。示意图如图5所示。
当输入的IQ信号较低位出现虚焊时,软件控制端口的截位控制选项值可以较低,上图中为05截位;当输入的IQ信号较高位出现虚焊时,控制软件控制端口的截位选项值需要较高,这样才能检测出故障,图6所示截位选择为0E。
3.3 改进后测试流程
在后续的调试过程中,采用了上述测试方法,基本解决了波束形成插件调试困难的问题,提高了调试效率。具体操作流程如图7所示。
3.4 改进效果比较分析
下面以一块波束形成插件的调试来比对改进前后的测试效果:
改进前:
配合人员:至少雷达系统和信号处理系统各1人,共2人;
测试平台:一套完整的雷达;
需要时间:5小时;
同时在测试过程中要受到整机性能的影响,雷达整机工作必须正常,特别是接收校正功能。在没有整机的情况下是无法进行测试工作,对于分系统的调试以及今后的售后服务插件的维修来说相当不便。
改进后:
配合人员:信号处理系统1人。
测试平台:信号系统和接收系统调试设备。
需要时间:1小时。
关键词 软件测试;软件质量;模拟器
中图分类号TN911 文献标识码A 文章编号 1674-6708(2013)95-0224-02
随着信息技术与信息产业的发展,计算机软件广泛地渗入到了我们的工作和生活中,各种产品和设备与计算机软件的联系也越来越紧密。计算机软件的质量优劣也日益受到人们的重视。软件测试是保证软件质量的重要手段。在软件工程中,软件测试是软件生命周期中一项非常重要的工作,也是一项非常复杂的工作。
1 模拟器软件的开发与测试
软件是模拟器的重要组成部分,软件的质量直接影响着模拟器的质量。软件如果存在缺陷或故障,将会导致模拟器在使用过程中发生错误,对用户产生各种影响。模拟器软件的开发过程一般包括制定计划、需求分析、软件设计、软件编码、软件测试、运行维护等6个阶段。软件测试是模拟器软件开发过程中的一个阶段,是保证模拟器软件质量的重要方法和手段。软件测试技术可分为静态测试与动态测试。静态测试是一种不通过执行程序而进行测试的技术,关键是检查软件的表示和描述是否一致,有无冲突或歧义。动态测试通过人工或使用工具运行程序进行检查,分析程序的执行状态和程序运行的表象。动态测试一般分为白盒法测试和黑盒法测试。白盒法测试对象是源程序,依据程序内部的逻辑结构来发现编程错误、结构错误和数据错误。黑盒法是把测试对象看成一个黑盒子,依据软件的功能或软件行为描述,发现软件的接口、功能和结构错误。
模拟器的软件测试是软件开发过程中的一个阶段,但不是一个完全独立的阶段,而是贯穿于软件开发整个过程中的一个重要环节。模拟器软件测试过程由单元测试、集成测试、系统测试和验收测试等阶段组成,整个测试过程与如图1所示。其中,系统测试是整个软件测试过程中非常重要的测试阶段,是软件的全部功能在实际运行环境中进行验证和确认的测试,也是用户进行验收前的测试。
2模拟器软件系统测试的目的和内容
模拟器软件测试是一项非常复杂的工作,首先要按照详细设计的要求对所有模块的功能、性能、接口等进行单元测试,发现每个程序模块内部可能存在的差错,确保每个模块单元工作正常。在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装成系统进行集成测试,发现与接口有关的各种错误,确保各单元模块集成系统后能够按设计要求协作运行,并确保增量行为的正确性。
模拟器软件的系统测试,就是将已经过集成测试的模拟器软件和其它支持软件安装在模拟器的专用计算机上,并与模拟器的硬件设备、人员等所有系统元素结合在一起,在实际的运行环境下,对模拟器软件进行全面测试。通过对模拟器软件的需求定义进行比较,找出软件与需求定义不相符之处,通过对模拟器进行一系列严格测试来发现软件中潜在的错误和缺陷,以确保模拟器交付给用户后能够正常使用。
模拟器软件系统测试包含功能性测试和非功能性测试两类测试内容。功能性测试的目的是测试软件的主要功能与用户的需求是否一致,主要进行训练环境设置功能测试、训练功能测试、训练评估功能测试。非功能性测试主要测试软件的性能、可靠性、健壮性是否满足设计要求,主要进行性能测试、可靠性测试、易用性测试。模拟器软件的系统测试主要采用黑盒测试技术中的因果图、决策表、错误推测等测试方法。
3 模拟器软件的功能性测试
功能测试不考虑模拟器软件的内部结构和处理过程,通常在程序的界面处进行测试,测试软件是否能够按照需求的规定正常运行,是否能够实现与需求一致的所有功能,发现软件与需求定义不相符之处和潜在的错误与缺陷。模拟器软件的功能性测试主要进行训练环境设置功能测试、训练功能测试和训练评估程序功能测试。
3.1 训练环境设置功能测试
在训练开始前模拟器要进行训练环境设置,训练环境包括地理地形、气象条件、各种设置、各类模型数据等。训练环境设置的功能测试用例应当按照软件需求进行设计,要考虑到不同训练环境的各种组合情况,测试目的就是核实在不同的环境设置时数据载入是否正确、是否完整,是否完全符合设计要求。
3.2 训练功能测试
模拟器的训练功能就是在各种操作方式(正确或错误)条件下仿真装备的真实反应(状态和过程)。不同的操作方式就是按照不同的操作顺序将模拟器不同设备面板的各种操作器件置于不同的位置状态,所有操作器件不同顺序的不同位置状态可以产生数量很大的各种条件的输入组合。仿真装备的真实反应就是模拟器软件的输出,就是启动不同的仿真过程、或改变仿真进程、或使模拟器显示器件显示不同内容与状态、或导致三维场景的不同改变。对于模拟器软件这种多条件组合输入、产生多动作输出的复杂功能测试使用因果图(逻辑模型)方法设计测试用例比较合适。
采用因果图方法设计模拟器软件功能测试用例的步骤:首先确定模拟器软件功能中的原因和结果,确定原因和结果之间的逻辑关系,根据这些关系画出因果图。确定因果图中的各个约束。然后把因果图转换为决策表。根据决策表设计测试用例。
由于模拟器软件的功能测试比较复杂,应当采用错误推测法作为辅助测试方法,依靠测试人员的经验和直觉推测软件功能可能存在的各种错误从而有针对性地设计测试用例。
根据测试用例进行训练功能测试,检查在各种操作方式条件下软件的训练仿真过程以及模拟器表象及状态是否与设计要求完全一致、是否存在错误和潜在的缺陷。
3.3 训练评估程序的功能测试
对训练过程进行评估是模拟器的一个重要功能。训练环境的设置数据和训练过程中对模拟器的所有操作过程都按照时间先后以规定的数据格式完整地记录在操作过程的文件中。训练评估程序的功能就是将记录的操作过程文件作为输入数据,经过逻辑分析和数据计算,输出此次训练的成绩和训练过程的评语。由于训练评估程序的输入是整个训练过程的全部操作,所有操作器件产生的操作顺序组合将达到非常大的数目,实际中可能无法完成,在设计测试用例时采用等价类技术对操作过程的各种顺序组合进行划分,从划分的每个区域内选取有代表性的操作过程作为测试用例。测试的目的就是检查对不同的操作过程输出的成绩和评语是否正确,是否与专家评定结果一致。
4 模拟器软件的非功能性测试
模拟器软件的非功能性测试主要内容包括性能测试、可靠性测试、易用性测试。
4.1 性能测试
性能测试主要检验模拟器软件是否达到需求规定的各类性能指标,并满足一些性能相关的约束和限制条件。软件运行的实时性是非常重要的性能指标。模拟器软件的实时性测试主要包括操作响应时间的测试以及三维场景显示的流畅与连续性测试。操作的响应时间应当与装备的响应时间一致。场景的流畅要符合人们的视觉感受,如果三维场景绘制复杂、数据量大时会导致显示帧频下降,人眼就会感到画面间断、停顿,显示帧频是衡量流畅性的指标。三维场景的流畅性与场景中三维实体的数量、复杂程度、分辨率,以及三维场景特效(如烟雾)等有直接关系,应当以场景实体和特效达到或接近最苛刻的过程进行场景显示的实时性测试。
4.2 可靠性测试
软件的可靠性也叫做稳定性,是指在负载多变的情况下或长时间运行的情况下模拟器软件运行的稳定程度。模拟器软件的可靠性测试可以使用重复测试、并发测试、随机变化以及长时间不间断运行等方法。重复测试就是对某一器件进行重复操作,测试模拟器能否持续不断地仿真设备的真实运行效果;并发测试就是同时对多个器件进行操作,测试模拟器能否产生与设备同样的状态;随机变化就是不按照正常的操作顺序,而是设计非常规的随机操作顺序或对重复和并发测试手段进行随机组合,以获得最佳的测试效果。按照设计要求让模拟器软件长时间不间断地运行,测试软件是否运行正常、功能是否出错。
4.3 易用性测试
模拟器软件的易用性主要是指训练环境设置、成绩评估等环节的界面易懂、选择准确、操作方便。界面的设计要尽量符合人们的习惯和思维方式,按钮名称用词准确、没有歧义,同一界面的按钮要易于区分,用户能够进行正确理解界面的功能并能够进行正确操作。用户能够终止进程,重新返回、重新选择。通过对界面的操作来测试模拟器软件的易用性。
5 结论
系统测试是软件交给用户进行验收测试的最后一道关口,对保证软件的质量起着非常重要的作用。系统测试也是测试人员需要花大量的时间和精力才能完成的工作,虽然有些测试工作可以使用软件测试工具来完成,但由于每一种测试工具都有其特定领域的应用,都有其自身的很多局限性,软件测试工具本身不具备创造力,不能设计测试用例,不能处理意外事件,使用测试工具发现的缺陷也没有手工测试发现的多。系统测试中的很多工作主要还是靠人完成的,测试人员的能力和素质最终决定了测试结果的好坏。根据系统测试结果和系统测试分析报告,在验收测试前完善软件功能、纠正软件错误、消除软件潜在的缺陷,提高软件质量。
参考文献
[1]赵斌.软件测试技术经典教程 [M].2版.北京:科学出版社,2011.
[2]李海生,郭锐.软件测试技术案例教程[M].北京:清华大学出版社,2012.
摘要:
介绍了一款针对航空器上电子设备进行监测的系统的设计与测试方法。该系统可以完成数据的采集与传输、错误曼彻斯特码生成、消息监听等功能,其采用可编程逻辑器件(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.
1区域医疗领域大数据应用系统测试实现
1.1应用系统架构如图4所示,最底层是HBase集群,用于诊疗文档数据仓库,HMaster是HBase集群的管理节点。应用服务器层由若干台调阅应用服务器组成,分别注册到上层的若干台Nginx服务器中。Nginx层包含多台Nginx服务器,每台Nginx服务器下面挂接了若干台AppServer。负载均衡层由两台配置了LVS和Keepalive服务的负载均衡服务器组成,其中一台为主服务器,另外一台为备用服务器。
1.2测试环境基于区域医疗大数据应用系统的特点以及要求,搭建了如图5所示的测试环境。
1.3测试业务(1)基于云计算的健康信息调阅主要面向联网医院的医生,实现对其接诊患者健康档案信息的调阅。(2)基于云计算的智能提示服务基于居民健康信息为医生提供的提示、警示,如药物过敏、重点人群等各类警示信息以及重复检验/检查提示等。(3)网上预约服务通过网上预约及医院医生病人预约的方式实现病人就诊,确保在医疗资源分布不均的情况下,让病人得到更方便快捷的医疗服务。
1.4测试场景(1)场景一测试所用诊疗文档库的数据量:380万,脚本取样:1万;1万个工作站在1min之内共完成2000个交易;每次调阅操作的最长响应延时不超过1.5s;高峰时段可支撑500~800个并发用户请求。(2)场景二测试所用特征数据库中的数据量:380万,脚本取样:1万;1万个并发用户1min之内共完成10000个交易;每次交易最长的响应延时不应超过500ns。
1.5测试方法测试人员根据系统的特点,采用黑盒测试方法,通过自动化和手工结合的方式完成功能测试;使用LoadRunner完成性能压力测试[6]。功能测试通过手动和自动化工具Selenium相结合的方式进行,按照等价类、边界值、因果图、判定表等方法,主要验证待测试系统各个功能模块逻辑是否正确[7]。易用性测试通过手动方式检查区域医疗大数据软件系统使用的合理性和方便性等。在测试时,测试人员要多从用户体验的角度出发,检验是否符合大多数而不是个别用户的操作使用习惯。兼容性测试主要是通过手动的方式验证区域医疗大数据软件系统能否在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络环境中很好地运行。扩展性测试美国国家标准与技术研究院(NIST)给出的云计算权威定义:按需的自我服务,广泛的网络访问资源池,快速的弹性能力,可度量的服务。云存储是云计算的一个方面,因此弹性扩展能力对于云计算时代的区域医疗大数据系统尤为重要。扩展性测试,主要包括测试系统的弹性扩展能力(扩展与回缩),以及扩展系统带来的性能影响,验证是否具有线性扩展能力。这部分测试也是以手动方式进行。安全性测试考虑到为保护区域医疗大数据应用系统关键核心业务的安全,需要从以下方面实施:保护信息系统安全,加强防止未授权的访问、使用、泄露、中断、修改或破坏;保护网络安全,需要防入侵检测、防病毒、密码、物理隔离等;保护数据安全,需要加强数据库的机密、完整、可备份和可恢复。因此,使用Appscan测试用具进行相关安全性漏洞扫描。压力测试主要是通过逐步增加系统负载,测试系统性能的变化,并最终确定什么负载条件下系统性能处于失效状态,并以此获得系统能提供的最大服务级别的测试,并验证大数据系统的性能指标要求。使用LoadRunner测试工具进行,LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。通过模拟上千万用户实施开发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个JavaEE系统的架构进行测试。通过使用LoadRunner,能最大限度地缩短测试时间、优化性能和加速应用系统周期。在不同的测试类型中,采用不同的测试方法。功能测试:采用手工和自动化相结合,针对不同的功能点,合理的使用边界值法、错误推测法、因果图法、判定表法等,回归测试80%的功能点由自动化测试工具来完成。性能测试:根据需求调研、制定合理的性能测试指标,使用性能测试工具进行测试,分析测试结果查找系统瓶颈,最终使产品的性能满足客户的需求。安全性测试、环境测试以及标准符合性测试都在不同程度进行功能和性能测试[8]。
2结语