软件测试:测试分类

一. 按照测试对象划分

1.1 界面测试

界面测试(简称UI测试),按照界面的需求(UI设计稿)和界面的设计规则,对我们软件界面所展示的全部内容进行测试和检查,一般包括如下内容:

验证界面内容的完整性,一致性,准确性,友好性,兼容性.比如页面内容对屏幕大小的自适应,换行,内容是否全部清晰展示.

验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求

对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用,有效和无效的状态是否设计合理.

界面的布局和色调符合当下时事的发展.

重叠,截断,文字不合理自动换行等.

1.2 可靠性测试

可靠性即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示

可靠性=正常运行时间/(正常运行时间+非正常运行时间)*!00%

对于可靠性测试,需要借助工具,编写一些脚本,让这些脚本自动运行,自动运行完之后会有报告,人只需要看报告,总结结果.

1.3 容错性测试

容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性.

• 输入异常数据或进行异常操作,以检验系统的保护性.如果系统的容错性好,系统只给出提示或内如消化掉,而不会导致系统出错甚至崩溃.(例如除法计算器:2/0 , 代码报异常了,不会异常,这对这些异常进行处理(除数不能是0))

• 灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复。

1.4 兼容测试

兼容性测试需求是指明确要测试的兼容环境,考虑软,硬件的兼容,就软件兼容来说,主要考虑一下几个方面:

系统自身版本的兼容,用户已有数据的兼容,数据兼容是重中之重,对于用户来说,数据是最有价值的。

测试与应用环境的兼容性,比如操作系统,应用平台,浏览器的兼容

测试与第三方系统以及第三方数据的兼容性

新版本和旧版本的兼容性,新版本添加新功能时,对旧版本回归测试

对于环境(操作系统,应用平台)兼容性的测试不仅仅局限在操作系统,浏览器这两个因素,还包括以下,32,64位CPU;手机平台Android,IOS,Windows, Phone;支持不同的Internet连接速度。

对于IOS 和Android 两个平台,还要区分手机和平板电脑,考虑不同的型号(屏幕尺寸,分辨率等)

1.5 易用性测试

软件设计符合大众审美

颜色和标识符合尝试,避免反人类设计。 

软件使用灵活

软件见明知意

1.6 安装卸载测试

软件不同的安装和卸载方式

应用是否可以在不同的系统,版本下安装(安装兼容性)

安装或者卸载过程中给是否可以手动暂停,或者取消

安装空间不足的时候是否有提示

是否可以正常的卸载

卸载和安装过程中出现环境问题,软件是否可以正常并且合理的应付,比如死机,断电,断网等。

1.7 安全性测试

安全性是指信息安全,计算机系统或网络保护用户数据隐私,完整,保护数据正常传输和抵御黑客,病毒攻击的能力。安全性测试属于非功能性测试很重要的一个方面,系统常见的安全漏洞和威胁如下:

输入域,如输入恶行或者带有病毒的脚本或长字符串;

代码中的安全性问题,如SQL/XML注入

不安全的数据存储或者传递

数据文件,邮件文件,系统配置文件等里面有危害系统的信息或者数据

有问题的访问控制,权限分配

假冒ID:身份欺骗

篡改,对数据的恶意修改,破坏数据的完整性

1.8 性能测试

我们在使用软件的时候,有时会碰到软件网页打开时越来越慢,查询数据时很长时间才显示列表,软件运行越来越慢等问题,这些问题都是系统的性能问题引起的。

常见的性能问题如下:

资源泄露

资源瓶颈

线程死锁,线程阻塞

查询速度慢或效率低

收外部系统影响越来越大(需要解耦)

1.9 内存泄露测试

分配完内存之后忘了回收

程序写法有问题,造成没办法回收(如死循环造成无法执行到回收步骤)

某些API函数的使用不正确,造成内存泄漏。

内存泄漏的检测方法

人工静态法:代码走读,人工查找未被回收的内存。

自动工具法:借助相应测试工具测试内存泄漏的工具。如Visual Leak Detector, 记录每次内存分配,清楚告诉用户是如何泄漏的。

二. 按照是否查看代码划分

2.1 黑盒测试

黑盒测试的优点:

• 不需要了解程序内部的代码以及实现,不关注软件内部的实现

• 从用户角度出发设计测试用例,很容易的知道用户会读到哪些功能,会遇到哪些问题,锻炼测试人员的产品思维。

• 测试用例是基于软件需求开发文档,不容易遗漏软件需求文档中需要测试的功能。

黑盒测试的缺点是不可能覆盖所有代码。 

2.2 白盒测试

白盒测试又称为结构测试或者逻辑测试,它一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试。

白盒测试的目的是,通过检查软件内部的逻辑结构,对软件中的逻辑内容进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试可以提高代码的覆盖率

