第二部分(章)软件工程与软件测试ppt

上传人:创****公 文档编号:1686234 上传时间:2017-07-06 格式:PPT 页数:77 大小:446.50KB
返回 下载 相关 举报
第二部分(章)软件工程与软件测试ppt_第1页
第1页 / 共77页
第二部分(章)软件工程与软件测试ppt_第2页
第2页 / 共77页
第二部分(章)软件工程与软件测试ppt_第3页
第3页 / 共77页
第二部分(章)软件工程与软件测试ppt_第4页
第4页 / 共77页
第二部分(章)软件工程与软件测试ppt_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《第二部分(章)软件工程与软件测试ppt》由会员分享,可在线阅读,更多相关《第二部分(章)软件工程与软件测试ppt(77页珍藏版)》请在金锄头文库上搜索。

1、1 软件工程与软件测试模型2 软件缺陷和缺陷排除的两种重要手段1. 软件测试2. 软件评审3 软件测试的基本概念1. 测试的目的2. 测试的对象3. 软件测试的原则4. 软件测试信息流,第二部分(章)软件工程与软件测试,5. 为什么不可能做到穷举测试 6. 测试策略 (1)测试步骤 (2)生存期各阶段V and V&T活动 (3)测试查错曲线 (4)排除隐错的相对成本4 软件测试的一般性理论5 软件测试的挑战和问题,1 软件工程与软件测试模型,一、什么是软件测试? 1983年IEEE定义为: 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际

2、结果之间的差别。作用1、测试是为了要找出缺陷,但同时,也可以通过对缺陷的度量和统计,分析缺陷产生的原因和缺陷的分布特征,分析产品的质量、工作效率、诊断开发过程中的问题,并通过改进各个开发过程提高过程能力,最终降低缺陷数量和缺陷密度。2、没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。,1 软件工程与软件测试模型,你真的懂测试吗 编程大师说:没有错误的程序世间难求。 (编程之道)你在学校里学过测试吗?(读到博士可能也不懂测试)你所在的企业重视测试吗? (小公司程序员的技能更加全面)临时抱佛脚行吗?你以为有文档模板就会测试了吗? 如果不懂得有效地进行测试,你不仅得不到功劳,也没

3、人欣赏你的苦劳,你拥有最多的将只是疲劳。 职业软件工程师应当掌握需求开发、系统设计、编程、测试、维护 所有技能。,1 软件工程与软件测试模型,二、软件测试阶段单元测试、集成测试、系统测试、验收测试。是“从小到大”、“由内至外”、“循序渐进”的测试过程,体现了“分而治之”的思想。 单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。 集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既要验证“设计”又要验证“需求”。 系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。 验

4、收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。,1 软件工程与软件测试模型,一般的软件测试过程,1 软件工程与软件测试模型,二、V模型介绍 如果软件开发过程采用严格的瀑布模型,那么开发与测试有“V”型的对应关系 。,customer, user, PM, technical support,Design/Analysis,Validate requirements,验收测试设计,集成测试设计,单元测试设计,开发和测试过程的V模型,系统规格描述,框架设计,系统测试,集成测试,详细设计,Code,单元测试,需求,验收测试,系统测试设计,执行单元测试,执行集成测试,执行系统测

5、试,执行验收测试,1 软件工程与软件测试模型,2 软件缺陷和缺陷排除的手段,一、软件缺陷 二、缺陷排除的手段,一、软件缺陷,1、软件缺陷是对软件产品预期属性的偏离现象对产品规格说明的偏离。如:规格说明规定了a+b=c,而软件产品实际上做的不是。对用户期望的偏离,即用户要求未体现在产品中(可能是规格说明有疏漏,也可能是实现中的问题。)2、缺陷有三种错误:未将规格说明正确实现。遗漏:规定的或预期的需求未体现在产品中(可能未将规格说明全面实现,也可能在开发过程中追加了需求。)额外的实现:规格说明并未规定的需求被纳入产品,得到实现。3、软件缺陷不可能完全避免,一、软件缺陷,4、缺陷和事故机械和建筑业的

6、对比。缺陷是软件内部的“裂缝”,在未影响到用户和系统运行的情况下是隐蔽状态,并未表现出来。当缺陷引发运行错误或产生负面影响时,构成事故,造成损失或伤害。,二、排除软件缺陷的两种重要手段,1、软件测试测试在软件开发中占有重要地位测试成本占有开发成本的近一半,软件开发成本分布,需求分析,设计走查,概要设计,设计评审,详细设计,编码,代码走查,单元测试,集成测试,确认测试,测试评审,需求评审,测试策划,2、软件项目评审,评审与走查,3 软件测试的基本概念,1、测试目的(J. Myers)测试是程序执行的过程,目的在于发现错误(缺陷)好的测试用例能有效地发现别的测试用例未发现的错误(缺陷)成功的测试是

7、发现了未曾发现的错误(缺陷),3 软件测试的基本概念,2、测试的对象1) 程序测试:发现程序中的缺陷,程序正确性的各种情况,a程序编写无语法错误b程序执行中未发现明显的运行错误c程序中无不适当语句例:某程序 说明部分 D L,对说明语句部分 S L=3;对赋值I M=L+5对引用R D D R D D D D I R R I I R I I 正常 异常,程序正确性的各种情况,d. 程序运行时能通过典型的有效测试数据,得到正确的预期结果。e. 程序运行时能通过典型的无效测试数据,得到正确的结果。f. 程序运行时能通过任何可能给出的数据,给出正确的结果。,2) 软件测试:发现程序及前期开发的缺陷,

