《软件工程与实践》 |(七)软件测试调试与维护 知识梳理

 

系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理


 

目录

 

系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理

 

本章重难点:

    7.1 软件测试概述

7.1.1 软件测试的概念及内容

*7.1.2 软件测试的目的和原则

    7.2 软件测试的特点及过程

7.2.1 软件测试的特点

7.2.2 软件测试的过程

    7.3 软件测试步骤及任务

7.3.1 单元测试及任务

7.3.2 集成测试与集成

7.3.3 有效性测试及内容

7.3.4 系统测试及验收

    7.4 软件测试策略及面向对象测试

7.4.1 软件测试策略

7.4.2 面向对象软件测试

   * 7.5 测试方法、用例及标准

* 7.5.1 软件测试方法

7.5.2 软件测试用例设计及方法

7.5.3 软件测试标准和工具

7.5.4 软件测试文档

    7.6 软件调试与发布

7.6.1 软件调试的特点及过程

7.6.2 软件调试的方法

7.6.3 软件调试的原则

    7.7 软件维护

7.7.1 软件维护概述

7.7.2 软件维护策略及方法

7.7.3 软件再工程技术

    7.8 本章小结

 

 


本章重难点:

    ● 掌握软件测试的概念、目的和原则

    ● 熟悉软件测试的步骤、方法和测试用例设计    

    ● 掌握软件调试概念、步骤、方法和原则    

    ● 掌握软件维护方法及有关实际应用

    7.1 软件测试概述

7.1.1 软件测试的概念及内容

1. 软件测试(Software test)的定义是:

2. 软件测试的主要任务及内容

 软件测试重点是  测试软件的功能、性能和可靠性 等是否符合用户需求指标,其中,“功能测试”是软件测试的最主要任务

 软件测试分为 系统软件测试和应用软件测试

软件测试按照步骤可分为: 单元测试、集成测试、有效性(确认)测试和系统(整体)测试

*7.1.2 软件测试的目的和原则

  软件测试的目的是: 尽可能多的找到软件中的错误,而不是证明软件的正确

 一般软件测试对象存在的“缺陷/错误”,主要分为3种:       (1) 缺陷问题。       (2) 错误问题。       (3) 严重错误问题。

软件测试的原则

    7.2 软件测试的特点及过程

7.2.1 软件测试的特点

(1)软件测试的成本很大。  

(2)不可进行“穷举”测试。

(3)测试具有“破坏性”

(4)软件测试是整个开发过程的一个独立阶段,并贯穿到开发各阶段(审查验收)。

7.2.2 软件测试的过程

   1. 完整软件系统的测试过程

   2.软件测试步骤

整个完整测试分为两个大的阶段:        预测试和测试

具体的软件测试分为  单元测试、集成测试、有效性(确认)测试和系统测试4个步骤,最后进行验收测试

    7.3 软件测试步骤及任务

7.3.1 单元测试及任务

软件的单元测试也称为模块测试,是对功能独立运行的程序模块的检测。

通常,单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行地进行

目的是发现各模块内部可能存在的各种问题

  单元测试主要技术要求应达到:

 软件的单元测试通过准则,主要达到3项:

单元测试的输入/输出      

单元测试工作的输入为:“程序源代码”和“软件详细设计报告”;单元测试结束的输出为:“程序单元测试记录”和“软件(后续)测试计划”等。 

7.3.2 集成测试与集成

   集成测试也叫组装测试或联合测试在单元测试的基础上将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

1.集成测试的方式

2.集成测试的任务及要求

集成测试工作输入:“集成测试计划”,“概要设计”,“测试大纲”.      

集成测试结束输出:“集成测试bug记录”,“集成测试分析报告”.

3. 软件集成及任务

系统集成是 将各软件构件以及子系统组装整合成为完整软件,并与软件平台和其他相关系统进行调配、整合的过程。

软件(产品)是由多模块(或对象)组成的软件系统。

软件集成的任务 是按照软件体系结构设计的要求,将各软件构件和子系统整合为一个完整的软件系统。

7.3.3 有效性测试及内容

 有效性测试也称确认测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求

有效性测试工作的输入为:“软件测试计划”、“用户需求分析报告”、“用户操作手册”和“安装手册”。

测试结束的输出为:“软件测试bug记录”和“软件测试分析报告”。

7.3.4 系统测试及验收

系统测试系统测试是针对整个产品系统进行的测试,目的验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。

目标 主要是发现并纠正软件开发过程中所产生的错误

主要做法 是对由各子系统集成的软件系统,以及配合系统运行而所需的人工过程或操作环境(如数据采集、录入操作和设置等)进行统一的综合测试

系统测试主要通过与用户需求指标进行详尽对比,查找软件与指标符合要求情况。其方法一般采取黑盒测试。

    7.4 软件测试策略及面向对象测试

7.4.1 软件测试策略

 软件测试策略是指软件测试的思路模式

软件测试的复杂性主要原因是:

7.4.2 面向对象软件测试

面向对象的单元测试   单元是封装的类(包含一组不同的操作)和对象

面向对象的集成测试   

面向对象的有效性测试

面向对象的有效性测试集中在  用户可见活动(事件驱动与工程)和可识别系统输出(结果),以及满足用户需求情况

   * 7.5 测试方法、用例及标准

