共计 3081 个字符,预计需要花费 8 分钟才能阅读完成。
1 测试流程概述
软件测试流程包含:
- 测试计划:测试计划是指依据用户需要报告中对于性能要求和性能指标的规格说明书,定义相应的测试需要报告,使得随后所有的测试工作都围绕着测试需要来进行,同时适当抉择测试内容,合理安排测试人员、测试工夫和测试资源等
- 测试设计:测试设计是指将测试计划阶段制订的测试需要合成,细化为若干个可执行的测试过程,并为每个测试过程抉择适当的测试用例,保障测试后果的有效性
- 测试开发:测试开发是指建设可重复使用的自动测试过程
- 测试执行:测试执行是指执行测试开发阶段建设的自动测试过程,并对所发现的缺点进行跟踪治理,个别有单元测试、集成测试、确认测试等步骤组成
- 测试评估:测试评估是指联合量化的测试笼罩域及缺点跟踪报告,对应用软件的品质和开发团队的工作进度以及工作效率进行综合评估
其中测试执行由以下步骤组成:
- 单元测试:通过对每个最小的软件模块进行测试,对源代码的每一个程序单元履行测试,来查看各个程序模块是否正确地实现了规定的性能,确保其能失常工作
- 集成测试:对已测试过的模块进行组装集成,目标在于测验与软件设计相干的程序结构问题
- 确认测试:测验软件是否满足需要规格阐明中的性能和性能需求,确定软件配置齐全、正确,并测验软件产品是否与理论运行环境中整个零碎的其余局部协调工作
- 验收测试:次要让用户对软件进行测试,并从新执行曾经做过的测试的某个子集,保障没有引入新的谬误
2 单元测试
2.1 定义
单元测试用于判断一小段代码的某个特定条件或场景下某个特定函数的行为,次要测试软件设计的最小单元在语法、格局、逻辑等方面的缺点以及是否合乎性能、性能等需要,程序的多个模块能够并行地进行单元测试工作。
2.2 内容
次要包含 5 个工作:
- 模块接口测试:通过对被测试模块的数据流进行测试,查看进出模块的数据是否正确,因而必须对模块接口,包含参数表、调用子模块参数、全程数据、文件输入输出操作进行测试
- 部分数据结构测试:测试用例查看部分数据结构的完整性,如数据类型阐明、初始化、缺省值等方面的问题
- 执行门路测试:对模块中重要的门路进行测试,对根本执行门路和循环进行测试往往能够发现大量门路谬误,测试用例必须可能发现因为计算错误、不正确的断定或不失常的控制流而产生的谬误
- 错误处理测试:查看模块的错误处理性能是否蕴含谬误或者缺点,例如,是否回绝不合理的输出等
- 边界条件测试:必须采纳边界值分析方法来设计测试用例,测试在为限度数据处理而设定的边界处,测试模块是否可能失常工作
2.3 步骤
个别单元测试须要辅助模块去帮忙实现测试,辅助模块分为两种:
- 驱动模块:用来模仿被测试模块的上一级模块,相当于被测模块的主程序,用于接管测试数据,并把这些数据传送给被测模块,启动被测模块并输入后果
- 桩模块:用来模仿被测试模块工作过程中所调用的模块
被测试模块、驱动模块和桩模块独特形成了一个测试环境去进行测试。
3 集成测试
3.1 定义
将通过单元测试的模块连接起来,组成所规定的软件系统的过程称为集成,集成测试就是针对这个过程,按模块之间的依赖接口的关系图进行测试。
3.2 工作
次要工作是解决如下问题:
- 将各模块连接起来,查看模块互相调用时,数据通过接口是否失落
- 将各个子性能组合起来,查看是否达到预期要求的各项性能
- 一个模块的性能是否会对另一个模块的性能产生不利的影响
- 全局数据结构是否有问题,会不会被异样批改
- 单个模块的误差积攒起来,是否被放大,从而达到不可承受的水平
3.3 办法
集成测试的办法,包含:
- 非增量式集成测试方法
- 增量式集成测试方法
3.3.1 非增量式集成测试方法
非增量式集成测试方法采纳一步到位的办法来进行测试,对所有模块单元进行个别的单元测试后,按程序结构图将各模块连接起来,把连贯后的程序当作一个整体进行测试。
3.3.2 增量式集成测试方法
增量式测试集成办法能够分为:
- 自顶向下增量式测试
- 自底向上增量式测试
- 三明治集成测试
3.3.2.1 自顶向下增量式测试
自顶向下增量式测试依照结构图自上而下逐渐集成和逐渐测试,模块集成的程序首先是集成主控模块(主程序),而后依照软件管制层次结构向下进行集成,集成策略能够抉择广度优先或深度优先。
长处包含:
- 在测试过程中较早地验证次要的控制点
- 功能性的模块测试能够较早地失去证实
- 最多只须要一个驱动模块就能够进行测试
- 反对缺点故障隔离
毛病:
- 随着底层模块一直减少,会导致底层模块的测试不充沛
- 每次组装都须要提供桩,导致桩的数据急剧减少,从而保护桩的老本会疾速回升
3.3.2.2 自底向上增量式测试
从原子模块(软件结构中最底层的模块)开始,按结构图从下而上逐渐进行集成和测试。
长处:
- 总体上缩小了桩模块的工作量
- 容许对底层模块行为进行晚期验证
- 测试初期能够并行集成
毛病:
- 随着集成到顶层,整个零碎变得越来越简单,对于底层的一些模块很难笼罩
- 驱动模块的开发工作量大
3.3.2.3 三明治集成测试
也叫混合集成,将自顶向下和自底向上的优缺点集于一身,三明治集成就是把零碎分为三层,两头一层为指标层,对指标层下层采纳自顶向下的集成测试形式,对指标层上层采纳自底向上集成策略,最初对指标层进行测试。
4 确认测试
4.1 定义
用于验证软件的有效性,也就是验证软件的性能和性能以及其余个性是否与用户要求统一。
4.2 内容
内容包含:
- 有效性测试:在模仿的环境下,使用黑盒测试的办法,验证被测试软件是否满足需要规格说明书列出的需要
- 软件配置审查:保障软件配置的所有成分,包含与理论运行环境中整个零碎的反对环境都应齐全,各方面的品质都符合要求
5 验收测试
5.1 定义
验收测试是以用户为主的测试,然而软件开发人员和质量保证人员也须要加入。由用户加入设计测试用例,通过用户界面输出测试数据,分析测试的输入构造。
5.2 内容
内容包含:
alpha
测试beta
测试- 回归测试
5.2.1 alpha
测试
alpha
测试是由一个用户在开发环境下的测试,也能够是公司外部用户在模仿实际操作环境下进行的测试。这是在受管制环境下进行的测试,目标是评估软件产品的性能、可应用性、可靠性、性能和反对,尤其重视产品的界面和特色。
5.2.2 beta
测试
beta
测试由软件的多个用户在一个或多个用户的理论应用环境下进行的测试,与 alpha
测试不同,开发者通常不在测试现场。在 beta
测试中,由用户记录遇到的所有问题,包含实在的以及主观认定的问题,定期向开发者报告,开发者综合用户的报告后做出批改。
5.2.3 回归测试
5.2.3.1 定义
回归测试是一种验证已变更的零碎的完整性与正确性的测试技术,是指从新执行曾经做过的测试的某个子集,以保障批改没有引入新的谬误或者发现因为更改而引起的之前未发现的谬误。
5.2.3.2 施行前提
回归测试的施行前提包含:
- 当软件中所含谬误被发现时,如果谬误跟踪和管理系统不够欠缺,可能会脱漏对这些谬误的批改
- 开发者对谬误的了解不够透彻,也可能导致所做的批改只修改了谬误的外在体现,而没有批改谬误自身
- 批改还有可能产生副作用,从而导致软件未被批改的局部产生新的问题
5.2.3.3 回归测试的两个策略
- 齐全反复测试:抉择齐全反复测试是指将所有的测试用例,全副再齐全执行一遍,毛病是要把用例全副执行,会减少我的项目的老本以及影响我的项目的进度
- 选择性反复测试:抉择一部分测试执行,以确认问题批改的正确性和批改后周边是否受到影响,常见的办法包含笼罩批改法、周边影响法、指标达成法、基于操作剖面、基于危险抉择测试
5.2.3.4 流程
- 在测试策略指定阶段,制订回归测试策略
- 确定回归测试版本
- 回归测试版本公布,依照回归测试策略执行回归测试
- 回归测试通过,敞开缺点跟踪单
- 回归测试不通过,缺点单返回开发人员,从新批改后再次回归测试