收藏 分享(赏)

软件测试技术及应用-2010新员工培训.ppt

上传人:saw518 文档编号:4378259 上传时间:2018-12-26 格式:PPT 页数:60 大小:1.75MB
下载 相关 举报
软件测试技术及应用-2010新员工培训.ppt_第1页
第1页 / 共60页
软件测试技术及应用-2010新员工培训.ppt_第2页
第2页 / 共60页
软件测试技术及应用-2010新员工培训.ppt_第3页
第3页 / 共60页
软件测试技术及应用-2010新员工培训.ppt_第4页
第4页 / 共60页
软件测试技术及应用-2010新员工培训.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、1,软件测试技术及应用雷志强,2,AGENDA,一、软件测试的重要性 二、软件测试基础 三、测试设计实例 四、机载软件的发展 五、新一代机载软件技术,3,系统生命周期过程,软件生命周期过程,耐飞性要求 操作性要求 适应性要求,分配给软件 的系统需求 软件级别 硬件定义 设计约束,容错边界 已发现、 消除的错误 软件需求规格说明 软件结构,1、软件与系统的关系,一、软件测试的重要性,4,一、软件测试的重要性,2、测试与开发的关系,软件测试是与软件开发是并行且独立进行的,需求分析,概要设计,详细设计,编码,单元测试,部件测试,配置项测试,系统分析设计,系统测试,5,一、软件测试的重要性,测试用例设

2、计,单元测试,部件(配置项) 测试,系统 测试,需求覆盖分析,结构覆盖分析,附加验证,测试结束,3、测试流程,6,一、软件测试的重要性,软件是现武器装备中的关键部件 现代武器装备的软件规模越来越大 软件开发队伍规模越来越大 软件成为影响装备质量的关键因素 若干事实表明,大量的事故由软件引起,7,一、软件测试的重要性,软件质量实例 阿丽亚那5号火箭失事是由一个浮点数向定点数转换引起 F-22验证机、瑞典JAS39失事是由于安全系统软件故障 J8II单轴ACT二等事故是由于软件溢出引起 F22飞越关岛日期变更线惯导失效,被迫返航 软件出错的机会很多 软件的设计实现过程是一个知识的创造过程,它不仅产

3、生创新思想,而且也包含大量的错误 而软件开发人员的知识背景、认知能力和岗位分工不同,给开发的软件带来很多的错误和缺陷 新技术的采用,需要专门研究测试验证方法 模型驱动开发 操作系统(时间分区、空间隔离) 软件分层(应用、OS、资源) 机载软件除了具有一般嵌入式实时软件的功能需求外,还提出了如下的性能要求:可调度性、可更换、可重用、兼容性、技术透明性和容错性,8,一、软件测试的重要性,软件质量问题的危害 软件的质量问题不容易及时发现 质量问题容易扩散,产生全局性的影响 各单位的软件质量水平不同,水平最差的单位可能成为影响型号研制的瓶颈,严重时可危及整个型号安全,9,软件出错的几种情形 例1:三个

4、数0、1和2进行多数表决 软件设计框图如下:问题: 当R1R2,R0R2时,不能断定R1R0 例如R1=1,R2=2,R0=1。,一、软件测试的重要性,10,一、软件测试的重要性,例2:误差检查 设计规定:|f2 f1| 15时,f2与f1之差合格 问题: 当f2 f1 = -16时, 按设计规定,f2与f1之差应为不合格,但程序却判断为合格,原因是 16 15。,11,一、软件测试的重要性,例3:标识变量使用 if(state = = 0)启动处理 if(state = = 1)停止处理 问题:state 除0,1以外的其他值未处理,12,例4:数字类型转换 double translate

