软件测试与质量保证(经典课件)PPT格式课件下载.ppt
- 文档编号:14040450
- 上传时间:2022-10-17
- 格式:PPT
- 页数:117
- 大小:984KB
软件测试与质量保证(经典课件)PPT格式课件下载.ppt
《软件测试与质量保证(经典课件)PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《软件测试与质量保证(经典课件)PPT格式课件下载.ppt(117页珍藏版)》请在冰豆网上搜索。
,内容提要:
第一章软件测试概述第二章软件测试实质第三章软件测试策略第四章黑盒测试第五章白盒测试第六章集成测试与系统测试第七章验证测试和确认测试第八章测试计划与测试文档第九章面向对象的软件测试第十章软件测试自动化和测试工具第十一章软件质量保证第十二章软件测试职业指导,第一章软件测试概述,1.1计算机系统的软件可靠性问题1.2软件测试与软件可靠性1.3软件测试的发展历史、现状和展望,人们对计算机依赖的程度越高,对其可靠性的要求就越高。
IEEE(InstituteofElectricalandElectronicsEngineers,电气与电子工程师学会)定义软件可靠性为:
系统在特定的环境下,在给定的时间内,无故障地运行的概率。
用来评价软件按照用户的要求和设计目标,完成规定功能的能力,涉及软件的性能、功能性、可用性、可服务性、可安装性、可维护性以及文挡等多方面特性。
软件测试是保证软件可靠性的一个关键因素。
1.软件测试的重要性,计算机和程序是一对孪生兄弟,自从计算机诞生之日就必须要有程序在其上运行,从而得到问题的正确解,必须对程序的功能性进行测试.所以,软件测试工作是在软件工程诞生之前就客观存在了,一直延用至今,且其测试的内容和技术也有了较大的发展。
无论从何种角度讲,软件测试都是软件开发过程一个必不可少的活动,是对软件需求分析、设计规约和编码的最终复审;
是软件质量保证的关键步骤。
软件测试是根据软件开发各阶段的规约和软件的内部结构,精心设计一批测试用例(包括输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现软件中不符合质量特性要求(即缺陷或错误)的过程。
目前,许多软件开发机构将研制力量的40%以上投入到软件测试之中,体现了充分重视软件质量要求。
可见软件测试的重要性。
软件测试不等同于程序测试。
软件测试应当贯穿在软件生存周期全过程。
因此,需求描述、需求规约、设计规约、模块设书以及程序等都应成为软件测试的对象。
在进行软件产品或软件系统开发时,主要有3类人员必须参与,他们是项目经理、开发人员和测试人员。
一般来说,大家都会十分重视开发工作,因此在一个项目组中,会有很多的开发人员,而测试人员比较少。
经过多次实践后,才会增加测试人员,如微软公司就是这种情况。
目前软件测试人员就比较多了,如Exchange2000,项目经理23人,开发人员140人,测试人员350人;
再如Windows2000,项目经理250人,开发人员1700人,测试人员3200人,可以看出测试人员和开发人员之比,竟达5:
3。
2.软件测试的目的和原则,基于不同的立场,存在着不同的测试目的。
从用户的角度看,一般希望通过软件测试暴露软件中隐藏的缺陷,以此来决定是否可以接受该软件产品和软件系统。
从软件开发者的角度看,希望通过测试说明软件中不存在缺陷,表明该软件已正确地实现了用户的要求,从而确立用户对该软件的质量信任。
从软件管理者角度看,希望花费有限的资源达到该软件用户的质量要求,经费和进度是其首要考虑的焦点。
因此,就软件测试的目的可提出如下的观点:
(1)测试是程序的执行过程,目的在于发现缺陷;
(2)一个好的测试用例在于能发现至今未发现的缺陷;
(3)一个成功的测试是发现了至今未发现的多个缺陷的测试。
所以,测试的目的是以最少的资源和时间,找出软件中隐藏的各种缺陷甚至错误。
测试的成功与否就是以发现软件中潜在的缺陷多少来衡量。
根据这些测试目的和目标,软件测试应该注意些什么呢?
郑人杰等人编著的实用软件工程第2版(清华大学出版社,1999年)中有一段描述对此问题进行了回答。
(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
由于原始问题的复杂性,软件的复杂性和抽象性,软件开发各个阶段工作的多样性,以及参加开发各种层次人员之间工作的配合关系等因素,使得开发的每个环节都可能产生错误。
所以不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中。
坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些隐患,提高软件质量。
(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。
在做测试之前,应当根据测试的要求选择在测试过程中使用的测试用例。
测试用例主要用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果。
如果对测试输入数据没有给出预期的程序输出结果,那么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误结果当成正确结果。
(3)程序员应避免检查自己的程序.测试工作需要严格的作风,客观的态度和冷静的情绪。
人们常常由于各种原因,具有一种不愿否定自己工作的心里,认为揭露自己程序中的问题总不是一件愉快的事,这一心里状态就成为测试自己程序的障碍。
另外,程序员对规约理解错误而引入的错误更难发现。
如果由别人来测试程序员编写的程序,可能会更客观,更有效,并更容易取得成功。
要注意的是,这点不能与程序的排错(调试)相混淆。
排错由程序员自己来做可能更有效。
(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
合理的输入条件是指能验证程序正确的输入条件,而不合理的输入条件是指异常的、临界的及可能引起问题变异的输入条件。
在测试程序时,人们常常倾向于过多地考虑合法的和期望的输入条件,以检查程序是否做了它应该做的事情,而忽视了不合法的和预想不到的输入条件。
事实上,软件在投入运行之后,用户的使用往往不遵循事先的约定,使用了一些意外的输入,如用户在键盘上按错了键或输入了非法的命令。
如果开发的软件遇到这种情况时不能作出适当的反应,给出相应的信息,那么就容易产生故障,轻则给出错误结果,重则导致软件失效。
因此,软件系统处理非法命令的能力也必须在测试时受到检验。
用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的错误。
(5)充分注意测试中的群集现象。
测试时不要以为找到了几个错误问题就已解决,不须继续测试了。
经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比。
在所测程序段中,若发现错误数目多,则残存错误数目也比较多。
这种错误群集性现象,已为许多程序的测试实践所证实。
例如IBM公司的OS/370操作系统,47%的错误仅与该系统的4%的程序模块有关。
(6)严格执行测试计划,排除测试的随意性。
测试计划应包括:
所测试软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方式和过程,系统组装方式,跟踪规程,排错规程,回归测试的规定以及评价标准等。
对于测试计划,要明确规定,不要随意解释。
(7)应当对每一个测试结果做全面检查这是一条最明显的原则,但常常被忽视。
有些错误的征兆在输出实测结果时已经明显地出现了,但是如果不仔细全面地检查测试结果,就会使这些缺陷或错误被遗漏掉。
所以必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住症候,暴露错误。
(8)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
3.软件测试与相关的几个概念,软件测试不仅仅是软件质量保证体系中的重要一环,而且也是保证质量的重要技术手段。
(1)排错(debugging)是查找、分析和纠正错误的过程。
而测试(testing)是由人工或自动方法来执行或评价软件系统或软件子系统的过程,以验证是否满足规定的需求,或识别出期望的结果和实际结果之间有无差别。
因此,测试的任务是尽可能多地发现软件中的缺陷和错误,而排错的任务是进一步诊断和改正程序中潜在的缺陷和错误。
一般来说,排错有两类活动:
其一是确定程序中可疑缺陷或错误的确切性质和位置;
其二,是对程序(设计、编码)进行修改,从而排除这个潜在的缺陷或错误。
(2)验证(verification)有3个含义:
其一,确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
其二,程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程;
其三,评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
(3)确认(validation)是在软件开发过程结束时,对软件进行评价,以确认它和软件需求是否相一致的过程,其目的是想证实在一个给定的外部环境中软件的正确性。
确认一般包括需求规约的确认和程序的确认,而程序的确认又分为静态确认和动态确认。
静态确认不在计算机上实际执行程序,通过人工分析或程序正确性证明来证实程序的正确性。
动态确认主要通过动态执行程序作分析,或者测试程序来检查其动态行为,以证实程序是否存在问题,这通常就叫确认测试。
4.软件测试方法分类,软件测试有各种分类方法,按照不同的分类原则有不同的分类结果。
软件测试的分类原则可以有一下几种:
(1)按照软件测试的动、静态来分,有静态测试和动态测试。
在软件开发过程中,每产生一个文档,或每一个活动结束时产生的文档,都必须对文档进行测试,静态测试通过了,则该过程或活动才结束,开发工作取得了进展,可以进入下一个阶段或活动,对这种静态测试也叫做评审。
动态测试就是通过运行程序来检验程序的动态行为和运行结果的正确性。
运行程序并非动态测试的目的,通过运行来检验程序是否正确才是动态测试的目的。
动态测试必须具备测试用例,有时还需要具备驱动程序、桩模块和测试监视代码。
(2)按照软件层面来分,美国国家宇航局建议将软件评审的内容分两个层面来进行,即技术评审和管理评审。
技术评审的任务:
建立软件配置管理基线;
提出并解决技术问题,审查技术工作;
评价项目的状态,判明有关技术问题的近期、长期风险,并加以讨论;
在技术代表的权限内,达成已判明风险的转移策略;
标识呈交给管理人员讨论的风险要素和有关问题;
确保用户和软件开发技术人员之间的交流畅通。
管理评审的任务:
报告上级管理部门该项目的状态、所采取的方针、所达成的技术协议,以及软件产品进展
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 质量保证 经典 课件