《软件测试技术应用总体介绍说明讲义ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件测试技术应用总体介绍说明讲义ppt课件.ppt(118页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目软软 件件 测测 试试 技技 术术介介 绍绍上海创景计算机系统有限公司认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目内 容1.软件测试基本概念1.1 为何软件测试1.2 什么是软件测试1.3 软件测试的作用1.4 软件测试公理2.软件测试技术介绍2.1 静态测试技术2.2 静态分析2.3 动态测试技术3.软件生命周期中的软件测试3.1 软件测试过程模型3.2 软件开发过程3.3 单元测试3.4 集成测试3.
2、5 系统测试3.6 测试进入条件4.软件测试管理认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目随着软件功能越来越强、复杂程度越来越高,导致致命故障越来越多。1.1 为何软件测试?“The day the software crashed”-福布斯杂志Tandem-金融交易系统宕机;AT&T-电话系统;Chemical bank-双倍借贷给客户;IRS 向纳税人征收680亿美金税金;Patriots&Scuds-爱国者导弹故障;Bank of New York-236亿美金;Ariana5-火箭故障;DSC Communic
3、ations-电话系统故障;认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目软件错误开销:美国航空公司储运损耗每分钟损失2万美金;1989-12小时储运损耗1994-5小时储运损耗飞行系统故障-$50,000,000损失;Boeing-每分钟损失5万美金;美国联邦快递-每分钟损失16.7万美金。1.1 为何软件测试?认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目历史上:1973年W.Hetzel指出测试是对程序或系统能否完成特定任务建立信心的过程。异议:
4、我们不应该只是为了对一个程序建立信心或显示信心而去作测试。1.2 什么是软件测试?修正观点:测试目的在于鉴定程序或系统的属性或能力的各种活动,它是软件质量的一种度量。1983年IEEE:使用人工或自动手段来运行某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清结果与实际结果之间的差别。2023年4月13日5认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目软件测试的重要性软件设计与编码过程是引入错误的过程,而软件测试是排除软件错误的过程。1.3 软件测试的作用2023年4月13日6认识到了贫困户贫困的根本原因,才能开始
5、对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目确定需求设计编码测试排除故障隔离故障隔离故障分类改正故障故障故障故障故障等级失效通过测试排除软件故障 1.3 软件测试的作用2023年4月13日7认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目序号缺陷百分比1需求产生的缺陷202设计产生的缺陷303编码产生的缺陷354软件集成产生的缺陷105文档缺陷5 1.3 软件测试的作用通过测试排除软件故障2023年4月13日8认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工
6、作高度重视,已经展开了“精准扶贫”项目1.测试只能证明错误的存在,而不能表明程序中没有错误。1.4 软件测试公理2.测试的两个作用是:确定程序中缺陷的存在;有助于判断该程序在实际上是否可用。3.软件测试最困难的问题之一是知道何时停止测试(When to stop testing?)4.自己测试自己的程序是不可能的。5.当一个软件被测出的缺陷数目增加时,更多的未被发现的缺陷存在的概率也随之增加。2023年4月13日9认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目6.一个好的测试用例应当是一个对以前未被发现的缺陷有高发现率的用
7、例,而不是一个表明程序工作正确的用例。1.4 软件测试公理7.要对有效的和无效的输入状况写测试用例。(测试用例要兼顾有效与无效的输入)8.每个测试用例必备的部分是描述预期的输出。9.像做其它事情一样,测试在其一开始就必须要有一个目标。2023年4月13日10认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目测试技术测试技术静态测试静态测试代码审查代码审查代码走查代码走查桌面检查桌面检查技术评审技术评审静态分析静态分析控制流分析控制流分析数据流分析数据流分析接口分析接口分析表达式分析表达式分析动态测试动态测试黑盒测试技术黑盒测试
8、技术白盒测试技术白盒测试技术 2.软件测试技术介绍认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目动态测试动态测试控制流覆盖控制流覆盖 数据流覆盖数据流覆盖 黑盒测试技术黑盒测试技术白盒测试技术白盒测试技术功能测试功能测试等价类划分等价类划分边值分析边值分析因果图因果图随机测试随机测试猜错法猜错法 2.软件测试技术介绍语句覆盖语句覆盖分支覆盖分支覆盖路径覆盖路径覆盖错误处理路径错误处理路径全定义使用路径全定义使用路径全使用路径全使用路径全定义路径全定义路径数据流异常状态图数据流异常状态图认识到了贫困户贫困的根本原因,才能开始
9、对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目不执行程序代码,通过审查文档、代码的方式查找软件中的缺陷。2.1 静态测试技术76%以上错误;不需特别条件,容易开展;在发现了错误的同时也就定位错误,不需额外的工作定位错误;对评审人员要求高;可借助于工具进行。2023年4月13日13认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目静态测试方法技术评审软件需求分析与设计;对需求规格文档、设计文档进行非二义性、平衡性、一致性检查。代码走查(Walkthrough)设计测试数据人工方式执行代码。代码审
10、查(Code Inspection)2.1 静态测试技术2023年4月13日14认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目代码审查(Code Inspection)2.1 静态测试技术代码审查测试内容:代码与设计的一致性;代码对标准的遵循性;代码的逻辑表达的正确性;代码结构的合理性。代码审查实施审查会代码审查单2023年4月13日15认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目静态分析静态分析是对被测软件进行特性分析的一些方法的总称;静态分析的查
11、错功能是编译系统所不能替代的;2.2 静态分析静态分析可辅助代码评审人员:发现可能的程序欠缺;找到潜伏着问题的根源;提供间接涉及程序欠缺的信息;.2023年4月13日16认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目静态分析方法 2.2 静态分析编码规则检查控制流分析数据流分析软件度量分析2023年4月13日17认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目改善代码质量避免编程语言本身在使用过程中容易造成的误用;提高开发速度:开发人员不需要总是从一些基
12、本原则出发进行决策;增进团队精神:有助于减少团队内部在一些小事情上的不必要的争论,使团队成员更易于阅读和维护其他成员的代码;在正确的方向上取得一致:使开发人员放开手脚,在有意义的方向上发挥创造力;2.2.1 为什么进行编码规则检查2023年4月13日18认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目C语言本身容易出错的问题词法”陷阱“语法”陷阱“语义”陷阱“连接库函数预处理器可移植性缺陷 2.2.1 编码规则检查改善代码质量2023年4月13日19认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶
13、贫工作高度重视,已经展开了“精准扶贫”项目容易和混淆;&和|容易和&和|混淆;词法分析中的“贪心法”y=x/*p /*p指向除数*/会被编译器理解为/*p /*p指向除数*/为注释字符与字符串C语言中的单引号和双引号含义不同,易错用带来问题;s表示一个整数;“s”表示一个字符指针;2.2.1 编码规则检查词法“陷阱”2023年4月13日20认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目运算符的优先级问题;注意作为语句结束标注的分号If(a b)big a;If(a b);big a;“悬挂”else的问题;switch语句
14、遗漏break;2.2.1 编码规则检查语法“陷阱”2023年4月13日21认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目指针与数组;非数组的指针;作为参数的数组声明;空指针并非空字符串;边界计算与不对称边界;求值顺序;运算符&、|和!整数溢出 2.2.1 编码规则检查语义“陷阱”2023年4月13日22认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目在循环语句中使用“break”语句。#include c_standards.h/*Standard 3
15、1 S:Use of break statement in loop*/void static_31(void)SINT_32 i=10;while(i -1)if(i=0)break;i=i-1;2.2.1 编码规则检查典型规则举例2023年4月13日23认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目#include c_standards.h/*Standard 56 S:Equality comparison of floating point.*/void static_56(void)FLOAT_32 fl,f2
16、;fl=1.01f;f2=2.01f;if(fl=f2)/*.*/if(fl=0.0f)fl=fl+0.01f;2.2.1 编码规则检查典型规则举例浮点数比较。2023年4月13日24认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目功能函数无返回值。#include c_standards.h/*Standard 36 S:Function has no return statement.*/UINT_32 static_36(UINT_32 p_1,UINT_16 p_2)UINT_32 y=p_1;/*Not retur
17、ning a value*/2.2.1 编码规则检查典型规则举例2023年4月13日25认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目MISRA C/MISRA-C:2004MISRA国际发动机工业软件可靠性协会组织制定了“汽车软件C语言使用指南”的标准。这份标准的产生在自动化行业极大地推动了使用“安全的C”进行编程。这份标准在汽车行业被广泛接受,同时它也被其它行业所广泛借鉴。ISO 9126ISO 国际标准化组织IEC 61508IEC 国际电工委员会DERA CDERA 英国防护评估和研究机构 2.2.1 编码规则20
18、23年4月13日26认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目在语言的底层面上,前面列出的C语言存在的隐患,在C中基本都存在,所以从这个角度来看,C语言的大多数规则同样适用于C;C应用比较广泛的编程规则Ellemtel Coding StandardsC Codeing StandardsMore Effective C+2.2.1 关于c+编码规则2023年4月13日27认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目编码规则主要是针对语言使用本身
19、的;编程风格主要是针对代码书写风格的;对于质量“苛刻性”系统,执行严格的编码规则后,弱化了对于编程风格的要求;规则约束很全面很严格,很大程度上已经完成了编程风格检测所要达到的效果;对于非质量“苛刻性”系统,执行宽松的编码规则,编程风格的作用就显得比较重要;2.2.1 关于编码规则与编程风格2023年4月13日28认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目编码规则检查实施项目之初制定编码规则可提高软件产品质量,做到“有法可依”;培训软件编程人员理解规则;加强管理,项目进行过程中需严格按编码规则检查,做到“执法必严”;有效
20、的编码规则检查工具支持;2.2.1 编码规则检查的实施2023年4月13日29认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目控制流分析使用控制流程图系统检查程序的控制流程结构;结构化验证;分析不合理的控制流程结构:无条件跳转指令(GOTO语句)使用;不适当的循环嵌套、分支嵌套;多重入口、出口;不允许的递归调用等。2.2.2 控制流分析认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目数据流分析在控制流基础上分析数据使用情况;静态数据流分析可帮助查找典型的程
21、序错误:用错的局域变量和全局变量;不匹配的参数;未使用过的变量或标号;未定义的变量;不允许的递归;静态数据流分析包括:过程函数参数及调用信息分析;数据流反常分析;全局变量分析。2.2.3 数据流分析认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目过程或函数调用信息分析:参数;全局变量;函数返回值。过程或函数调用信息分析用途:编写程序接口文档;检测错误。查找错误时,下列两种情况需特别关注:存在Clear Path使得输出参数或变量不能正常取值;存在Clear Path使得过程或函数不能正常返回值。过程或函数参数参数全局变量全局
22、变量全局变量 2.2.3 数据流分析认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目典型数据流异常UR 声明后没有初始化就被引用;真实错误(genuine error)DU初始化后没有被引用;可疑错误(suspicious error)DD两次初始化之间没有被引用;可疑错误(suspicious error)1 void proc()2 3 int x,y,z,t;4 x=1;5 if(y 0)6 x=2;7 /*end if*/8 z=x+1;9 10 2.2.3 数据流分析认识到了贫困户贫困的根本原因,才能开始对症下药,
23、然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目 2.2.3 数据流分析一般编译器会进行简单的数据流分析,并且会有相应的警告或者报错信息;相对于编译器的数据流分析,专业工具的数据流分析更全面更彻底专业工具是全路径的数据流分析,而编译器一般不是;专业工具检查的数据流异常的种类比编译器检查的种类多;认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目 2.2.3 数据流分析数据流分析是较深入的静态分析技术;对于程序进行数据流分析,并且排除相应的数据流异常可以提高程序的健壮性;对于有“苛刻性”质量要求的项目,要求
24、进行数据流分析;认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目什么是软件度量?体检身高;体重;血压;软件度量直观性;客观性;与软件错误相关性。2.2.4 软件质量度量与跟踪控制认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目软件产品质量内部特性代码大小代码结构外部特性可靠性、可用性、可维护性等软件开发过程复杂度复杂度代码大小代码大小覆盖率覆盖率直接测量直接测量间接测量间接测量维护性维护性冗余性冗余性可靠性可靠性结构化结构化模块化模块化可复用性可复用性质量
25、质量 2.2.4 软件质量度量与跟踪控制认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目常用度量元McCabe圈复杂度结点度量Halstead 软件科学度量循环深度基本圈复杂度基本结点度量LCSAJ密度扇入/扇出注释行数及比例代码可达性.2.2.4 软件质量度量与跟踪控制2023年4月13日38认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目NASA软件保证技术中心Software Assurance Technology Centre软件度量模型每个模块
26、代码行小于100行;每个模块可执行语句小于50行;注释行比例20%-30%;无GOTO语句使用;McCabe圈复杂度小于10。资料来源于“satc.gsfc.nasa.gov”2.2.4 软件质量度量与跟踪控制认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目动态测试是在抽样测试数据上执行程序并分析输出以发现错误的过程。根据测试理论,如果抽样测试数据满足一定要求,通过测试可以发现程序中大多数错误,并且可以评估程序的质量(正确性,可靠性等)。2.3 动态测试技术认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来
27、国家对扶贫工作高度重视,已经展开了“精准扶贫”项目动态测试技术具有以下特点:实际运行被测试程序,取得程序运行的真实情况、动态情况,进而进行分析。必须生成测试数据来运行程序,测试质量依赖于测试数据。生成测试数据,分析测试结果工作量大,使开展测试工作费时、费力。动态测试中涉及多方面工作,人员多、设备多、数据多,要求有较好的管理和工作规程。动态测试包括三部分核心内容:生成测试数据,执行程序与验证程序的输出结果。2.3 动态测试技术认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目动态测试适用的层次:单元测试 集成测试 系统测试 2.
28、3 动态测试技术认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目黑盒测试与白盒测试方法功能调用图功能调用图.2.3 动态测试技术认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目黑盒测试(BLACK-BOX TESTING)是一种按照需求规格说明设计测试数据的方法。它把程序看作内部不可见的黑盒子,完全不需考虑程序内部结构和编码结构,也不需考虑程序中的语句及路径,测试者只需了解程序输入和输出之间的关系,或是程序的功能,完全依靠能够反映这一关系和程序功能的需求规
29、格说明确定测试数据,判定测试结果的正确性。黑盒测试方法可用于功能测试、边界测试、强度测试、随机测试。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目黑盒测试-基于需求(规格说明)的测试 根据规格说明生成测试用例 每个需求至少覆盖一次方法:功能/性能测试(最普通的,最低限度的测试)边值测试(Boundary Values)强化测试(Stress testing:at Capacity Limits)最坏情况测试(Worst cases Testing)随机测试缺点:在进行上述所有各种测试后,仍有部分程序未被
30、执行。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目规范(Specification)生成测试用例生成预期的输出结果规范(Specification)测试用例被测软件输出比较和分析预期的输出结果正确/错误黑盒测试技术 2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目黑盒测试方法关心被测系统或模块功能接口;不必了解软件实现结构;基于软件需求规格说明。黑盒测试方法有效性很大程度依赖于被测软件需求规格说明、设计说明要求规
31、范的软件需求分析、设计;相关项目规范有非常明确的、具体的要求;分析师、设计师不使用规范的方法;测试人员很难对软件需求分析、设计文档进行评审。方便有效的工具支持。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目黑盒测试用例设计等价类划分;边值分析;因果图法;随机测试法;猜错法;数据域分析法;.2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目等价类划分将输入或输出划分为等效的几个区间:保证每个区间中任何数据或值具有相同特
32、征;分区之间无依赖性。无效等价类与有效等价类。输入或输出不仅只是参数:外部数据;时间;顺序/历史;状态。必须设计测试用例以覆盖每一分区。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目等价类划分-需考虑的几个问题:分区手工划分;当软件复杂性增加时;等价类划分变得复杂。如果分区之间具有依赖性;使得测试用例变得困难。偏向于正向划分等价类:必须补充反向测试数据。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目边值分析边值分
33、析法与等价类划分方法相近:软件错误易于在各分区的边值范围发生。基于如下原则设计测试用例:以边值执行测试;以边值邻近值执行测试 2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目边值分析-需考虑的问题:需具备硬件先验知识移植性使用每个最小边值;使用每个最大边值;往往只做正向测试 2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目因果图法因果图法的基本原理是通过因果图,将自然语言描述的功能说明转换为判定表,最后为判定表的每一
34、列设计测试用例。使用因果图法设计测试用例步骤:列出一个模块的输入条件(因)和动作(果),并给每一个原因与结果赋予一个标识符;画出因果图;将因果图转换为判定表;按判定表规则设计为测试用例。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目随机测试采用随机数据产生测试用例。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目错误推测法:通过估计可能发生的错误类型:基于经验。需建立一错误类型清单:使用错误类型清单进行测试;添加并
35、维护错误类型清单。2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目数据域分析法:根据对数据域的划分,在域边界选择测试数据;被实践证明是十分有效的一种方法;2.3.1 黑盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目白盒测试技术根据被测程序的内部结构设计测试用例。控制流分析;数据流分析;验证软件中所有语句、分支、条件组合都能正常执行;软件设计与最终代码不一定完全一致;通过白盒测试确保不一致部分的代码能正常。2.3.2 白盒测试认识
36、到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目白盒测试-基于结构的测试覆盖度量:语句覆盖100%:适用于单元、集成测试分支覆盖 95%100%85%每个条件语句至少两次(T,F)路径覆盖:每条路径至少一次,适用于单元测试缺点:发现缺陷的效率不如黑盒子。2.3.2 白盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目逻辑覆盖vs.数据流覆盖vs.路径覆盖 2.3.2 白盒测试ABJHCDGFEVAR2VAR1VAR1VAR2认识到了贫困户贫困的根本原因,才
37、能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目100%语句执行ABCDEFG100%分支执行ABHDEJG100%数据流ABCDJGABHDEG 2.3.2 白盒测试ABJHCDGFEVAR2VAR1VAR1VAR2认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目代码覆盖率指标语句覆盖;TER1分支覆盖;TER2LCSAJ路径覆盖;TER3过程/函数调用覆盖;分支条件覆盖;Tsub(C)/TERcon(Ada)分支条件组合覆盖;Tsub(C)/TERcon(Ada)修正条件/判定覆盖。
38、Tsub(C)/TERcon(Ada)数据流覆盖率 2.3.2 白盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目代码覆盖率效率SBLALL PathBCMCDCBCCDPUDUDCU其中:B -分支/判断覆盖BC -分支/条件覆盖BCC -分支条件组合覆盖DCU -所有C-使用覆盖DPU -所有P-使用覆盖DU -所有DU-使用覆盖L -LCSAJ覆盖MCDC-修正条件判定覆盖S -语句覆盖 2.3.2 白盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精
39、准扶贫”项目不同标准/组织对覆盖率要求不同。A级-灾难性(Catastrophic)MC/DC发动机控制惯导系统B级-危险性(Hazardous)分支覆盖差分GPS导航uC级-严重性语句覆盖无线通讯uD级-较轻性基本块覆盖BBC机上环境控制uE级-无影响Entry/Exit 覆盖机上娱乐系统 2.3.2 白盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目不同测试阶段代码覆盖率要求不同:单元测试/渐增集成测试;根据不同的标准,代码覆盖率要求不同;DO-178B A级MC/DC100%;DEF-STAN 00-55 LCS
40、AJ100%;集成测试;过程/函数调用覆盖率100%;系统测试;过程/函数调用覆盖率100%;系统测试单元测试集成测试 2.3.2 白盒测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目根据程序流程结构在程序的特征点插装代码,插装过的代码在执行时将特征值记录保存供分析;程序入口、出口;程序分支;通常情况下插装代码将特征值写入历史文件。通过分析特征值从而分析程序执行流程、路径。2.3.2 白盒测试-代码插装技术认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项
41、目主机平台软件测试静态分析;判断被测软件流程结构;插装代码并执行;动态覆盖率分析;执行结束后,工具分析历史文件得出代码动态执行信息。工具编译被测软件插装软件执行代码执行主机平台软件动态测试历史文件 2.3.2 白盒测试-代码插装技术认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目嵌入式平台软件测试工具交叉编译被测软件插装软件目标机执行代码存储器历史文件宿主机目标机通信驱动通信驱动在线仿真器JTAG调试器以太网串口/并口或其它 2.3.2 白盒测试-嵌入式平台认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来
42、国家对扶贫工作高度重视,已经展开了“精准扶贫”项目主机平台软件测试往往不考虑代码插装影响;嵌入式软件测试必须考虑代码插装影响;代码空间有限;TI TMS320C25(64K字节程序区,64K字节数据区)。实时性;大都嵌入式系统实时性要求强。代码插装影响:代码大小增加20%40%;不同系统时间影响不定。单元测试/渐增集成测试时通常不考虑代码插装影响;系统测试需考虑代码插装影响。2.3.2 白盒测试-嵌入式平台认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目黑盒测试与白盒测试方法使用策略白盒测试白盒测试黑盒测试黑盒测试Speci
43、fication测试策略:1、基于软件需求定义设计测试用例进行功能测试;2、使用覆盖率分析工具对功能测试进行代码覆盖率分析;3、如功能测试不满足代码覆盖率要求,补充白盒测试用例。2.3 动态测试技术认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目顺序软件开发模式瀑布式(Waterfall)渐进软件开发模式迭代开发交互软件开发模式渐进原型RAD 3.软件生命周期中的软件测试认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目计计 划划需求分析需求分析设设 计计编
44、编 码码测测 试试运行运行/维护维护定义阶段定义阶段开发阶段开发阶段维护阶段维护阶段软件生存期的瀑布模型和软件工程过程 3.软件生命周期中的软件测试2023年4月13日71认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目以软件需求为基以软件需求为基础的测试产生础的测试产生低级测试低级测试软件综合测试软件综合测试硬件硬件/软件综软件综合测试合测试软件需求覆盖范围分析软件需求覆盖范围分析软件结构覆盖范围分析软件结构覆盖范围分析测试结果附加的验证直接路径条件路径软件测试过程 3.软件生命周期中的软件测试2023年4月13日72认识
45、到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目需求分析与系统设计概要(结构)设计详细设计编 码单元测试集成测试系统测试用户需求验收测试 3.1 软件测试过程模型-V模型忽略了测试活动对需求分析,系统设计等活动的验证和确认的功能描述了测试阶段和开发过程期间各阶段的对应关系认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目需求分析与系统设计概要(结构)设计详细设计编 码集成实施用户需求交付需求分析与系统设计V&V系统测试准备概要(结构)设计V&V集成测试准备详细设
46、计V&V单元测试准备单元测试集成测试系统测试用户需求V&V验收测试准备验收测试 3.1 软件测试过程模型-W模型测试是与开发同步进行;有利于尽早全面的发现问题;需求、设计、编码等活动被视为串行;测试和开发活动也保持着一种线性的先后关系;对于复杂多变的情况,不能解除测试管理面临的困惑认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目测试就绪点测试准备测试执行测试流程 其它流程(如设计流程)3.1 软件测试过程模型-H模型认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶
47、贫”项目X模型针对单独的程序片断进行单独的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序;前置测试模型体现了开发与测试的结合,要求对每一个交付内容进行测试;3.1 其它软件测试过程模型认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目在实践测试工作中应该尽可能的去应用各个模型对项目有实用价值的方面,不能强行为使用模型而使用模型;以W模型为框架,及早的、全面的开展测试;同时灵活的应用H模型独立测试的思想,在达到恰当的就绪点时就应该开展独立的测试工作,同时将测试工作进行迭代;3.1 软件测试过程模型的选择策略认识到
48、了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目经过确认测试后的软件配置项项目申请软件需求规格说明 软件需求分析概要(结构)设计详细设计编 码单元测试组装测试确认测试系统需求分析软件联试软件任务书概要设计文档详细设计文档代码验证和确认单元测试 验证和测试详细设计文档验证和确认组装测试 验证和测试确认测试 验证和测试系统联试 验证和测试概要设计文档验证和确认软件需求规格说明验证和确认经过编译后的模块经过单元测试后的单元经过组装测试后的软件配置项可以交付的软件配置项产品产品活动活动验证验证 3.1 国内航天软件测试过程模型认识到了贫困
49、户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目产生软件需求收集并分析软件需求;要求软件需求具有完整性、非二义性及逻辑性;定义系统测试需求需对软件需求进行评审纠正软件需求错误需求分析概要设计详细设计编码单元测试集成测试系统测试 3.2 软件开发过程需求分析阶段认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目产生概要设计需求将已确定的软件需求转换成相应的体系结构;确定软件中功能模块;定义功能模块间接口。定义软件集成测试需求评审概要设计纠正概要设计错误需求分析概要设计详细
50、设计编码单元测试集成测试系统测试 3.2 软件开发过程概要设计阶段认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目产生详细设计需求对每个功能模块进行具体的描述;为程序编写打下基础。定义单元测试需求评审详细设计需求纠正详细设计错误需求分析概要设计详细设计编码单元测试集成测试系统测试 3.2 软件开发过程详细设计阶段认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目产生软件代码将软件设计转换成计算机可以接收的程序;要求程序结构良好、清晰易读,且与设计相一致。进行