2.2.1 语句覆盖

语句覆盖要求设计若干个测试用例,使得程序中的每个可执行语句至少都能被执行一次。

首先可能想到的是,可以设计两个测试用例,分别覆盖第一个if结构有执行的语句③和第二个if结构有执行语句的分支④.

case1: x=20,y=20;

case2: x=-1,y=-1.

这样即可达到语句的覆盖要求,但可以优化一下测试的设计用例,实际上只需要一个测试用例,即:

case3: x=4,y=4

2.2.2 判定覆盖

是程序中每个判断的真值结果和假值结果都至少出现一次.

判定覆盖表:

2.2.3 条件覆盖

条件覆盖要求判断表达式中的每个条件都要至少取得一次真值和一次假值

2.2.4 判定条件覆盖

是判定表达式中的每个条件的真/假取值至少都出现一次,并且每个判定表达式自身的真/假取值也都要至少出现一次.

2.2.5 条件组合覆盖

条件组合覆盖也叫多条件覆盖,它是要设计足够多的测试用例,使每个判定中条件取值的各种组合都至少出现一次.

2.3 灰盒测试

回合测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出,输入的正确性,同时也关注程序内部的情况.

三.按开发阶段划分

3.1单元测试

单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性.测试的对象是软件设计的最小单位: 模块.又称为模块测试.

测试阶段: 一般单元测试之后

测试对象: 模块之间的接口

测试人员: 白盒测试工程师或开发工程师

测试依据: 单元测试的模块+概要设计文档

测试方法: 黑盒测试与白盒测试相结合

测试内容: 模块之间数据传输,模块之间功能冲突,模块组装功能正确性,全局数据结构,单模块缺陷对系统的影响.

3.2 系统测试

将软件系统看成是一个系统的测试,包括对功能,性能以及软件的软硬件环境进行测试. 

测试阶段: 集成测试通过之后

测试对象: 整个系统

测试人员: 黑盒测试工程师

测试依据: 需求规格说明书

测试方法: 黑盒测试

测试内容: 功能,界面,可靠性,易用性,性能,兼容性,安全性等

3.3 回归测试

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

3.4 冒烟测试

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行.冒烟测试一般在开发人员开发完毕后提交给测试人员来进行测试时,新进行冒烟测试,保证基本功能正常,不阻碍后续的测试.

如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试.

四. 按测试实施组织

4.1 α测试

α测试是由一个用户在开发环境下进行测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试,α测试的目的是评价软件产品的FLURPS(即功能,局域化,可使用性,可靠性,性能和支持).

4.2 β测试

β测试是一种验收测试,β测试由软件的最终用户们在一个或多个场所进行.

α测试与β测试的区别:

• 测试的场所不同: α测试是指把用户请到开发方的场所来测试,β测试是指在一个或多个用户的场所进行的测试

• α测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中,β测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中

• α测试先于β测试执行.通用的软件产品需要较大的规模的β测试,测试周期比较长.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/151907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—206.反转链表【简单】

