测试分类篇

小王学习录

  • 测试分类
  • 按测试对象划分
    • 1. 界面测试
    • 2. 可靠性测试
    • 3. 容错性测试
    • 4. 文档测试
    • 5. 兼容性测试
    • 6. 易用性测试
    • 7. 安装卸载测试
    • 8. 安全测试
    • 9. 性能测试
    • 10. 内存泄露测试
  • 按是否查看代码划分
    • 1. 黑盒测试
    • 2. 白盒测试
    • 3. 灰盒测试
  • 按开发阶段分
    • 1. 单元测试
    • 2. 集成测试
    • 3. 系统测试
    • 4. 回归测试
    • 5. 冒烟测试
    • 6. 验收测试
  • 按测试实施组织划分
    • 1. α测试和β测试的区别
    • 2. 第三方测试
  • 按是否运行划分
    • 1. 静态测试
    • 2. 动态测试
  • 按是否手工划分
    • 1. 手工测试
    • 2. 自动化测试
  • 按测试地域划分
    • 1. 国际化测试
    • 2. 本地测试

测试分类

测试的分类可以分为以下几类. 本篇文章将大致介绍这几类测试.
在这里插入图片描述

按测试对象划分

1. 界面测试

界面是软件与用户进行交流的工具, 是软件提供给用户的可视化界面, 用户可以通过界面与软件进行交互. 一个美观的界面可以给用户留下良好的印象.

界面测试又称为UI测试, 测试的依据是UI设计稿, 测试的内容主要有以下几点:

  • 界面内容的完整性, 一致性, 准确性, 友好性. 比如屏幕的大小自适应, 自动换行, 内容是否清晰展示等.
  • 验证整个界面布局和排版是否合理, 包括图片的位置和大小, 字体的颜色和大小等.
  • 对界面所有控件的测试, 如: 文本框, 滚动条, 选择按钮等是否可以正常使用.
  • 界面的布局和色调也要符合当前时事的发展.

2. 可靠性测试

可靠性指的是系统正常运行的能力. 又称可用性, 用正常运行时间/(正常运行时间+非正常运行时间)*100%来表示

可用性指标一般要求达到4个或5个9, 即99.99%或99.999%. 对于不同的应用系统, 可用性要求不一样.

  • 99.99% : 对于一个全年不中断运行(7*24)小时运行的系统, 99.99%意味着全年不能正常工作的时间只有52min, 不到一个小时.
  • 99.999%: 同样的系统, 可用性达到99.999意味着一年不能正常工作的时间只有5分钟.

对于可靠性测试, 需要使用测试工具.

3. 容错性测试

容错性是指系统对于用户输入了一个非法数据, 或用户操作错误, 不会使系统奔溃.

对于容错性测试可以采用下面的方法.

  • 输入非法数据或进行异常操作, 看系统的反应. 如果容错性好, 系统会给出提示或内部捕获处理, 而不会导致系统奔溃.
  • 灾难恢复性测试, 强制使软件发生故障, 验证系统恢复的时间以及数据是否发生丢失. (将数据存储到多台服务器中, 这些服务器分布在不同的地方, 当一处的服务器由于外部原因被损坏, 可以从其他服务器中获取到用户数据)

4. 文档测试

文档测试是测试文档的专业术语, 文档的正确性, 完整性, 一致性, 易用性等.

软件开发中的文档有开发文档, 用户文档, 管理文档等.

5. 兼容性测试

兼容性测试主要涉及以下几个方面:

  • 系统版本的兼容, 新发布版本是否能兼容之间版本的用户数据
  • 应用环境的兼容, 在不同设备(手机, 电脑, 平板), 不同型号, 不同操作系统版本, 不同的浏览器版本下系统能否正常运行.
  • 第三方系统与本系统的兼容. 本系统是否会因为有第三方系统运行而无法正常启动的情况.

6. 易用性测试

