- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 测 试无论采用何种开发模型开发出来的大型软件系统,由于客观系统的复杂性,人的主观认识的狭隘性,不 可能对要开发的系统具有完美的认识。虽然在软件开 发的每一阶段都进行了技术审查和管理复审,也不可 能把设计中所有潜在的错误检查出来并进行纠正,而 且在编码阶段也会引入新的错误,软件设计环节的错 误,如果不进行纠正,在使用阶段可能造成的损失会 很大。所以软件在交付使用之前必须进行严格的测试,通过测试找出软件在需求分析、设计和编码阶段隐藏 的错误,并加以改正。软件工程(Software Engineer)计算机科学与工程学院第一页,共二十八页。7.1测试的基本概念和原则1 测试的必要性在测试理论形成的早期,一些软件开发公司由 于忽视软件的测试,造成了巨大的经济损失。所以 测试对提高软件的质量具有很大的重要性。虽然在 软件生命周期的各个阶段都有严格的技术审查和管 理复审,但是经验表明,审查不能发现所有的差错;在编码过程中,程序员的编程水平对软件的影响很 大,但是不管经验多丰富的程序员在编程中都会引 入一些错误。如果这些错误在软件交付前没有被测 试出来,投入使用后往往带来严重后果。软件工程(Software Engineer)计算机科学与工程学院第二页,共二十八页。2 测试的概念软件测试软件测试是对软件计划、软件设计和软件编码进行查错和纠错的活动,这个过程包括了代码执行活动和人工活动。程序测试程序测试是对编码阶段出现的语法错、语义错、运行错进行查找的编码执行过程。动态测试动态测试包括白盒测试和黑盒测试。黑盒测试是根据软件的功能而设计测试用例而进行测试的过程,白盒测试是根据测试的内部结构而设计测试数据,发现程序的错误。静态测试静态测试包括代码审查和静态分析。软件工程(Software Engineer)计算机科学与工程学院第三页,共二十八页。·3软件测试的目的G.Myers关于软件测试目的的观点是:测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试;成功的测试是发现了迄今尚未发现的错误的测试。软件工程(Software Engineer)计算机科学与工程学院第四页,共二十八页。4 测试复杂性在理论上看,不论采用哪种测试,只要对每一种可能的情况都进行测试,就可以得到完全正确的程序。我们称包含所有可能的测试称为穷尽测试。而在实际中,穷尽测试是不可能做到的。图8.1 黑盒测试复杂性例子无论采用黑盒法还是白盒法,要做到穷尽测试,在时间上和代价上都不可能,只能选择部分测试用例尽可能多地行测试,找到尽可能多的错误,也即是进行有穷测试。软件工程(Software Engineer)计算机科学与工程学院第五页,共二十八页。5 测试的基本原则(1) 测试前要认定被测试的软件有错,不要认为被测试的程序是正确的;要确定测试软件的预先测试结果;尽量避免测试自己编写的程序;测试时要考虑合理的输入和不合理的输入数据;测试时应以软件需求规格说明书中的需求为标准;要确定找到的新错与已找到的旧错成正比;所使用的测试用例应该纪录下来,以后测试时再用,以供后来的测试和维护使用。软件工程(Software Engineer)计算机科学与工程学院第六页,共二十八页。7.2测试步骤1测试过程软件工程(Software Engineer)计算机科学与工程学院第七页,共二十八页。2 测试的步骤测试时,首先进行单元测试,再进行组装测试,最后进行确认测试。软件工程(Software Engineer)计算机科学与工程学院第八页,共二十八页。7.3设计测试方案1白盒法测试的基本技术·在工程实践中,白盒法的基本测试思想:分析被测试程序的逻辑结构,选择逻辑执行路径子集设计测试方案。用尽可能少的测试用例子集确定被测试程序的实际执行状态与预期的状态是否一致,期望发现尽可能多的错误。·在工程实践中提出了以下几种选择逻辑路径子集的覆盖标准。软件工程(Software Engineer)计算机科学与工程学院第九页,共二十八页。语句覆盖:执行足够的测试用例,使得被测试程序中每个可执行语句至少被执行一次。判定覆盖:判定覆盖又称为分支覆盖,它的基本思想是:执行足够的测试用例,使得 被测试程序中每个语句至少执行一次,并且每个判定分支也至少执行一次.条件覆盖:执行足够的测试用例,使判定条件中的每个条件至少获得一次可能取 值的机会。判定/条件覆盖:执行足够的测试用例,使得被测试程序中每个判定分支至少 获得一次通过,同时各判定中每个条件至少获得一次可能取值的机会。条件组合覆盖:执行足够的测试用例,使得被测试程序中每个判定条件的各种组 合至少获得一次为真和假的机会。点覆盖边覆盖路径覆盖:执行足够的测试用例,使得被测试程序中的每条可能路径至少执 行一次软件工程(So
文档评论(0)