软件测试的分类

目录

一、按测试阶段分类

1、单元测试

2、集成测试

1)增量式集成测试

2)非增量式集成测试

3、确认测试

4、系统测试

5、验收测试

二、按是否查看源代码分类

1、黑盒测试

1)黑盒测试方法

2、白盒测试

1)白盒测试方法

三、按程序是否运行分类

1、静态测试

2、动态测试

四、其他测试


一、按测试阶段分类

软件测试的步骤:单元测试、集成测试、确认测试、系统测试、验收测试(发版测试)

1、单元测试

完成最小的软件设计单元的验证工作,确保模块被正确的编码

(依据概要设计)(白盒测试)

手段:stub代码、mock代码、驱动代码

2、集成测试

在单元测试的基础上,将多个模块组装起来进行测试,重点关注模块的接口部分

(依据详细设计)(黑盒白盒)

1)增量式集成测试

是一种逐步集成和逐步测试的方法,把可能出现的错误分散暴露出来,便于找到问题和修改(对各个模块一边组装一边测试)

优点:更早地发现模块间的接口错误,有利于错误定位

缺点:需要编写驱动模块和桩模块

        自顶向下增量式测试:从程序的初始模块开始测试

优点:只需要一个驱动,减少驱动器开发的费用支持故障隔离;较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能,功能较早证实,带来信心

缺点桩的开发量大底层验证被推迟;底层组件测试不充分

        自底向上增量式测试:从程序的底层模块开始测试

优点减少了桩的工作量支持故障隔离;工作最初可以并行集成,比自顶向下效率高;对底层组件的行为较早验证。

缺点驱动的开发工作量大对高层的验证被推迟,设计上的错误不能及时发现

桩模块模拟被测模块所调用的模块,而不是软件产品的组成部分。在集成测试前,要为被测模块编制一些模拟下级功能的替身模块,以代替被测模块的接口,传递或接收被测模块的数据,这些“假”模块称为被测模块的桩模块。

驱动模块:模拟被测试模块的上一级模块,相当于被测模块的主程序

主模块作为驱动模块,与之相连的模块用桩模块代替。

混合增量式测试(三明治测试)

优点:具有自顶向下和自底向上的优点,运用了一定的技巧,能够减少桩模块和驱动模块的开发
缺点:中间层不能尽早得到充分的测试,或者因为中间层如果选择不适当导致增加驱动模块的和桩模块工作量的设计负担

2)非增量式集成测试

对每个单元进行充分测试后,把所有单元全部集成起来,一次性进行集成测试

优点:减少测试工作量

缺点:难以定位问题,可能会发现很多错误

1)Big-Bang集成测试

也叫一次性组装或者整体拼装。

在辅助模块的辅助下,一次性把所有系统组件集合到被测系统中(不考虑组件之间的相互依赖性或者可能存在的风险),一般一次性成功的几率不大

适用于:在原有稳定系统增加子模块或者系统较小时使用

优点:成本低,测试用例少,幸运的话,可以不需要或者只需要开发少量的辅助模块,就可以完成测试

缺点:不可避免的存在模块间接口、全局数据结构等方面的问题,一次试运行成功的可能性并不大,即使运行成功,也很可能会存在隐患。

3、确认测试

4、系统测试

把项目当做一个整体进行测试

(依据需求说明书)(黑盒测试)(包括:功能、性能、压力、安全、回归等)

手段:GUI手段等

5、验收测试

是一项确认产品是否能满足合同或用户需求的测试

(依据需求说明书/用户需求)

  • α版本(内测版本):由用户在开发环境中测试,测试环境可控,并且用户在开发者的指导下进行测试,开发者负责记录发现的错误和使用中遇到的问题
  • β版本(公测版本):在软件公司外部展开的测试,测试环境不可控,是由软件的最终用户们在一个或多个客户场所下进行,由用户记录在测试中遇到的问题,并定期报给开发者
  • γ测试(接近正式版本)

测试粒度大小排序:单元<集成<系统<验证

二、按是否查看源代码分类

1、黑盒测试

只关注功能,不关注功能具体实现方法