易用性测试验证用户使用起来是否方便流畅

  • 标准性和规范性. 比如要开发一个已经被开发出来的同类型平台, 应该遵守已经开发出来的平台的规范, 因为用户在潜意识中已经将早开发出来的系统作为标准, 已经习惯了之前的用法.
  • 直观性. 用户界面的直观性, 要求软件功能特性清晰. 不需要用户进行繁琐的操作.
  • 灵活性. 软件应该有不同的选项以满足不同使用习惯的用户.
  • 舒适性. 强调界面友好, 美观, 操作顺畅, 色彩恰当.

7. 安装卸载测试

  • 软件是否能以不同的方式进行安装或卸载. 比如在软件商店中安装或卸载, 在网页中安装或卸载, 使用命令进行安装或卸载等.
  • 软件是否能在不同的系统和版本下进行安装或卸载.
  • 软件安装或卸载过程中是否能手动停止和取消.
  • 安装空间不足时是否会提示.
  • 安装或卸载过程中突然断电, 死机如何处理等

8. 安全测试

安全测试属于非功能测试中很重要的一个方面

  • 在输入框中输入恶意脚本
  • sql攻击, xss攻击等.
  • 数据加密存储, 加密展示, 加密传输.
  • 严格的权限分配.

9. 性能测试

软件运行过程中越来越慢, 查询数据时的响应速度长等问题都属于性能问题. 常见性能问题有如下几种:

  • 资源泄露
  • 线程死锁
  • 接口响应速度慢
  • 系统受外部系统影响越来越大
  • 系统cpu占用率过大

衡量一个系统性能好坏的关键性指标有, 响应用户时间, 事务平均响应时间, 吞吐率, 内存和cpu使用率.

10. 内存泄露测试

内存泄露问题对于缺乏自动垃圾回收机制的语言编写的系统中更为常见, 内存泄露是可积累的, 当耗尽所有内存之后, 软件的执行就会越来越慢, 最后奔溃.

对于内存泄露的测试方法:

  • 人工静态法. 人工观察代码, 发现内存泄漏.
  • 自动工具法. 使用一些测试内存泄露的工具, 如Visual Leak Detector.

按是否查看代码划分

1. 黑盒测试

按是否查看代码可以划分为黑盒测试和白盒测试.
黑盒测试, 又叫数据驱动测试, 只注重系统的功能, 而忽略代码的内部逻辑和结构. 直接按照需求说明测试软件功能是否符合功能描述.

黑盒测试的优点:

  • 黑盒测试不需要关注代码的内部结构和逻辑, 对代码要求较低.
  • 黑盒测试基于需求文档, 不容易遗漏需求文档中需要测试的功能.
  • 黑盒测试是从用户的角度出发设计测试用例, 很容易知道用户使用哪些功能, 在使用这些功能时会遇到什么问题, 锻炼测试人员的产品思维.

黑盒测试的缺点: 不能覆盖所有代码.

2. 白盒测试

白盒测试又称为逻辑测试 / 结构测试, 关注代码内部结构和逻辑, 忽略业务功能, 针对程序的逻辑结构来设计测试用例.

白盒测试的测试目的是, 通过检查软件内部的逻辑结构, 对软件中的逻辑结构进行覆盖测试.

白盒测试有六种测试方法: 语句覆盖, 判定覆盖, 条件覆盖, 判定条件覆盖, 条件组合覆盖, 路径覆盖.

白盒测试的优点: 代码覆盖率高
白盒测试的缺点: 业务逻辑覆盖率低

3. 灰盒测试

灰盒测试是介于白盒和黑盒测试之间的一种测试, 灰盒测试多用于集成测试阶段. 不仅关注业务逻辑, 同时也关注着代码内部的情况.

按开发阶段分

测试金字塔

在这里插入图片描述
从上到下依次是ui测试, 业务测试, 单元测试. 越靠下的排查成本越低. 越靠上越靠近用户.

1. 单元测试

单元测试是对软件最基本的组成单元进行测试. 测试的对象是软件设计的最小单位:函数/方法. 又称为模块测试.

测试阶段: 编码后或这编码前
测试对象: 函数/方法等最小模块
测试人员: 白盒测试工程师或软件开发工程师
测试依据: 代码, 注释, 详细设计文档
测试方法: 白盒测试

