测试理论与方法----测试流程的第四个步骤:执行测试,提出缺陷
8、执行测试—–>提交缺陷报告
测试流程:执行测试—–>提交缺陷报告
1、缺陷的概述(回顾)
结果角度:实际结果和预期结果不一致
需求角度:所有不满足需求或超出需求的,都是缺陷
2、缺陷的相关属性
-
概述:指的是在执行测试时,一旦发现缺陷,可以从哪些角度来描述缺陷
-
缺陷属性
-
缺陷类型:根据缺陷的自然属性来划分缺陷类别
参考:功能缺陷,性能缺陷,UI界面缺陷,文档缺陷,系统/模块接口之间的缺陷,代码缺陷…(参考禅道给出的BUG类型)
-
缺陷的严重程度:指的是发现的缺陷对软件产品使用时产生的影响
致命
:主要功能完全丧失,用户的数据遭到破坏/泄露,死机,崩溃,闪退且不可恢复,甚至危及人身安全(S1
)严重
:主要功能部分丧失,次要功能完全丧失,数据不能及时保存,软件闪退但重启可以恢复(S2
)一般
:系统次要功能部分丧失,但是不影响用户的使用,提示信息不准确,等待时间长,界面差(S3
)较小(建议型缺陷)
:使用不太方便,错别字,排版重叠,设计不合理….(S4
)扩展:其他的划分:致命P1 严重P2 一般P3 瑕疵P4 建议P5
-
缺陷的优先级:指的是发现的缺陷被修复的紧急程度
立刻修复P1
:该缺陷导致系统主要流程走不通,测试工作无法进行,需要开发立刻修复高优先级P2
:缺陷严重,影响测试,需要优先考虑修复正常排队P3
:提交的缺陷按照顺序等待开发进行修复低优先级P4
:提交的缺陷等开发有时间再进行修复还有一些简洁化分:高 中 低
注意:一般情况下,
缺陷的严重级别越高,修复的紧急程度也会高
;但是,修复的优先级高,对应的严重程度不一定高。 -
缺陷的状态:指的是在缺陷的生命周期中,不同阶段所处的不同状态,体现的是一个缺陷被跟踪修复的过程
-
缺陷的生命周期
-
缺陷状态
激活或打开:指的是缺陷提交后,公开给开发以及相关人员看到
已修复或已修改:开发认可了缺陷,并按照缺陷的描述在代码中进行了修改问题(测试人员还未验证)
关闭:开发修复了缺陷,测试验证没有问题,就可以关闭缺陷
重新打开:开发修复后,测试验证未通过,缺陷还存在,就把缺陷状态更新为打开
推迟修复:该缺陷不在当前版本修复,放在下一个版本进行修复,但是必须要有相关的负责人进行确认,不能关闭,持续跟踪
保留:缺陷是由于第三方导致的,公司无权限进行修复,缺陷一直要保留,等待第三方授权/帮助进行解决
不能复现
:指的是开发人员按照测试人员提供的复现步骤,不能重现该bug,原因可能是测试人员提供的缺陷描述或复现步骤不详细/不清楚
,我们可以提供一些BUG截图,录制demo视频,日志文件(记录一些报错信息)
,都能作为证据帮助开发人员进行复现重复:同一个缺陷被多个测试人员提交,可以合并或删除
不是缺陷:直接删除
-
缺陷的起源:指的是缺陷第一次被发现的阶段
需求阶段
架构设计阶段
编码阶段
测试阶段
用户使用阶段
-
缺陷的来源:引发缺陷的起因
需求说明书:描述不清楚,错误
设计文档:概要设计,详细设计与需求描述不符合
数据库:约束规则,数据类型不合理
代码:代码编写不严谨
-
缺陷的根源:指的是发生错误的根本原因
测试策略:错误的测试范围,未明确测试类型
工具和方法:不适用的管理过程,工具和方法不匹配当前测试流程
人员:人员安排不合理,工作职责不明确
测试环境:硬件,软件,网络环境
-
3、缺陷报告编写
-
概述:记录在执行测试过程中发现的缺陷,对缺陷进行相关的汇总和描述
-
包含的模块
缺陷编号 所属模块 优先级 严重程度 缺陷概述 缺陷描述 提交人 备注 缺陷编号:给找到的每一个缺陷生成唯一的序列号
参考写法:Bug_项目名称 _模块名称 _子模块名称 _0001
所属模块:写上发现的bug所属的模块 一级模块/二级模块/三级模块…
优先级:P1 P2 P3 P4
严重程度:S1 S2 S3 S4
缺陷概述:一句话总结或描述所发现的缺陷,用简洁清晰语言,把问题现象说清楚即可
缺陷描述(最核心):
复现步骤:把缺陷产生的操作步骤写清楚(参考测试用例测试步骤)
实际结果:按复现步骤操作产生的结果
预期结果:按复现步骤应该会出现的结果
提交人:写上提交缺陷人员名字
备注:上传一些缺陷截图,demo视频,日志信息,测试用例编号…
-
缺陷报告目的/作用
- 易于搜索查找缺陷的信息
- 描述的缺陷更为详细,准确
- 开发人员想获取缺陷本质和复现步骤
- 市场或其他人员想获得缺陷类型以及会对用户产生的影响
-
预期读者:开发,市场,产品,运维,管理….
-
缺陷报告编写准则:5C准则
准确(correct):每个模块组成部分的描述都是准确的,不能引起误解
清晰(clear):易于理解
简洁(concise):只包含必不可少的内容,多余的信息不用出现
完整(complete):复现步骤,预期结果,实际结果
一致(consistent):按照一致的格式来编写缺陷报告
4、禅道的使用
-
了解模块:
【后台】:部门组织,权限,用户管理
【项目集】:创建项目集,创建项目
【产品】:创建产品 -
掌握操作模块:
【BUG】:提bug,对bug进行跟踪和管理
【用例】:创建用例,执行用例,转BUG
缺陷报告
模板:
- 缺陷编号
- 所属模块
- 缺陷概述(一句话描述发现的问题现象)
- 缺陷描述(复现步骤,实际结果,预期结果)
- 缺陷严重程度(S1-S4:致命,严重,一般,较小(建议))
- 缺陷优先级
- 备注
9、Web测试
-
WEB端应用程序测试点分析(掌握)
功能测试
性能测试
安全测试
配置兼容性测试
易用性测试
-
WEB功能测试
-
概述:WEB端应用程序—–>网站类型项目—–>B/S架构的软件——>浏览器
-
链接测试:实现页面之间的跳转
测试点:
- 链接是否正确
- 链接是否存在
- 是否有孤立的页面(没有链接能指向该页面)
-
表单测试:用于搜集用户的输入项
测试点:
- 表单控件的正确性
- 提交数据信息的正确性、完整性
- 是否有错误处理
-
cookie和session测试
-
概述:用于记录用户的相关信息,一般cookie是在本地形成的记录文件,session是在服务器端生成的记录文件,最典型的场景:访问WEB程序,选择记录账号和密码
-
测试点:
- 登录成功后,检查是否会生成相关的cookie和session文件
- 考虑到cookie和session是否设置了过期时间,如果有设置,一旦过了时间,看是否会提示再一次输入
- 退出登录时,系统是否会清除cookie和session文件
- 考虑到cookie和session中是否存在敏感的数据,这些数据是否会被进行加密处理
小总结:检查cookie和session是否可以正常工作,是否可以按照既定的时间来进行内容的保存
-
-
设计语言的测试
测试点
-
考虑用到的html版本
-
允许使用的脚本语言以及版本
-
允许能够使用的空间元素
-
-
-
性能测试:依赖于测试工具
-
速度测试:响应时间,一般不超过5秒
影响响应时间的因素有很多:①应用程序使用时所获取大量的数据;②硬件影响,比如设备老化;③网络环境的影响;④所访问页面的大小
-
负载测试:验证在一定的条件下,应用程序能够支持到的最大并发用户数量或单位数据的吞吐量,测试时,,增加用户的数量,平均响应时间就会增加,当达到用户的临界点时,就可以看成是系统能够接收到的并发用户数
-
压力测试:测试应用程序会不会崩溃,在什么样的场景下会崩溃,崩溃之后产生的结果(做一些破坏性质的操作);在进行性能测试时,通常将压力测试和负载测试结合在一起使用:在负载测试的基础上,增大负载量,直到系统崩溃
-
-
安全测试
-
操作系统方面:确认操作系统的安全性,避免因操作系统的漏洞,病毒等导致WEB应用程序的安全性问题
-
数据库方面:确认数据库的安全性,防止数据的丢失,对于敏感且重要的数据是否要考虑约束或进行加密处理
-
业务功能方面:确认业务场景和业务流程的安全性。以登录功能为例:测试点:
①用户名和密码的设计是否符合规范要求;
②登录成功后,用户是否可以自定义账号和密码;
③检查允许错误登录的次数限制;
④检查是否可以在不登录的情况下进行页面的访问操作;
⑤长时间页面未进行操作时,是否提示重新载入操作
-
系统设计方面:保证系统相关的日志文件是能够记录WEB端应用程序的主要操作;通过日志文件能够获取到相关的操作;保证日志文件相关信息的安全性和完整性,防止非法入侵或损坏;进行加密技术引入时,要保证加密和解密后的数据一致性,正确性。
-
-
配置兼容性测试
WEB应用程序主要考虑【浏览器】的兼容性,使用不同的浏览器对于WEB页面的显示,访问,操作等是否存在差异化;其次,考虑操作系统平台的兼容性,硬件资源,软件资源环境的兼容性等。
-
易用性测试
-
概述:指的是用户在特定的环境下使用软件功能做操作时,所具备的
有效性,效率,用户主观满意度
有效性:软件功能操作达到最终目标所具有的正确性和完整程度
效率:在有效性的基础上,还要考虑响应时间,处理速度等问题
用户主观满意度:接受程度,用户体验,好不好用…
-
测试点:
-
功能是否可以成功的完成一个任务流程(功能的正确性)
-
完成任务时所需要的时间
-
完成任务时所需要的访问页面数
-
系统是否提供了层次结构清晰,表达清楚的导航功能
-
提示的信息是否准确
-
对整个系统的使用感受如何(形式)
-
-
相关文章:

测试理论与方法----测试流程的第四个步骤:执行测试,提出缺陷
8、执行测试—–>提交缺陷报告 测试流程:执行测试—–>提交缺陷报告 1、缺陷的概述(回顾) 结果角度:实际结果和预期结果不一致 需求角度:所有不满足需求或超出需求的,都是缺陷 2、缺陷的相关属性…...

Stable Diffusion 提示词入门指南
前言 本文主要讲解 Stable Diffusion (下文简称 SD)提示词的用法,帮助大家生成更高质量的图片 本章节主要讲解文生图,其他类型读者可以自行探索。同时本文主要是以 Stable Diffusion Discard 的形式生成图片 如果各位对于图片隐…...

基于鹰栖息算法优化的BP神经网络(预测应用) - 附代码
基于鹰栖息算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于鹰栖息算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.鹰栖息优化BP神经网络2.1 BP神经网络参数设置2.2 鹰栖息算法应用 4.测试结果:5.Matlab代…...

想要搞懂接口测试和功能测试有什么区别,那就必须知道他们的基本原理
本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做? 第二部分…...

Spring: HiddenHttpMethodFilter的用法
作用:将html表单提交的post请求转换为put请求或delete请求发给接口。 html不支持put和delete. 一、web.xml中配置过滤器 <filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenH…...

