第7章 软件测试与维护

上传人:今*** 文档编号:107166098 上传时间:2019-10-18 格式:PPT 页数:72 大小:1.19MB
返回 下载 相关 举报
第7章 软件测试与维护_第1页
第1页 / 共72页
第7章 软件测试与维护_第2页
第2页 / 共72页
第7章 软件测试与维护_第3页
第3页 / 共72页
第7章 软件测试与维护_第4页
第4页 / 共72页
第7章 软件测试与维护_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《第7章 软件测试与维护》由会员分享,可在线阅读,更多相关《第7章 软件测试与维护(72页珍藏版)》请在金锄头文库上搜索。

1、软件工程与实践,第7章 软件测试与维护,目 录,第7章 软件测试与维护,教学目标 掌握软件测试的概念、目的和原则 熟悉软件测试的步骤、方法和测试用例设计 掌握软件调试的含义、步骤、方法和原则 掌握软件维护方法及有关实际应用,重点,重点,7.1.1 软件测试的概念及内容 1. 软件测试的定义 软件测试(Software test)的定义是:在规定的条件下对程序进行检测性运行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 IEEE对软件测试定义为:使用技术手段运行或检测软件系统的过程,目的在于检验是否满足规定的需求或搞清预期结果与实际结果之间的差别。 软件测试的定义可

2、从5方面进一步理解: (1) 从软件测试目的方面。正确性、完全性和一致性,检测并修正软件错误。 (2) 从软件开发方面。以检查软件产品内容和功能等特性为核心 (3) 从软件工程方面。是软件工程过程中的一个重要阶段。 (4) 从软件测试性质方面。分析、设计与编码等工作具有“建设性” ,只有测试可能具有一定“破坏性”,如使用负用例测试。 (5) 从软件质量保证方面。软件质量保障的关键措施 。,7.1 软件测试概述,2. 软件测试的主要任务及内容 软件测试重点是测试软件的功能、性能和可靠性等是否符合用户需求指标,其中,“功能测试”是软件测试的最主要任务。 软件测试分为系统软件测试和应用软件测试。 (

3、1)系统软件测试主要任务是发现Bug,其测试报告为“Bug测试报告”。 (2)应用软件测试主要任务 发现功能、性能和接口等“不符合项”,其相应的测试报告为“软件(产品/项目)测试报告”。 软件测试的主要内容包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。 测试方式则由单纯手工测试发展为手工与自动兼用,并向第三方专业测试公司方向发展。,7.1 软件测试概述,7.1.2 软件测试的目的和原则 1软件测试的目的 软件测试的目的是:尽可能多的找到软件中的错误,而不是证明软件的正确。Grenford J. Myers在软件测试技巧一书中指出软件测试目

4、的: (1)测试是为了发现程序中的错误而执行程序的过程。 (2)好的测试方案很可能使测试发现尚未发现的错误。 (3)成功的测试是发现了尚未发现的错误的测试。 一般软件测试对象存在的“缺陷/错误”,主要分为3种: (1) 缺陷问题。 (2) 错误问题。 (3) 严重错误问题。,7.1 软件测试概述,2软件测试的原则 在软件测试过程中,应坚持8项原则: (1)认真执行测试计划。 (2)“尽早和不断地进行软件测试/评审”。 (3)优选测试工具、技术及方法。 (4)精心设计测试用例。 (5)交叉进行软件检测。 (6)重点测试群集现象。 (7)全面检查并分析测试结果。 (8)妥善保管测试文档。 1讨论思

5、考: (1) 什么是软件测试? (2) 软件测试的目的和任务是什么? (3) 软件测试的原则具体有哪些?,7.1 软件测试概述,7.2 软件测试的特点及过程,7.2.1 软件测试的特点 (1)软件测试的成本很大。 (2)不可进行“穷举”测试。,【案例7-1】程序P有两个整型输入量X、Y,输出量为Z,如图7-1所示。若在32 位机上运行,则所有的测试数 据组(Xi,Yi )的数目为:232 232 = 264。假设测试毫秒ms 执行次,如果进行完全测试,则一共需要亿年。,(3)测试具有“破坏性”,(4)软件测试是整个开发过程的一个独立阶段,并贯穿到开发各阶段。,7.2 软件测试的特点及过程,7.