5、r (long double dbl = translater02( str);return dbl 问题:调用translater01后,str32无法存放包含32位有效数据的long型数,一、软件测试的重要性,13,例5:在文件中查找包含”LINE”的行号 while (file.ReadString(strline) if(strline.Find(“ LINE“)=0) if(nLine -1) 0 )tab nc+ -1 2 = nLine-1; nLine+; 问题:当没找到”LINE”时, 没有执行nLine+。当找到包含”LINE”的行时,nLine已不能正确反映文件中的当前行

6、号,一、软件测试的重要性,14,例6:运算符错误 DevDatakind+6+i.RValue.Valuej=(dataj) /*组成16位 */” 问题:表达式右边逻辑运算符(&)使用错误,应该是按位与(&),而不是逻辑与(&),一、软件测试的重要性,15,一、软件测试的重要性,国外,软件测试费用占开发费用的很高比例 软件测试是保证质量的重要手段 国外RTCA-DO178B; 国内国军标、集团公司、各型号线都有相关文 件规定,软件测试包括自测试、三方测试和定型测评 软件测试为开发的管理和软件状态信息的控制提供重要依据,可在软件生命周期内建立完整的产品质量档案 软件测试为软件的验证与确认提供可

7、视的重要依据,为软件功能的标准化和软件系统的集成提供依据 软件的独立测试已引起软件业高度重视,16,二、软件测试基础,按实施步骤:可分为单元测试、组装测试、确认测试、系统测试 按测试对象:可分为单元测试、部件测试、配置项测试、系统测试 按使用的测试技术:可分为静态测试和动态测试,动态测试又可分为黑盒测试、白盒测试 按软件组装策略:可分为增量测试、非增量测试。增量测试又分为自顶向下、自底向上测试等,1、测试分类,17,二、软件测试基础,按测试的完整性:可分为完全性和连续性测试、图路径测试、程序路径测试、穷举测试 按测试内容:可分为功能测试、性能测试、接口测试、余量测试、强度测试、可靠性测试、安全

8、性测试、人机界面测试、恢复性测试、安装性测试、敏感性测试、协调性测试 按测试者:分为开发方测试、第三方测试 军用软件测评实验室统分类: 测试级别4级:单元测试、部件测试、配置项测试、系统测试,区分不同测试对象的大小 测试类型23种:文档审查、代码审查、代码走查、静态分析、功能测试、性能测试、接口测试,区分测试的采用的不同方法和关注重点,1、测试分类,18,二、软件测试基础,静态测试技术 评审(文档、代码)、走查(代码)、分析(代码) 动态测试技术 黑盒测试技术 等价类划分、边界值分析、因果图、随机测试、猜错法 白盒测试技术 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖、MCDC覆

9、盖、路径覆盖 嵌入式软件测试技术,2、测试技术,19,二、软件测试基础,静态测试技术 不执行程序代码而寻找文档、程序代码可能存在的错误的过程。 主要包括由人工进行的软件需求审查、设计审查、代码审查、代码走查和由软件工具辅助进行的代码静态分析。 特点 不必设计(或在计算机上执行)测试用例 可充分发挥人的逻辑思维优势 不需特别条件,容易开展 发现错误的同时也就定位了错误,不需作额外的错误定位工作,2、测试技术,20,二、软件测试基础,动态测试技术 在抽样测试数据上执行程序并分析输出以发现错误的过程 包括黑盒测试和白盒测试两种技术。 特点 实际运行被测程序 必须设计测试用例来运行 测试结果分析工作量

10、大,测试工作费时、费力 投入人员多、设备多,处理数据多,要求有较好的管理和工作规程,2、测试技术,21,二、软件测试基础,黑盒测试技术 是一种按照软件功能说明设计测试数据的技术。 不考虑程序内部结构和编码结构,也不需考虑程序中的语句及路径,只需了解输入输出之间的关系,依靠这一关系和软件功能说明确定测试数据,判定测试结果的正确性。 黑盒测试技术包括等价类划分、边界值分析、因果图、随机测试和猜错法等。 常用于功能、边界、强度、数据处理、容量测试。,2、测试技术,22,二、软件测试基础,白盒测试技术 是一种按照程序内部逻辑结构和编码结构设计测试数据的技术。 可以看到程序内部结构,并根据内部结构设计测

11、试数据,使程序中的每个语句、每个条件分支、每个控制路径的覆盖情况都在测试中受到检验。 根据软件安全性要求,白盒测试应达到规定的覆盖率要求。 白盒测试覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖、MC/DC覆盖、路径覆盖,2、测试技术,23,二、软件测试基础,白盒测试技术 语句覆盖 每条语句至少执行一次 A=2,B=0,X=3(ace) abd,abe,acd,2、测试技术,A1 AND B=0,A=2 OR X1,X=X/A,X=X/A,Y,b,N,a,c,e,d,Y,N,24,二、软件测试基础,白盒测试技术 判定覆盖 每个判断至少有一次为真,一次为假 A=3,B=0,X

12、=1(acd); A=2,B=1,X=3(abe) abd,ace,2、测试技术,A1 AND B=0,A=2 OR X1,X=X/A,X=X/A,Y,b,N,a,c,e,d,Y,N,25,二、软件测试基础,白盒测试技术 条件覆盖 判定中的每个条件获得各种可能的结果 A=1,B=0,X=3(abe) (”A1”=F,”B=0”=T;“A=2”=F,”X1”=T) A=2,B=1,X=1(abe) (”A1”=T,”B=0”=F;“A=2”=T,”X1”=F) abd,ace,acd,2、测试技术,A1 AND B=0,A=2 OR X1,X=X/A,X=X/A,Y,b,N,a,c,e,d,Y,

13、N,26,二、软件测试基础,白盒测试技术 判定/条件覆盖 每个条件和判断本身各种可能的结果至少出现一次 A=2,B=0,X=4(ace) (”A1”=T,”B=0”=T,第一个判定值=T;“A=2”=T,”X1”=T,第二个判定值=T) A=1,B=1,X=1 (abd) (”A1”=F,”B=0”=F,第一个判定值=F; ( A=2”=F,”X1”=F,第二个判定值=F) acd,abe,2、测试技术,A1 AND B=0,A=2 OR X1,X=X/A,X=X/A,Y,b,N,a,c,e,d,Y,N,27,二、软件测试基础,白盒测试技术 多重条件覆盖 每个判定中条件、结果的所有可能组合至少

14、出现一次 A=2,B=0,X=4(ace) (”A1”=T,”B=0”=T, 第一个判定值=T;“A=2”=T,”X1”=T, 第二个判定值=T) A=2,B=1,X=1(abe) (”A1”=T,”B=0”=F, 第一个判定值=F;“A=2”=T,”X1”=F, 第二个判定值=T) A=1,B=0,X=2(abe) (”A1”=F,”B=0”=T, 第一个判定值=F;“A=2”=F,”X1”=T, 第二个判定值=T) A=1,B=1,X=1(abd) (”A1”=F,”B=0”=F, 第一个判定值=F;“A=2”=F,”X1”=F, 第二个判定值=F) acd,2、测试技术,A1 AND B

15、=0,A=2 OR X1,X=X/A,X=X/A,Y,b,N,a,c,e,d,Y,N,28,二、软件测试基础,白盒测试技术 MC/DC覆盖 判定中每个条件和判定本身的所有可能结果至少出现一次,并且每个条件都显示能单独影响判定结果 对于判断(A AND B),有如下4组测试用例: A=T,B=T =(A AND B)=T A=T,B=F =(A AND B)=F A=F,B=T =(A AND B)=F A=F,B=F =(A AND B)=F 、说明A能单独影响判定结果,、说明B能单独影响判定结果,、是必须的,2、测试技术,29,二、软件测试基础,嵌入式软件在特定目标机上运行 涉及到专用外设,

16、有较强的实时性要求 一般测试技术、工具缺乏实施的基本条件 解决嵌入式软件测试困难的方法有: 研制专用测试设备 在宿主机上进行功能测试(单元/软件部件集成) 在宿主机上仿真目标机硬件资源、接口和指令系统 在仿真试验台进行时间测试和配置项、系统测试 利用实装进行测试(测试时一旦激活软件问题,可能造成设备、财产、甚至人身损失),3、嵌入式软件测试技术,30,1、基于表格(并联发控),三、测试设计实例,并联发控功能载机消息转发到2个发射架收集2个发射架信息上报载机 1553消息载机发控 7条发控载机 3条,31,三、测试设计实例,如何设计测试用例,说明测试的充分性?假设给发射架A、B的7条消息分别为A

17、1A7、B1B7 如果采用穷举法:1)2台发射架的单一消息排列共有2*P(7,7)=1080种,如无自动测试环境,人工测试不便全部测试2)再考虑A、B重复的情况(如A3A3,B6B6),A、B交叉的情况(如A1B2、B6A4等),以及既重复又交叉的情况(如A3A3B2、B5A7A7等),显然不可能穷举。 因此只能采用抽样法。,32,三、测试设计实例,如何设计测试用例,说明测试的完整性?抽样方案(基于表格) :A组合,49例,33,三、测试设计实例,如何设计测试用例,说明测试的完整性?抽样方案(基于表格) :B组合,49例,34,三、测试设计实例,如何设计测试用例,证明测试充分性?抽样方案(基于

18、表格) :AB组合,49例,35,三、测试设计实例,如何设计测试用例,说明测试的完整性?抽样方案(基于表格) :BA组合,49例,36,三、测试设计实例,2、基于图形(坏点补偿) 1个好点(表示中心坏点,表示其他坏点):,37,三、测试设计实例,2个连续好点,38,三、测试设计实例,2个不连续好点 (1),39,三、测试设计实例,2个不连续好点 (2),40,三、测试设计实例,3个连续好点,41,三、测试设计实例,3个不连续好点:1单+2连(1),42,三、测试设计实例,3个不连续好点:1单+2连(2),43,三、测试设计实例,3个不连续好点:1单+2连(3),44,三、测试设计实例,3个不连

