4.进阶篇
目录
一、按照测试对象划分
1.界面测试(UI测试)
界面测试的常见错误:
2.可靠性测试
3.容错性测试
4.文档测试
5.兼容性测试
6.易用性
7.安装卸载测试
8.安全性测试
9.性能测试
10.内存泄漏
二、按照是否查看代码
1.黑盒测试
2.白盒测试
3.灰盒测试
三、按照开发阶段划分(和软件测试V模型结合在一起)
1.单元测试
2.集成测试
3.系统测试
4.回归测试(自动化)
5.冒烟测试(准入原则)
6.验收测试
四、按照实施组织去划分
1.α测试
2.β测试
3.第三方测试
五、按照是否运行划分
1.静态测试
编辑 2.动态测试
六、按照手否手工划分
1.手工测试
2.自动化测试
七、按照地域去划分
1.软件国际化测试
2.软件本地化测试
一、按照测试对象划分
1.界面测试(UI测试)
界面是直接和用户交互的,界面设计的好坏决定了用户使用软件的直观感受
(1)保证界面和UI设计稿的一致性、正确性
(2)测试界面每一个功能的正确性,从上到下,从左到右,做到不遗漏
(3)界面的布局排版合理。字体大小、斜体、图片布局、清晰程度
(4)界面的控件(下拉框、复选框、滚动条、按钮、文本框)功能是否正常,有效状态高亮显示,无效状态置灰色
(5)要进行界面不同分辨率的测试(自适应测试),页面从小到大,文字图片展示正常,功能展示全面
(6)页面的状态(颜色、排版)和当下的节日、实事相结合
例如:同一个web页面不同页面大小的测试:
页面从大到小变化过程中,衔接丝滑,不会出现断裂,可以让用户接受
页面的字体不模糊、不消失、不重影
页面的图片不消失,排版布局合理
页面的功能可以正常使用
界面测试的常见错误:
不适合的快捷键(键盘打不出来的键)、文字丢失、文字有截断(显示不清楚有遮挡)、文字没对齐、文档自动换行、文字重叠、重复的快捷键
2.可靠性测试
可靠性 = 软件正常使用时间 / (正常运行时间+非正常运行时间)
软件自身和软件所部署的环境(硬件、软件系统、网络等)有问题导致软件无法正常运行,都属于非正常运行的时间
一般软件,可靠性要求99.99%,表示一年时间,出现故障时间为52min
特殊软件比如军事系统,可靠性要求99.999%,表示一年时间,出现故障时间为5min
如何进行软件的可靠性测试?
让软件运行一段时间,统计其中的正常运行时间和非正常运行时间,带入公式计算
软件可靠性的影响因素:软件本身,外界因素(电,网络,硬件设备,软件系统)
3.容错性测试
容错性:系统因为自身或者外部一些异常的情况,使得系统发生异常,但是系统能够自我处理这种异常或者错误操作的能力
数据级别:人民币 0.001元 识别不了,25时30分 2月30日
校验级别:输入账号 6-16位,最多只能输入16位,输17位就输不进去了
大小写、前后信息一致性、空格
界面级别:一些复杂的操作或者危险性较高的操作,会给用户提示信息; 禁用危险的按钮
环境级别:断电、断网、硬件设备出问题,是否可以无缝切换(让用户无感知)到备用服务器
灾难恢复性测试:人为让系统发生故障,测试是否能够很快让系统恢复稳定,恢复数据,不丢失用户的信息
4.文档测试
整个开发过程中产生的所有文档,需求文档,功能文档,设计文档,用户使用手册
测试文档的正确性、一致性,完整性、专业术语
文档和软件功能进行对比
5.兼容性测试
平台的兼容性:(web网页:各种浏览器,操作系统的兼容性
APP: 不同系统IOS/安卓,不同品牌手机,不同的系统版本)
软件本身的兼容性:软件对本身功能前后的兼容性,比如开发的新功能不能影响老功能,也不能影响后序开发
软件对用户数据的兼容性:数据库中某一张表不能影响用户之前的数据存储
软件对第三方软件的兼容性:不能影响其他软件的使用;
如果和第三方软件有交互,数据要有兼容性(支付宝和淘宝)
6.易用性
用户使用软件的体验,也叫用户体验测试
(1)必须符合一定的标准和规范
(2)直观性:让用户直接看到自己期望的操作或预期结果
(3)灵活性:用户可以根据自己的习惯选择自己喜欢的操作方式(全键盘、九宫格键盘、五笔。手写)
灵活性 == 复杂性,两者间找一个平衡点
(4)舒适性:让用户对自己的操作有感知,不产生焦虑情绪(安装软件的进度条)
(5)实用性
7.安装卸载测试
正常的安装和卸载功能
软件更新
安装软件时断网、断电、死机等异常情况下,软件的响应
安装软件,内存不足是否有提示
卸载软件,如果暂停,是否可以继续卸载
卸载到一半,取消卸载,看软件是否可以正常使用
卸载的过程中,有一些异常的情况(断网、断电、死机)
卸载后软件的数据文件信息是否清理干净
8.安全性测试
防病毒、防黑客攻击
输入域安全性,防止XSS注入,防止SQL注入
防爬虫,防止邮件文件携带病毒,上传下载过程中数据拦截
9.性能测试
内存泄漏、资源瓶颈、系统运行速度越来越慢、系统运行受外界的影响越来越大、死锁(操作某个界面卡主了、加载信息很慢)
10.内存泄漏
导致系统运行越来越慢(可积累的错误)
导致原因:
内存分配后,没有回收
API函数使用不正确,无法回收
内存分配后,忘记回收或无法回收
二、按照是否查看代码
1.黑盒测试
不关心软件内部代码的试实现,不关心代码的逻辑结构,只关心输入输出是否符合预期
好处:
(1)不用看代码(不懂代码也可以测试)
(2)黑盒 测试系统的功能,站在用户的角度去使用,有利于培养用户思维 (产品经理必须具备用户思维)
(3)按照需求设计的,不容易遗漏需求
黑盒测试设计测试用例的方法有哪些?
等价类、边界值、因果图、错误猜测法、场景法、正交法
2.白盒测试
针对代码进行测试,关心代码的逻辑和结构,看实现的功能是否符合用户的需求
白盒测试设计测试用例的方法有哪些?
语句覆盖、逻辑覆盖
判定组合覆盖、判定覆盖、条件覆盖、条件组合覆盖、判定和条件组合覆盖
条件组合:无穷尽,使用等价类和边界值进行测试
那么白盒测试怎样测试一个单元模块?
使用Junit框架(Java的单元测试框架)
3.灰盒测试
介于黑盒和白盒测试之间的
三、按照开发阶段划分(和软件测试V模型结合在一起)
测试金字塔,越往下测试效率越高,定位问题越容易。越往上,集成度越高。
1.单元测试
针对软件组成的最小单元模块,进行测试(具体的某个类、方法)
测试阶段:编码前(TDD),编码后
TDD测试驱动开发:测试人员先写代码空跑,开发人员根据异常写代码,直到测试用例通过
测试对象:组成软件的最小的单元模块
测试方法:白盒测试
测试人员:白盒测试工程师 / 开发人员
测试依据:详细测试文档(软件测试V模型)
测试内容:模块的接口,局部的数据测试,边界测试,异常测试,路径测试
2.集成测试
集成测试:按照一定的策略,把单元模块组合起来,形成一个大的功能模块,对这个功能模块进行的测试叫集成测试
测试阶段:单元测试后
测试对象:集成模块
测试方法:灰盒测试
测试依据:概要设计文档(V模型)
测试人员:黑盒测试工程师 / 开发人员
测试内容:整个模块功能的正确性,单元块之间接口的正确性,全局数据结构测试,单个模块缺陷对整个功能的影响、模块之间功能的冲突
3.系统测试
当软件开发完成,系统全面的对软件功能进行测试
测试阶段:集成测试之后
测试对象:整个系统
测试方法:黑盒测试
测试人员:黑盒测试工程师
测试依据:软件需求设计说明书
测试内容:系统的功能、界面、容错性、可移植性、兼容、性能、可靠性、易用性
4.回归测试(自动化)
当系统引入了新的代码,查看新的代码是否影响了旧的功能(迭代、修改bug)
5.冒烟测试(准入原则)
在正式测试之前,要对软件系统的基本流程和核心功能进行测试。如果测试通过,才同意正式测试。
测试人员:开发人员 / 测试工程师
回归测试和冒烟测试都属于系统测试
6.验收测试
软件上线前的最后一道测试,由用户或者产品经理发起
测试阶段:系统测试后
测试内容:同系统测试(包含文档、用户使用手册、功能设计文档)
测试方法:黑盒测试
测试依据:用户需求(V模型)
测试人员:用户 / 产品方
四、按照实施组织去划分
1.α测试
让用户或者除了开发和测试人员以外的格式内部人员到达开发现场去进行测试
测试环境:开发环境
2.β测试
让实际使用的用户在我们的实际使用环境下进行测试,不限时间,不限地点
α测试和β测试的区别:
测试环境不同、 时间集中程度不一样 、 α测试是优先于β测试的
3.第三方测试
第三方软件测试机构对软件进行测试(按照业界的规范和标准进行测试)
五、按照是否运行划分
1.静态测试
不运行代码,通过分析代码的风格,分析是否符合公司的标准规范,分析代码的逻辑、结构、算法,以及方法的实现是否满足用户的需求
2.动态测试
运行代码进行测试,执行测试用例,进行测试
六、按照手否手工划分
1.手工测试
手工执行测试用例,查看执行结果
缺点:量大,容易出错,效率低
优点:无法被自动化测试替代,手工过程是认为可控的,有利于做探索性测试
2.自动化测试
机器按照预先设定好的条件(自动化测试脚本)去执行测试,这些条件包括正常和异常方面
UI自动化、接口自动化、性能自动化
哪些项目不适合自动化测试?
自动化的价值在于节省人力。自动化脚本运行的频率越高,越有价值。
不适合:不稳定,功能频繁变动的项目
七、按照地域去划分
软件国际化:开发软件的时候,使用一种软件技术,使得软件在适用不同的国家语言、风俗、使用习惯的时候,不用改源码就可以做到。
Windows操作系统、微博国际版、苹果手机、MicroSoft Office
1.软件国际化测试
2.软件本地化测试
相关文章:

