版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件可靠性测试流程设计及其应用张俊萍;朱小冬;张鲁;余文定【摘要】科学、合理的软件可靠性测试流程有助于测试工作有条不紊地展开,而现有的可靠性测试流程普遍存在可靠性分配方法不明确、过程不完善等问题,针对此问题展开了软件可靠性测试流程的研究;在分析软件可靠性测试与软件测试的区别、并借鉴现有软件可靠性测试流程的基础上,提出了一个由可靠性测试准备、可靠性测试执行和可靠性测试结果分析三大部分构成的比较全面的可靠性测试流程,并详细阐述了流程中的每一步具体操作;在该流程的指导下进行”虚拟维修训练系统”可靠性测试,充分验证了该流程的可行性和实用性.%Scientificandreasonableflowofsoftwarereliabilitytestcanhelptestcarriedoutinanorderlyway,whileexistingflowswerenotperfectandsomepivotalproceduressuchasreliabilitydistributionwerenotexplainedclearly.Inthissituation,thispapercarriesoutsystematicresearchesupontheproceduresofsoftwarereliabilitytest.Byanalyzingthedifferencesbetweensoftwarereliabilitytestandsoftwaretest,thispaperputsforwardacomprehensiveflowofsoftwarereliabilitytestincludingtestpreparation,testimplementation,andtheresultanalysis.Then,itexplainstheflowindetail.Finally,theexampleofsoftwarereliabilitytesttodummymaintainingandtrainingsystemvalidatesthisflow'sfeasibilityandpracticability.【期刊名称】《计算机测量与控制》【年(勤期】2011(019)004【总页数】4页(P796-799)【关键词】软件可靠性测试;软件可靠性测试流程;测试准备;测试执行;测试结果分析【作者】张俊萍;朱小冬;张鲁;余文定【作者单位】军械工程学院装备指挥与管理系河北石家庄,050003;63871部队,陕西华阴,417200;军械工程学院装备指挥与管理系河北石家庄,050003;63871部队,陕西,华阴,417200;军械工程学院装备指挥与管理系,河北,石家庄,050003【正文语种】中文【中图分类】TP2740引言近些年,与中国快速发展的软件产业相同步,国内测试技术也正沿着计算机化、标准化和网络化的三大趋势迅猛发展。与此同时,可有效检测软件可靠性设计缺陷、快速提高软件可靠性以及软件质量的软件可靠性测试也得到了快速发展,并且在测试市场上赢得了更多的发展空间[1-2]。但相比差错控制、容错、避错等可靠性设计技术均已相对成熟[3]的硬件可靠性技术而言,由于软件可靠性研究时间短、软件生产仍处于作坊式的手工制作,软件可靠性测试及其管理技术有待进一步完善,如文献[4]和[5]中给出的软件可靠性测试流程均忽略了测试前期的准备工作,文献[5]中软件可靠性测试流程没有交待测试执行后如何进行可靠性数据分析。而软件可靠性测试流程设计的完善与否,关系到软件可靠性测试的工作效率,具体表现在:(1)对软件可靠性测试工作进行整体规划与合理划分,可便于软件测试人员明确各自的职责,井然有序地完成各自的测试任务;(2)经验表明,由于软件的复杂性、缺陷的多样性等因素的存在,很难按期完成测试工作,而合理的测试流程使得按时交付测试工作成为可能(3)将软件可靠性测试工作工程化、流程化,有助于测试管理人员对软件可靠性测试过程进行统筹管理与科学规划。基于此背景,本文在对软件可靠性测试基本理论研究的基础上,针对软件可靠性测试流程展开具体研究,期望设计出一个较完善的测试流程,从而系统而清晰地阐述软件可靠性测试中的软件可靠性分配、可靠性测试用例设计、可靠性测试停止条件以及测试数据的可靠性分析等问题。1软件可靠性测试基本概念软件可靠性测试是指〃为了验证或达到软件的可靠性要求而对软件进行的测试”。软件可靠性测试是随机测试的一种,是按照用户实际使用软件的方式来测试软件的。为了满足用户对软件的可靠性要求、评价软件可靠性水平及验证软件产品是否达到可靠性要求,软件可靠性测试是一个有效的途径[6]。通过软件可靠性测试暴露出软件中隐藏的缺陷并进行纠错、排错后,软件的可靠性会得到不同程度的增长。软件可靠性测试可以细分为可靠性增长测试和可靠性验证测试,二者的区别在于测试过程中是否进行缺陷的改正,本文主要研究可靠性验证测试。软件可靠性测试区别于〃软件测试”。软件测试是为了发现错误而执行程序的过程,或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程[7]。从上述定义可以看出软件可靠性测试与软件测试的区别:软件可靠性测试更强调测试输入与典型使用环境输入统计特性的一致,强调对功能、输入、数据域及相关概率的先期识别;测试用例的采样策略不同,软件可靠性测试必须按照使用的概率分布随机地选择测试用例,这样才能得到比较准确的可靠性估计,也有利于找出对软件可靠性影响较大的故障;软件可靠性测试过程中要求比较准确地记录软件的运行时间,其输入覆盖一般要大于普通软件功能测试的要求;(4)对于一些特殊的软件,如容错软件、实时嵌入式软件等,在使用环境下往往难于在软件中植入错误,因此需要多种测试环境支持软件可靠性测试的实施;⑸软件可靠性测试的侧重点不同于一般的软件功能测试,其测试用例设计的出发点是寻找对可靠性影响较大的故障。因此,要达到同样的可靠性要求,可靠性测试比一般的功能测试更有效;(6)软件可靠性测试的环境是具有使用代表性的环境,这样,所获得的测试数据与软件的实际运行数据比较接近,可用于软件可靠性估计。综上,软件可靠性测试不能混同于软件测试。2软件可靠性测试流程基于对上述软件可靠性测试及相关概念的理解,这里将软件可靠性测试流程定义为:用以指导从可靠性测试准备到测试结束等一系列软件可靠性测试工作的一系列步骤。本文将软件可靠性测试流程划分为三大部分——可靠性测试准备、可靠性测试执行和测试结果分析,如图1所示。图1软件可靠性测试流程2.1可靠性测试准备执行软件可靠性测试之前需要做一系列的准备工作,本文称之为软件可靠性测试准备。具体来说,该阶段的具体工作见表1。表1可靠性测试准备的具体工作被测软件评估评估被测软件是否可测:1)检查软件需求与研制任务书是否一致;2)检查所交付程序和数据以及相应的软件支持环境是否符合要求;3)检查文档与程序的一致性;4)检查软件研制过程中形成的文档是否齐全、文档的准确性和完整性以及是否通过了有关评审。签订测试合同测试合同是在测试方和委托方在对下述问题达成共识后签订的:1)测试对象和所需投入资金;2)测试范围;3)委托方和测试方的责任和义务;4)合同的报酬以及支付方式;5)违约的索赔和争议;6)合同生效与终止;7)其他约定事项。签订保密协议有些时候,委托方和测试方需要签订保密协议,避免以后发生纠纷。成立项目测试组经软件测试方和委托方共同研究后,指派管理人员,制定测试计划,布置好以下测试工作:1)明确测试人员的工作职责;2)明确测试目的;3)制订科学、合理的工作计划;4)安排好测试人员的日常管理。制定测试任务书测试任务书可以督促测试人员按时、按计划实施测试工作,让测试有条不紊地进行。测试任务书的具体内容包括:1)测试任务、测试质量和测试范围;2)测试进度。制定测试计划书测试计划书的制定对整个测试的实施起着统筹规划的作用,其具体内容包括:1)软件可靠性测试项目简介;2)可靠性测试所需的软硬件配置;3)可靠性测试组组成及人力资源要求;4)可靠性测试的内容及步骤;5)可靠性测试规模及工作量分析;6)时间资源及测试进度;7)可靠性测试风险。配置测试环境测试环境指软件运行的平台,即软件、硬件、网络、数据准备和测试工具的集合[8],如下式所示:测试环境=软件+硬件+网络+数据准备+测试工具。构造操作剖面软件可靠性测试的一个主要特点是按照用户实际使用软件的方式来测试软件,软件的操作剖面图是定量描述用户实际如何使用软件的一个方法。系统模式和功能划分越完整,概率越准确,构造出的操作剖面图就越接近实际使用情况,其概率计算过程见实例。生成测试用例测试用例是根据操作剖面图生成的,在操作剖面图中规定了每个输入变量的取值范围,并且认为变量的取值在这个范围是均匀分布或者分段均匀分布的。生成测试脚本本文使用TestQuestPro8.0实现软件可靠性测试,其脚本录制过程非常简单,只要对被测设备进行操作,系统就会记录下所有的操作命令,并自动用脚本语言记录下来,形成测试脚本。2.2可靠性测试执行规范、严格地执行软件可靠性测试主要包括三项工作:测试运行、收集数据、测试停止,见表2。2.3测试结果分析通过对可靠性测试数据的分析,将测试结果以测试报告和问题报告的形式记录下来,给出软件的可靠性测试结论,为提高软件可靠性提出合理建议。其主要工作见表3。3虚拟维修训练系统可靠性测试实例3.1被测对象简介虚拟维修训练系统可实现在虚拟环境下对装备进行维修和拆卸的功能,是一款集训练、学习、自测于一身的学习训练系统,对于提高受训人员的维修保障能力有极大的帮助。3.2虚拟维修训练系统可靠性测试过程总计接收到〃虚拟维修训练系统”相关文件6份(软件概要设计书、系统阶段设计文件、软件开发计划、软件需求规格说明书、训练系统使用手册、功能介绍说明书)和源程序一份,通过分析,认为该软件符合可靠性测试的条件。篇幅有限,签订测试合同、保密协议、成立项目测试组、制定测试任务书、制定测试计划书的细节在此不再螯述,主要阐述其操作剖面的构造和测试用例及相应测试脚本的生成。表2可靠性测试执行的具体工作测试运行在准备工作就绪后,可通过测试工具TestQuest实施软件可靠性测试启动执行事先编辑好的测试脚本。该测试工具可自动记录下用例的执行时间以及缺陷是否发生等信息,作为后期可靠性数据分析的原始依据。在测试执行过程中,测试日志的编写也是非常重要的,其内容包括:测试编号、测试用例编号、测试标题、测试人员、计划执行时间、实际执行时间、问题单号,等。收集数据软件可靠性数据是可靠性评估的基础应该制定和实施软件错误报告和可靠性数据收集、保存、分析和处理的规程,完整、准确地记录软件测试阶段的软件错误报告和收集可靠性数据。本文主要记录以下4类软件可靠性数据:①失效时间,记录发生一次失效所累积经历的时间;②失效间隔时间,记录本次失效与上一次失效的间隔时间;③分组数据,记录某个时间区内发生了多少次失效;④分组时间内的累积失效数,记录某个区间内的累积失效数。这4类数据可以互相转化。每个测试记录必须包含充分的信息:①测试时间;②含有测试用例的测试计划或测试说明;③所有与测试有关的测试结果,包括所有测试时发生的故障;④参与测试的个人身份。对于失效数据的出现,必然是因为软件的缺陷存在,对于缺陷的反馈,主要通过以下几种方式进行:缺陷类型、缺陷严重等级、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷来源、缺陷根源。测试停止在达到下列任一条件后,终止测试:①当可靠性测试达到事先规定的条件时,停止对软件的测试工作;②在测试过程中,软件可靠性已然达不到要求时,可停止测试,反馈缺陷给软件开发方,等待下次回归测试;③在测试费用透支严重,无法继续下去时,停止测试,进行协商。表3测试结果分析可靠性分析本文主要采用数理统计的方法进行可靠性分析(或故障分析),利用概率论模型研究故障与时间的关系,得出其故障时间概率分布情况,其基本步骤如下[9]:1)数据收集和整理;2)经验分布函数或可靠性观测值计算;3)分布的拟合;4)分布参数的估计;5)可靠性参数的计算;6)故障率平均寿命可靠度。编制测试报告软件可靠性测试报告是将测试的过程和结果编制成文档,对发现的问题和缺陷进行分析,为纠正软件存在的质量问题提供参考,同时也是软件可靠性验收和交付的依据。测试报告应包括:1)产品标识;2)用于测试的计算机系统;3)使用的文档;4)产品描述、用户文档、程序和数据的测试结果;5)与要求不符的清单;6)不循建议要求的清单,或者针对建议要求产品未做符合性测试的说明;7)测试结束日期。编制问题报告单问题报告单的编写有助于明确软件中的问题和缺陷,对提高软件可靠性有着重要作用,其主要内容有问题标题、问题标识号、测试功能点、测试人员、测试类型、问题详细描述、报告人签字、处理意见、测试负责人签字等。通过对问题报告单(包括功能名称、测试日期、交易日期、测试单号、报告单号、问题描述、出现位置、解决方案等)的审议,能够更加清晰、准确地说明问题,使问题或缺陷的描述更完整。(1)构造操作剖面:根据对虚拟维修训练系统的了解依次构建了客户剖面、用户剖面、功能剖面,如图2所示。本文主要关注涂色功能区域的操作概率,以其为例对可靠性测试流程进行说明,过程中符合P代表概率。图2虚拟维修训练系统操作剖面a) 客户剖面可以表示为:客户剖面={P(院校),P(军工厂),P(基地)};P(院校)=5/(5+10+15)=5/30P(军工厂)=10/(5+10+15)=30P(基地)=15/(5+10+15)=15/30b) 用户剖面可以表示为:用户剖面={P(管理员),P(受训者)};这里,模拟了一组用户数据如下:院校一共有500人使用此软件,其中10人为管理员,490人为受训者;军工厂一共50人使用此软件,管理员5人受训者45人;基地一共100人使用,管理员5人,受训者95人。根据这些数据,可计算用户剖面概率:P(管理员)=(5/30)*(10/500)+(10/30)*(5/50)+(15/30)*(5/100)=37/600P(受训者)=(5/30)*(490/500)+(10/30)*(45/50)+(15/30)*(95/100)=563/600c) 功能剖面可以表示为:功能剖面={P(登陆),P(实施),P(查询)};不同系统使用人员(管理员和受训者)使用系统不同功能的情况如表4所示,下面以字母表示概率结果,以便阐述。表4功能剖面概率分配管理员受训者登陆0.7登陆0.2实施0.2实施0.6查询0.1查询0.2P(登陆)=0.7*P(管理员)+0.2*P(受训者)=A1P(实施)=0.2*P(管理员)+0.6*P(受训者)=A2P(查询)=0.1*P(管理员)+0.2*P(受训者)=A3根据实际的使用情况对功能剖面中实施部分进行分解,实施包括提示和训练两大功能其概率分配比例为020.8。故可以得到P(提示)=0.2*A2=B1P(训练)=0.8*A2=B2进一步,训练又可细分为讲解演示、引导训练、自主训练、自测四种训练方式,其概率分配见表5。表5操作剖面概率分配讲解演示引导式训练自主训练自测0.2由此可以得到操作剖面的概率表示为:操作剖面={P(讲解演示),P(引导训练),P(自主训练),P(自测)};可计算出相应的操作剖面概率:P(讲解演示)=0.2*B2=C1P(引导训练)=0.3*B2=C2?(自主训练)=0.3*B2=C3?(自测)=0.2*B2=C4虚拟维修训练系统用户登录等其它操作剖面的计算过程与此类似,不再螯述。(2)设计测试用例:根据上述划分的操作剖面及其概率,可设计出相应的测试用例,举例来说,表6是功能〃讲解演示”的测试用例,包括选择课程科目、选择训练科目、选择具体科目等一系列操作步骤。表6〃讲解演示”的测试用例条件登陆成功后进入软件首页名称讲解演示用例编号测试步骤输入数据预期结果JJYS001选择课程科目单击〃课程科目”显示“训练数据包:96式122毫米榴弹炮”°JJYS002选择训练科目单击“单兵训练科目”出现11项科目“科目一、科目二……科目十一,考核”°JJYS003选择具体科目,单击“科目三,地炮构造与原理”出现5项具体内容JJYS004选择具体内容单击〃内容3,地炮大部及主要部件分解结合”出现15项具体部件分解结合名称JJYS005选择具体部件双击“5,防盾分解结合”出现〃模式选择”°JJYS006选择具体模式双击〃讲解演示”出现结构树〃防盾分解结合理论和防盾分解结合动作演示”。 JJYS009结束点击“退出”按钮退出系统生成测试脚本:在测试用例设计完成后应用测试工具TestQuestPro8.0进行测试脚本的录制。该工具是基于图像对比技术实现自动测试的。测试执行:本例中可靠性测试的执行时间为2小时,即连续2小时运行测试工具TestQuestPro8.0录制好的测试脚本,将测试结果(包括测试用例的执行起始时间和执行结果)记录到表7所示的测试日志中,备后续的测试结果分析使用。表7测试日志测试用例编号测试标题执行结果计划执行时间实际执行时间问题单号ZZXL自主训练抬下防
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025乡村医生培训考试试题库及参考答案
- 2025年全民生态文明环境保护知识应知应会试题库与答案
- 托班课程设计与实施要点
- 旗袍走秀教学要点大纲
- 建模剪辑课程介绍
- 名人创业经历案例
- 【 物理】平面镜成像课件 -2025-2026学年人教版物理八年级上学期
- 摄影基础知识结课
- 2025年医疗三基三严考试题库含答案之心肺复苏
- (2025)检验科三基试题及答案
- GB/T 34940.2-2017静态切换系统(STS)第2部分:电磁兼容性(EMC)要求
- GB/T 21198.4-2007贵金属合金首饰中贵金属含量的测定ICP光谱法第4部分:999‰贵金属合金首饰贵金属含量的测定差减法
- GB/T 21143-2014金属材料准静态断裂韧度的统一试验方法
- 第六章分子的结构与性质
- 大学英语-My Stroke of Luck优秀课件
- 第14章-裁剪《创新设计-TRIZ系统化创新教程》教学课件
- 高三语文现代文阅读《微纪元》课件29张
- 六西格玛绿带报告模板课件
- 《小马过河》完美课件(共17张)
- 江西省地图介绍模板
- (完整版)圣三国蜀汉传攻略
评论
0/150
提交评论