




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Slide 1软件测试基础软件测试基础机 电 信 息 学 院 冯向荣2019.7.15义乌工商职业技术学院Slide 3一、软件缺陷与故障、软件缺陷和软件故障案例 案例1 美国迪斯尼公司的狮子王游戏软件bug兼容性问题 案例2 美国航天局火星登陆事故系统测试 衔接问题 案例3 跨世纪“千年虫”问题 案例4 爱国者导弹防御系统炸死自家人系统时钟误差积累 案例n “许霆AT 取款案” “北京奥运会订票系统瘫痪”“ 7.2 温州动车追尾事故” “互联网企业信息泄露门”.上述所有实例中的软件问题在软件工程或软件测试中都被称为软件缺陷或软件故障。义乌工商职业技术学院Slide 4软件缺陷与故障(续)2、
2、软件缺陷的定义(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指明的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 举例:计算器内的嵌入式软件义乌工商职业技术学院Slide 5例:针对Simplex HR的客户反馈 “我们已在人力资源部使用Simplex H 软件大约 年,从来没有发生过软件失效。” “两个月前我开始使用Simplex H ,我们有许多失效,因此正在考虑换掉这个软件包。” “我们已经使用Simplex H 软
3、件 年了,在此期间我们曾非常满意,直到前几个月突然遇到若干严重的软件失效。销售该软件包的那个公司的支持中心说:他们为使用SimplexH 的大约70 位顾客提供服务,但从来没有遇到我们遇到的这种类型的失效。” 问题:对同一个软件包,用户经历的失效可能这样不同吗?一个软件包为一个机构长期成功地服务,可能“突然”改变它的本性(质量)变得“有毛病”吗?义乌工商职业技术学院Slide 6软件缺陷与故障(续)、软件缺陷的特征 “看不到” 软件系统的逻辑性与复杂性等特殊性质决定了缺陷不易看到 “看到但是抓不到”发现了缺陷,但不易找到问题产生的原因 缺陷屏蔽(defect maskin ):一个故障会被应用
4、程序其他部分的某个或某些故障所掩盖,这种现象称为缺陷屏蔽。义乌工商职业技术学院Slide 7软件缺陷与故障(续)4、相关术语(1)软件错误(software error) 是指由于系统分析员、程序员或软件开发组其他成员造成的语法、逻辑或其他错误,部分或全部不正确的代码段。(2)软件故障(software fault) 也称软件缺陷(software defect/bug),是在特定应用期间导致软件不正确功能的软件错误。义乌工商职业技术学院Slide 8软件缺陷与故障(续)(3)软件失效(software failure) 当存在缺陷的代码被执行时,系统就可能无法实现期望的功能(或实现了未期望的
5、功能),从而引起软件失效。虽然软件、系统或文档中的缺陷可能会引起失效,但并不是所有缺陷都会这样。 失效也可能是由于环境条件引起的:辐射、电磁场和污染等都有可能引起硬件的故障,或者由于硬件环境的改变而影响软件的执行。因此,任何软件失效的根本原因是软件错误。义乌工商职业技术学院软件开发过程软件错误软件故障软件失效软件错误、软件故障和软件失效的关系Slide 10软件缺陷与故障(续)案例: 下面是基于遥测站的气象应用程序:每当温度下降到低于-20时,为防止造成冷敏测量部件的损坏,远程部件需启动保护性的关闭系统操作。程序员错误地将该温度限制定义为-30,这产生了一个软件故障。 未产生失效的应用:几个西
6、班牙组织购买了这个气象信息系统,并安装在西班牙不同的地点,因为这些地区不曾遭受低温,因此没有发生软件失效。 产生失效的应用:此软件俄罗斯版本安装在俄国北部的不同地区,在所有安装区域均造成了监测部件的严重损坏。义乌工商职业技术学院Slide 11软件缺陷产生的原因 用户需求定义错误 需求解释错误 需求记录错误 设计说明有误 编码说明有误 程序代码有误 数据输入有误 测试错误 问题修改不正确 由于其他缺陷而产生义乌工商职业技术学院Slide 12软件缺陷产生的原因(续)图 1 用户需求与实际软件的差异义乌工商职业技术学院Slide 13软件缺陷产生的原因(续)信息传递的误差: 用户想要的 用户所说
7、的 需求分析人员理解的 系统需求规格说明书 开发人员理解的 实际软件义乌工商职业技术学院Slide 14软件缺陷产生的原因(续)其他10%编写代码7%软件产品说明书(需求)56%27%设 计图 2 软件缺陷产生的原因分布义乌工商职业技术学院Slide 15二、软件测试的定义、软件测试的定义软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述: 定义 :软件测试是为了发现错误而执行程序的过程。 定义 :软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及
8、发现错误的过程,即执行测试步骤。义乌工商职业技术学院Slide 16软件测试的定义(续) 测试:所谓测试的含义,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。 测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。 测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例。义乌工商职业技术学院Slide 17软件测试的定义(续)2、软件测试的基本问题 明确测试的根本目的:保证
9、软件的质量 确认测试的对象:软件测试不仅仅是对程序的测试,而且贯穿于软件定义和开发的整个过程。软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。义乌工商职业技术学院Slide 18软件测试的定义(续)、软件测试的基本问题(续) 建立测试生命周期:软件测试生命周期也包含在软件生命周期之中,软件从开发设计、运行、直到结束使用的全生命周期中,主要横跨两个测试历程。( )软件生产阶段的测试活动( )软件运行维护阶段的测试活动 制定和实施测试策略:( )WHO 谁执行测试 ( )WHA 测试什么( )WHE 什么时候测试 ( )HOW 怎样做测试义乌工商
10、职业技术学院Slide 19三、软件测试的目的1. 为了寻找失效而执行程序2. 为了评估质量而执行程序3. 为了增强信心而执行程序4. 为了预防缺陷而分析程序或者它的文档系统地执行程序以证明正确实现了需求,增强对产品的信心,以及查找系统失效的过程称为“测试”。义乌工商职业技术学院Slide 20软件测试的目的(续)义乌工商职业技术学院Slide 21四、软件测试基本原则1 测试可以证明缺陷存在,但不能证明缺陷不存在2 穷尽测试是不可能的3 测试活动应尽早开始4 缺陷集群性(“80/2 现象”)5 杀虫剂悖论6 测试活动依赖于测试内容(测试背景)7 没有发现失效就是有用的系统的说法是一种谬论义乌
11、工商职业技术学院Slide 22软件测试的特性准则 对任何软件(产品)都存在有限的充分测试集合。 若一个软件系统在一个测试数据集合上的测试是充分的,那么再执行一些测试用例也是充分的,这一特性称为单调性。 即使对软件所有的组成成分都进行了充分测试,也并不能表明整体软件系统的测试已经充分,这一特性称为非复合性。 即使对软件系统整体的测试是充分的,也并不能证明软件系统中各组成成分都已得到了充分测试,这个特性称为非分解性。 软件测试的充分性应与软件需求和软件实现相关。 软件越复杂,测试数据就越多,这一特性称为复杂性。 测试越多,进一步测试所获得的充分性增长就越少,这一特性称为回报递减率。义乌工商职业技
12、术学院Slide 25义乌工商职业技术学院Slide 26静态测试与动态测试技术(续)(1)静态测试 静态测试是指不实际运行被测软件,而只是检查程序代码、界面或文档中可能存在的错误的过程。静态测试方法常常称为静态“分析”,静态测试是对被测程序进行特性分析方法的一种总称。 静态测试属于早期测试,包括过程步骤和实现技术两部分。 过程和步骤是:需求分析、概要设计、详细设计和计划执行四部分。 实现技术主要包括:代码检查、静态结构分析、代码质量度量等。 静态测试主要由人工方式进行,同时也需要借助软件测试专用工具进行自动化的测试。义乌工商职业技术学院Slide 27静态测试与动态测试技术(续)(2)动态测
13、试 动态测试方法的主要特征是:计算机必须真正运行被测试的程序,通过输入测试用例对其运行情况进行检测,即分析输入与输出的对应关系,达到检测的目的。 动态测试贯穿于软件产品开发过程及生命周期每个阶段,它的主要历程是单元测试、集成测试、系统测试及验证测试,也属于维护测试的范畴。 动态测试具体内容包括:功能确认与接口测试性能分析覆盖率分析内存分析义乌工商职业技术学院Slide 28静态测试与动态测试技术(续)案例: 语言程序的静态分析和动态测试max(float x, float y)float z;z = xy ? x : y ;return z;main()float a,b;int c;scan
14、f(“%f,%f”,&a,&b);c = max(a,b);printf(“Max is %dn”,c);义乌工商职业技术学院Slide 29静态测试与动态测试技术(续)案例: 语言程序的静态分析和动态测试(分析) 必须修改的问题:(1)子函数max没有返回值的类型(float)(2)精度丢失问题(变量c的类型为int)(3)程序没有注释 建议修改的问题:(1)main函数没有返回值的类型(2)一行代码只定义一个变量(3)程序适当加些空行义乌工商职业技术学院Slide 30静态测试与动态测试技术(续)案例: 语言程序的静态分析和动态测试(修改后)/程序功能:求两个实数中的大数f
15、loat max(float x, float y) /返回两个单精度数中的大数float z;z = xy ? x : y ;return z;void main()float a;float b;float c;scanf(“%f,%f”,&a,&b);c = max(a,b); /调用子函数max()printf(“Max is %dn”,c);义乌工商职业技术学院Slide 312 基于规格说明的测试技术 若测试的规划及测试用例设计是基于软件的各项功能,即:基于软件功能的规格说明,则测试目的是检查软件的各项功能是否能按照预期的目标和期望值实现,并检查其功能的缺陷及错误,
16、或没有达到设计的功能目标。 基于规格说明的测试主要为黑盒测试(Black-box Testing),常用的技术方法有:等价类划分/边界值分析(域测试法)、因果图/决策表法、状态转换法、正交试验法(全配对法)、业务流分析法等。 黑盒测试是一种从用户观点(依据需求而确定的)出发的测试,它是软件功能的主要测试方法,被普遍运用,常用来确认软件功能的正确性和可操作性,用于软件生命周期的各个阶段。义乌工商职业技术学院Slide 32基于规格说明的测试技术(续)输出输入黑盒测试着眼于程序的外部特性,不考虑程序内部的逻辑结构,也被称为数据驱动测试、基于规格说明的测试。义乌工商职业技术学院Slide 33基于规
17、格说明的测试技术(续)义乌工商职业技术学院Slide 34基于规格说明的测试技术(续) 通常,黑盒测试的测试用例从测试对象的规格说明中获取,是从外部来看测试对象的行为,除了选择足够必要的测试输入数据,测试者无法控制测试对象的工作顺序。因此,黑盒测试主要针对软件的各种功能、软件界面、软件性能、外部系统的条件和数据的访问,以及软件初始化等方面的测试。 黑盒测试主要是为了发现以下几类错误: 是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受?能否输出预期结果? 是否有数据结构错误或外部信息访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误?义乌工商职业技术学院Slide 35基于
18、规格说明的测试技术(续) 黑盒测试的特点:(1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。(2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。 黑盒测试属于有限“穷举”(测试用例)的测试方法,把所有可能的输入都作为测试的情况进行分析检测,以这种方法找出程序中的缺陷与错误。但是,通常输入所有可能的测试用例将会受到时间、成本等客观条件的限制,实际上无法实现完全穷举。义乌工商职业技术学院Slide 363 基于结构的测试技术 基于软件结构的测试主要用来分析程序内部结构,测试依赖于对程序细节的严格检验,其实质是通过测试全面了解程序内部逻辑
19、结构、对所有程序的逻辑路径进行检验,测试按照程序内部结构进行,从检查程序逻辑着手,获得测试数据。 基于结构的测试主要为白盒测试(White-box Testing),常用的技术方法有:控制流测试、基于路径的测试、元素比较测试等。 白盒测试是对程序逻辑路径进行遍历性和响应性的测试,在程序内容的不同点去检验程序的状态,来判定其实际情况是否和预期状态相一致。白盒测试的焦点集中在如何根据其内部结构去设计测试用例、执行测试和分析结果。义乌工商职业技术学院Slide 37基于结构的测试技术(续)应用程序白盒测试需要完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中每条路径是否按预定要求正确
20、工作,又称为结构测试、逻辑驱动测试或基于程序的测试。义乌工商职业技术学院Slide 38基于结构的测试技术(续) 白盒测试属于路径测试,测试者检查程序的内部结构,其全部的行为动作是检验程序中的每条路径是否都能按照预定的要求正确地工作,而不考虑其程序的功能。 通常,白盒测试是根据被测程序的内部结构来设计测试用例,当程序具有一定规模时,贯穿整个程序的路径数可能很大,因此很难对每一条路径都进行检查(遍历)。即使每条路径都经过了测试,程序仍有可能存在错误,因为穷举路径测试不能检查出程序是否违反了设计规范,例如:程序结构本身存在问题、程序的逻辑有错误或遗漏等。 白盒测试要求对某些程序结构特性做到一定程度
21、的覆盖,或者说这种测试是“基于覆盖率的测试”,可严格定义要测试的确切内容,明确要达到的测试覆盖率。义乌工商职业技术学院Slide 39黑盒测试和白盒测试的比较未知等式与已知等式?y=2xY=4X=2Y=4X=2白盒黑盒义乌工商职业技术学院Slide 40黑盒测试和白盒测试的比较(续)白盒测试黑盒测试两种测试方法从完全不同的角度出发,反映了测试思路的两方面情况,适用于不同的测试级别。义乌工商职业技术学院Slide 41黑盒测试和白盒测试的比较(续) 黑盒测试:以用户的观点,从输入数据与输出数据的对应关系,即根据程序外部特性进行测试,而不考虑内部结构及工作情况。黑盒测试技术注重于软件的信息域(范围
22、),通过划分程序的输入和输出域来确定测试用例。若外部特性本身存在问题或规格说明的规定有误,则应用黑盒测试方法是不能发现问题的。 白盒测试:只根据程序的内部结构进行测试。测试用例的设计要保证测试时程序的所有语句至少执行一次,而且要检查所有的逻辑条件。如果程序的结构本身有问题,比如说程序逻辑有错误或者有遗漏,那也是无法发现的。义乌工商职业技术学院Slide 424 手工测试与自动化测试(1)手工测试 手工测试是软件测试的主要的、经典的方法,其优势是因为人具有很强的逻辑判断能力,所以能被灵活地运用。手工测试不可被替代,具体体现在以下三个方面: 测试用例的设计:测试人员根据设计规格说明书而设计测试用例,其经验和对错误的判断能力是工具不能完全替代的。 软件界面和用户体验的测试:人的审美观、心理感受及体验是工具无法模拟的。 正确性检查:人对错误的判断、逻辑推理的能力,是工具不能或完全替代的。 各种评审测试:几乎都需要通过人工方式来完成。义乌工商职业技术学院Slide 43手工测试与自动化测试(续)(2)自动化测试 自动化测试产生的渊源:软件测试的重复性使得测试工作量倍增,也让测试者产生巨大工作压力和厌倦心理,自动化测试试图利用测试工具解决上述问题,提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度高端住宅区生态园林景观设计施工综合管理合同
- 2025年智能办公空间电梯装饰美化与系统维护服务合同
- 2025年学校周边商铺租赁及品牌加盟合作协议
- 2025年度证券公司交易信息保密及合规处理合同
- 2025年绿色养殖技术引进与应用推广合同
- 2025年度个性化离婚协议起草与执行指导手册
- 2025年荒山生态修复与农业综合开发项目承包合同
- 地板知识培训横幅标语课件
- 2025年城市老旧小区改造工程招标代理全面实施合同
- 2025年全民健身中心运动器材采购与全面维修服务合同
- GB/T 9871-2008硫化橡胶或热塑性橡胶老化性能的测定拉伸应力松弛试验
- GB/T 26480-2011阀门的检验和试验
- GB/T 19861-2005丙烯酸系阴离子交换树脂强碱基团、弱碱基团和弱酸基团交换容量测定方法
- GB/T 11085-1989散装液态石油产品损耗
- GB 30000.3-2013化学品分类和标签规范第3部分:易燃气体
- 《材料力学》说课-课件
- (完整版)沪教牛津版小学一至六年级英语单词汇总(最新)
- JJF 1587-2016 数字多用表校准规范-(高清现行)
- 完整课件-西方经济学下册(第二版)
- 机械制图教学通用课件(全套)
- 天星择日的基本原理
评论
0/150
提交评论