4.进阶篇
目录 一、按照测试对象划分 1.界面测试(UI测试) 界面测试的常见错误: 2.可靠性测试 3.容错性测试 4.文档测试 5.兼容性测试 6.易用性 7.安装卸载测试 8.安全性测试 9.性能测试 10.内存泄漏 二、按照是否查看代码 1.黑盒测试 2.…...

conda init
在输入conda activate 的时候出现报错: 解决: "需要使用 conda init 进行初始化" 的错误通常是由于你的系统环境缺少 conda 的初始化脚本所致。当你尝试在终端中执行 conda activate 命令时,会出现此错误提示。 要解决这个问题,可以通过以下步骤进行操作: 打…...

Elasticsearch(二)
Clasticsearch(二) DSL查询语法 文档 文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html 常见查询类型包括: 查询所有:查询出所有数据,一般测试用。如:…...

工业视觉检测的8个技术优势
工业4.0时代,自动化生产线成为了这个时代的主旋律,而工业视觉检测技术也成为其中亮眼的表现,其机器视觉技术为设备提供了智慧的双眼,让自动化的脚步得以加速! 在实际的生产应用中,视觉技术方案往往先被着手…...

16 KVM虚拟机配置-其他常见配置项
文章目录 16 KVM虚拟机配置-其他常见配置项16.1 概述16.2 元素介绍16.3 配置示例 16 KVM虚拟机配置-其他常见配置项 16.1 概述 除系统资源和虚拟设备外,XML配置文件还需要配置一些其他元素,本节介绍这些元素的配置方法。 16.2 元素介绍 iothreads&…...