6、2.2 软件测试的过程 1. 完整软件系统的测试过程 对软件进行测试,完整测试总体过程由测试到结果分析,再到排错及可靠性分析,如图7-2所示。,图7-2 软件测试过程,7.2 软件测试的特点及过程,在主要测试前,需要三类输入: (1)软件配置。 (2)测试配置。 (3)测试工具。 软件测试工作的流程。其实与软件开发及验收各阶段密切相关,主要对应的软件测试流程,如图7-3所示。,图7-3 软件开发阶段对应的测试流程,7.2 软件测试的特点及过程,2.软件测试步骤 实际上,完整的软件测试工作的具体实施过程,通常从概要设计阶段开始,如图7-4所示,整个测试实施过程分为两个大的阶段:预测试和测试,本章

7、只考虑后者即测试阶段的工作。,图 7-4 软件测试阶段实施过程,图 7-4 软件测试阶段实施过程,软件测试工作可从概要设计阶段开始,如图7-4所示,整个完整测试分为两个大的阶段: 预测试和测试,本章只考虑(专项)测试阶段的工作。在具体进行实际测试时,有些步骤可以合并,例如功能测试与系统测试。,7.2 软件测试的特点及过程,2.软件测试步骤,7.2 软件测试的特点及过程,软件测试需要在明确具体测试目标的基础上,具体确定测试原则、测试计划、测试方案、测试技术、测试方法和用例等。通常具体的软件测试分为单元测试、集成测试、有效性(确认)测试和系统测试4个步骤,最后进行验收测试,如图7-5所示。,(,图

8、7-5软件测试的步骤,验收交付,1讨论思考: (1) 软件测试的特点有哪些? (2) 软件测试的过程是什么?,7.3 软件测试阶段及任务,7.3.1 单元测试及任务 软件的单元测试也称为模块测试,是对功能独立运行的程序模块的检测。目的是发现各模块内部可能存在的各种问题,保证功能和性能等方面达到用户需求。 1)单元测试的内容和任务 软件单元测试的主要内容包括:单元模块内和模块之间的功能测试、容错测试、边界测试、约束测试、界面测试、重要的执行路径测试,单元内的业务流程和数据流程等。 2)单元测试技术要求及准则 单元测试主要技术要求应达到: (1) 在被测试单元中,80%以上可执行的程序模块都被一个

9、测试用例或异常操作所覆盖,即脚本覆盖率至少应当达到80%。 (2) 被测单元中分支语句取真或假时,至少80%的分支应当执行一次,即分支覆盖率应当达到 80%以上。 (3) 80%被测单元中的业务流程和数据流程,至少被一个测试用例、一个异常数据一次异常操作所覆盖,即异常处理能力达到 80%以上 。,软件的单元测试通过准则,主要达到3项: (1) 单元的具体功能指标要求与设计及需求一致; (2) 单元的接口指标要求与设计及需求一致; (3) 正确处理、输入和检测发现异常运行中的错误;并在单元发现问题进行修改以后,还需要进行回归测试,之后才能进行下一阶段工作。 3)单元测试的输入/输出 单元测试工作

10、的输入为:“程序源代码”和“软件详细设计报告”;单元测试结束的输出为:“程序单元测试记录”和“软件测试计划”等。,7.3 软件测试阶段及任务,7.3.2 集成测试与集成 集成测试是根据软件的体系结构,在单元测试的基础上,将测试过的模块进行集成组合及测试,检查程序结构及功能等方面的正确性和一致性。 1集成测试的方式 一般将模块集成为系统的方式主要有两种: 1)一次性集成及测试 软件的一次性集成也称为集中式或整体式拼装。是一种在对各模块分别测试后,再将所有各模块集成一起进行测试,最后得到满足要求的软件产品的集成方式。 2)增殖式集成及测试 增殖式集成也称为渐增式集成。 软件的增殖式集成测试,包括3

11、种方式: (1)自顶向下增殖测试。 (2)自底向上增殖测试。 (3)混合增殖式测试。,7.3 软件测试阶段及任务,增殖式集成方式各有其优缺点。 (1)“自顶向下”优点是可较早发现主要控制方面的问题。缺点是需要建立桩模块(含测试功能的构件或完整的实施子系统)替代,使其模拟实际子模块的功能较难,且涉及复杂算法和底层输入输出易出问题的模块,可能产生较多的回归测试。 (2)“自底向上”优点是不需要桩模块,一般建立驱动模块比桩模块容易,涉及到复杂算法及输入输出模块先组装和测试,有利于尽早解决最易出问题的部分,而且,这种方式可以多个模块并行测试效率高。缺点是“程序直到最后一个模块加上后才形成一个实体”,在

