当前位置: 首页 > news >正文

软件测试的分类

为什么要软件测试分类呢?

软件测试是软件生命周期中的一个重要的环节,基本伴随着软件整个生命周期,对软件测试分类后,我们可以根据软件生命不同阶段,进行对应的测试,这样就有助于我们条理分明,对于不同的测试运用不同的测试方法,分配不同的测试人员。

测试分类

按测试目的分类

界面测试(UI测试)

这个阶段主要是根据设计图去测试软件界面的布局是否符合设计图要求,整个界面在不同浏览器是否所有信息显示完整,界面上的输入框,点击按钮,滚动条是否能正常使用,无效的状态是否设计行大力等等。

功能测试

这个主要根据软件的需求文档,对软件的各项功能进行测试,最终判断软件的特性是否满足用户的需求,我们一般如何设计测试用例呢?一般参考产品特性,说明书进行测试用例的编写,具体的测试用例一般需要使用黑盒测试设计用例,如等价类,边界值,判断表法,正交法,场景法,错误猜测等等。

性能测试

我们经常使用一些软件或者打开浏览器网页,会发现需要等好久,才能加载出来这个页面,软件运行的速度越来越慢,这些问题其实就是性能问题引起的,所有针对这些问题,我们就要进行性能测试。对于性能测试,就对性能的需求进行分析,然后基于基于系统的性能需求和系统架构,去完成性能测试的设计和执行,最后进行持续的性能调优。

可靠性测试

可靠性测试也称为可用性测试
可靠性有一个公式可以计算出来。

可靠性=正常运行时间/(正常运行时间+非正常运行时间)

一般我们要求可靠性达到4个9,或则5个9,也就是99.99%或者99.999%。如果是四个9的话,我们每年运行异常的时间不难超过52分钟,如果是5个9就不能超过5分钟,对于不同的软件系统,要求也不一样,对于那些非及时性的信息网站可能要求就低一点,对于军事类或者像抖音啊,新闻啊这类网站可能要求就高一点。

安全性测试

其实就是测试这个软件网站,会不会泄露我们用户的隐私数据,数据在传输中会不会被截取,等扽安全类问题,常见的安全漏洞,比如sql注入,篡改证书,带有病毒的脚本等等。

易用性测试

这个主要是用户角度层面来测试的,拿我们手机的键盘举例的,键盘我们一般就是放在手机的下方,这样便于用户敲打字,敲字的方式有拼音或者九宫格或者五笔这都是根据用户习惯设立出来的,如果这时候,有一个软件的键盘设计出来是放在左上角右上角,那就不方便用户使用,我们这时候就要把这个问题检测出来,或者出来一个18格子输入法,也不方便用户使用。

按照执行方法分类

静态测试

静态测试其实就是我们不会去执行这个程序,不会让代码跑起来,我们会静态的阅读代码。检查代码,或者去检查界面来发现错误。一般会去看一些逻辑上,代码风格上,或者是否符合公司手册规定。一般用到的方法,代码走查,或者代码扫描工具。

动态测试

动态测试其实就是让代码跑起来,输入我们的测试数据,然后判断结果是否符合预期。

按照测试方法

白盒测试

白盒测试是对程序的内部构造,逻辑进行测试,判断是否符合预期。
白盒测试一般分为两种,动态测试和静态测试
静态测试的方法一般有桌面检查,代码审查,代码走查,代码扫面工具。
动态方法一般包括6种测试方法,语句覆盖,判断覆盖,条件覆盖,判定条件覆盖,条件组合覆盖。路径覆盖。

白盒测试主要用于单元测试阶段。

对于动态六种方法的解释。
  1. 语句覆盖
 if(A and B) {System.out.println( "Hello World111!");} 
if(C or D) {System.out.println( "Hello World222!");}

语句覆盖每条语句都要至少执行一次。
在这里插入图片描述
我们取其中一条用例都能满足两条语句都能被执行。

  1. 判断覆盖
    每条语句的判断可能性都能覆盖到。
    在这里插入图片描述

  2. 条件覆盖
    其实把种出现的条件都覆盖,在这里针对的A和B出现会那些条件
    在这里插入图片描述

  3. 判断条件覆盖
    这个就是既要判断覆盖,也要条件覆盖。
    在这里插入图片描述

  4. 条件组合覆盖。
    把每个条件都组合一下,比如A和B的条件组合一下,最后的出四个用例,满足条件组合的覆盖

在这里插入图片描述

  1. 路径覆盖
    覆盖每一条路径

在这里插入图片描述

在这里插入图片描述

黑盒测试

在这里插入图片描述
黑盒测试主要是关注软件的功能是否符合预期
黑盒测试就像把一个软件放在一个黑盒子里面,我们并不需要去知道程序的内部构造内部逻辑是是说明,我们只需要根据规格说明书,输入数据,判断结果是否符合预期结果就可以。符合证明软件的功能符合要求,一般黑盒测试用到的测试方法,等价类,边界值,因果图,场景图,错误猜测等方法。缺点就是不能覆盖到所有代码。

灰盒测试

黑盒测试是介于白盒测试和黑盒测试之间的一种测试,主要用于集成测试阶段,既要关注输入输出的正确,也要关注代码的逻辑。

你现在知道常用的测试方法有哪些了嘛?那些用的比较多。

