当前位置: 首页 > 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…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...