第09课 白盒测试软件缺陷数目_第1页
第09课 白盒测试软件缺陷数目_第2页
第09课 白盒测试软件缺陷数目_第3页
第09课 白盒测试软件缺陷数目_第4页
第09课 白盒测试软件缺陷数目_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2n3.1 逻辑覆盖技术逻辑覆盖技术n3.2 路径分析方法路径分析方法n3.3 分支条件测试分支条件测试n3.4 分支的路径测试分支的路径测试n3.5 循环的路径测试循环的路径测试n3.6 软件缺陷分析软件缺陷分析3n软件缺陷软件缺陷是指对软件产品预期属性的偏离现象。是指对软件产品预期属性的偏离现象。n软件缺陷一个标准的定义:软件缺陷一个标准的定义:n从产品内部看,软件缺陷是软件产品开发或维护过程中所存在从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;的错误、毛病等各种问题;n从外部看,软件缺陷是系统所需要实现的某种功能的失效或违从外部看,软件缺陷是系统所需要实现

2、的某种功能的失效或违背。背。n符合下边符合下边5个规则任何一个或几个的都是软件缺陷:个规则任何一个或几个的都是软件缺陷:n软件未达到产品说明书中已经标明的功能软件未达到产品说明书中已经标明的功能n软件出现了产品说明书中指明不会出现的错误软件出现了产品说明书中指明不会出现的错误n软件功能超出了产品说明书中指明的范围软件功能超出了产品说明书中指明的范围n软件未达到产品说明书中虽未指出但应当达到的目标软件未达到产品说明书中虽未指出但应当达到的目标n软件测试人员认为软件难以理解、不易使用,或者最终用户认软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良为该软件使用效果不良4n以

3、计算器内的嵌入式软件来分析软件缺陷:以计算器内的嵌入式软件来分析软件缺陷:n计算器说明书一般声称该计算器将准确无误地进计算器说明书一般声称该计算器将准确无误地进行加减乘除运算。如果用户选定了两个数值后,行加减乘除运算。如果用户选定了两个数值后,随意按下了随意按下了“+”+”号键,结果没有任何反应或得号键,结果没有任何反应或得到错误答案。到错误答案。n若计算器产品说明书指明计算器不会出现崩溃、若计算器产品说明书指明计算器不会出现崩溃、死锁或停止反应,而在随意按、敲键盘后,计算死锁或停止反应,而在随意按、敲键盘后,计算器停止接受输入或没了反应。器停止接受输入或没了反应。5n以计算器内的嵌入式软件来

4、分析软件缺陷:以计算器内的嵌入式软件来分析软件缺陷:n在进行测试时,发现除了加减乘除功能外,还能在进行测试时,发现除了加减乘除功能外,还能进行求平方根的运算,而这个功能没在说明书的进行求平方根的运算,而这个功能没在说明书的功能中规定。功能中规定。n若因电池没电而导致了计算不正确,但产品说明若因电池没电而导致了计算不正确,但产品说明书未能指出在此情况下应如何进行处理。书未能指出在此情况下应如何进行处理。n若计算器某些地方不好用,比如,按键太小、显若计算器某些地方不好用,比如,按键太小、显示屏在亮光下无法看清等。示屏在亮光下无法看清等。63.6.1软件缺陷的种类:软件缺陷的种类:n输入输入/输出缺

5、陷输出缺陷n逻辑缺陷逻辑缺陷n计算缺陷计算缺陷n接口缺陷接口缺陷n数据缺陷数据缺陷3.6.2软件缺陷的产生软件缺陷的产生n缺陷的来源:缺陷的来源:n疏忽造成的错误疏忽造成的错误 CDn不理解造成的错误不理解造成的错误 MDn二义性造成的错误二义性造成的错误 ADn遗漏造成的错误遗漏造成的错误 SDn缺陷的构成:缺陷的构成:软件需求报告软件需求报告56%其他其他10%编码编码7%设计设计27%需求阶段是软件缺陷需求阶段是软件缺陷存在最多的地方!存在最多的地方!u用户与开发人员对产品功能理解不一致用户与开发人员对产品功能理解不一致u靠想象描述的产品特性不够清晰靠想象描述的产品特性不够清晰u用户的需

