软件工程 第11章 软件测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.2 软件测试的分类
下面介绍按照质量因素划分的软件测试分类。 功能测试关注于软件产品的功能实现,以软件产品的需求规格说明书 为依据,检验最终的软件产品是否实现了需求规格说明书中的所有功 能需求。 可靠性测试关注于程序输出结果的准确性,它以需求规格说明书中对 系统的可靠性要求为依据,评测最终的软件产品提供准确输出结果的 能力。 可用性测试用来衡量处理服务请求时,应用程序的可用频率。顾名思 义,它以需求规格说明书中对系统的可用性要求为依据。可用性和可 靠性的区别在于,可用性衡量的是一个应用程序处理服务请求并且在 最短时间内从故障中恢复的能力,而可靠性衡量的是应用程序能够在 多长时间内一直运行并且给出期望的结果值。
11.1 软件测试的基本概念
• 11.1.2 软件测试模型 软件测试模型是指软件测试全部过程、活动或任务的结 构框架。 一个好的软件测试模型可以简化测试的工作,加速软件 开发的进程。常用的软件测试过程模型有V模型、W模型和H 模型。
11.1 软件测试的基本概念
V模型是最具代表意义的测试模型,它是软 件开发中瀑布模型的变种。V模型的重要意义在 于它非常明确地表明了测试过程中存在的不同级 别,并且清楚地描述了这些测试阶段和开发过程 的各阶段的对应关系。 不难发现,在V模型中,测试工作在编码之 后才能进行,所以在软件开发早期各个阶段引入 的错误不能及时被发现。尤其是需求阶段的错误 只有等到最后的验收测试才能被识别。对分析、 设计阶段产生的错误不能及时发现并改正的缺点 会对后期的修复工作带来诸多不便,造成更多资 源的浪费和时间的延迟。
11.1 软件测试的基本概念
(6) 让开发小组和测试小组分立,开发工作和测试工作不能由同一部分人 来完成。 (7) 尽早并不断地进行测试,使测试工作贯穿于整个软件开发的过程中。 (8) 在设计测试用例时,应包括输入数据和预期的输出结果两个部分,并 且,输入数据不仅应该包括合法的情况,还应该包括非法的输入情况。 (9) 要集中测试容易出错或错误较多的模块。 (10) 应该长期保留所有的测试用例。
11.2 软件测试的分类
软件测试还包括配置测试、兼容性测试、安装测试、文档测试、软 件国际化测试、软件本地化测试、α测试和β测试等。
配置测试考察软件系统是否能在多种硬件平台上正常运行。 兼容性测试是为了检测各软件之间是否能正确地交互和共享信息,它主要关 注软件的运行平台和应用系统的版本、标准和规范、数据的共享性。 安装测试是为了发现软件在安装过程中存在的错误,验证其与安装手册的内 容是否一致。与安装测试相对应的还有卸载测试。 文档测试是指检验软件产品的文档是否清晰、准确、一致。 软件的国际化和本地化是相对应的。软件的国际化特性要求软件产品能够支 持Unicode,支持不同时区的设定、显示和切换,消除一些不容易改变的设置 等。 α测试和β测试都是属于验收测试的范畴,是在系统测试之后,产品发布之前 进行的测试过程的最后一个阶段。
11.1 软件测试的基本概念
H模型强调测试的独立性和 灵活性。在H模型中,软件测试 活动完全独立,它贯穿于整个软 件产品的生命周期,与其他流程 并行进行。当软件测试人员认为 测试准备完成,即某个测试点准 备就绪时,就可以从测试准备阶 段进入到测试执行阶段。
11.2 软件测试的分类
软件测试可以从不同的角度划分为多种类型,如图所示。
11.1 软件测试的基本概念
• 11.1.1 软件测试的原则
软件测试是为了发现错误而执行程序的过程,它并不可能找出所有的 错误,但是却可以减少潜在的错误或缺陷。人们在长期进行软件测试实践 的过程中,不断地总结出一些软件测试的经验或原则,可供我们参考。 (1) 完全测试是不可能的。 (2) 测试中存在风险。 (3)软件测试只能表明缺陷的存在,而不能证明软件产品已经没有缺陷。 (4)软件产品中潜在的错误数与已Leabharlann Baidu现的错误数成正比。 (5)让不同的测试人员参与到测试工作中。
11.1 软件测试的基本概念
为了克服V模型开发和测试不能同 步的问题,Evolutif公司发明了W模型, 它在V模型的基础上,增加了软件开发 阶段中应同步进行的测试活动。 W模型的最大优势在于,测试活动 可以与开发活动并行进行,这样有利于 及早地发现错误,但是W模型也有一定 的局限性。在W模型中,需求、设计、 编码等活动依然是依次进行的,只有上 一阶段完全结束,才有可能开始下一阶 段的工作。与迭代的开发模型相比,这 种线性的开发模型在灵活性和对环境的 适应性上有很大差距。
第11章 软件测试
11.1 软件测试的基本概念
软件测试是发现软件中错误和缺陷的主要手段。为了保证软件产品的质量, 软件开发人员通过软件测试发现产品中存在的问题,并对其进行及时的修改。可 以说,软件测试的过程就是发现并改正软件缺陷的过程。 软件缺陷是指软件产品中存在的问题,具体表现为用户所需的功能没有实现, 无法满足用户的需求。缺陷的产生是不可避免的,软件测试的工作是必需的。 在软件开发过程的任何阶段都可能引入缺陷。缺陷被引入的阶段越早,在软 件开发的后期修复这些缺陷带来的成本损失就越大。 软件测试是软件开发过程中的一个重要阶段。在软件产品正式投入使用之前, 软件开发人员需要保证软件产品正确地实现了用户的需求,并满足稳定性、安全 性、一致性、完全性等各个方面的要求,通过软件测试对产品的质量加以保证。 实际上,软件测试过程与整个软件开发过程是同步的,也就是说,软件测试工作 应该贯穿于整个开发过程。
11.2 软件测试的分类
软件系统的性能包括多方面的因素,比如输入/输出数据的精度、系统 的响应时间、更新频率、数据的转换和传送时间、操作方式或运行环 境变化时软件产品的适应能力、故障处理能力、资源利用率等。性能 测试主要针对软件产品各方面的性能因素,可以细分为负载测试、容 量测试、压力测试。 安全性测试主要验证系统的安全性、保密性等措施是否能有效地发挥 作用,包括用户管理和访问控制、数据备份与恢复、入侵检测等。