程序设计实践 第六章 测试.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计实践 第六章 测试.doc

第六章 测试 测试的定义和目的 测试是为了发现错误而执行程序的过程。一般情况下,测试工作量占整个开发工作量的40%左右; 许多人都引用Grenford J. Myers在《The Art of Software Testing》一书中的观点:测试是为了证明程序有错,而不是证明程序无错误。是为了演示软件的正确功能软件测试的方法和技术是多种多样的可以从不同的角度加以分类:  从是否需要执行被测软件的角度,可分为静态测试和动态测试。 ? 静态测试具有以下特点: 静态测试不必动态地运行程序,也不必进行测试用例设计和结果判断等工作。 静态测试可以由人工进行,充分发挥人的逻辑思维优势。 静态测试实施不需要特别的条件,容易开展。 ? 动态测试是在抽样测试数据上执行程序并分析输出以发现错误的过程,需要设计测试用例,那是很复杂的事情。动态测试又可分为黑盒测试和白盒测试,典型的黑盒测试包括功能测试、强度测试、边界值测试、随机测试等,白盒测试包括逻辑覆盖测试、域测试、程序变异测试、路径测试、符号测试等。   从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试;对应软件开发过程一般来说单元测试是针对于编程的,是保证程序的正确性,而集成、系统测试则是保证系统符合设计和需求分析。 黑盒测试:黑盒测试也称功能测试或数据驱动测试。它在已知产品应具有的功能的条件下,通过测试来检测每个功能是否都能正常使用。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。   黑盒测试法注重于测试软件的功能需求,主要试图发现几类错误:功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止错误。   具体的黑盒测试方法包括等价类划分、因果图、正交实验设计法、边值分析、判定表驱动法、功能测试等。在使用时,自然要针对开发项目的特点对方法加以适当的选择。     白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。   “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试测试是基于覆盖全部代码、分支、路径、条件。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。 主要是在软件开发过程中针对程序模块进行正确性检验。单元测试典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。是在单元测试的基础上将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。 : 进行集成测试方法可分为两种:自底向上和自顶向下。前者首先从软件结构的最底层模块开始进行组装和测试;后者从主控模块(主程序)开始,沿软件控制层次向下移动,从而逐渐把各个模块结合起来。 集成测试图示: Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。Beta 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。 确认测试是以规格说明书为依据,对软件的功能、性能等进行的黑盒测试。 而系统测试则是基于系统整体需求说明书的黑盒类测试;应覆盖系统所有联合的部件   ]; for(i=0; (s[i]=getchar() !=’\n’ iMAX-1; ++i) ; s[--i]=’\0’; for((i=0; iMAX-1; ++i) ; if ((s[i]=getchar() )= =’\n’ ) break; s[i]=’\0’; for((i=0; iMAX-1; ++i) ; if ((s[i]=getchar() )= =’\n’ | | s[i]= =EOF ) break; s[i]=’\0’; 测试前条件和后条件 使用断言 assert

文档评论(0)

cai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档