6、求变化用户的需求变化u对需求分析报告不够重视,投入不足对需求分析报告不够重视,投入不足u开发团队之间没有很好地沟通开发团队之间没有很好地沟通7n思考题:重读因特尔奔腾浮点除法软件缺陷,分析此思考题:重读因特尔奔腾浮点除法软件缺陷,分析此缺陷说明了什么?缺陷说明了什么?83.6.3软件缺陷数目估计软件缺陷数目估计n软件缺陷数目是软件可靠性和整体质量的一个重要参软件缺陷数目是软件可靠性和整体质量的一个重要参数。数。n软件产品质量评估首先要建立基线,在这个基准线上再设置测软件产品质量评估首先要建立基线,在这个基准线上再设置测试的目标,作为对系统评估是否通过的标准。试的目标,作为对系统评估是否通过的标

7、准。n例如:例如:10000行源程序是程序规模的一个基准,每一千行代码行源程序是程序规模的一个基准,每一千行代码有有30个错误是测试中错误发现率的基准。个错误是测试中错误发现率的基准。(P80)n估计残留软件缺陷数目的方法:估计残留软件缺陷数目的方法:n播撒模型播撒模型n静态模型静态模型n根据测试覆盖率的预测模型根据测试覆盖率的预测模型9n播撒模型播撒模型通过已知缺陷来估计程序中潜在的、未通过已知缺陷来估计程序中潜在的、未知的缺陷数目。知的缺陷数目。nMills提出:用人工随机地向待估算的软件置入错误提出:用人工随机地向待估算的软件置入错误(M),然,然后进行测试,并对所测试到的错误进行分类,

8、看哪个是人工后进行测试,并对所测试到的错误进行分类,看哪个是人工置入的错误置入的错误(m),哪个是程序中固有的错误,哪个是程序中固有的错误(n),用下式估算,用下式估算出程序中所有固有的错误出程序中所有固有的错误(N)。MmnN*10n练习题:练习题:n1.某软件公司的评测部对某软件公司的评测部对ASP软件人为注入了软件人为注入了10个缺个缺陷,在开始测试的一小段时间内,发现了陷,在开始测试的一小段时间内,发现了160个个Bug,其中注入缺陷其中注入缺陷2个。请估算出被测程序的固有缺陷的个个。请估算出被测程序的固有缺陷的个数。数。n由以下公式:由以下公式:n所以:所以:N = M N = M

9、* * n /m = n /m = 10 10 * * 158 / 2 = 790 158 / 2 = 790 (个)(个)MmnN*11n上述方法估计程序中残留缺陷数目的有效性是值得怀疑的。上述方法估计程序中残留缺陷数目的有效性是值得怀疑的。n程序中固有的缺陷是未知的,每个错误被检测的难易程度也同样程序中固有的缺陷是未知的,每个错误被检测的难易程度也同样是未知的。是未知的。n人工置入的缺陷是否和程序中存在缺陷检测的难易程度一致也是人工置入的缺陷是否和程序中存在缺陷检测的难易程度一致也是未知的。未知的。nHyman提出另外一种模型:假设软件经过提出另外一种模型:假设软件经过X个月的排错时间,个

10、月的排错时间,程序中将不再存在错误。那么让两个人共同对程序进行排错,程序中将不再存在错误。那么让两个人共同对程序进行排错,经过足够长经过足够长(X的一半或更少的一半或更少)的排错时间后,第一个人发现了的排错时间后,第一个人发现了n个错误,第二个人发现了个错误,第二个人发现了m个错误,其中属于两个人共同发现个错误,其中属于两个人共同发现的错误有的错误有m1个,则程序中的固有错误:个,则程序中的固有错误:nmmN*112n练习题:练习题:n2.在测试一个程序时,由甲、乙两名测试员各自独立测在测试一个程序时,由甲、乙两名测试员各自独立测试。经过一个月测试后,甲发现并改正了试。经过一个月测试后,甲发现