1)黑盒测试方法

  • 等价类划分法:将系统的输入域划分为若干部分,然后从每个部分选取少量代表性数据进行测试。可以划分为有效等价类和无效等价类。
  • 边界值分析法:是对等价类划分的一种补充(因为大多数错误都在输入输出的边界上)。边界值分析就是假定大多数错误出现在输入条件的边界上,如果边界附件取值不会导致程序出错,那么其他取值出错的可能性也就很小。 边界值分析法是通过优先选择不同等价类间的边界值覆盖有效等价类和无效等价类来更有效的进行测试,因此该方法要和等价类划分法结合使用。
  • 正交试验法:是从大量的试验点中挑选出适量的、有代表性的点。正交试验设计是研究多因素多水平的一种设计方法,他是一种基于正交表的高效率、快速、经济的试验设计方法。
  • 状态迁移法:是对一个状态在给定的条件内能够产生需要的状态变化,有没有出现不可达的状态和非法的状态,状态迁移法是设计足够的用例达到对系统状态的覆盖、状态、条件组合、状态迁移路径的覆盖。
  • 流程分析法:主要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,这是从白盒测试中路径覆盖分析法借鉴过来的一种很重要的方法。
  • 输入域测试法:是针对输入会有各种各样的输入值的一个测试,他主要考虑 极端测试、中间范围测试,特殊值测试 。
  • 输出域分析法:是对输出域进行等价类和边界值分析,确定是要覆盖的输出域样点,反推得到应该输入的输入值,从而构造出测试用例,他的目的是为了达到输出域的等价类和边界值覆盖。
  • 判定表分析法:判定表是分析和表达多种输入条件下系统执行不同动作的工具,他可以把复杂的逻辑关系和多种条件组合的情况表达的即具体又明确;
  • 因果图法:因果图是用于描述系统输入输出之间的因果关系、约束关系。因果图的绘制过程是对被测系统的外部特征的建模过程,根据输入输出间的因果图可以得到判定表,从而规划出测试用例。
  • 错误猜测法:主要是针对系统对于错误操作时对于操作的处理法的猜测法,从而设计测试用例
  • 异常分析法:是针对系统有可能存在的异常操作,软硬件缺陷引起的故障进行分析,分析发生错误时系统对于错误的处理能力和恢复能力依此设计测试用例。

2、白盒测试

通过检查软件内部的逻辑结构,对软件的逻辑路径进行覆盖测试

1)白盒测试方法

if(a&&b)
{
c=a+b;
}
else
{
c=a-b;
}

1)语句覆盖

确保每条语句在程序中执行一次

2)判定覆盖

每个判断的分支取真分支和取假分支至少经历一次

即a、b 真;a、b 一真一假

3)条件覆盖

使得判定的条件都至少满足一次

a false ,b false

a ture,b ture

4)判定条件覆盖

判定覆盖和条件覆盖必须都满足

a=T,b=T

a=T,b=F

a=F,b=T

5)条件组合覆盖

每个判定的条件的各种取值组合至少出现一次

a=T,b=T

a=T,b=F

a=F,b=T

a=F,b=F

6)路径覆盖

执行所有可能执行的路径

判定条件覆盖一定包含判定覆盖和条件覆盖

路径覆盖肯定包含判定覆盖,与条件没有直接关系。

  • 如果某测试用例集实现了某软件的路径覆盖,那么一定同时实现了该软件的判定覆盖

强度排序:语句覆盖<判定覆盖<条件覆盖<判定条件覆盖<条件组合覆盖<路径覆盖

可同时用于黑盒和白盒的测试方法:边界值法(但是边界值法是黑盒测试方法)

例题:

答案:3
解析:ch= -1、3、10

三、按程序是否运行分类

1、静态测试

不用运行程序的测试

包括代码检查、静态结构分析、代码质量度量、文档测试、编写规则检查、程序结构检查、程序复杂度检查、数据流分析、代码覆盖率等等

它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。 (Fxcop是代码分析工具)

2、动态测试

需要执行代码,通过运行程序找到问题

包括功能确认与接口测试、覆盖率分析、性能分析、内存分析、模块功能检查、系统压力测试、内存泄漏等。

四、其他测试

1、冒烟测试:对软件最基本的流程和工作做一个粗略的测试

2、回归测试:当开发修复一个bug后提交代码,测试将测试用例都在新代码上再次进行测试

3、探索性测试:一边学习项目,一边测试

4、压力测试:测试软件的瓶颈和极限

5、负载测试:性能在极限情况下能坚持多久 ---- 验证要检验的能力最高能达到什么程度

(负载测试的目标是确定并确保系统在超出预期工作量的情况下仍然能正常运行)

  • 9
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
beta软件测试是一种软件测试方法,通常在软件开发的后期阶段进行。该测试主要目的是让最终用户在实际环境中使用软件,并提供反馈和建议。基于实际用户的使用经验,beta测试可以帮助开发团队发现潜在的问题和改进软件。 根据参与测试的用户类型的不同,beta软件测试可以分为两种分类: 1. 开放式beta测试:在这种测试中,任何有兴趣的用户都可以参与。开放式beta测试通常通过网络或软件开发公司的网站进行招募。用户可以自由下载和安装软件,并根据使用体验提供反馈。这种测试方法具有参与用户广泛、获取反馈多样的优点,但也可能因为参与人数众多而导致反馈信息的管理和整理相对困难。 2. 闭合式beta测试:这种测试方法是通过邀请特定用户群体参与的,通常是一些经过筛选的志愿者。软件开发公司会从特定的用户群体中选取一些具有特定需求和特征的用户,以获得更加具体和有针对性的反馈。闭合式beta测试通常具有更高的测试质量和更好的参与度,但由于参与用户数量较少,可能无法覆盖所有潜在的使用情况。 总的来说,beta软件测试是一项重要的测试活动,能够有效地发现并解决软件问题。通过开放式和闭合式两种分类方法,测试人员可以获得不同类型用户的反馈,从而提高软件的稳定性和用户体验,为软件发布做好准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值