(转载)从0开始学matlab(第1天)—变量和数组
MATLAB 程序的基本数据单元是数组。一个数组是以行和列组织起来的数据集合,并且拥有一个数组名。数组中的单个数据是可以被访问的,访问的方法是数组名后带一个括号,括号内是这个数据所对应行标和列标。标量在 MATLAB 中也被当作数组来处理——…...

Linux命令·wget
Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指&#…...

API网关简介|TaobaoAPI接入
API网关是什么 在日常工作中,不同的场合下,我们可能听说过很多次网关这个名称,这里说的网关特指API网关(API Gataway)。字面意思是指将所有API的调用统一接入API网关层,由网关层负责接入和输出。 那么在什…...

OJ练习第103题——最大矩形
最大矩形 力扣链接:85. 最大矩形 题目描述 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 输入:matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”…...

JavaScript实现输入年份判断是否为闰年的代码
以下为实现输入年份判断是否为闰年的程序代码和运行截图 目录 前言 一、输入年份判断是否为闰年 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找; 2.本博文代码可以根据题目要…...

LiangGaRy-学习笔记-Day12
1、作业回顾 1.1、判断磁盘利用率 要求: 判断磁盘的使用率,如果超过了90%就警告 [rootNode1 sh]# vim disk_check.sh #!/bin/bash #Author By LiangGaRy #2023年5月9日 #Usage:检测硬盘的使用率 ########################################### #定义一…...

浅谈Hutool工具类
一、Hutool简介 Hutool是一个Java工具类库,它封装了很多常用的Java工具类,如加密解密、文件操作、日期时间处理、Http客户端等。它的目标是让Java开发变得更加简单、高效。 二、Hutool的特点 高效:提供了很多高效的工具类和方法。 简单&…...

