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

一些测试知识

希望能起到帮助,博主主页:

https://blog.csdn.net/qq_57785602/category_12023254.html?spm=1001.2014.3001.5482

 

软件测试理论

测试的依据:

需求,规格说明,模型,用户需求等

什么是软件测试

描述一种来促进鉴定软件的正确性,完整性,安全性和质量的过程

软件测试是在有限资源的约束,如何去尽可能发现软件缺陷的技术和管理活动,理想结果是实现测试代价和测试质量的最佳平衡。

软件测试最重要的是什么?

尽可能的发现软件的错误,软件尽可能的符合用户需求,确保软件的质量。

为什么要做软件测试

因为如果不做软件测试的话,在产品发布之前很难知道产品的质量,测试也需要知道产品的质量保证,这个时候就会做软件测试的工作。在测试时发现的软件存在的错误,告诉开发,及时修改,在软件发布时软件报告即可知道软件的质量,软件测试是为了发现错误而执行的程序的过程。

软件测试流程?

需求分析-概要设计测试-详细设计测试-单元测试-系统测试-验收测试

软件测试的策略?

软件测试的策略:在一定的软件测试标准下,测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则,方法,方式的集合。

质量特性:

功能性,易用性,性能效率,可靠性,兼容性,可靠性,信息安全性,维护性,可移植性

测试脚本:

测试脚本通常是一个特性测试的可以被自动化工具执行的一系列指令,脚本可以在工具中通过录制测试操作生成,也可以把脚本语言直接编写。

编写测试用例需要了解产品需求

确认需求,梳理需求,确认测试范围,制定测试计划,根据测试计划编写测试用例,执行测试步骤。

为什么要写测试用例?

提高测试效率

提高测试覆盖率

监控测试进度情况

质量的标准指标

以防开发提bug说用例没有写(这个个人理解对于刚接触测试的来讲,一般最好写完用例可以找前辈了解一下)

用例包括八要素

用例编号,所属模块,用例标题,前置条件,用例级别,测试输入,操作步骤,预期结果

什么是测试用例?

测试用例是为了实施测试而被测试系统提供的输入数据,操作或各种环境的设置以及期望的一个特定集合。

什么是测试脚本?

测试脚本是为了进行自动化测试而编写的脚本。

测试脚本与测试用例的区别?

编写测试脚本必须编写相对应的测试用例

测试用例的设计方法:

等价类,分类树,边界值,因果图,场景法,语法测试,组合测试,判定表测试,随机测试,状态转移测试等

常用的测试用例设计方法?

白盒测试:逻辑覆盖,循环覆盖,基本路径覆盖

黑盒测试:等价类,边界值,因果图,判定表,场景法,错误推测法,探索法,检查表法等

等价类:

等价类就是一种典型的黑盒测试方法。它把程序的输入域划分为若干部分(子集),然后从每个部分中选取少数代表性的数据作为测试用例,每一类的代表性数据在测试中的作用可以等价与这一类中的其他所有值。

等价类分为有效等价类与无效等价类

有效等价类指的是对程序的规格说明来说是合理的,有意义的输入数据的集合。利用有效等价类可以校验程序是否实现了规格说明书中所规定的功能与性能。

无效等价类与有效等价类相反,是那些对于程序的规格说明来说是不合理或者无意义的输入数据的集合。

等价类的划分原则

按区间划分,按数值划分,按数值集合划分,按限制条件划分或者规划划分,按处理方式划分

分类树

分类树是另一种对程序的输入域划分子集的方法。他将输入域分割成若干个独立分类,每个分类再根据一定的准则再次划分类和子集,直到将整个输入域划分成一些不可划分的子类集合中。

输入域作为树的根节点,分类作为分支节点,类或子类作为叶节点

边界值:

边界值测试是由长期的测试工作经验所提测的一个关键假设:错误更容易发生在输入域的边界值或者极值附近,而非输入域的中间值。

语法测试

对于使用语法形式化方法的软件规格说明,考虑到形式化的语言是具有严格的语法语义定义的,可以使用形式化语法作为测试设计的基础。分为正面测试与负面测试

正面测试:设计的测试用例应以各种方式覆盖有效语法

负面测试:设计的测试用例应故意违反规格语法

判定表测试

判定表展示出输入条件与输出结果的对应关系。判定表测试以判定表的形势使用测试项条件(原因)和动作(结果)之间的逻辑关系(判定规则)模型。

条件桩:列出问题的所有条件

动作桩:列出问题规定可能采取的操作