* 7.5.1 软件测试方法

 1.黑盒测试

黑盒测试也称为功能测试或黑箱测试,其是指被测试的软件。“黑盒”则指测试人员只知道被测软件的界面和接口外部情况,不必考虑程序内部逻辑结构和特性,只根据程序的需求分析规格说明,检查其功能是否符合。

在所有可能的输入条件和输出条件中确定测试数据,检查程序都能正确输出。

测试模块之间接口,适合采用黑盒测试,适当辅以白盒测试(对程序内部结构-执行路径的测试)

 常用的几种黑盒测试技术方法为:

 1)等价分类法

(1)划分等价类根据输入条件将输入数据划分为等价类

 把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类别或等价区间), 使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同.

等价类别或等价区间是指   测试相同目标或者暴露相同软件缺陷的一组测试用例  

如何划分等价类:     有效等价类(合理等价类)  无效等价类(不合理等价类)

划分等价类的标准覆盖 不相交 代表性

(2)设计测试用例。

(1)形成等价类表,每一等价类规定一个唯一的编号; 

(2)设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一    步骤,直到所有有效等价类均被测试    用例所覆盖;

(3)设计一新测试用例,使其只覆盖一个无效等价类,复这一步骤直到所有    无效等价类均被覆盖;

 2) 边界值分析法

2.白盒测试

白盒测试主要是对程序内部结构和执行路径的测试,也称透明盒测试、开放盒测试、结构化测试、基于代码测试和逻辑驱动测试等。

 1) 白盒测试的原则

 2) 白盒测试技术

3) 白盒测试的步骤及优缺点

黑盒白盒测试法优缺点及应用范围比较如表所示

7.5.2 软件测试用例设计及方法

1.测试用例概念及意义

  测试用例(Test Case)是为某个特殊目地及要求而编制的一组测试输入数据、执行条件和预期结果

 目的   是测试某个程序路径或核实是否满足某个特定需求。

 主要是指对一项特定的软件产品进行测试任务的描述,包括测试方案、方法、技术和策略等。

意义主要体现6个方面:

2.测试用例设计要点

测试用例包括3种基本事件、备选事件和异常事件

测试用例的评审       

7.5.3 软件测试标准和工具

 1. 软件质量定义及测试标准

 国际标准将软件质量定义为: 软件质量是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和

软件特性可分为6个子特性:功能性,可靠性,易用性,效率,可维护性,可移植性 

 2. 软件测试工具

国际上主要分为 Mercury测试工具、Rational测试工具、Segue测试工具三类软件测试工具

1)功能测试类-- 功能测试和回归测试工具 QTP,SilkTest

2)数据/性能测试类-- VuGen

7.5.4 软件测试文档

软件测试主要文档包括:

软件测试计划、测试设计说明、测试用例说明、测试规程说明、测试项传递报告、测试日志、测试事件报告、测试总结报告等。

    7.6 软件调试与发布

软件调试的任务是 在软件测试的基础上进一步纠正和确认相关错误或问题

7.6.1 软件调试的特点及过程

1)软件调试的概念及特点

软件调试(Software debug)也称软件纠错

调试工作由两部分组成:      (1)定位、查找其根源。      (2)纠错、解决软件问题并确认

软件调试工作的特点: 在软件测试时所发现的软件错误或问题,只是潜在的一些外表现象(由表及里),有时与内在原因又无明显的必然联系。软件调试设计通过现象,查找内部原因并修改错位的一个分析和解决问题的过程

2)软件调试过程及步骤

7.6.2 软件调试的方法

1)强行排错

 主要技术和方法包括:      (1)内存排错。      (2)特定语句排错。      (3)自动调试工具。

2)回溯法排错      

3)归纳法排错      

4)演绎法排错

用演绎法排错4个步骤:      (1)列举假设。      (2)排除不正确假设。      (3)进一步排查定位。      (4)证明假设。

7.6.3 软件调试的原则

软件调试由确定错误修改错误两部分组成,软件调试的原则也分为两个部分。

    7.7 软件维护

7.7.1 软件维护概述

软件维护是指软件交付使用后,由于运行中存在的缺陷,或因业务需求及环境等变化,对软件进行微调的过程。

软件维护属于“售后技术服务”,是在软件运行使用阶段对软件产品进行的调试和完善。

软件需要进行维护的原因有3类:

软件维护类型(1)完善性维护。(2)适应性维护。      (3)纠错性维护。(4)预防性维护。

软件维护的特点 : (1)时间长、工作量大、成本高。      (2)维护的副作用。      (3)软件维护困难。

7.7.2 软件维护策略及方法

     1)完善性维护策略及方法       2)适应性维护策略及方法       3)纠错性维护策略及方法

7.7.3 软件再工程技术

软件再工程技术是指在对现存软件进行挖掘整理再利用或对软件维护延长生存期的技术,是将逆向工程、重构和正向工程组合构建软件系统新形式的工程过程,有助于增进对软件的理解。

软件的逆向工程就是分析程序,力图在比源代码更高的抽象层次上建立程序表示的过程。

    7.8 本章小结

 

 

发布了112 篇原创文章 · 获赞 975 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq_41523096/article/details/103706375