软件测试分类

目录

一、按测试技术划分

        1、白盒测试

        2、黑盒测试

        3、灰盒测试

二、按测试阶段划分

        1、单元测试

        2、集成测试

        3、系统测试

        4、验收测试(正式验收测试、Apha测试、Beta测试)

三、按被测试对象是否运行划分

        1、动态测试

        2、静态测试

四、按不同的测试手段划分

        1、手工测试

        2、自动化测试

五、按软件质量特性内容划分

        1、功能测试(界面测试)

        2、可靠性测试

        3、易用性测试

        4、性能测试(负载测试、压力测试、并发测试、稳定性测试)

        5、兼容性测试

六、其他测试

        1、冒烟测试

        2、回归测试、


一、按测试技术划分

        1、白盒测试

       白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试

用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及

里面是如何运作的。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

        白盒测试方法:

        ①语句覆盖:确保每条语句在程序中执行一次。

        ②判定覆盖:每个判断的分支取真分支和取假分支至少经历一次。

        ③条件覆盖:使得判定的条件都至少满足一次。

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

        ⑤条件组合覆盖:每个判定的条件的各种取值组合至少出现一次。

        ⑥路径覆盖:执行所有可能执行的路径。

        2、黑盒测试

        黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不

能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检

查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确

的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能

进行测试。

        黑盒测试方法:

        ①等价类划分

       等价类划分是一种典型的、常用的黑盒测试方法,这种方法把全部输入数据合理划分为若干个

等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量有代表性的测试数据取

得较好的测试结果。

·        有效等价类:合理的输入数据

·        无效等价类:不合理的输入数据

        等价类分析步骤:

        Ⅰ、为每个输入划分等价类,得到等价列表,为每一个等价类规定唯一编号

        Ⅱ、设计一个测试用例,使其尽可能多的覆盖所有的有效等价类。重复这一步骤,是得所有

有效等价类均被测试用例覆盖到。

        Ⅲ、设计一个测试用例,使其覆盖一个无效等价类。重复这一步骤,使得所有无效等价类均

被覆盖。

        ②边界值划分 

        边界值分析法的理论基础,是假设大多数的错误是发生在各种输入条件的边界上,如果在边

界上的取值不会导致程序出错,那其他的取值导致程序出错的可能性也很小。

        是对等价类划分法的一种补充。边界值的分析基本思想:正好等于、刚好大于、刚刚小于边

界的值作为测试数据。

        ③错误推测法

        错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测

试用例的方法。

        错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根

据他们选择测试用例。 例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中

曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。 输入表格为空

格或输入表格只有一行,这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。

        ④因果图法

        因果图是从需求中找出因(输入条件)和果(输出或程序状态的改变),通过分析输入条件

之间的关系(组合关系、约束关系等)及输入和输出之间的关系绘制出因果图,在转化成判定表,

从而设计出测试用例的方法。

        该方法主要适用于各种输入条件之间存在某种相互制约关系或者输出结果依赖于各种输入条

件的组合时的情况。

        因果图分析步骤:

        Ⅰ、找出所有原因,原因即输入条件或者输入条件的等价类。

        Ⅱ、找出所有结果,结果即输出条件。

        Ⅲ、明确所有输入条件之间的制约关系以及组合关系,哪些条件可以组合在一起,哪些条件

不可以组合在一起。

        Ⅳ、明确所有输出条件之间的制约关系以及组合关系,哪些输出结果可以同时输出,哪些结

果不能同时输出。

        Ⅴ、找出什么样的输入条件组合会出现哪种输出结果,画出因果图。

        Ⅵ、把因果图转换成判定表/决策表。

        Ⅶ、为判定表或决策表中的每一列表示的情况设计测试用例。

        ⑤判定表法

        判定表又称决策表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又

相互组合、有多种决策方案的情况。是把作为条件的所有输入的各种组合值(因)以及对应的输出

值(果)都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明

可以避免遗漏。因此判定表能够设计出完整的测试用例集合。

        判定表的组成:

        条件桩----列出问题的所有条件

        条件项----针对条件桩给出的条件列出所有可能取值

        动作桩----列出问题规定的可能采取的操作

        动作项----指出在条件项的各组取值情况下应采取的动作

        判定表分析步骤:

        Ⅰ、分析需求,把条件列到条件桩中,把输出列到动作桩中。

        Ⅱ、把所有的条件和条件之间的组合关系,列到条件项中,确定规则的个数,N个条件,每个

条件2种取值,则有2的N次方列。

        Ⅲ、根据需求,计算出动作的取值,并写到动作项中,得到初始的决策表。

        Ⅳ、化简判定表(判定表合并)。

        Ⅴ、把判定表的每一列设计成一个测试用例。

        3、灰盒测试

        灰盒测试关注输出对于输入的正确性;也关注内部表现,但这种关注不像白盒测试那样详

细、完整,只是通过一些表特征的现象、事件、标志来判断内部的运行状态。

二、按测试阶段划分

        1、单元测试

        单元测试也称为组件测试,是指对软件中的最小可测试单元进行检查和验证,如一个模块,