8、需求规格说明 SRS,设计规格说明 DS,程序,软件测试的对象,3、 软件测试的原则,在测试工作开始以前,不应设想程序中没有缺陷或找不出缺陷。(测试心理学)测试以前应预知测试的结果数据。尽可能避免测试自己写的程序。坚持独立测试原则,必要的情况下建立独立测试机构。测试用例应兼顾有效输入和无效输入。不仅要检验程序是否做了该做的事,还应检验是否做了不该做的事。测试的充分性。测试的有效性。限于人力、物力,测试工作适可而止。(测试经济学)保留一切测试用例。任何已测程序的变更都应重新进行测试。(回归测试),4、软件测试信息流,测试计划测试用例测试程序,5、测试成本曲线,不足测试,过度测试,测试的程度 t,

9、未发现的缺陷数,测试成本,最佳测试点,5、为什么不可能做穷举测试,M1,D1,D2,D3,D4,M2,M3,M4,M5,M6,M7,D5,=20次,循环次数01220独立路径数51+52+53+5211014(1百万亿)每个测试用例(考虑、执行、验证结果)5分钟共需测试时间10亿年,5、为什么不可能做穷举测试,若X、Y为所有可能的整数 在字长32位机上测试X1、Y1 Z1 Xn、Yn Znn = 232232 = 264 1.84 1019,生存期各阶段V、V&T活动,分析,设计,编码,维护,安装,测试,单元测试,系统测试,验证,确认,系统测试 质量控制,集成测试,回归测试,验收测试,6、测试

10、策略,软件测试的基本过程,软件测试周期示意,验证与确认,验证(Verification): 在软件生存期各个阶段,验证是指检测各个阶段结束时的工作产品是否满足对上一阶段的结束后的工作产品所定义的规格的验证过程。,验证与确认,确认(Validation): 在软件生存周期各个阶段,确认是指检测各个阶段结束时的工作产品是否满足在软件生存周期初期在系统需求文档中描述的各项软件规格的确认过程。,确认和验证的比较,验证是检测每一阶段形成的工作产品是否与前一阶段定义的规格相一致,确认是检测每一阶段的工作产品是否与最初定义的软件需求规格相一致。软件测试既可用于验证,又可用于确认。,测试查错曲线,发现的错误数

11、,周,周,需求隐错,设计隐错,编码隐错,静态分析,排除隐错的相对成本,4 软件测试的一般性理论一、黑盒测试与白盒测试,黑盒测试(Black-box testing) 黑盒测试是从用户观点出发的测试,它又称功能测试(不全面,还包括功能测试)、数据驱动测试或基于规格说明书或用户手册的测试。它所依据的是程序的外部特性。,黑盒测试只关心输入与输出的对应关系,不关心被测程序的内部关系。,4 软件测试的一般性理论黑盒测试的准则,基于需求规格说明书的测试(需求矩阵)需求列表设计列表:概要设计和详细设计测试用例与需求的对照表,4 软件测试的一般性理论一、黑盒测试与白盒测试,白盒测试(White-box tes

12、ting)白盒测试又称结构测试、逻辑驱动测试或基于程序的测试,其测试过程如图所示。,白盒测试要研究被测程序的源代码结构,4 软件测试的一般性理论一、黑盒测试与白盒测试,白盒测试覆盖准则语句覆盖-在测试时,设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少执行一次。分支覆盖-在测试时,设计若干测试用例,运行被测程序,使程序中的每个判断真假的分支至少遍历一次。条件覆盖-在测试时,设计若干测试用例,运行被测程序,使程序中的每个条件的可能取值至少满足一次。条件分支覆盖-在测试时,设计足够的测试用例,使得判断中每个条件的所有可能取值至少出现一次,并且每个判断本身的判定结果也至少出现一次。路径覆

13、盖- 设计足够多的测试用例,要求覆盖程序中所有可能的路径。,4 软件测试的一般性理论一、黑盒测试与白盒测试,软件测试的衡量标准需求的覆盖需求追溯表/需求矩阵缺陷数量多、新缺陷重现率BUG能按照一定的测试过程稳定重现效率平均每人天发现的BUG数(5个/人天)成本少。合理的测试人力和软、硬件资源安排重用价值测试的数据或者样例可以重用,静态测试和动态测试,静态测试是指不实际运行被测程序,而只是静态地检查程序代码、界面或文档中可能存在的错误。对于代码测试:主要测试代码是否符合相应的标准和规范。对于界面测试:主要测试软件的实际界面与需求中的说明是否符合。对于文档测试:主要测试用户手册和需求说明是否符合用

14、户的实际需要。,程序代码的静态测试需要我们按照相应语言的代码规范模板来逐行检查程序代码,C语言程序的例子,#includeMax(float x,float y)float z;Z=xy?x:y;return (z);,Main() float a,b; int c; scanf(“%f,%f”,&a,&b); c=max(a,b); printf(“max is %dn”,c);,必须修改的问题有三个,程序没有注释 一般注释语句要占到代码总行数的1/51/4; 注释语句包括程序的基本信息如作者、版本号、创建日期等,以及主要功能模块。子函数max没有返回值得类型 由于Z的值为单精度型,可以在max前面加一个float类型声明精度丢失问题 注意语句 c=max(a,b),c的精度为整型,而max为float。,建议修改的问题也是3个,Main函数没有返回值类型和参数列表建议改为:void main(void),表明main函数的返回值和参数都为空。1行代码只定义1个变量程序适当加一些空行,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号