Mac终端代理
1.打开代理查看代理端口号 打开设置,点击网络,点击详细信息,点击代理查看代理端口号。 2.修改环境变量 1)终端输入下面命令 vim .zshrc 2)在.zshrc文件里添加下面两段内容(注意:7980为端口号…...

Git Clone 报错 `SSL certificate problem: unable to get local issuer certificate`
如果您在尝试克隆Git存储库时得到 “SSL certificate problem: unable to get local issuer certificate” 的错误,这意味着Git无法验证远程存储库的SSL证书。如果SSL证书是自签名的,或者SSL证书链有问题,就会发生这种情况。 $ git clone https://githu…...

第八章 文件与异常
引言 码字不易,如果这篇文章对您有帮助的话,希望您能点赞、收藏、加关注!您的鼓励就是我前进的动力! 目录 一、读取文件(一)读取文件:open(), with, read()(二)文件路径…...

Gradle使用
下载Gradle Gradle Distributions 配置环境变量 测试是否成功 cmd输入gradle -v 在.gradle目录下创建一个init.gradle allprojects { repositories { maven { url file:///D:/maven/myRepository} ## 这里是本地maven仓库地址,没有就会依次向下设置的地址寻…...

从七个方面聊聊Linux到底强在哪
从事计算机相关行业的同学不难发现,身边总有一些朋友在学习linux,有的开发同学甚至自己的电脑就是它。经常听他们说linux如何好用等等。那么linux到底好在那里,能让大家如此喜欢。这也是我经常问自己的一个问题。下面我将通过以下七点来为大家…...

python读写json文件方法详解
在我们日常使用 Python时,经常会使用到 json文件。那么在平时写一些小程序时,如何使用 json文件呢?今天我将介绍如何读取和写入 Json文件。 json是一种数据结构,它是将字符串转换成数据的一种技术。使用 json可以非常方便的将一组…...

多处最优服务次序问题——算法设计与分析(C实现)
问题描述:设有n个顾客同时等待一项服务。顾客i需要的服务时间为,共有s处可以提供此项服务。应该如何安排n个顾客的服务次序,才能使平均等待时间达到最小?平均等待时间是n个顾客的等待服务时间的总和除以n。 算法设计:对…...

2023 年 IntelliJ IDEA 下载安装教程,超详细图文教程,亲测可用
. IDEA 下载 1、打开浏览器输入https://www.jetbrains.com/,进入 Jetbrains官网,点击 Developer Tools,再点击 Intellij IDEA 2、点击中间的 Download,进入IDEA下载界面 3、选择左边的 Ultimate 版本进行下载安装。Ultimate 版…...

前端框架比较:Vue.js、React、AngularJS三者的优缺点和应用场景
章节一:引言 在当前的互联网开发中,前端框架已经成为了不可或缺的一部分。然而,前端框架如此之多,该如何选择呢?Vue.js、React和AngularJS是目前比较受欢迎的三个前端框架,它们各自有着不同的优缺点和应用…...

JavaScript中的数据可视化和动画效果
摘要: JavaScript是一种强大而灵活的编程语言,被广泛用于网页开发和交互设计。在数据可视化和动画效果方面,JavaScript提供了丰富的工具和库,使开发者能够创建出令人印象深刻的交互式数据可视化和动画效果。本文将介绍JavaScript中…...

如何搭建在线产品手册
在现代社会,随着科技的发展,越来越多的企业将目光投向互联网,并将自己的产品推向了线上。而对于这些线上产品,拥有一份完备的、易用、高质量的在线产品手册显得尤为重要。 那么如何才能搭建一份高质量且易用的在线产品手册呢&…...

Java版企业电子采购招标系统源码
一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…...

【操作系统复习】第6章 虚拟存储器 2
请求分页中的内存分配 在为进程分配物理块时,要解决下列的三个问题: 1. 保证进程可正常运行所需要的最少物理块数 2. 每个进程的物理块数,是固定值还是可变值(分配策略) 3. 不同进程所分配的物理块数ÿ…...

【OAI】OAI5G核心网VPP-UPF网元分析
文章目录 VPP_UPF_CONFIG_GENERATION.mdVPP UPF Configuration GenerationEnvironment variablesInterfacesInterface Configuration ExamplesCentral UPFA-UPFI-UPFUL CL FEATURE_SET.mdVPP_UPG_CLI参考文献 VPP_UPF_CONFIG_GENERATION.md VPP UPF Configuration Generation …...

【上进小菜猪】使用Ambari提高Hadoop集群管理和开发效率:提高大数据应用部署和管理效率的利器
📬📬我是上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货,欢迎关注。 介绍 Hadoop是一种开源的分布式处理框架,用于在一组低成本硬件的集群上存储和处理大规模数据集。Ambari是一种基…...

Day3--C高级3
一.编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HO…...

第9章 CURD操作与MemoryCache缓存的强制清理的实现
1 重构 Data.Repository<TEntity> using Core.Caching; using Core.Domain; using Core.Events; using Microsoft.EntityFrameworkCore; namespace Data { ///<typeparam name"TEntity">泛型类型实例(这里特指:1个指定实体的类型实例)。</typepa…...