一个过程等等。它的目的是检验软件基本组成单元的正确性。

        2、集成测试

        集成测试是将通过测试的单元模块组装成系统或子系统再进行测试,目的是对组件之间的接

口进行测试,以及测试一个系统内不同部分的相互作用。

        3、系统测试

        系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息

系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否

满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。

        4、验收测试(正式验收测试、Apha测试、Beta测试)

        验收测试是在软件产品完成了功能测试和系统测试之后,产品发布之前所进行的软件测试活

动,是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是建立对系统、系统的某部分

或特定的系统非功能特征建立信心。包括alpha测试、beta测试、正式验收测试。

        Alpha测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操

作环境下进行的受控测试。

        Beta测试:是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常

不在测试现场。因而,beta测试是在开发者无法控制的环境下进行的软件现场应用。

三、按被测试对象是否运行划分

        1、动态测试

        动态测试是一种测试方法,通过运行软件程序并输入不同的数据和操作,以检查程序的实际

行为和输出结果是否符合预期。动态测试可以帮助发现软件程序中的错误和缺陷,包括功能错误、

性能问题、安全漏洞等。在动态测试过程中,测试人员通常使用自动化测试工具或手动测试方法来

执行测试用例,收集测试结果,并与预期结果进行比较以确定程序的正确性。

        2、静态测试 

        静态测试是通过分析代码来发现错误,所依据的只能是数据和代码的自然属性,对业务属性

则一无所知。静态测试并不需要执行软件,通过审查软件的设计、体系结构和代码,从而找出软件

缺陷的过程,有时也称为结构化分析。

        静态测试方法做到极致,也只能发现一小部分错误。另外,静态分析只能基于现有代码,不

能发现代码缺失造成的错误。

        静态测试常用的方法有:代码走查、数据流分析、控制流分析和信息流分析。

四、按不同的测试手段划分

        1、手工测试

        手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原

始但是必须的一个步骤。

        如果某项测试工作难以采用自动测试完成(甚至根本无法采用自动测试完成),例如:在程序执

行的关键时刻,我们需要从物理上断开一个网络连接,其目的在于验证程序处理错误条件的能力,

此时我们就可以采用手工测试。

        对于某些测试,如果我们采用自动测试,可能导致投资回报率(return on investment,ROI)过

低。例如,如果我们需要验证一个图形用户界面组件确实能够应用于某个软件产品中的某项功能的

开发,而这项功能又将被其他功能替换。此时,假设使用手工测试方法只需要花费10秒时间,但

是,如果使用自动测试,却需要花费几个小时甚至几天的时间编写测试,并且还要维护测试,那么

在这种情况下,我们显然应该使用手工测试来解决问题。

        2、自动化测试

        自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用·

例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望

结果的比较。 

        实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通

常需要同时满足以下条件:

        Ⅰ、 需求变动不频繁

        测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需

要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过

程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节

省的测试成本,那么自动化测试便是失败的。

        项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行

自动化测试,而变动较大的仍是用手工测试。

        Ⅱ、项目周期足够长

        自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时

间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周

期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。

        Ⅲ、 自动化测试脚本可重复使用

        如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其

间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正

可产生效益的测试手段了。

        另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如

性能测试、配置测试、大数据量输入测试等。

五、按软件质量特性内容划分

        1、功能测试(界面测试)

         功能性测试是验证软件系统是否按照需求规格说明书中所定义的功能进行正确

实现的测试。它主要关注软件系统的功能是否符合预期,包括输入、输出、处理逻辑等方面的验

证。

        2、可靠性测试

        可靠性测试是验证软件系统在一定条件下是否能够持续正常运行的测试。它主要关注软件系

统的稳定性和容错性,包括错误处理、异常情况下的恢复能力等方面的验证。

        3、易用性测试

        易用性测试是验证软件系统是否易于使用和理解的测试。它主要关注软件系统的界面设计、

操作流程、用户反馈等方面的验证。

        4、性能测试(负载测试、压力测试、并发测试、稳定性测试)

        性能测试是验证软件系统在不同负载条件下是否能够满足性能要求的测试。它主要关注软件

系统的响应时间、吞吐量、并发性等方面的验证。

        5、兼容性测试

        兼容性测试是验证软件系统在不同操作系统、不同浏览器、不同硬件平台等环境下是否能够

正常运行的测试。它主要关注软件系统在各种环境下的适应性和兼容性。

六、其他测试

        1、冒烟测试

        冒烟测试是在软件开发过程中的一种针对软件版本包的快速基本功能验证策略,是对软件基

本功能进行确认验证的手段,并非对软件版本包的深入测试。冒烟测试也是针对软件版本包进行详

细测试之前的预测试,执行冒烟测试的主要目的是快速验证软件基本功能是否有缺陷。如果冒烟测

试的测试例不能通过,则不必做进一步的测试。进行冒烟测试之前需要确定冒烟测试的用例集,对

用例集要求覆盖软件的基本功能。

        2、回归测试

        回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码

产生错误。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值