2. 集成测试

单元测试完之后, 对多个单元结合起来所对应的接口进行测试. 主要是检查软件单位之间的接口是否正确.

测试阶段: 单元测试之后
测试对象: 模块间的接口
测试人员: 白盒测试工程师或开发工程师
测试依据: 概要设计文档.
测试方法: 黑盒测试和白盒测试
测试内容: 模块之间的数据传输, 功能冲突等.

3. 系统测试

系统测试是对整个软件系统的测试, 包括了功能, 性能, 环境等的测试.

测试阶段: 集成测试完成之后
测试对象: 整个系统
测试人员: 黑盒测试人员
测试依据: 需求规格说明书.
测试方法: 黑盒测试
测试内容: 功能, 性能, 兼容, 安全, 界面, 易用性, 可靠性等

4. 回归测试

回归测试是指修改了代码之后, 重新进行测试确认修改没有引入新的错误或导致其他代码产生了错误. 软件开发的各个阶段会多次进行回归测试, 随着系统的逐步完善, 回归测试的成本也会逐渐扩大.

5. 冒烟测试

冒烟测试的对象是每一个新编译的正式测试的软件版本, 也就是测试此次开发新加的需求, 目的是确认软件本次新加的主要功能和核心流程正常. 回归测试和冒烟测试都属于系统测试, 但是冒烟测试在正式进行系统测试之前进行, 由开发人员先进行冒烟测试, 然后由测试人员进行冒烟测试. 冒烟测试通过之后, 测试人员开始正式的系统测试.

6. 验收测试

验收测试通常由产品经理或运营进行, 是产品上线之前最后的一个测试流程. 又称为交付测试. 目的是确保软件准备就绪.

测试阶段: 系统测试之后
测试对象: 整个系统
测试人员: 最终用户或需求方.
测试依据: 用户需求, 验收标准(由测试人员编写)
测试方法: 黑盒测试

按测试实施组织划分

1. α测试和β测试的区别

  • 环境: α测试在公司内部进行, β测试的测试环境是不确定的
  • 测试人员类型: α测试是由公司的内部人员进行测试的, β测试是由用户进行测试(类似于公测)
  • 测试人员数量: α测试人员较少, β测试人员较多
  • 阶段: α测试是在β测试之前进行的
  • 测试周期: α周期较短, β测试周期较长.

2. 第三方测试

介于开发方和用户方间的组织(公司中单独的组织)的测试

按是否运行划分

1. 静态测试

不运行代码, 静态分析检查源代码, 检查程序的正确性.

2. 动态测试

运行被测试系统, 输入测试用例, 检查输出结果是否与预期结果相符合.

按是否手工划分

1. 手工测试

手工测试由人工手动输入一个个的测试用例. 执行效率慢, 手工测试出错率大, 但是可以进行探索性测试, 具有发散性思维.

2. 自动化测试

自动化测试是将以人为手工的测试行为转化为机器执行.
按照功能划分分为功能测试自动化, 性能测试自动化, 安全测试自动化
按照测试对象可以分为接口测试, UI测试等.

下篇文章将具体介绍自动化测试.

按测试地域划分

1. 国际化测试

如果系统不止国内使用, 则需要进行国际化测试, 要有与对应国家相适应的语言, 日期, 界面风格等.

2. 本地测试

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

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

相关文章

秒懂百科,C++如此简单丨第十五天:指针

目录 必看信息 Everyday English 前言 📝了解指针 📝定义指针 📝分析指针 📝运用指针 总结 必看信息 ▶本篇文章由爱编程的小芒果原创,未经许可,严禁转载。 ▶本篇文章被收录于秒懂百科&#xff0c…

代码整洁之道:一个提升代码可读性的小技巧

写在开头 如何写好代码,一千个人眼中有一千个哈姆雷特,但是我认为有一点的是写好代码的公理,不可撼动,即对代码可读性的追求。最近在工作中面对了太多可读性不佳的代码,使得对于旧有代码的维护和分析困难重重&#xf…