12、组装和测试过程中,主要的控制最后才可遇到。 (3)混合增殖式测试,常将两种方式结合进行组装和测试,主要包括: 衍变的自顶向下增殖测试。 自底向上-自顶向下增殖测试。 回归测试。,7.3 软件测试阶段及任务,2集成测试的任务及要求 1)集成测试内容及任务 软件集成测试的主要内容包括:系统集成后的功能测试、业务流程测试、界面测试、重要的执行路径测试、容错测试、边界测试、约束测试及接口测试等。 集成测试的具体任务: (1) 各模块连接时,经过模块接口的数据丢失情况; (2) 某一模块的功能对另一个模块的功能的不利影响; (3) 各模块或子系统功能的组合,达到预期需求的集成子系统/系统功能情况; (4

13、) 全局数据结构是否有问题; (5) 单个模块的误差累积后情况,是否会放大能否可以接受。 (6) 单个模块的错误对数据库的影响。,7.3 软件测试阶段及任务,集成测试的职责分工: 由测试人员负责进行该阶段的具体测试工作,并对 测试结果进行详细的记录和分析,完成测试文档。 集成测试工作的输入:“集成测试计划”、“概要设计”、“测试大纲”。 集成测试结束的输出:“集成测试bug记录”、“集成测试分析报告”。 2)集成测试技术要求及准则 软件集成测试的技术要求,主要包括6个方面: (1)确认模块之间无错误连接; (2)验证被测系统满足设计要求情况。 (3)以数据处理测试用例对被测系统的输入、输出、处

14、理进行检测,以达到设计要求; (4)利用业务处理测试用例对被测系统的业务处理过程进行测试,以达到设计的要求; (5)测试软件正确处理的能力和容错能力所达到的标准; (6) 测试软件对数据、接口错误、数据错误、协议错误的识别及处理符合标准。,7.3 软件测试阶段及任务,集成测试通过的准则,包括5个方面: (1) 各单元之间无错误连接; (2) 达到软件需求的各项功能、性能、可靠性等方面的指标要求; (3) 对偶发的错误输入有正确的处理能力; (4) 对测试中的异常问题有合理的提示反馈; (5) 人机界面及操作友好便捷。 3. 软件集成及内容 系统集成是将各软件构件以及子系统组装整合成为完整软件,

15、并与软件平台和其他相关系统进行调配、整合的过程。软件(产品)是由多模块(或对象)组成的软件系统。 软件集成的任务是按照软件体系结构设计的要求,将各软件构件和子系统整合为一个完整的软件系统。,7.3 软件测试阶段及任务,7.3.3 有效性测试及内容 有效性测试也称确认测试。主要经过检测确认已实现的软件是否满足“软件需求规格说明书”各种需求和软件配置的合理性。其任务是验证软件的有效性,即软件的功能和性能及其他特性是否与用户的要求一致,以便于进行系统测试及交付。 1.有效性测试内容及步骤 有效性测试的主要内容包括:系统性的初始化测试、功能测试、用户需求确认、业务处理或数据处理测试、性能测试、安全性测

16、试、安装性测试、恢复测试、压力测试等。 有效性测试的职责分工是:由测试人员负责测试工作,对测试过程及结果进行认真详细的记录和分析,并完成测试文档。 有效性测试工作的输入为:“软件测试计划”、“用户需求分析报告”、“用户操作手册”和“安装手册”。测试结束的输出为:“软件测试bug记录”和“软件测试分析报告”。,7.3 软件测试阶段及任务,有效性测试阶段主要工作步骤如图7-6所示,图7-6 有效性测试计划的步骤,7.3 软件测试阶段及任务,2 .有效性测试的技术要求 有效性测试的主要技术要求,侧重8个方面: (1) 用户需求确认。 (2) 以数据处理测试用例,对被测系统的输入、输出、处理进行测试,以达到需求要求; (3) 利用业务处理测试用例,对被测系统业务处理过程进行测试,达到用户需求各项要求; (4) 响应时间测试。 (5) 安装性测试。 (6) 安全性测试。 (7) 恢复性测试。 (8) 压

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号