19、续好点:2单+1连(1),45,三、测试设计实例,3个不连续好点:2单+1连(2),46,三、测试设计实例,3个不连续好点:1单+1单+1单(1),47,三、测试设计实例,3个不连续好点:1单+1单+1单(2),48,三、测试设计实例,3个不连续好点:1单+1单+1单(3),49,三、测试设计实例,4个连续好点(1),4个好点不连续:1-3、2-2、3-1,50,三、测试设计实例,4个连续好点(2),4个好点不连续:1-3、2-2、3-1,51,经验总结 1)注重分析策划需求分析、策划阶段就要考虑好测试用例构成框架,估计测试工作难度和工作量,以便后续工作配备合适的人员2)区分测试重点有的是为证

20、明测试充分性而设计,有的是为查错而设计(恢复性、边界、异常),二者都要关心,但可派不同的人去完成 3)多了解被测件及测试环境代码审查要尽量能映射到高级需求,理解软件动态运行时的工作剖面;要对运行环境、使用环境的被测件分工有所了解;测试环境是否对异常数据有注入能力 4)关于用例设计尽量采用工程方法(图形、表格)描述用例设计思想进行概要设计,测试充分性很直观详细设计十分烦琐,可在熟悉测试环境时先写出针对每一类测试项的用例设计范本,其他可在测试执行时同步完成(操作步骤、预期结果等),只要根据用例能复现结果即可,三、测试设计实例,52,四、机载软件的发展,机载软件在现代战斗机中完成的功能越来越多 飞机

