- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六课程序正确性证明 本章主要研究内容 基本概念 程序测试的基本方法 部分正确性证明方法 终止性证明方法 基本概念-程序正确性的定义 一段程序是正确的,是指这段程序能正确无误地完成程序设计时所期望的功能。或者说:对任何一组允许的输入信息,程序执行后能得到一组和这组输入信息相对应的正确的输出信息。程序的正确性是衡量一个程序是否优秀的最基本条件。 一段程序是错误的,是指(1)程序完成的事情并不是程序员想要完成的事情;(2)程序员想要程序完成的事情,程序并没有完成。 一般来说,程序中含有错误是很难避免的。错误可能有(1)设计时的错误;(2)程序编写时的错误;(2)运行时的错误等。 发现错误或尽量减少错误,是程序设计人员的努力方向,更是其职责。 基本概念-程序测试 如何发现错误或尽量减少错误? (1)设计程序时尽可能使用结构化程序设计方法,使程序设计过程规范化和标准化; (2)程序调试或运行时采用测试的方法去跟踪程序的运行,从而发现与改正错误; (3)利用程序正确性证明的方法检验程序是否正确。 程序测试:给程序一组或几组初始值进行试运行,将运行的结果与实现已知的结果比较,若两则相同,则认为程序是正确的,若两则不同,则说明程序有错误。 程序测试 一个软件的开发过程要经过程序设计,设计,编写,测试与证明等一系列过程后,才能投入使用。已编写好的软件是否有错误是用户极其关心的问题。 程序测试 程序测试的目的是为了发现程序的错误 程序测试的方法是按习惯挑选各种数据,设计测试用例程序 程序测试 我们测试的程序一般有两种情况: 知道程序的输入和输出功能,而不知道程序的具体结构(常称为黑盒子方法) 已知程序内部结构和流向,测试的用例是根据程序内部逻辑来设计的(白盒子方法) 黑盒子测试方法 在VAX计算机上(字长32位),输入X,Y整数,运行程序后输出Z,则输入数据可能值有2的64次方种可能。 如果执行程序一次要1毫秒,那么对所有数据进行测试需要5亿年 白盒子测试方法(图例) 白盒子测试方法(续) 一程序流程如前图所示。其中从a到b有5种路径,再外套循环20次,这样一个小程序的路径测试就有5的20次方种。 如果程序执行一次从a到b平均花1分钟,整个路径需要运行2亿年才能走遍。 测试用例举例 例1 试测试下面这一程序 Procedure P(var A,B:REAL) Begin If(A 1)and(B = 0) then X:=X/A; If(A=2)or(X1)then X:=X+1; end 测试用例举例 在执行这个程序时,有各种不同的路径,如: a b d a b e d a c b d a c b e d 测试用例举例 我们可用白盒子方法设计测试用例,其任务是尽可能多地执行各种语句,以及调试到各种路径。 如选择 A = 2 ,B = 0 ,X = 3 则可执行路径 a c b e d 此时能覆盖到全部2个计算框,可发现一般的语句的错误 我们通常把这种注重语句的复盖叫“语句复盖” 测试用例举例 如选择 A = 3,B = 0,X = 1 A = 2,B = 1,X = 3 则可执行的路径为 a c b d a b e d 从所走路径来看,上面这组数据要全面一些,它不仅通过全部两个计算框,而且第一个判别框的两边都执行过一次。 我们通常把这种注重选择测试的复盖叫做“判定复盖” 程序测试 从以上两个例子可以看出,测试通常是不充分的,它只能发现某些错误的存在,而不能证明错误的不存在。 所有,在真正设计测试用例的过程种常常要考虑经济性,可行性。 测试的关键就是如何设计好高效,可行的用例程序。 程序测试 如选择 A=2,B=0,X=4 A=1,B=1,X=1 则可执行的路径为 a c b e d a b d 从这组数据来看,它注意了4个条件A1,B=0,A=2和X1的复盖。我们称这种注重判断的复盖为“条件复盖” 程序测试 以上这些数据虽然均达到一些测试目的,且各有侧重,但是都是不充分的。 如从条件出发,用组合的办法使各个条件都能执行到,则我们可以写出以下8种条件组合: 1)A1,B=0 2)A1,B0;(是不等号) 3)A=1,B=0 4)A=1,B0 5)A=2,X1 6)A=2,X=1 7)A2,X1 8)A2,X=1 程序测试 根据这8种条件组合,又可以优化组成如下4组数据: A=2,B=0,X=4 A=2,B=1,X=1 A=1,B=0,X=2 A=1,B=1,X=1 它们都能使各种条件均能出现一次。虽然这个组合方法比较方便,逻辑也很清楚,且对执行条件来说还是比较全面的,但是仍然又未走遍的路径,如a c b d 程序测试 在测试时,还要注意到计算机执行多个条件的特点,即它必须把多个条件分解为简单判别才
您可能关注的文档
- 第六章 多元搜索引擎.ppt
- 《北海丰盈食品休闲零食公司人才流失中存在的问题与对策分析》8000字.docx
- 《浅析数学中的辩证思想与方法》5500字.docx
- 《奥田橱柜企业应收账款融资存在的问题分析》开题报告文献综述4800字.doc
- 《恒顺醋业公司财务风险管理与控制分析开题报告文献综述2700字》.doc
- 《恒顺醋业公司财务管理流程优化案例分析开题报告文献综述(含提纲)3200字》.docx
- 《千禾味业公司财务风险管理与控制分析开题报告文献综述2700字》.doc
- 《财务共享平台下业财融合的研究—以国美集团为例》18000字.docx
- 《农户参与电商的意愿及影响因素实证分析》9700字.docx
- 《在线教育企业财务风险控制研究—以A公司为例》10000字.doc
- 《不同发酵条件下高粱粉理化特性变化研究》9000字.docx
- 《不同营养液对风信子生长品质的影响实证研究》4600字.docx
- 《惠州极米科技资本结构现状及优化建议》9800字.doc
- 《家电企业财务风险的控制-以青岛海尔公司为例(数据图表论文)》19000字.docx
- 《安井食品盈利能力的不足及对策》9700字.doc
- 《乳制品行业财务风险分析—以北京三元集团为例》17000字.doc
- 《新零售业态下小米营运资金管理的实例分析》13000字.docx
- 《伊利乳业企业盈利能力现状与优化策略分析》10000字.doc
- 《伊利乳业乳制品公司员工激励问题探究7100字》.doc
- 《新零售背景下永辉超市物流配送问题及完善对策研究》9200字.doc
文档评论(0)