条件项:列出针对它的所列出条件的取值

动作项:列出在条件项的各种取值情况下应该采取的动作

规则:任何一个条件组合的特定取值以及相对应的操作。

因果图:

因果图是一种简化了的逻辑图,能直观的表明输入条件与输出动作之间的因果关系

场景法:

软件几乎都是用事件触发控制的流程,事件触发时场景便形成了场景,而面向同一事件不同的触发顺序和处理结果就形成了事件流。

随机测试:

随机测试的目的就是:在选定输入分布模型内生成被测软件的输入参数,形成一个测试集。

软件测试原则:

溯源性原则,工程性原则,独立性原则,合理性原则,不完全性原则,相关性原则,可结束原则,风险性原则

测试都分为哪些?

白盒测试,黑盒测试,灰盒测试

单元测试,集成测试,回归测试,冒烟测试,验收测试,版本测试,系统测试,自动化测试等

黑盒测试也称为功能测试,基于规格说明的测试,被测试的内部结构是不可见的,把被测试的软件视为黑盒子,按照测试用例输入,以及相应的输出,对软件的实现进行确认。

白盒测试又称为结构测试,基于结构的测试中,被测软件的结构(源代码或者模型结构)是设计测试用例的主要信息来源,对于白盒测试,被测软件的内部是透明可见的。

黑盒测试与白盒测试的区别

白盒测试需要从代码发现内部代码,溢出,路径,条件等等中的缺点与错误,进行更改。而黑盒测试着重测试软件的功能。黑盒测试不能代替白盒测试,黑盒测试与白盒测试是互补的测试方法,黑盒测试容易发现白盒测试不容易发现的错误。

基于质量的特性测试分为:

功能性测试,性能效率测试,易用性测试,可靠性测试,信息安全性测试,维护性测试,兼容性测试,可移植性测试等

功能性测试:

功能性测试用于评估软件产品在指定条件下使用时,提供满足明确和隐含要求的功能的能力。功能性测试既包括单个功能点测试,还包括业务流程测试和主要的场景测试。

性能效率测试:

性能效率性测试用于评估在指定条件下使用的资源数量的性能。这里的资源包括软件产品,系统的软件和硬件的配置。

易用性测试:

易用性测试指的是在指定的使用周境中,测试产品或系统在有效性,效率和满意度特性方面,为了指定的目标可为指定用户使用的程度。

易访问性测试:

易访问性测试的目标在于评估在指定的使用周境中,为了达到指定的目标,产品或者系统被具有最广泛的特征和能力的个体所使用的程度。

可靠性测试:

可靠性测试用于评估系统,产品或者组件在指定条件下,指定时间内,执行指定功能的程度。

信息安全性测试:

信息安全性测试用于评估系统与产品保护信息和对数据的程度,以使用户,其他产品或者系统具有与其授权一致的数据访问度。

维护性测试:

维护性测试用于评估产品或系统能够被预期的维护人员修改的有效性和效率的程度。

兼容性测试:

兼容性测试由于评估在共享相同的硬件或者软件环境的条件下,产品,系统或组件能够与其他产品,系统或组件交换信息或执行其他所需功能的程度。

可移植性测试:

可移植性测试:用于评估系统,产品或者组件能够从一种硬件,软件或者其他运行(或使用)环境迁移到另一种环境的有效性和效率的程度。

基于结构测试的测试技术:

静态测试:在不运行代码情况下,通过一组质量准则或者其他准则对测试项进行检查的测试。

动态测试更关注与分支,语句,路径,调用等程序结构的覆盖,为了设计较少的用例,达到更高的覆盖率甚至是100%的覆盖率,动态测试关键的是用例的设计。

静态测试相对于动态测试而言,它可以由人工进行,充分发挥人的逻辑思维的优势,也可以借助软件工具进行的。

APP测试性能指标

内存,CPU,流量,启动速度

APP闪退的原因

手机运行程序过多,病毒,网络问题,缺少数据包,APP版本问题,缓存垃圾过多,手机杀毒软件的拦截,网速问题,分辨率不兼容,系统不兼容等

Web测试与APP测试的不同点

系统架构web一般是b/s架构,APP是c/s架构

Web测试只要更新了服务端,客户端就会同步更新。

APP测试需要服务器和客户端都更新才可以。

性能

Web测试主要关注响应时间

APP测试需要关心:流量,电量,CPU,GPU,memory等

兼容性

Web测试需要兼容各个浏览器,电脑硬件和电脑系统方面的兼容,不比考虑安装卸载