Vue3 watch 的使用,如何监听一个对象中的属性值的变化 vue3 + ts + vite

Vue3 watch 的使用&#xff0c;如何监听一个对象中的属性值的变化 由 vue2 转到 vue3 ts vite 之后都不会写这些玩意了。搜了下&#xff0c;找到了答案&#xff1a; vue2 的 watch <script>export default {watch: {$route.query.id(newValue){// 可以这样监听路由的…

双十一的祈祷【算法赛】

问题描述 双十一&#xff0c;不仅是购物狂欢节&#xff0c;更有 "光棍节" 之称。这源于 11:1111:11 由四个 11 构成&#xff0c;象征着单身。 作为大学生的小蓝也想经历甜甜的校园恋爱&#xff0c;于是他找到了爱神丘比特&#xff0c;向他祈祷能为自己带来一段邂逅…

IDEAVsCode常用插件

IDEA&VsCode常用插件 IDEA lombok、mybatisx 插件 Vscode Vetur —— 语法高亮、智能感知、Emmet 等&#xff0c;包含格式化功能&#xff0c; AltShiftF &#xff08;格式化全文&#xff09;&#xff0c;CtrlK CtrlF&#xff08;格式化选中代码&#xff0c;两个 Ctrl需…

【数据库】聊聊常见的索引优化-下

分页查询优化 主键排序 在实际的使用中&#xff0c;通过limit 10000,10 查询第10000记录到10010记录&#xff0c;mysql执行的时候是按照将前10010记录全部统计出来&#xff0c;然后剔除前10000条记录&#xff0c;选择后10条记录。这样来看的话&#xff0c;效率不高。 如果数据…

小微企业在银行信贷相关产品和机器学习建模案例_论文科研_企业调研

各银行小微企业贷款业务 互联网的时代&#xff0c;大量新信息技术的涌现和网络的无处不在&#xff0c;想要抢占这片金融天地&#xff0c;必须重视小微金融业务&#xff0c;小微企业是一直具有重大潜力的客户&#xff0c;商业银行、消金公司发展小微信贷业务可以拓宽自身客户群…

vue3 + TS + vite 搭建中后台管理系统(完整项目)

vue3 TS vite 搭建中后台管理系统&#xff08;完整项目&#xff09; 前言1、搭建步骤及方法2、集成多种插件功能&#xff0c;实现中后台按需使用3、新手学TS如何快速进入状态、定义TS类型4、layout搭建四款常见风格6、大屏搭建效果5、vue3Ts运营管理系统总结&#xff1a; 前言…

【Java】设计模式之保护性暂停

设计模式之保护性暂停 Guarded Suspension&#xff0c;这个设计模式&#xff0c;主要用在一个线程等待另一个线程的执行结果&#xff08;发请求等待响应&#xff09; 有一个结果需要从一个线程传递到另一个线程&#xff0c;传递只进行一次&#xff0c;用设计模式保护性暂停。 …

c语言的一些题(2024_1_7)

变种水仙花数 #include <stdio.h>int main() {int a 10000;for (; a < 100000; a){if ((a / 10000) * (a % 10000) (a / 1000) * (a % 1000) (a / 100) * (a % 100) (a / 10) * (a % 10) a)printf("%d ", a);}return 0; } //变种水仙花数 - Lily Num…

JavaScript异常处理实战

前言 之前在对公司的前端代码脚本错误进行排查&#xff0c;试图降低 JS Error 的错误量&#xff0c;结合自己之前的经验对这方面内容进行了实践并总结&#xff0c;下面就此谈谈我对前端代码异常监控的一些见解。 本文大致围绕下面几点展开讨论&#xff1a; JS 处理异常的方式…

【嵌入式】Makefile 学习笔记记录 | 嵌入式Linux

文章目录 前言一、Makefile的引入——最简单的gcc编译过程二、Makefile的规则三、Makefile的语法3.1、通配符3.2、假想目标 .phony3.3、即时变量 延时变量 四、Makefile的函数4.1、foreach4.2、filter4.3、wildcard4.4、patsubst 五、Makefile升级5.1、包含头文件在内的依赖关系…