软件测试:测试分类

一. 按照测试对象划分

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,一经查实,立即删除!

相关文章

GNU Radio 教程

初学者教程 GNU 无线电简介 什么是 GNU 无线电?安装 GNU 无线电你的第一个流程图 流程图基础知识 GRC 中的 Python 变量流程图中的变量运行时更新变量信号数据类型转换数据类型包装位流和向量层次块和参数 创建和修改 Python 块 创建你的第一个块带向量的 Pyt…

Leetcode_45:跳跃游戏 II

题目描述&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返…

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

2023每日刷题&#xff08;三十三&#xff09; 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引擎)&#xff0c;使用户操作与服务…

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

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

SQL练习03

1.每月交易 SQL Create table If Not Exists Transactions (id int, country varchar(4), state enum(approved, declined), amount int, trans_date date); Truncate table Transactions; insert into Transactions (id, country, state, amount, trans_date) values (121, US…

CAPL如何对以太网报文的长度字段和校验和字段设置错误值

当我们使用CAPL中的关键字ethernetPacket组装一条以太网报文并发送时,除了一些必要的字段(ip地址、mac地址、payload数据)需要单独设置外,其他字段会根据你初始化的协议使用默认值。比如你初始化一条icmpv4 echo request报文,那么icmpv4协议中的type字段默认值是8,code值…

Vue3 源码解读系列(十一)——插槽 slot

slot 插槽的实现实际上就是一种 延时渲染&#xff0c;把父组件中编写的插槽内容保存到一个对象上&#xff0c;并且把具体渲染 DOM 的代码用函数的方式封装&#xff0c;然后在子组件渲染的时候&#xff0c;根据插槽名在对象中找到对应的函数&#xff0c;然后执行这些函数做真正的…

代码随想录算法训练营第23期day54|392.判断子序列、115.不同的子序列

一、392.判断子序列 力扣题目链接 和最长公共子序列相似&#xff0c;不同之处在于这一道题只有母序列&#xff08;较长的序列&#xff09;可以进行删除操作&#xff0c;体现在遍历中就是除了左上方之外&#xff0c;上方和下方只有一个可以转移过来。 class Solution { publi…

车载以太网-传输层-TCP

文章目录 TCP协议TCP协议报文格式TCP报文的示例TCP建立连接TCP断开连接TCP协议测试TCP协议 车载以太网TCP协议是一种在车载以太网网络中使用的传输控制协议(TCP)。它是一种面向连接的协议,用于在车辆之间或车辆与基础设施之间传输数据。TCP协议提供了可靠的数据传输,确保数…

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

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

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

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

[Kettle] 生成记录

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

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

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

Docker网络详细说明

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

C# 中的 Math 数学函数

C# 中的 Math 类提供了许多数学函数&#xff0c;用于执行各种常见的数学运算。以下是 Math 类中的一些常用方法&#xff1a; Math 数学函数 Abs: 返回指定数字的绝对值Acos: 返回指定数字的反余弦值&#xff08;弧度&#xff09;Asin: 返回指定数字的反正弦值&#xff08;弧度&…

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

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

ANSYS网格无关性检查

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

py查询第三方库的路径

在Python中&#xff0c;你可以使用pkg_resources模块来查询第三方库的路径。这个模块提供了许多有用的函数来处理Python包和资源。 以下是一个简单的示例&#xff0c;展示如何查询第三方库的路径&#xff1a; import pkg_resources# 指定要查询的包名 package_name "第…

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

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