21、每一个动作的完成都离不开机载软件的支持 飞行员的每一个作战意图也必须依靠机载软件才能完成 通信、导航、显示控制、信息/数据处理、飞行控制 火力控制、外挂管理、武器投放、电子战,53,四、机载软件的发展,机载软件越来越复杂,规模越来越大 现代战斗机往往是多功能的、多用途的,需要完成的任务越来越多,飞机上狭小的舱位空间容不下众多的机械、电子设备,许多复杂的功能不得不依靠软件完成,需要更加复杂的软件 机载设备由电子机械密集型向计算机密集型发展,原来由飞机的电子、机械设备完成的许多功能将由软件来替代,软件规模越来越大,54,四、机载软件的发展,机载软件越来越复杂,规模越来越大 无论是国外还是国内军用飞

22、机,其机载软件的求量大幅增加 国外情况,55,四、机载软件的发展,机载软件越来越复杂,规模越来越大 无论是国外还是国内军用飞机,其机载软件的求量大幅增加 国内情况,56,五、新一代机载软件技术,为配合新一代战斗机的研制,由法国、德国、美国和英国联合推出了名为ASAAC(ALLIED STARDARD AVIONICS ARCHITECTURE COUNCIL)项目的机载软件体系结构。ASAAC项目的目的是制定一套概念和标准(包括硬件、软件、系统、网络和信息包格式),用于新一代军用飞机的综合化模块化航电IMA(Integrated Modular Avionics)定义 为缩小与国外先进水平的差

23、距,我国第四代战斗机机载软件将参照ASAAC项目进行综合化模块化航电IMA定义,57,1 软件采用分层结构 (一)应用层、操作系统层、硬件驱动层 (二)各层规定标准的结构,五、新一代机载软件技术,应用软件,58,2 任务采用分区(Partition)调度(一)“分区”既有时间概念,也有空间概念: 分区任务有其运行时机,由操作系统调度;分区任务运行时独享CPU资源(二)根据运行时机和需要资源的不同,软件设计者将程序划分为各个“分区”, 并安排 “分区” 任务的运行时机。由操作系统实现自动“分区”任务调度和分区运行时的现场切换,五、新一代机载软件技术,59,3 分区可调度性设计(一)IMA体系下,

24、同一台计算上(多个分区)的软件高度集成,为减少后期软件综合时的困难,软件设计除了功能性设计外,分区的可调度性设计十分必要(二)操作系统(ARINC653标准)通过“蓝图”技术来保证分区的可调度性。在软件体系结构设计时,应进行分区可调度性检查,保证软件在完成预定功能的同时,分区的时间、空间等资源可用(三)可调度性检查的解决方案分预先检查和实测检查2种预先检查是在软件运行前,根据一定算法对“蓝图”中各分区任务的调度规则进行静态的合理性检查实测检查是通过软件的实际运行,得到分区资源的动态使用信息,从而判断“蓝图”中的调度规则是否合理,五、新一代机载软件技术,60,4 软件采用基于模型的方法开发(一)以基于模型的软件设计为主,主要关注应用模型(二)程序代码则可由建模工具自动生成,程序设计和编码工作量大为减少5 给软件测试提出新的需要 (一)基于模型的软件设计使程序代码自动生成,传统的代码走查、单元测试等基础测试工作已居于次要地位,测试的重点将转移到系统集成、综合时的软件测试与验证 (二)软件分层使各层、特别是应用层软件高度抽象,不依赖于下层的实现细节,不仅接口透明,便于联合设计开发,而且软件开发与硬件开发独立,便于尽早进行测试 (三)需要相应的脱离真实硬件的模拟测试环境硬件综合程度提高、数量减少、价值昂贵;硬件与软件同时设计,五、新一代机载软件技术,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报