11、并改正了20个错误。个错误。与此同时,乙发现了与此同时,乙发现了24个错误,其中的个错误,其中的6个甲也发现了。个甲也发现了。若甲、乙测试发现的错误均无误,请估算程序中还残留若甲、乙测试发现的错误均无误,请估算程序中还残留多少错误?多少错误?n由以下公式:由以下公式:n所以,程序中的固有错误:所以,程序中的固有错误:N = n * m /m1 = 20 * 24 / 6 = 80n残留错误为:残留错误为:80 - 24 -(20 - 6)= 42 (个)(个)nmmN*113n静态模型静态模型 根据软件的规模和复杂性进行根据软件的规模和复杂性进行估计。估计。nAkiyama模型:模型: N=4

12、86十十0018*L。 其中:其中:N是缺陷数;是缺陷数;L是可执行的源语句数目。是可执行的源语句数目。n谓词模型:谓词模型:N=C+J 其中:其中:C是谓词数目;是谓词数目;J是子程序数目。是子程序数目。nHalstead模型:模型:N=V/3000。 其中:其中:V=xlny,x=x1+x2,y=y1+y2 x1:程序中使用操作符的总次数;:程序中使用操作符的总次数; x2:程序中使用操作数的总次数;:程序中使用操作数的总次数; y1:程序中使用操作符的种类;:程序中使用操作符的种类; y2:程序中使用操作数的种类;:程序中使用操作数的种类; 14n静态模型静态模型 根据软件的规模和复杂性

13、进行根据软件的规模和复杂性进行估计。估计。nLipow模型:模型:N=L*(A0+A1InL+A21n2L)。 Fortran语言:语言:A0=0.0047,A1=0.023, A2=0.000043。 汇编语言:汇编语言:A0=0.0012,A1=0.0001, A2=0.000002。nGaffnev模型:模型:N=4.2十十0.0015L43。nCompton and Withrow模型:模型: N=0.069十十0.00156L十十0.00000047L2。 见见P83 例例3-1615n根据测试覆盖率的预测模型根据测试覆盖率的预测模型错误与时间曲线错误与时间曲线错误数错误数时间时间t

14、1错误数错误数覆盖率覆盖率0.50.95错误与覆盖率曲线错误与覆盖率曲线16n根据测试覆盖率的预测模型根据测试覆盖率的预测模型覆盖率与时间曲线覆盖率与时间曲线覆盖率覆盖率时间时间t1173.6.4软件缺陷效率分析软件缺陷效率分析n1.软件测试的检测能力分析软件测试的检测能力分析 软件测试阶段软件测试阶段 测试能力测试能力 非形式化的设计检查非形式化的设计检查 25%40% 形式化的设计检查形式化的设计检查 45%65% 非形式化的代码检查非形式化的代码检查 20%35% 形式化的代码检查形式化的代码检查 45%70% 单元测试单元测试 15%50% 新功能测试新功能测试 20%35% 回归测试

15、回归测试 15%30% 集成测试集成测试 25%40% 系统测试系统测试 25%55% 低强度的低强度的测试测试(1000客户客户) 60%85%183.6.4软件缺陷效率分析软件缺陷效率分析n2.影响软件测试效率的因素影响软件测试效率的因素 n人为因素人为因素 不同水平层次的测试人员在发现软件错误的数量和不同水平层次的测试人员在发现软件错误的数量和测试效率的差异。测试效率的差异。 n软件类型软件类型 软件类型也是影响测试效率的一个重要因素。软件类型也是影响测试效率的一个重要因素。 n缺陷类型缺陷类型 各种不同的测试方法检测不同错误类型的能力也是各种不同的测试方法检测不同错误类型的能力也是不同的。不同的。 193.6.5软件缺陷的分布:服从对数正态分布软件缺陷的分布:服从对数正态分布tNtdeNtN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论