Vue入门学习(一)
一、Vue环境搭建及第一个Demo 1.1编程工具: 下载Vscode,并安装插件 在Extensions 选项中搜索插件: 1:Live Server:将当前项目作为根路径,启动一个服务端,这样右键就会有如下选项 2:Eclipse …...

软考:中级软件设计师:无线网,网络接入技术,ipv6
软考:中级软件设计师:无线网 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &#x…...

dart 学习 之 同步生成器(sync*)和 异步生成器(async*)
同步生成器(sync*)和异步生成器(async*)都是 Dart 中用于逐步产生多个值的生成器类型,但它们之间有一些重要的区别: 执行方式: 同步生成器(sync*): 同步生成器…...

JSX基础
1. JSX介绍 概念:JSX是 JavaScript XML(HTML)的缩写,表示在 JS 代码中书写 HTML 结构 作用:在React中创建HTML结构(页面UI结构) 优势: 采用类似于HTML的语法,降低学习成…...

Linux Day11---mbash项目(二)
观看本文之前请先阅读Linux Day10的相关内容 1.touch 1.1 open系统调用 int open(const char*path,int oflags,mode_t mode); oflags参数: O_APPEND:把写入数据追加在文件的末尾 O_TRUNC:把文件长度设置为0,丢弃已有的内容 O_CREAT:如果需要&#…...

回归预测 | MATLAB实现IBES-ELM改进的秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现IBES-ELM改进的秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现IBES-ELM改进的秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图…...

【Golang】go条件编译
交叉编译只是为了能在一个平台上编译出其他平台可运行的程序,Go 作为一个跨平台的语言,它提供的类库势必也是跨平台的,比如说程序的系统调用相关的功能,能根据所处环境选择对应的源码进行编译。让编译器只对满足条件的代码进行编译…...

学习创建第一个 React 项目
目标 本篇的目标是配置好基础的环境并创建出第一个 React 项目。 由于之前没接触过相关的知识,所以还需要了解其依赖的一些概念。 步骤主要参考First React app using create-react-app | VS code | npx | npm - YouTube 0. 简单了解相关概念 JavaScript 一种语…...

使用Python构建网络爬虫:提取网页内容和图片资源
网络爬虫是一种自动获取网页内容的程序,它可以帮助我们高效地收集网络上的有价值信息。本文将介绍如何使用Python构建网络爬虫,提取网页内容和图片资源。 一、环境准备 1.安装Python环境 首先,确保您已经安装了Python环境。访问P…...

推荐两款开源的绘制流程图软件
一句话导读 目前流程图绘制软件非常多,包括本机安装的、web端的都有,如Visio、Graphviz、processOn等等。但是几乎都是收费的。本文给大家介绍两款优秀的开源免费的流程图绘制软件。 目录 一句话导读 一、draw.io 二、Meta2d.js 1.为什么使用 2.…...