APP测试需要关注分辨率,屏幕尺寸,手机型号,操作系统,网络等,测试安装,更新,卸载,还需要考虑到断网时的异常情况。

Bug等级缺陷

缺陷一般分为4个等级:致命,严重,一般,轻微

致命:程序异常,APP闪退

严重:指主要功能存在缺陷或者非主要功能缺陷

一般:指非主要功能存在的缺陷,但是不影响正常使用或者有代替方案

轻微:指界面或者文字轻微显示错误

如果不能复现/复现条件不知道的bug需要在禅道提交吗?

需要的,我们在提交bug的时候需要求证出复现条件,遇到bug,首先截图留下证据,再次依据刚才的操作,重新复现,如果复现成功,直接提交bug单;复现失败,提交bug,找到开发告诉他这个bug的存在;如果情况不急的话,可以慢慢寻找复现条件/让开发尝试,如果情况紧急,找到产品,询问这样是否可以接受,可以接受先把bug留着,不能接受,找到开发,让开发一起帮忙寻找。

测试中遇到的风险:

需求评审达不到预期目标;

测试用例评审不合格;

测试人员不稳定;

根据测试计划的时间不能完成测试任务;

验收测试不合格;

即将发版产品增加新需求;

即将发版,由于客观原因导致环境异常;

Bug包括哪些?

所属产品,所属模块,所属需求,所属项目,所属执行,影响版本,bug类型,bug标题,步骤,结果,期望,优先级,当前指派,严重程度,优先级,bug编号

什么是软件质量?

软件质量就是软件是否符合叙述的功能和性能要求,文档明确描述的开发标准以及所有专业的开发,软件应该都具有隐含特征的程度,正确性,可理解性,可移植性。

软件质量质量特性包括哪些?

兼容性,可移植性,可维护性,功能性,可靠性,可使用性等

软件测试的v型模型

用户需求------------------------------验收测试

需求分析-------------------------系统测试

   概要分析-----------------------集成测试

      详细设计-------------------单元测试

                     编码

https://blog.csdn.net/qq_57785602/category_12023254.html?spm=1001.2014.3001.5482

图片网上找的,文章看书或者是平常逛博客看到的,如有侵权请联系我

相关文章:

一些测试知识

希望能起到帮助,博主主页: https://blog.csdn.net/qq_57785602/category_12023254.html?spm1001.2014.3001.5482 软件测试理论 测试的依据: 需求,规格说明,模型,用户需求等 什么是软件测试 描述一种来…...

Socket交互的基本流程?

TCP socket通信过程图 什么是网络编程,网络编程就是编写程序使两台连联网的计算机相互交换数据。怎么交换数据呢?操作系统提供了“套接字”(socket)的组件我们基于这个组件进行网络通信开发。tcp套接字工作流程都以“打电话”来生…...

css 分割线中间带文字

效果图 代码块&#xff08;自适应&#xff09; <div class"line"><span class"text">我是文字</span></div>.line{height:0;border-top:1px solid #000;text-align:center;}.text{position:relative;top:-14px;background-color:#…...

会不会激发对modern c++的新兴趣

可变参数好像很厉害的样子&#xff0c;会节省很多手写代码&#xff0c;让编译器自动帮我们生成代码 template<typename Fun, typename...Args> void invoke(Fun&& fun, Args&&...args) { fun(std::forward<Args>(args)...); } 任意函数包装器…...

Nginx服务器如何配合Java开发项目

Nginx服务器如何才能配合好相关的编程语言进行服务器搭建呢&#xff1f;下面我们就来看看有关的技术如何融合。希望大家有所收获。 在进行Nginx服务器建设的时候有很多语言的应用&#xff0c;其中Java 开发的web项目就是很常见的。下面我们就看看Nginx服务器如何才能与Java编程…...

【LeetCode-中等题】994. 腐烂的橘子

文章目录 题目方法一&#xff1a;bfs层序遍历 题目 该题值推荐用bfs&#xff0c;因为是一层一层的感染&#xff0c;而不是一条线走到底的那种&#xff0c;所以深度优先搜索不适合 方法一&#xff1a;bfs层序遍历 广度优先搜索&#xff0c;就是从起点出发&#xff0c;每次都尝…...

K8s部署单机mysql

文章目录 一、K8s部署单机mysql1.1 说明1.2 不足 二、部署三、检查 一、K8s部署单机mysql 1.1 说明 定制配置数据存放在configMapmysql数据放在/opt/mysql目录下(/opt/mysql目录需要事先创建)root账号密码使用环境变量env服务暴露方式为nodePort&#xff0c;端口30336 1.2 不…...