2023每日刷题(三十三) Leetcode—206.反转链表 头插法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* reverseList(struct ListNode* head) {if(head NULL…

ajax,axios,fetch

文章目录 ajax工作原理ajax发请求四个步骤创建xmlhttprequest对象设置请求方式设置回调函数发送请求 自封装ajax axiosaxios 特性如何用配置拦截器fetch 三者区别 ajax 工作原理 Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务…

HDD与QLC SSD深度对比:功耗与存储密度的终极较量

在当今数据世界中,存储设备的选择对于整体系统性能和能耗有着至关重要的影响。硬盘HDD和大容量QLC SSD是两种主流的存储设备,而它们在功耗方面的表现是许多用户关注的焦点。 扩展阅读: 1.面对SSD的步步紧逼,HDD依然奋斗不息 2.…

Windows系统中搭建docker (ubuntu,Docker-desktop)

一、docker安装前的准备工作 1. 开启CPU虚拟化,新电脑该默认是开启的,如果没开启可以根据自己电脑型号品牌搜索如克开启CPU虚拟化。当开启成功后可在设备管理器中看到。 2.开通Hyper-V 通过 Windows 控制面板 --> 程序和功能 -->启用或关闭…

Java集合大总结——Set的简单使用

Set的简单介绍 Set接口是Collection的子接口,Set接口相较于Collection接口没有提供额外的方法。Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败。Set集合支持的遍历方式和Collection集合一样&am…

[Kettle] 生成记录

在数据统计中,往往要生成固定行数和列数的记录,用于存放统计总数 需求:为方便记录1~12月份商品的销售总额,需要通过生成记录,生成一个月销售总额的数据表,包括商品名称和销售总额两个字段,记录…

使用键盘管理器更改键盘快捷键,让键盘真正迎合你的使用习惯

如果默认快捷键不适合你,你肯定会想知道如何在Windows 11中更改键盘快捷键。 也许你已经习惯了macOS键盘,或者像我一样在Windows和Mac之间切换工作/游戏——如果是这样的话,重新配置默认的Windows快捷方式,使其与Mac上的快捷方式…

Docker网络详细说明

Docker网络 docker不启动,默认网络情况 ipconfig----------ens33、lo、virbr0 在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡:它还有一个固定的默认I…

多目标应用:基于多目标灰狼优化算法MOGWO求解微电网多目标优化调度(MATLAB代码)

一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、多目标灰狼优化算法MOGWO 多目标灰狼优化算法MOGWO简介: 三、多目标灰狼优化算法MOGWO求解微电网多目标优化调度 (1&#xff09…

ANSYS网格无关性检查

网格精度对应力结果存在很大的影响,有时候可以发现,随着网格精度逐渐提高,所求得的最大应力值逐渐趋于收敛。 默认网格: 从默认网格下计算出的应力云图可以发现,出现了的三处应力奇异点,此时算出的应力值是…

趣学python编程(六、关于蓝桥杯比赛)

蓝桥杯全国软件和信息技术专业人才大赛简称“蓝桥杯”,是由工业和信息化部人才交流中心举办的国内最大的信息技术竞赛。为促进中小学科技创新,提升中小学生逻辑思维,发现和培养面向未来的科技精英人才。 蓝桥杯介绍 蓝桥杯全国软件和信息技术…

Linux操作系统使用及C高级编程-D6-D8Linux shell脚本

利用shell命令写的脚本文件,后缀是.sh shell脚本是一个解释型语言,不需要编译,可直接执行 书写:vi test.sh #!/bin/bash:说明使用的是/bin目录下的bash 说明完后即可编写脚本文件 bash test.sh:运行文…

企业级SSD还是一个巨大的蓝海~

根据Allied Market Research市场分析报告显示,2020 年全球企业级 SSD 市场规模为 178.5 亿美元,预计到 2030 年将达到 468.9 亿美元,2021 年至 2030 年的复合年增长率为 10.2%。 扩展阅读:华为展望|2030年数据中心存储…

【IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出接口文档缺少代码字段注释的相关内容、校验规则的解决方法】

问题 IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出的接口文档上面,缺少我们代码里的注解字段,如我们规定了NOTNULL、字段描述等。 问题链接,几个月之前碰到过,并提问了,到现在解决&#xff0c…

一段来自《Verilog HDL 高级数字设计》的错误Verilog代码

笔者之前在阅读《Verilog HDL 高级数字设计》时的基4布斯乘法器一文时,就遇到了一段有问题的代码,而这个问题可以用Verilog基础:表达式位宽的确定(位宽拓展)文中的分析完美解决。 always (negedge clock) if (Start)…

大健康产业的先行者「完美公司」携手企企通,推进企业采购供应链数字化进程

随着中国经济持续向好,消费升级和美妆步骤增加,美妆和个人护理产品已逐渐成为中国消费者的日用消费品,推动了护肤品和化妆品的销售额增速均超过10%,成为中国整个快速消费品市场中的一颗亮眼明珠。 据国家统计局数据显示&#xff0…

Linux(Ubuntu)安装JDK环境

系统环境 Ubuntu20.04 下载JDK压缩包 前往Oracle官网进行后续下载或单击下载JDK压缩包 下拉找到JDK8,在Linux板块下选择适配系统架构的压缩包文件(后缀为tar.gz),系统架构可通过uname -m命令查看 安装JDK 安装环境通常放在/usr/local下,进入…

【数据结构】栈与队列面试题(C语言)

我们再用C语言做题时,是比较不方便的,因此我们在用到数据结构中的某些时只能手搓或者Ctrlcv 我们这里用到的栈或队列来自栈与队列的实现 目录 有效的括号解题思路:代码实现: 用队列实现栈解题思路:代码实现&#xff1a…

openGauss学习笔记-128 openGauss 数据库管理-设置透明数据加密(TDE)

文章目录 openGauss学习笔记-128 openGauss 数据库管理-设置透明数据加密(TDE)128.1 概述128.2 前提条件128.3 背景信息128.4 密钥管理机制128.5 表级加密方案128.6 创建加密表128.7 切换加密表加密开关128.8 对加密表进行密钥轮转 openGauss学习笔记-12…

网络运维与网络安全 学习笔记2023.11.19

网络运维与网络安全 学习笔记 第二十天 今日目标 STP工作原理、STP高级配置、MSTP工作原理 MSTP配置案例、MSTP负载均衡 STP工作原理 单点故障 PC之间的互通链路仅仅存在1个 任何一个设备或链路出现问题,PC之间都会无法通信 解决方案 增加冗余/备份设备 增加冗…