echarts画一个简单的饼图 中间是空的 环有两种颜色一种是底色 一种是百分比的颜色
//dom打印出来大概是什么样子下方有个图可以作为参考 ecInit(correctRate, processAnalysisVO.correctRate, (100-processAnalysisVO.correctRate));//如效果图//饼图 function ecInit(dom, correctRate, errorRate) {var dom dom; //就是你要放入的盒子元素var myChart ech…...

5 群起集群
1.在启动集群之前,先配置workers,有几个节点就配置几个 [atguiguhadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers在该文件中增加如下内容: hadoop102 hadoop103 hadoop104 注意:该文件中添加的内容结尾不允许有空格&a…...

前端传参对象套对象的格式,后端进行解析并存入数据库
项目场景: 在一些小程序中会涉及到一个表单中的一个数组对象中夹杂着另一个对象数据,这个被夹杂的数据是from表单内的一组单选或者双选这样的数据,前端转为json对象之后传到后端进行解析 问题描述 首先传进来的对象是这样的格式的 abc:{"a":"0&quo…...

WordPress 网站使用 CDN 后获取访客真实 IP
WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR,这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP。 在 wp-config.php 文件中增加下面代码就可以获取 CDN 后访客的真实 IP。这个函数的核心是用解析后的 HTTP_X_FORWARDED_FOR 替换 REMOTE_ADD…...

mysql my.ini、登录、用户相关操作、密码管理、权限管理、权限表,角色管理
my.ini 配置文件格式 登录mysql mysql -h hostname | IP -P port -u username -p database -e “select 语句”; 创建用户、修改用户、删除用户 create user ‘zen’ identified by ‘密码’ ## host 默认是 % create user ‘zen’‘localhost’ identified by ‘密…...

UUID和数据库主键
UUID uuid是由网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等因素随机生成的一个字符串。有128位,重合概率是2的128次方。 Unique 突发奇想用uuid做数据库主键。 可以保证全局唯一性可以分布式生成无序插入可以避免锁…...

uniapp:蓝牙模块
模拟的是蓝牙设备签到/签出: 获取指定蓝牙设备蓝牙初始搜索次数限制,超过限制就停止搜索蓝牙连接失败次数限制,超过限制标识蓝牙连接失败(离开蓝牙范围或其他原因)自动重连指定蓝牙 const device ref<any>(nu…...

探索链表:数据结构的精妙之处
前言 在计算机科学中,数据结构是构建和组织数据的基础,它们是解决复杂问题的关键。然而,在众多数据结构中,链表(Linked List)因其独特的特点和广泛的应用而备受关注。本文将带您深入探讨链表的概念、种类、…...

Java监听mysql的binlog 报错解决办法
报错:com.github.shyiko.mysql.binlog.network.AuthenticationException: Client does not support authentication protocol requested by server; consider upgrading MySQL client 解决方案:在mysql中执行以下命令 alter user rootlocalhost identi…...

Javascript 中的 debugger 拦截
debugger 指令,一般用于调试,在如浏览器调试执行环境中,可以在 JavaScript 代码中产生中断。 如果想要拦截 debugger,是不容易的,常用的函数替代、proxy 方法均对它无效,如: window.debugger …...

深入Golang之Mutex
深入Golang之Mutex 基本使用方法 可以限制临界区只能同时由一个线程持有。 直接在流程结构中使用 lock、unlock嵌入到结构中,然后通过结构体的 mutex 属性 调用 lock、unlock嵌入到结构体中,但是是直接在需要锁定的资源方法中使用,让外界无…...

高并发内存池项目(C++实战项目)
项目介绍 项目来源 本项目实现了一个高并发内存池,参考了Google的开源项目tcmalloc实现的简易版;其功能就是实现高效的多线程内存管理。由功能可知,高并发指的是高效的多线程,而内存池则是实现内存管理的。 tcmalloc源码 ▶项…...

G. The Morning Star - 思维
分析: 直接暴力就会tle,不知道怎么下手,可以统计八个方向一条线上的所有坐标,这些坐标一定可以放在一起满足,分析都有哪些线,当横坐标相同时会有竖着的一条线都可以,也就是x c,当纵…...

应急物资管理系统|智物资DW-S300提升应急响应能力
项目背景 智慧应急物资管理系统(智装备DW-S300)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 本项目采用东识智慧应急物资管理…...

AI人员打架识别算法
AI打架识别算法通过yolov8网络模型算法框架,AI打架识别算法识别校园打架斗殴行为,发现立即打架斗殴行为算法会立即抓拍告警推送打架事件信息。目标检测架构分为两种,一种是two-stage,一种是one-stage,区别就在于 two-s…...