确认测试白盒测试_第1页
确认测试白盒测试_第2页
确认测试白盒测试_第3页
确认测试白盒测试_第4页
确认测试白盒测试_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、本堂课讲授重点n确认测试n白盒测试技术确认测试n确认测试的概念n确认测试的范围n软件配置复查nAlpha和Beta测试确认测试的概念n确认测试的目标是验证软件的有效性n验证:“保证软件正确地实现了某个特定要求的一系列活动”n确认:“为了保证软件确实满足了用户需求 而进行的一系列活动”n软件的有效性软件的有效性:如果软件的功能和性能如同用户所合理期待的那样,软件就是有效的n需求分析阶段产生的软件需求规格说明书是进行确认测试的基础确认测试的范围n必须有用户积极参与,以用户为主进行。用户应该参与设计测试方案,使用用户界面输入测试数据并且分析评价测试的输出结果n通常使用黑盒测试法n保证软件:n能满足所

2、有功能要求n能达到每个性能要求n文档资料准确完整n能满足其他预定的要求(如安全性、可移植性、兼容性、可维护性等)软件配置复查n保证软件配置所有成分齐全,包括:n可行性研究报告n需求分析规格说明书n总体设计说明书n详细设计说明书n源代码清单n测试计划、测试方案、测试结果同时,质量符合要求,文档与程序完全一致,具有完成软件维护所必须的细节,已经编好目录。还有用户手册的完整性合正确性。Alpha和Beta测试n大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试, Alpha测试是内测, Beta测试是公测。nAlpha测试Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内

3、部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。nBeta测试由软件的最终用户在一个或多个客户场所进行,开发者通常不在Beta测试现场。 Beta测试是软件在开发者不能控制的环境中的“真实”应用,用户记录在Beta测试过程中遇到错误,并且定期把这些问题报告给开发者。开发者对软件产品进行必要的修改和升级,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产

4、品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。Alpha测试举例n2004年3月,微软Bill Gates证实,微软年内将拿出官方Alpha测试版的Longhorn操作系统,微软Bill Gates也同时证实,Longhorn要到2006年才能正式上市销售。微软这款下一代桌面操作系统将内建DirectX 10,并且采用3D操作界面,采用WinFS文件系统,采用新一代安全机制。 白盒测试技术n问题提出n概念n白盒测试技术主要包括:n逻辑覆盖n控制结构测试白盒测试概念n白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照

5、规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路(虽然这是不可能的)是否都有能按预定要求正确工作,而不顾它的功能。 n测试方案:包括具体的测试目的,应该输入的测试数据和预期的结果n测试用例:测试数据和预期的输出结果测试数据n不同的测试数据发现程序错误的能力差别很大n不可能进行穷尽的测试n应该选用高效的测试数据,提高测试效率降低测试成本。设计测试数据的技术包含白盒测试时设计测试数据的技术和黑盒测试时设计测试数据的技术。问题提出n“我们应该更注重于保证程序需求的实现,为什么要花费时间和精力来担心(和测试)逻辑细节?” n逻辑错误和不正确假设与一条程序路径被运行的可能性成反

6、比。当我们设计和实现主流之外的功能、条件或控制时,错误往往开始出现在我们的工作中。日常处理往往被很好地了解(和很好地细查),而“特殊情况”的处理则难于发现。n我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行。程序的逻辑流有时是违反直觉的,这意味着我们关于控制流和数据流的一些无意识的假设可能导致设计错误,只有路径测试才能发现这些错误。n例如,考虑 100行C语言程序,在一些基本的数据声明之后,程序包含两个嵌套循环,根据输入的条件分别执行1到20次,在内部循环中,需要四个if-then-else结构,该程序中大约有1014条可能路径!n为了正确表达这个数值,我们假设开发了一

7、个有魔力的测试处理器(“有魔力”是因为不存在这样的处理器)进行穷举测试。该处理器能在一毫秒内开发一个测试用例、进行运行并评估结果,如果每天运行24小时,每年运行365天,则需要3170年的时间来测试这个程序。不可否认,这将导致大多数开发进度表的混乱,对大型软件系统不可能进行穷举测试。n然而,白盒测试不应该被抛弃,可选择有限数量的重要逻辑路径进行测试,检测重要数据结构的有效性 逻辑覆盖(A1) and (B=0)(A=2) or (X1)X=X/AX=X+1T1T1T2T2T3T3T4T4T T T T12344321TTTTT T T T1234n判定条件覆盖就是选取足够多的测试数据,使得判定

8、表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果A1B=0X=X/AA=2X1X=X+1T T T T1234T T T T1234T T12T T12T T12T T12T T34T T34T T34T T34T T T T1234T T T T1234T T T T1234T T T T1234逻辑覆盖总结:n语句覆盖对程序的逻辑覆盖很少n判定覆盖比语句覆盖强,但是对程序逻辑的覆盖程度仍然不高,上面的测试数据只覆盖了程序全部路径的一半。n条件覆盖通常比判定覆盖强,因为它使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的值。n判定/条

9、件覆盖也并不一定比条件覆盖更强n条件组合覆盖是更强的逻辑覆盖标准,但是,满足条件组合覆盖标准的测试数据并不一定能使程序中的每条路径都执行到。点覆盖n 如果连通图 G 的子图G是连通的,而且包含G的所有节点,则称G是G的点覆盖。n 与语句覆盖标准相同。边覆盖n 如果连通图 G 的子图G是连通的,而且包含G的所有边,则称G是G的边覆盖。n 通常与判定覆盖标准相同。T T T T1234T T T T1234T T T T1234T T T T3412控制结构测试n基本路径测试n条件测试n循环测试基本路径测试n基本路径测试是在程序控制图的基础上,通过分析控制构造的环行复杂性,导出基本可执行路径集合,

10、从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次(如让循环体只执行一次)。n例子 基本路径测试例子例子nvoid Sort(int iRecordNum,int iType)n1 n2 int x=0;n3 int y=0;n4 while (iRecordNum 0)n5 n6 if(0= =iType)n7x=y+2;n9 elsen8 if(1= =iType)n10 x=y+10;n12 elsen11 x=y+20;n13 n14 环形复杂度第二步:计算环形复杂度n环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基

11、本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。n有以下三种方法计算圈复杂度:n 流图中区域的数量对应于环型的复杂性;n 给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;n 给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。 第三步:导出测试用例 n根据上面的计算方法,可得出四个独立的路径:n 路径1:4-14n 路径2:4-6-7-14n 路径3:4-6-8-10-13-4-14n 路径4:4-6-8-11-13-4-14n根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。第四步:准备测试用例n为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是:n路径1:4-14n输入数据:iRecordNum0,

温馨提示

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

评论

0/150

提交评论