常见的测试方法有黑盒测试,白盒测试,灰盒测试,开发人员主要用于白盒测试和黑盒测试,测试人员主要是白盒测试和黑盒测试,对于测试人员黑盒测试用的比白盒测试要多一点。

按照测试阶段分类

单元测试(白盒测试工程师和开发人员)

单元测试主要是针对软件最最小单元去测试,至于有多小这个根据人为定义,它主要是把程序分成各个模块,然后对每个模块的代码具体测试。测试主要再编码后或者编码前,根据代码注释和详细的设计文档来测试,用到主要的测试方法是白盒测试,主要测试模块接口测试,边界值测试,路径测试,错误处理测试等等。在java种也有很多单元测试框架比如jutil,提供了很多的注解和断言函数。

集成测试(白盒测试工程师和开发人员)

集成测试也称为联合测试,也就是我们所说的联调,基本在单元测试之后进行,把各个模块进行组合,主要用黑盒测试和白盒测试的方法去进行测试,测试模块之间的数据传输,模块之间是否产生冲突,模块组装的正确性,单模块对整体系统的影响。

系统测试

系统测试一般在集成测试之后,主要对整个系统进行整体的测试,验证系统的功能性和非功能性需求的实现。一般是用到的方法是黑盒测试,根据需求规格说明文档去测试整个系统是否满足需求。一般测试功能,界面,可靠性,易用性,性能,兼容性,安全性等。

冒烟测试:

冒烟测试主要是为了检查产品是否符合测试条件,主要会测试一下软甲的主要功能,核心流程正常,在进行系统测试之前执行,如果这些主要功能和核心流程都不正常,就没有必要进行系统测试,比如我们当兵前的役前训练。

回归测试:

回归测试,主要是当一个项目增添或者删除一个新功能,对旧代码可能有部分改动,这时候就要回归测试一下,看新增加的功能或者删除的功能是否对原有的功能产生影响,回归测试有两中测试方法,一种手工测试,一种就是自动化测试,因为回归测试测试的都是已经测试的过的内容,所有建议用自动化去测试。

验收测试(交付测试)

验收测试是整个测试阶段的最后一个测试操作,主要是确保软件准备就绪,按照项目合同腾武书,双方约定的验收依据文档,像软件购买方展示该软件系统满足原始需求。

举个车企造成的例子

车企造一辆车,就需要原材料,比如轮胎,发动机,等等部件,对于购买这些零件就需要检验,验证是否符合造车标砖(单元测试),这些零件符合造车标准后,就要去尝试组装,看零件与零件之间是否能匹配(集成测试),组长好一辆车后,还需要对安全性,功能检查是否正常(系统测试),购买车的用户会来体验车,看外观颜色是否符合自己预期(验收测试)

按照是否传统手工测试

主要有手工测试和自动化测试

自动化测试效率高,节省成本,但是不能发散测试,对测试人员技术要求较高
手工测试效率低,成本高,但是可以发散测试。

按照实施组织划分

α测试和β测试和第三方测试

α测试又被称为内测,一般是公司内部模拟一个测试,让公司的成员去体验这个产品,一般不能是程序员和测试人员完成
β测试又被称为公测,相当于给部分玩家发送一个体验测试码,让不同城市的不同玩家去测试。

α测试是公司内部测试,所有公司可以控制,用户较少,测试时间集中,β测试是对外部分用户,不受公司控制,数量比较多,时间不集中,一般α测试在β测试之前,持续时间前者短后者长

第三方测试:其实就是交给外包去模拟一些环境去测试

8.按测试地域划分。

本地测试和国际测试

本地测试一般是本国,国际测试,一般是全球,比如拼多多在国外就有另外一个版本,针对国际测试,可能会对时差,交易货币不同进行测试。

http://www.xdnf.cn/news/739585.html

相关文章:

  • 半导体行业重金属废水处理技术革新:从传统沉淀到复合工艺的突破
  • 大话软工笔记—分离原理
  • 如何做好一份技术文档:构建知识传递的精准航海图
  • 如何在腾讯云 OpenCloudOS 上安装 Docker 和 Docker Compose
  • shell脚本打包成可以在麒麟桌面操作系统上使用的deb包
  • QPushButton设置菜单
  • 408考研逐题详解:2009年第25题
  • 1、python代码实现与大模型的问答交互
  • iEKF的二维应用实例
  • 信息茧房—警惕低头族作茧自缚
  • Linux研学-环境搭建
  • Linux parted工具分区管理指南
  • SpringBoot关于文件上传超出大小限制--设置了全局异常但是没有正常捕获的情况+捕获后没有正常响应返给前端
  • [Windows] 千库/六图素材下载工具
  • 电机试验平台:现代科技与工程应用的典范
  • 【GESP真题解析】第 18 集 GESP 二级 2024 年 12 月编程题 1:寻找数字
  • 企业网盘百科:企业网盘的概念定义?
  • python训练 60天挑战-day40
  • 等保测评-Mysql数据库测评篇
  • 洛谷习题V^V
  • 群晖synology nas安装curl教程
  • mysql-mysql源码本地调试
  • 【实操】配置VLAN间路由
  • 山洪灾害声光电监测预警解决方案
  • 第六章 进阶14 项目周报的妙用
  • python训练营打卡第39天
  • OAuth详解和应用
  • AI互联网辅助工具
  • 8位单通道数据保存为JPG
  • 【有向图 拓扑排序 】P8405 [COCI 2021/2022 #6] Naboj|普及+