第二章软件测试方法 2.1软件测试方法概述 22静态测试与动态测试 23黑盒测试 2.4自盒测试 习题 第二章软件测试方法
第二章 软件测试方法 第二章 软件测试方法 2.1 软件测试方法概述 2.2 静态测试与动态测试 2.3 黑盒测试 2.4 白盒测试 习题
21软件测试方法概述 软件测试的方法多种多样,可以从不同角度加以分类 从是否需要执行被测软件的角度,分为静态测试和动态测试; 从是针对系统的外部功能还是针对系统的内部结构的角度,分为黑 盒测试和白盒测试; 从软件测试的策略和过程的角度,分为单元测试、集成测试、确认 测试、系统测试和验收测试等。 第二章软件测试方法
2.1 软件测试方法概述 第二章 软件测试方法 软件测试的方法多种多样,可以从不同角度加以分类: 从是否需要执行被测软件的角度,分为静态测试和动态测试; 从是针对系统的外部功能还是针对系统的内部结构的角度,分为黑 盒测试和白盒测试; 从软件测试的策略和过程的角度,分为单元测试、集成测试、确认 测试、系统测试和验收测试等
21软件测试方法概述 1.从是否需要执行被测软件的角度分类 从是否需要执行被测软件的角度,软件测试可分为静态测试( Static esting)和动态测试( Dynamic Testing)。顾名思义,静态测试就是通过 对被测程序的静态审査,发现代码中潜在的错误。它一般用人工方式 脱机完成,故亦称人工测试或代码评审( Code review);也可借助于静 态分析器在机器上以自动方式进行检查,但不要求程序本身在机器上 运行。按照评审的不同组织形式,代码评审又可分为代码会审,走查 以及办公桌检查,同行评分4种。对某个具体的程序,通常只使用一种 评审方式。 动态测试是通常意义上的测试,即使用和运行被测软件。动态测试 的对象必须是能够由计算机真正运行的被测试的程序,它包含黑盒测 试和白盒测试,在2.3节将会具体介绍这两种方法。 第二章软件测试方法
2.1 软件测试方法概述 第二章 软件测试方法 1.从是否需要执行被测软件的角度分类 从是否需要执行被测软件的角度,软件测试可分为静态测试(Static Testing)和动态测试(Dynamic Testing)。顾名思义,静态测试就是通过 对被测程序的静态审查,发现代码中潜在的错误。它一般用人工方式 脱机完成,故亦称人工测试或代码评审(Code Review);也可借助于静 态分析器在机器上以自动方式进行检查,但不要求程序本身在机器上 运行。按照评审的不同组织形式,代码评审又可分为代码会审,走查 以及办公桌检查,同行评分4种。对某个具体的程序,通常只使用一种 评审方式。 动态测试是通常意义上的测试,即使用和运行被测软件。动态测试 的对象必须是能够由计算机真正运行的被测试的程序,它包含黑盒测 试和白盒测试,在2.3节将会具体介绍这两种方法
21软件测试方法概述 2.从软件测试用例设计方法的角度分类 从软件测试用例设计方法的角度,可分为黑盒测试( Black- Box Testing)和 白盒测试( White-BoX Testing) 黑盒测试是一种从用户角度出发的测试,又称为功能测试。数据驱动测试 和基于规格说明的测试。使用这种方法进行测试时,把被测试程序当作一个 黑盒,忽略程序内部的结构的特性,测试者在只知道该程序输入和输出之间 的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的 说明书,来确定测试用例和推断测试结果的正确性。简单地说,若测试用例 的设计是基于产品的功能,目的是检查程序各个功能是否实现,并检查其中 的功能错误,则这种测试方法称为黑盒 白盒测试基于产品的内部结构来进行测试,检査内部操作是否按规定执行 ,软件各个部分功能是否得到充分利用。白盒测试又称为结构测试,逻辑驱 动测试或基于程序的测试。即根据被测程序的内部结构设计测试用例,测试 者需要预先了解被测试程序的结构 第二章软件测试方法
2.1 软件测试方法概述 第二章 软件测试方法 2.从软件测试用例设计方法的角度分类 从软件测试用例设计方法的角度,可分为黑盒测试(Black-Box Testing)和 白盒测试(White-Box Testing)。 黑盒测试是一种从用户角度出发的测试,又称为功能测试。数据驱动测试 和基于规格说明的测试。使用这种方法进行测试时,把被测试程序当作一个 黑盒,忽略程序内部的结构的特性,测试者在只知道该程序输入和输出之间 的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的 说明书,来确定测试用例和推断测试结果的正确性。简单地说,若测试用例 的设计是基于产品的功能,目的是检查程序各个功能是否实现,并检查其中 的功能错误,则这种测试方法称为黑盒。 白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行 ,软件各个部分功能是否得到充分利用。白盒测试又称为结构测试,逻辑驱 动测试或基于程序的测试。即根据被测程序的内部结构设计测试用例,测试 者需要预先了解被测试程序的结构
21软件测试方法概述 3.从软件测试的策略和过程的角度分类。 按照软件测试的策略和过程分类,软件测试可分为单元测试( Unit testing),集成 测试( Integration Testing),确认测试( alidation testin),系统测试( System Testing)和验收测试( Verification testing 单元测试是针对每个单元的测试,是软件测试的最小单位。它确保每个模块能正常 工作。单元测试主要采用白盒测试方法,用以发现内部错误 集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件 设计相关的程序结构问题。在集成测试过程中,测试人员采用黑盒测试和白盒测试两 种方法,来验证多个单元模块集成到一起后是否能够协调工作 确认测试是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用 黑盒测试方法。 系统测试的主要任务是检测被测软件与系统的其他部分的协调性,通常采用黑盒测 试方法。 验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其 参与者主要是用户和少量的程序开发人员,通常采用黑盒测试方法 第二章软件测试方法
2.1 软件测试方法概述 第二章 软件测试方法 3.从软件测试的策略和过程的角度分类。 按照软件测试的策略和过程分类,软件测试可分为单元测试(Unit Testing),集成 测试(Integration Testing),确认测试(Validation Testing),系统测试(System Testing)和验收测试(Verification Testing)。 单元测试是针对每个单元的测试,是软件测试的最小单位。它确保每个模块能正常 工作。单元测试主要采用白盒测试方法,用以发现内部错误。 集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件 设计相关的程序结构问题。在集成测试过程中,测试人员采用黑盒测试和白盒测试两 种方法,来验证多个单元模块集成到一起后是否能够协调工作。 确认测试是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用 黑盒测试方法。 系统测试的主要任务是检测被测软件与系统的其他部分的协调性,通常采用黑盒测 试方法。 验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其 参与者主要是用户和少量的程序开发人员,通常采用黑盒测试方法
22静态测试与动态测试 根据程序是否运行可以把软件测试方法分为静态测试( Static Testing)和 动态测试( Dynamic Testing)两大类。图2-1是静态测试与动态测试的比喻图 踩油门 看车漆 静态测试 打开前盖检查 发动汽车 听听发动机声音}动态测试 上路行使 图2-1静态测试与动态测试的比喻图 第二章软件测试方法
2.2 静态测试与动态测试 第二章 软件测试方法 根据程序是否运行可以把软件测试方法分为静态测试(Static Testing)和 动态测试(Dynamic Testing)两大类。图2-1是静态测试与动态测试的比喻图。 图2-1 静态测试与动态测试的比喻图
2,21静变测试 静态方法的主要特征是在用计算机测试源程序时,计算机并不真正运 行被测试的程序,只对被测程序进行特性分析。因此,静态方法常称为 分析”,静态分析是对被测程序进行特性分析的一些方法的总称。所谓 静态分析,就是不需要执行所测试的程序,而只是通过扫描程序正文,对 程序的数据流和控制流等信息进行分析,找出系统的缺陷,得出测试报告。 静态测试包括代码检查、静态结构分析、代码质量度量等。它可以 由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进 丁 第二章软件测试方法
2.2.1 静态测试 第二章 软件测试方法 静态方法的主要特征是在用计算机测试源程序时,计算机并不真正运 行被测试的程序,只对被测程序进行特性分析。因此,静态方法常称为 “分析”,静态分析是对被测程序进行特性分析的一些方法的总称。所谓 静态分析,就是不需要执行所测试的程序,而只是通过扫描程序正文,对 程序的数据流和控制流等信息进行分析,找出系统的缺陷,得出测试报告。 静态测试包括代码检查、静态结构分析、代码质量度量等。它可以 由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进 行
2,21静变测试 通常在静态测试阶段进行以下一些测试活动 检查算法的逻辑正确性,确定算法是否实现了所要求的功能; 检查模块接口的正确性,确定形参的个数、数据类型、顺序是 否正确,确定返回值类型及返回值的正确性 检查输入参数是否有合法性检查。如果没有合法性检查,则应 确定该参数是否不需要合法性检查,否则应加上参数的合法性 检查; 检查调用其他模块的接口是否正确,检查实参类型、实参个数 是否正确,返回值是否正确。若被调用模块出现异常或错误, 程序是否有适当的出错处理代码 检查是否设置了适当的出错处理,以便在程序出错时,能对出 错部分进行重做安排,保证其逻辑的正确性; 第二章软件测试方法
2.2.1 静态测试 第二章 软件测试方法 通常在静态测试阶段进行以下一些测试活动: 检查算法的逻辑正确性,确定算法是否实现了所要求的功能; 检查模块接口的正确性,确定形参的个数、数据类型、顺序是 否正确,确定返回值类型及返回值的正确性; 检查输入参数是否有合法性检查。如果没有合法性检查,则应 确定该参数是否不需要合法性检查,否则应加上参数的合法性 检查; 检查调用其他模块的接口是否正确,检查实参类型、实参个数 是否正确,返回值是否正确。若被调用模块出现异常或错误, 程序是否有适当的出错处理代码; 检查是否设置了适当的出错处理,以便在程序出错时,能对出 错部分进行重做安排,保证其逻辑的正确性;