Midjourney学习(二)参数的基础

prompt的组成 prompt 可以由三部分组成&#xff0c; 第一部分是垫图部分&#xff0c;也就是一张网络图片 第二部分是文本描述内容 第三部分则是参数 参数列表 --aspect <value> 或者 --ar <value> 控制画面的比例&#xff0c;横竖比例 --version <value> -…...

Ubuntu安装Protobuf,指定版本

参考&#xff1a;https://github.com/protocolbuffers/protobuf#readme https://github.com/protocolbuffers/protobuf/blob/v3.20.3/src/README.md 其实官网的readme给的步骤很详细。 1.安装相关依赖 sudo apt-get install autoconf automake libtool curl make g unzip …...

没有使用sniffer dongle在windows抓包蓝牙方法分享

网上很多文章都是介绍买一个sniffer dongle来抓蓝牙数据,嫌麻烦又费钱,目前找到一个好方法,不需要sniffer就可以抓蓝牙数据过程,现分享如下: (1)在我资源附件找到相关安装包或者查看如下链接 https://learn.microsoft.com/zh-cn/windows-hardware/drivers/bluetooth/testing-bt…...

解决Debian系统通过cifs挂载smb后,中文目录乱码问题

解决Debian系统通过cifs挂载smb后&#xff0c;中文目录乱码问题 //$smb_server/share /mnt/nas_share cifs credentials/root/.smbcredentials,iocharsetutf8 0 0默认通过以上命令挂载smb&#xff0c;但是在查看文件目录时&#xff0c;中文乱码 解决问题方式&#xff1a; de…...

springboot整合jquery实现前后端数据交互

一 实施逻辑 1.1 前端 <!doctype html> <html lang"en"><head><meta charset"UTF-8"><meta name"Generator" content"EditPlus"><meta name"Author" content""><meta n…...

TypeScript 中的类型检查实用函数

TypeScript 中的类型检查实用函数 文章目录 TypeScript 中的类型检查实用函数一、概述二、代码实现 一、概述 在前端开发中&#xff0c;我们经常需要判断变量的类型以进行相应的操作或处理。TypeScript 提供了基础的类型检查&#xff0c;但有时我们需要更复杂或更灵活的类型检…...

JavaScript中的事件委托(event delegation)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript事件委托⭐ 事件冒泡&#xff08;Event Bubbling&#xff09;⭐ 事件委托的优点⭐ 如何使用事件委托⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启…...

ubuntu OCR 脚本

1. 百度 PaddleOCR 介绍 2. 环境安装 pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple # 进入 https://github.com/PaddlePaddle/PaddleOCR # 这里有个 requirements.txt pip install paddleocr -i https://mirror.baidu.com/pypi/simple pip instal…...

Go死码消除

概念: 死码消除(dead code elimination, DCE) 是一种编译器优化技术, 作用是在编译阶段去掉对程序运行结果没有任何影响的代码 和 逃逸分析[1],内联优化[2]并称为 Go编译器执行的三个重要优化 效果: 对于 const.go代码如下: package mainimport "fmt"func max(a, b i…...

基于改进莱维飞行和混沌映射的粒子群优化BP神经网络分类研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

12. 自动化项目实战

目录 1. 登录测试 2. 测试首页的帖子列表数不为0 3. 帖子详情页校验 4. 发布帖子 5. 退出登录 自动化项目实施的基本流程如下图所示&#xff1a; 手工测试用例、自动化测试用例。 1. 登录测试 校验登录后主页显示的用户名称和登录时输入的用户名是否相等。 public class…...

Window11下载安装jdk8-jdk11与环境变量的配置

目录 一、下载jdk 二、安装jdk 三、配置环境变量 四、检查JDK是否配置成功 一、下载jdk jdk8下载链接&#xff1a;请点击网址 jdk11下载链接&#xff1a;请点击网址 二、安装jdk 按照提示一步一步安装即可。 默认安装位置&#xff1a;C:\Program Files\Java 三、配置…...

Vector Search with OpenAI Embeddings: Lucene Is All You Need

本文是LLM系列文章&#xff0c;针对《Vector Search with OpenAI Embeddings: Lucene Is All You Need》的翻译。 使用OpenAI嵌入的向量搜索&#xff1a;Lucence是你所需的一切 摘要1 引言2 从架构到实现3 实验4 讨论5 结论 摘要 我们在流行的MS MARCO文章排名测试集上使用Lu…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...