版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章测试与维护第九章测试与维护本章要点:本章要点: 1.1.软件测试的基本概念、目的和原则软件测试的基本概念、目的和原则2.2.软件测试的过程及软件测试方法软件测试的过程及软件测试方法3.3.软件调试基本概念、步骤和方法软件调试基本概念、步骤和方法4.4.软件维护基本概念、软件维护成本软件维护基本概念、软件维护成本5.5.软件维护的过程,提高可维护性方法软件维护的过程,提高可维护性方法9.1 软件测试简介软件测试简介9.1.1 测试定义测试定义 软件测试是为了发现程序的错误而执行程序的过程,是使用人工或自动手段来运行或测定某个系统以发现程序错误的过程,用于验证软件是否正确地实现了用户的需求,
2、是保证软件产品的高质量和可用性的重要手段。 测试目的(1)测试是为了确认软件的质量。(2)为了证明软件有错误,而不是证明软件是正确的。(3)测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。9.1 软件测试简介软件测试简介9.1.2 测试的原则测试的原则(1)测试应该尽早地和不断地进行。(2)测试用例设计应包括测试输入数据和预期输出结果。(3)设计测试用例时应考虑到合理的输入和不合理的输入以及特殊情况。(4)应该避免程序员测试自己编写的程序,程序设计组织也不应测试自己的程序软件,而应该由第三方来负责。(5)应该充分注意测试中的群集现象。(6)对测试错误结果一定要有一个确认的过程。(7)
3、制定严格的测试计划。(8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护奠定基础。9.1 软件测试简介软件测试简介9.1.3 软件测试的对象软件测试的对象 软件测试应贯穿于整个软件生存周期中,需求分析、概要设计、详细设计和编码等各个阶段所得到的文档,包括需求规格说明、概要设计说明书、详细设计说明书以及源程序等,都应成为软件测试的对象。 9.2 软件测试模型软件测试模型 软件测试是与软件开发紧密相关的一系列有计划、系统性的活动,软件测试也需要测试模型去指导实践。常见的软件测试模型包括V模型、W模型等。 1. V模型模型9.2软件测试模型软件测试模型2. W模型模型9.3 软件测试的一
4、般过程软件测试的一般过程1. 测试需求分析阶段测试需求分析阶段 进行测试需求分析的依据主要包括各种开发文档、软件测试方法与规范。 测试成果文档: 软件测试需求说明书 9.3软件测试的一般过程软件测试的一般过程2. 测试计划阶段测试计划阶段(1)测试内容:明确本次软件测试要完成哪些测试。(2)测试目的:主要是确保软件产品质量,通过测试确认是否达到预期目标。(3)测试标准:确定本次测试需要输入的文档、测试项目结束标准等。(4)资源分配:资源包括人力资源和软硬件资源。(5)测试风险:主要涉及项目开发延期、测试人员不足、用例无法全面覆盖测试点、时间不足、bug无法及时修改导致无法验证等风险。(6)软件
5、测试策略:产品总体测试方案的制定。 测试计划阶段的成果为软件测试计划书。9.3 软件测试的一般过程软件测试的一般过程3. 测试方案设计阶段测试方案设计阶段 测试方案设计阶段主要是以测试需求为基础形成测试方案,对于有自动化测试的项目,进行自动化测试分析,生成测试策略。 阶段成果:阶段成果: 软件总体测试方案 9.3 软件测试的一般过程软件测试的一般过程4. 测试用例实现阶段测试用例实现阶段 本阶段主要是完成测试用例的编写和自动化脚本的编写。 测试用例的编写需要对用户场景、功能规格说明、产品的设计以及程序/模块结构都有比较清楚的理解。 阶段成果: 产品自动化测试用例 手工执行测试用例9.3 软件测
6、试的一般过程软件测试的一般过程5. 测试执行阶段测试执行阶段 进行预测试,然后开始正式测试。 阶段成果: 软件测试报告 9.3 软件测试的一般过程软件测试的一般过程6. 评价与关闭阶段评价与关闭阶段 对前面各个阶段的执行情况提供完整的数据报告和项目总结报告,完成测试项目的关闭。 阶段的成果:阶段的成果: 遗留问题风险分析报告等。 上述测试实施完成后,要对用例库,测试脚本,bug库等进行维护,保证延续性等。 9.4 软件测试常用方法软件测试常用方法1. 白盒测试与黑盒测试白盒测试与黑盒测试 白盒测试又称基于程序本身的测试,着重于程序的内部结构及算法,通常不关心功能与性能指标。 黑盒测试又被称为功
7、能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。 9.4软件测试常用方法软件测试常用方法2. 黑盒测试法黑盒测试法(1 1)发现的错误)发现的错误 1)是否有不正确或遗漏的功能? 2) 在接口上,输入能否正确地接受?能否输出正确的结果? 3)是否有数据结构错误或外部信息访问错误? 4)性能上是否能够满足要求? 5)是否有初始化或终止性错误? 9.4软件测试常用方法软件测试常用方法(2)常用方法 1)等价类划分法)等价类划分法 根据程序的输入域(所有可能的输入数据)划分成具有不同特点、满足不同
8、要求的若干部分,每个部分即为一个等价类。 说明: 1)等价类分为有效等价类和无效等价类, 2)设计测试用例时,要针对每个等价类选择一个或最少的数据作为代表。9.4 软件测试常用方法软件测试常用方法 等价类的设计原则等价类的设计原则(1)如果规定了输入条件的取值范围或者个数,则可以确定一个有效等价类和两个无效等价类。(2)如果规定了输入值的集合,则可以确定一个有效等价类和一个无效等价类。 (3)如果规定了输入数据的一组值,并且程序对每一个输入值分别进行处理,则可以为每一个允许输入的值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不允许的输入值的集合。(4)如果规定了输入数据必须遵守
9、的规则,则可以确定一个有效等价类和若干个无效等价类。(5)如果输入数据是一个布尔量,则可以划分一个有效等价类和一个无效等价类。(6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类9.4 软件测试常用方法软件测试常用方法 例:完成日期检查功能的测试,采用等价类划分法设计测试用例的内容如下: (1)等价类的划分结果 9.4 软件测试常用方法软件测试常用方法 (2)测试用例9.4 软件测试常用方法软件测试常用方法 2)边界值分析法)边界值分析法 是对等价类划分法的有效补充,测试用例来自于等价类边界,针对发生错误的各种边界情况设计测试用例。 使
10、用边界值分析方法设计测试用例,通常针对输入等价类的边界,选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。9.4软件测试常用方法软件测试常用方法范例:下面是边界值分析法测试数据举例。(1)软件系统中有一输入框,要求输入数值在-1000到+1000间整数,要测试的程序有两个边界值,-1000和+1000,同时,按照经验,对于0和位数升级的数值(例如,从99到100,从999到1000等)也要做一个边界值来进行测试。测试用例输入值包括:-1000、-1001、-999、1000、1001、999、0、1、-1、-9999、9999、99、100、101等。9.4软件测试常用方法软件测试常用方法
11、 3)因果图法 等价类划分法和边界值分析法都是着重考虑输入条件,没有考虑输入条件的各种组合、输入条件之间的相互制约关系。因果图是适合于检查程序输入条件的各种组合并相应产生多个动作结果的情况进行测试用例设计。 4)正交实验设计 正交试验设计方是研究多因素(欲考察的变量)、多水平(变量的取值)的一种设计方法,它是根据正交性从全面试验中挑选部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散、齐整可比”的特点,正交实验设计是一种基于正交表的、高效率、快速、经济的试验设计方法。9.4软件测试常用方法软件测试常用方法 5)错误猜测法 该方法基于经验和其他一些测试技术,测试人员凭经验猜测错误的类型及
12、软件中潜在的错误位置,并设计测试用例去发现这些错误。 9.4 软件测试常用方法软件测试常用方法3.白盒测试法白盒测试法 软件测试人员使用白盒测试,主要对程序模块进行如下检测: (1)路径覆盖检测 对程序模块的所有独立的执行路径至少测试一次;(2)逻辑覆盖检测 对所有的逻辑判定,取“真”和“假”的情况都至少测试一次;(3)控制流检测 在循环的边界和运行界限内执行循环体(4)数据流检测、领域检测 测试内部数据结构的有效性。9.4 软件测试常用方法软件测试常用方法 根据覆盖目标的不同,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖等。逻辑覆盖类型关系如图所示。
13、9.5 面向对象测试面向对象测试1. 特点特点(1)测试对象从面向过程的软件转变为面向对象的软件,是基于面向对象的概念和原则,用面向对象的方法构建。(2)测试的基本单位从模块转变为类和对象。(3)测试的方法和策略不同:面向对象测试不仅吸纳了传统测试方法,如白盒测试、黑盒测试、路径覆盖等,而且更加侧重于各种类测试的方法,集成测试和系统测试的方法和策略也很不相同。9.5 面向对象测试面向对象测试2. 单元测试单元测试 主要是对类的成员方法进行测试。 注意的问题:注意的问题: 1)继承父类的成员方法在子类中做了改动,成员方法调用了改动过的成员方法的部分,需要重新测试成员方法。 2)测试具有包含多态性
14、的成员方法时,需要在原有测试的基础上扩大测试用例中输入数据类型。9.6 软件调试软件调试1. 软件调试基本概念软件调试基本概念 软件调试也称为纠错或排错,是纠正软件错误的过程,是程序员在编码过程中不断地对程序进行调整优化所做的工作。 调试活动由两部分组成调试活动由两部分组成:(1)确定程序中错误的确切性质和位置(2)对程序进行修改,排除错误9.6 软件调试软件调试2. 软件测试和调试的主要区别软件测试和调试的主要区别(1) 测试是为了发现软件中存在的错误;调试则是发现程序错误的位置、原因以及改正错误等。软件调试是发生在测试之后的步骤。(2) 测试从已知条件开始,使用预先定义的程序,且有预知的结
15、果;调试一般是从不可知的内部条件开始,除统计性调试外,结果一般不可预见。(3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程,并且在开发的整个过程中都必须进行调试。9.6 软件调试软件调试(5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理、想象。(6)测试经常是由独立的测试小组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员特别是程序员完成。(7)大多数测试的执行和设计可以由工具支持;调试时,开发人员通常只能够利用卡法工具自带的调试器。9.6 软件调试软件调试3.3.软件调试的步骤软
16、件调试的步骤(1)诊断错误 系统报错、输出结果与预期结果不同、陷入死循环等,都是程序的错误。诊断错误的常用方法包括语法检查和跟踪程序流程等。(2)确定错误的源发点 寻找所有与错误有关地方,确定错误的源发地。(3)改正错误 确定错误及位置后,针对错误类型进行改正。9.6 软件调试软件调试4.4.软件调试方法软件调试方法(1 1)蛮干法)蛮干法(2 2)回溯法)回溯法 从发现错误的地方开始,沿程序的控制流往回追踪分析源程序代码,直到找出错误的位置和原因。(3 3)归纳法)归纳法 归纳法是从一种特殊推断一般的系统化思考方法。 (4 4)演绎法)演绎法 演绎法是从一般原理或前提出发,经过排除和细化的过
17、程推导出结论的方法。9.7 软件维护软件维护1. 软件维护的定义软件维护的定义 软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。 软件维护的软件维护的4 4种形式:种形式: (1)改正性维护:指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。其工作量占整个维护工作量的17%21%。 (2)适应性维护:指使用软件适应信息技术变化和管理需求变化而进行的修改。占整个维护工作量的18%25%。9.7 软件维护软件维护(3)完善性维护:指为扩充功能和改善性能而进行的修改,主要是增加一些新的功能,还包括对处理效率和编写程序的改进。 工作量占整体维护的50%60%。(4)预防性维护:指为了改进软件的可靠性和可维护性,适应未来的软硬件环境的变化而做的工作。工作量约占整体的4%。9.7 软件维护软件维护2. 影响维护工作量的因素影响维护工作量的因素 (1)系统大小 (2)程序设计语言 (3)系统年龄大小 (4)数据库技术的应用 (5)先进的软件开发技术9.7 软件维护软件维护3. 维护成本维护成本 有形的软件维护成本是花费了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度高端餐饮连锁品牌特许经营合同
- 2024年度新能源项目开发合同项目范围与投资金额
- 2024年广西壮族自治区桂林市秀峰区名胜古迹保护与开发合同
- 2024年度石料运输合作合同
- 2024年度光伏发电系统安装合同
- 2024年度CFG桩基工程沉降观测合同
- 2024年度旅游项目开发与运营合同
- 2024年度环保设施运营管理合作协议
- 2024年度商务秘书服务外包合同
- 2024年度XX农村集体土地承包经营权买卖合同
- 渗透检测记录
- 山东德州财金投资控股集团有限公司招聘考试真题2022
- 《工业机器人应用与维护》专业人才培养方案
- 《马克思主义发展史》第二章剩余价值学说的创立和马课件
- 高中语文人教版高中必修文言文定语后置
- 传统孝道人物虞舜
- 确定积极分子会议记录范文七篇
- 长江三峡水利枢纽可行性报告
- 江苏省某高速公路结构物台背回填监理细则
- 电大护理本科临床实习手册内容(原表)
- 当代德国学校劳动教育课程构建的经验与启示共3篇
评论
0/150
提交评论