12软件工程2L.ppt
《12软件工程2L.ppt》由会员分享,可在线阅读,更多相关《12软件工程2L.ppt(130页珍藏版)》请在课桌文档上搜索。
1、第12讲嵌入式软件工程化开发方法简介2,1.软件工程,2.软件开发模型,3.软件开发文档,4.软件开发方法,5.软件测试,6.软件质量特性和可靠性技术,软件测试,硬件的故障率曲线(浴缸曲线),软件的故障率曲线(理想情况下),软件的故障率曲线(实际情况下),软件开发工作量分配比例,40%50%,10%20%,费用分配比例,55%70%,0 引子,软件测试:成也萧何,败也萧何美国航天飞机研制成功 IBM的软件系统功不可没阿丽亚娜5运载火箭首次飞行失败?软件错误是失败的重要原因,0 引子,正反两个例子中的共同因素美国航天飞机飞行软件研制总结:认真实施软件工程特别加强软件检测阿丽亚娜5飞行故障调查报告
2、:“信息的丢失是由于SRI(备份惯性参考系统)软件中技术指标和设计错误引起的。.测试能查出潜在的故障。,软件测试,软件测试的重要性软件测试的基本概念软件测试的工作内容软件测试的基本技术和策略软件测试阶段软件测试流程怎样做好软件测试,1 软件测试的重要性,1.1 粗劣的软件测试可怕的后果系统不能完成任务早期星球大战计划中,对空防御系统曾把月亮当成洲际导弹目标来攻击火星探测运载火箭因控制程序中错写逗号而爆炸残留错误的影响从电话拨号无响应到系统崩溃使软件开发周期延长,费用增加商业影响,如果没有充分地进行软件测试,可能会:,明天全面发布新软件!,啊!?,而系统运行时又可能这样:,千万别掉下去!,1.2
3、 现代航天系统要求 高、精、尖系统自动化程度不断提高系统规模更大系统复杂性更高微小的错误可能导致灾难性结果大量的嵌入式软件应用,1 软件测试的重要性,1.3 当前的软件开发方法免疫力低软件是一种特殊的产品开发方法学因素人不能避免犯错误软件开发工具不完备,1 软件测试的重要性,1.4 有限的系统开发资源时间、金钱,1 软件测试的重要性,测试和集成 45%,编码 20%,需求 10%,规格说明 10%,设计 15%,1.5 软件测试保证软件质量的重要手段系统的、严密的软件测试能最大限度的发现软件中的错误,减少软件中残留的错误通过软件测试可以验证软件功能、性能、容量、约束、限制等指标满足规定的需求软
4、件可靠性测试可得到软件可靠性指标软件测试为软件质量定量评定提供依据高层次的软件测试可以发现系统级错误,1 软件测试的重要性,1.6 软件测试 不是“芝麻,开门!”完全的软件测试是不现实的软件测试不能保证发现软件中所有的错误软件测试不能取代其它质量保证手段软件测试:巨大的效益和艰苦的工作并存,1 软件测试的重要性,一个例子程序#include main()int a,b,c;scanf(?d,%d?,1 软件测试的重要性,一个例子分析在计算机语言中,任何预定义的类型都是有值域的,在计算中应避免变量的取值超出其类型规定的值域,C的值域应超过A、B的值域。更深一层考虑,应该有全面、准确、严格的需求规
5、格说明,这是设计、编程、测试正确进行的基础。,1 软件测试的重要性,软件测试,软件测试的重要性软件测试的基本概念软件测试的工作内容软件测试的基本技术和策略软件测试阶段软件测试流程怎样做好软件测试,2 软件测试的基本概念,2.1 GB/T 11457-1995 的定义由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求;或识别出期望的结果和实际结果之间有无差别.,2 软件测试的基本概念,2.2 软件测试认识的变迁和发展历史上的一些错误认识测试和调试没有什么区别,除了支持调试外,测试没有别的目的(错误)测试的目的在于证明软件正确(错误)当前软件测试工作中的认识测试的目的在于
6、证明软件错误(实际)测试的目的不是证明任何事情,仅是为了将已察觉的故障的风险程度减小到一个可接受的值(度量)测试是检验软件是否满足规定的需求(全面),软件测试认识的变迁和发展(续)软件测试的发展方向工具化:测试用例自动化专业化,2 软件测试的基本概念,2.3 Myers的测试原则尽早地和不断地进行测试程序员应避免测试自己编写的程序测试实例=输入数据+预期结果测试集=期望(有效)输入+不期望(无效)输入测试程序=它做该做的事+它不做不该做的事一段程序中存在错误的概率与在这段程序中已发现的错误数成比例全面检查每一个测试结果测试是一项具有很大创造性的工作,2 软件测试的基本概念,2 软件测试的基本概
7、念,2.4 软件测试的独立性原则软件测试工作最好由独立于开发队伍的组织进行2.5 软件测试的完成准则完成测试计划规定的测试项使用规定的测试用例设计方法查出一定数目的错误标出单位时间查出的错误量,进行曲线分析某一测量值达到预期目标(如可靠性测试)考查测试充分性,2.6 软件测试的分类按测试对象:单元部件配置项系统按实施步骤:单元组装确认系统按实现技术:静态/动态,黑盒/白盒按测试完整性:程序结构和输入域覆盖按测试专题:功能测试,性能测试,可靠性测试安全性测试,强度测试,安装测试,恢复测试,余量测试,2 软件测试的基本概念,软件测试的的对象和步骤分类,2 软件测试的基本概念,部件,单元,单元,单元
8、,单元,部件,配置项,配置项,系统,组装,确认,系统,单元,Shooman 按测试完整性的分类表 测试类型?主要成分 特点 0 完全性和连续性检查 100%语句覆盖 1 图路径测试 100%图路径覆盖 2 程序路径测试 100%程序路径覆盖 3 穷举测试 对输入参数的所有 值执行所有程序路径 4 穷举测试 比3 更强的穷举测试,包括输入序列的组合,2 软件测试的基本概念,2.7 软件测试工程化软件生命周期软件测试方法软件测试规程软件测试文档软件测试工具,2 软件测试的基本概念,软件测试,软件测试的重要性软件测试的基本概念软件测试的工作内容软件测试的基本技术和策略软件测试阶段软件测试流程怎样做好
9、软件测试,3 软件测试的工作内容,3.1 软件测试管理测试组织 一般在小组内进行组装测试;组织单位内、外部的独立测试;建立专门的测试机构进行测试技术支持,开展独立测试在小组内进行静态分析、单元测试、自测、互测;建立有效的多层次评测体系。使用不同层次的测试手段和组织方式;在软件开发组中指定专人负责软件测试。(加关键等级图),3 软件测试的工作内容,软件测试管理(续)测试控制 a.进行测试计划评审、测试报告评审;b.测试实施的监督:测试用例获取和测试结果 的真实性资源管理 a.软件工程全过程中,测试及独立测试进 度及测试顺序安排;b.人员落实,经费落实;c.测试设备及工具管理,技术培训,3 软件测
10、试的工作内容,软件测试管理(续)测试文档管理 a.纳入一般配置管理;b.问题报表制 问题报告更改申请修改报告回归测试;c.支持回归测试:保证与测试有关的文档被维护以 允许测试的可重复性。,3 软件测试的工作内容,3.2 制定软件测试规范、规程、操作及技 术指南等软件测试文件3.3 软件测试实施制订测试计划产生测试用例集建立测试环境,执行测试评价测试工作和被测软件编制完整的测试文档:测试计划、测试说明和测试报告,3 软件测试的工作内容,3.4 软件测试技术研究一般测试技术提供基本功能,解决基本问题,广泛的通用性。专项软件测试技术特定的软件特征、运行环境、运行方式、实现细节。如:嵌入式软件测试、网
11、络应用软件。工程型号软件测试技术很强的专业背景,高可靠性、高安全性要求。如:飞控软件测试、故障检测软件测试3.5 软件测试工具和测试环境开发,软件测试,软件测试的重要性软件测试的基本概念软件测试的工作内容软件测试的基本技术和策略软件测试阶段软件测试流程怎样做好软件测试,4 软件测试基本技术和策略,4.1.1 静态测试概念不必动态地运行程序发挥人的优势,行之有效不需特定条件,容易开展4.1.2 静态测试具体技术代码走查代码审议技术评审桌面检查自动的静态分析,4.1 静态测试,4 软件测试基本技术和策略,4.1.2.1 代码走查手工进行,以走查小组形式进行考查程序的逻辑给出输入和预期输出当实际输出
12、和预期输出不等时,发现错误4.1.2.2 代码审议代码评估逐行检查代码,以审议小组形式进行使用“代码检查单”,4 软件测试基本技术和策略,4.1.2.3 技术评审综合运用走查和审议技术逐页、逐节检查文档对需求、结构或设计等方面提出问题4.1.2.4 桌面检查软件编制者自我检查效果不如以小组形式进行的评审或审议,4 软件测试基本技术和策略,int func()int sum,i;for(i=0;i100;i+)sum=sum+i;return(sum);,4.1.2.5 自动的静态分析引用分析接口分析表达式分析引用分析的例子sum 未初始化就引用,4.2.1 动态测试概念使用测试用例运行程序取得
13、程序运行的真实情况生成测试用例、分析测试结果工作量大动态测试的关键在选择测试用例主要包括黑盒测试和白盒测试,4 软件测试基本技术和策略,4.2 动态测试,4.2.2 测试数据选择是动态测试的核心问题特定的测试数据只能运行程序的某些片段要保证测试的充分性黑盒测试和白盒测试实际上是测试数据选择的两类方法基本方法,4 软件测试基本技术和策略,4.2.2.1测试数据选择测试的充分性覆盖度量语句覆盖 最基本的,要求100%单元和部件测试中分支覆盖 分支的各方向都得到执行路径覆盖 每一条路径至少执行一次 特定的路径得到执行 单元测试中,4 软件测试基本技术和策略,已运行语句数 全部语句数,测试数据选择测试
14、的充分性错误播种在程序中插入已知数量的错误考查其中多少被发现变异测试一类中的变异程序都被分离例如算法变异:原始形态 变异形态 A=B+C A=B-C A=B*C A=B/C,4 软件测试基本技术和策略,测试数据选择测试的充分性(续)测试直至发现的错误降到规定的指标无错运行的测试数量达到规定的指标.,4 软件测试基本技术和策略,黑盒测试和白盒测试实际上是测试数据选择的两类方法基本方法,4.2.3 黑盒测试和白盒测试黑盒测试像中医:使用望、闻、问、切白盒测试像西医:使用X光、CT扫描目的都是发现病人的病症,P,IN,OUT,4 软件测试基本技术和策略,白盒测试:,黑盒测试:,4.2.4 黑盒测试:
15、不涉及程序结构,把程序看成黑盒子用程序规格说明生成测试用例某些代码段得不到测试可适用于从单元测试到系统测试需要用白盒测试加以补充,4 软件测试基本技术和策略,4.2.4.1 黑盒测试内容?一般包括:功能测试边界测试强度测试随机测试,4 软件测试基本技术和策略,4.2.4.1.1 黑盒测试功能测试是最常见的注重检查是否按规格需求提供了功能对每一项功能进行测试确保功能得到实现并不保证功能总是正确的:各种情况是最基本的测试工作,4 软件测试基本技术和策略,4.2.4.1.2 黑盒测试边界测试是对功能测试的补充注重检查对边界值或异常值的处理4.2.4.1.3 黑盒测试强度测试在处理能力的极限测试4.2
16、.4.1.4 黑盒测试随机测试 测试输入数据随机产生,4 软件测试基本技术和策略,4.2.4.2 黑盒测试方法具体测试用例设计方法 基于功能点 等价类划分 边值分析 因果图法 猜错法 随机数据选取,两个整数输入情况说明:,2,16,2,16,=4,294,967,296,如果每秒种完成一次测试,即包括输入,计算,输出,比对,那100年才能做完,4 软件测试基本技术和策略,4.2.4.2.1 黑盒测试基本功能点是最基本的测试用例集把每一项规格需求的功能作为测试点必要时进行功能的分类和分解注重考查“程序该做的”通常是不充分的需要一个完整、准确、严格的需求,4 软件测试基本技术和策略,4.2.4.2
17、.2 黑盒测试等价类划分是全面考查程序输入域的方法把程序的输入域划分成若干部分,然后从每个部分选取少数代表性数据当作测试用例,这样我们用少数测试用例检验了程序在一类情况下的反应。,4 软件测试基本技术和策略,4.2.4.2.3 黑盒测试边值分析是重点考查程序的边界情况处理所选的测试数据总是在输入域(或输出域)、数据结构、过程参数等的边界或端点,因而常常包括最大值、最小值、临界值等。是对基本功能点和等价类划分的有力补充,4 软件测试基本技术和策略,4.2.4.2.4 黑盒测试因果图法是一种系统的测试用例设计方法针对那些在功能说明书中含有输入组合的情况检查程序是否有错因果图法需建立因果图、判定表,
18、工作量较大,但它考虑到输入的各种组合及各输出条件可能出错的多种情况,对复杂的问题十分有效,4 软件测试基本技术和策略,4.2.4.2.5 黑盒测试猜错法充分发挥人们编程的经验和专业领域知识4.2.4.2.6 黑盒测试随机数据选取在输入域中随机选取测试数据自动化程度高,数据生成方便,选取的数据往往出人意料,是需要长时间运行程序以达到考查目的的测试中较多使用的方法有新的发展,4 软件测试基本技术和策略,4.2.5 白盒测试也叫“玻璃盒”测试,看得见程序内部考查程序逻辑结构发现软件设计和实现间的差异在黑盒测试后发现没有被测试到的部分用程序结构信息生成测试用例构造测试用例使特定程序部分得到运行通常适用
19、于单元测试一般有控制流分析和数据流分析方法,4 软件测试基本技术和策略,4.2.5.1 白盒测试控制流分析语句覆盖:最基本的,要求100%分支覆盖:分支的各方向都得到执行路径覆盖:特定的路径得到执行错误处理路径覆盖:错误处理得到执行,4 软件测试基本技术和策略,控制流分析示例int func(int A,int B,int X)if(A1,4 软件测试基本技术和策略,A1andB=0,A=2 or x1,x=x/A,YES,NO,x=x+1,YES,NO,a,b,c,d,e,控制流分析示例执行路径和输入取值表 路径 A B Xabd 1 1 1acbd 4 0 4aced 2 0 2abed
20、2 1 2,4 软件测试基本技术和策略,A1andB=0,A=2 or x1,x=x/A,YES,NO,x=x+1,YES,NO,a,b,c,d,e,4.2.5.2 白盒测试数据流分析针对程序中数据加工进行考查在控制流路径上数据处理的正确性全定义使用路径全定义路径全使用路径状态迁移合法性,4 软件测试基本技术和策略,数据流分析的一个例子 START READ P,E D=1 X=0 C=2*P IF C=2 THEN GOTO D A IF D=E THEN GOTO C D=D/2 T=C-(2*X+D),4 软件测试基本技术和策略,IF T0 THEN GOTO B X=X+D C=2*(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 软件工程

链接地址:https://www.desk33.com/p-235995.html