******十九 ******、软设笔记【软件工程】-软件测试类型、软件维护
五、测试的类型
软件测试分为两大类:动态测试和静态测试。
1.动态测试:
动态测试指通过运行程序发现错误,分为:
*黑盒测试法
黑盒测试又称为功能测试或数据驱动测试。把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。
常用的黑盒测试用例的设计方法:
*等价类划分
*边界值分析
*错误推测
*因果图
*白盒测试法
又称机构测试,透明盒测、逻辑驱动测试或基于代码的测试。把测试对象看做一个打开的盒子,测试人员必须了解程序的内部结构和处理过程,已检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
常用的白盒测试用例设计方法有:
语句覆盖,判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖、路径覆盖等。发现错误的能力呈由弱至强的变化。
*语句覆盖每条语句至少执行一次。
*判定覆盖每个判定的每个分支至少执行一次。
*条件覆盖每个判定的每个条件应取到各种可能的值。
*判定/条件覆盖同时满租足判定覆盖条件覆盖,
*条件组合覆盖每个判定中个条件的每一种组合后至少出现一次。
*路径覆盖使程序中每一条可能的路径至少执行一次。
*灰盒测试法
灰盒测试是一种介于白盒测试与黑盒测试之间的测试,它关注输出堆输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细且完整,而只是通过一些表征性的现象、事件及标志来判断程序内部的运行状态。
灰盒测试结合了白盒测试和黑盒测试的要素,考虑了用户端、特定的系统知识和操作环境,在系统组件的协同性环境中评价应用软件的设计。
2.静态测试:
静态测试指被测试程序不在机器上运行,二采用人工检测和计算机辅助静态分析的手段对程序进行检测。
静态分析中进行人工测试的主要方法:
*桌前检查(Desk Checking)
由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验、并补充相关的文档,目的是发现程序中的错误。
*代码审查
代码审查是由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审查分为两步。
*第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。小组成员充分阅读这些材料。
*第二部,召开程序审查会。在会上,首先由程序员逐句讲解程序的逻辑。在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。
*代码走查
代码走查与代码审查基本相同,其过程也分为两步。
*第一步,把材料发给走查小组成员,认真研究程序,再开会。
*第二步,开会的程序与代码会审不同,不是简单地读程序和对照错误检测表进行检查,而是让与会者“充当”计算机。让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论使用。数据标准化、数据命名合理、文件格式转换、数据库格式转换等。
三、软件维护
软件可维护性是指维护人员对该软件进行维护的难易程度,具体包括理解、改正、改动和改进软件的难易程度、
衡量程序可维护性的因素:可理解性、可测试性和可修改性等。
软件维护占整个软件生命周期的60%~80%,维护的类型有:
(1)改正性维护
是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
(2)适应性维护
是指使用软件适应信息技术变化和管理需求变化而进行的修改。
(3)完善性维护
是为了扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
(4)预防性维护
为了改进应用软件和可靠性和可维护性,为了适应为了的软硬件环境的变化,应主动增加与预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
影响维护工作量的因素主要有:
*系统的代销
*程序设计语言
*系统年龄
*数据库技术的应用
*先进的软件开发技术
软件测试分为两大类:动态测试和静态测试。
1.动态测试:
动态测试指通过运行程序发现错误,分为:
*黑盒测试法
黑盒测试又称为功能测试或数据驱动测试。把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。
常用的黑盒测试用例的设计方法:
*等价类划分
*边界值分析
*错误推测
*因果图
*白盒测试法
又称机构测试,透明盒测、逻辑驱动测试或基于代码的测试。把测试对象看做一个打开的盒子,测试人员必须了解程序的内部结构和处理过程,已检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
常用的白盒测试用例设计方法有:
语句覆盖,判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖、路径覆盖等。发现错误的能力呈由弱至强的变化。
*语句覆盖每条语句至少执行一次。
*判定覆盖每个判定的每个分支至少执行一次。
*条件覆盖每个判定的每个条件应取到各种可能的值。
*判定/条件覆盖同时满租足判定覆盖条件覆盖,
*条件组合覆盖每个判定中个条件的每一种组合后至少出现一次。
*路径覆盖使程序中每一条可能的路径至少执行一次。
*灰盒测试法
灰盒测试是一种介于白盒测试与黑盒测试之间的测试,它关注输出堆输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细且完整,而只是通过一些表征性的现象、事件及标志来判断程序内部的运行状态。
灰盒测试结合了白盒测试和黑盒测试的要素,考虑了用户端、特定的系统知识和操作环境,在系统组件的协同性环境中评价应用软件的设计。
2.静态测试:
静态测试指被测试程序不在机器上运行,二采用人工检测和计算机辅助静态分析的手段对程序进行检测。
静态分析中进行人工测试的主要方法:
*桌前检查(Desk Checking)
由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验、并补充相关的文档,目的是发现程序中的错误。
*代码审查
代码审查是由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审查分为两步。
*第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。小组成员充分阅读这些材料。
*第二部,召开程序审查会。在会上,首先由程序员逐句讲解程序的逻辑。在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。
*代码走查
代码走查与代码审查基本相同,其过程也分为两步。
*第一步,把材料发给走查小组成员,认真研究程序,再开会。
*第二步,开会的程序与代码会审不同,不是简单地读程序和对照错误检测表进行检查,而是让与会者“充当”计算机。让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论使用。数据标准化、数据命名合理、文件格式转换、数据库格式转换等。
三、软件维护
软件可维护性是指维护人员对该软件进行维护的难易程度,具体包括理解、改正、改动和改进软件的难易程度、
衡量程序可维护性的因素:可理解性、可测试性和可修改性等。
软件维护占整个软件生命周期的60%~80%,维护的类型有:
(1)改正性维护
是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
(2)适应性维护
是指使用软件适应信息技术变化和管理需求变化而进行的修改。
(3)完善性维护
是为了扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
(4)预防性维护
为了改进应用软件和可靠性和可维护性,为了适应为了的软硬件环境的变化,应主动增加与预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
影响维护工作量的因素主要有:
*系统的代销
*程序设计语言
*系统年龄
*数据库技术的应用
*先进的软件开发技术