比特币网站怎么做/企业网站管理系统源码
一、软件测试的生命周期
测试贯穿软件的整个生命周期软件测试的生命周期: 需求分析 →测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估->上线->运行维护需求分析:判断用户的需求是否合理,是否可实现测试计划:计划项目由谁做,什么时候测试开始,什么时候测试结束,什么时候上线测试设计:设计测试用例测试开发:开发可以支持测试,提高测试效率的工具(web、应用等)开发人员需要有主观能动性,发现bug是本职,还需要发掘工作中的痛点。测试执行:执行测试用例,目的是为了发现BUG,验收BUG测试评估:产出测试报告测试报告可以理解为一个邮件抄送人:项目相关人(测试领导、研发领导、产品领导)收件人:项目直接相关人(开发,产品)内容: 测试项目名称仓库地址项目直接人员测试用例链接BUG产品规格说明书技术文档 ...上线:项目测试结束后,将项目发布到线上环境,测试人员需求跟踪上线并测试线上环境下软件运行是否正确上线分为多个步骤:沙盒、小流量、全流量、全线上沙盒:企业内部的线上环境,可以供内部人员进行测试小流量:部分线上真实用户可以使用到,测试人员要线上手动测试,还要观察有没有错误日志。全流量:所有真实用户都可以使用到。全线上:将真实代码发布到所有服务器上。
二、描述一个BUG
bug的概念:
首先我们要明白 软件测试就是验证软件产品的特性是否符合用户的需求。
一切要以需求出发,在产品前期,产品经理就已经写好了需求文档,我们就要以需求文档为依据。
1.当且仅当规格说明(需求文档)是存在的并且正确,程序与规格说明之间的不匹配才是错误。
2.当需求规格说明书没有提及到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误
2.1 为什么要写测试报告?
写报告,会留有一个记录,一些bug很难复现,这个可以在以后做参考,并且报告可以互相学习。
2.2 提交的BUG应该包含以下的内容:
1 、发现问题的版本网页或者app等代码(软件产品)的版本开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于 统计和分析每个版本的质量。2、问题出现的环境(产品运行环境)电脑操作系统、浏览器等环境分为硬件环境和软件环境,如果是web 项目,需要描述浏览器版本,客户机操作系统等,如果是 app项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。3 、错误重现的步骤描述问题重现的最短步骤。4 、预期结果 的描述要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需 求提出的故障,能写明需求的来源是最好的。 要相信:测试人员是最懂需求的。5 、实际结果 的描述描述错误的现象。crash 等可以上传 log , UI 问题可以有截图。6 、其他某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级 的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。7 、不要把多个 bug 放到一起在无法确认是同一段代码造成的故障时,不要将bug放在一起提交例如 :提交了如下 bug :1 、在短信列表,选择一条短信,进行删除,删除失败2 、在短信列表,选择一条短信,进行查看,在查看页面,进行删除,删除失败故障发现版本: VPS20180226_01故障类别:兼容性故障优先级:中故障标题 :ie 下界面显示异常,界面文字有重叠故障描述:测试环境: win7+IE8测试步骤: 1 、打开 vps 首页,点击 “ 通知 ” 链接,进入通知页面预期结果:通知页面显示正确,一页显示 10 条通知,按时间顺序倒序排列实际结果:页面显示 10 条通知,通知顺序正确,但是页面文字有重叠附件:上传截图
2.3 如何定义 bug 的级别
2.3.1 bug的优先级
有多个bug时,有些bug会直接影响到接下来的测试工作,急于处理,这类bug就属于优先级较高的bug,得优先修复。而有的bug,可能并不直接影响,可以排在后面。
例如一个网站:
1) 登录密码展示位置错位
2) 背景图颜色不对
3) 登录功能有问题
...
从这几个bug中,优先级最高的就是 3 了,因为登录功能有问题的话,登都登不了,根本没办法继续测试网页里面的其他内容了。
2.3.2 bug 的级别
为什么要给bug定义级别?
1)评估程序员的开发能力(经常写出严重的bug,代表着开发能力欠缺)
2)年终奖(经常写出严重的bug,影响评估,影响年终奖)
3)bug修复顺序排序(优先级高的bug,优先修复,其他bug可以不急)
bug 的定义每个公司都不一致,在定义级别之前需要查看公司规范。以下为样例:1、Blocker (崩溃):阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。2、Critical (严重):系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。3、Major (一般):功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询 时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等( 该问题实际测试中存在最多)4、Minor (次要):界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格 式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置 不正确,用户体验感受不好,可以优化性能的方案等(此类问题在测试初期较多,优先程度较低;要注意 :bug的提交一定要有理有据如果项目需要按时交付,还有很多bug没有及时处理,周知项目相关人员,将次要的bug,放到下一个版本迭代。开发在修复 BUG的时候,优先级高的先修改,优先级低的后修复。
2.3.2 bug 的生命周期
(new阶段)测试人员创建了一个 bug
(open阶段)开发人员确认是否为有效 bug,判断bug优先级是否要立即修改
如果是有效bug:
(delay阶段) 如果优先级很低,时间很紧,可以推迟修改
(fixed阶段)如果优先级很高,时间充足,立即修复,并且把 bug 的状态改为 已修复
如果是无效bug:(rejected)
则bug状态流转为 rejected,也就是拒绝掉
测试人员,验收 bug
(closed阶段)如果验收通过,没问题了,确认bug已修复
(reopen阶段)如果验收不通过,重新打开bug ,回到open阶段
三、如果和开发人员产生争执了怎么办?
bug的数量和级别都会影响到程序员的年终奖,所以很多时候测试人员和开发人员都会因为bug出现争论(甚至争吵)
开发说:这不是bug / 这个bug级别太高了,不应该是这样 / bug影响不大,我不改了
诸如此类..
为避免产生争执,需要有效沟通。
1)先检查自身提出的bug,是否描述不清楚?
能用文字描述bug,就尽量描述精准,这样就能减少沟通成本
但有时,bug的确很难用文字表达,词不达意。那么在提交bug的时候,就找到对应的开发人员对bug进行解释,确保程序员明白bug的描述
不要等到开发人员找自己,而是主动沟通。
2)站在用户角度考虑问题
应该让开发人员了解到Bug对用户可能造成的困扰,这样才能促使开发人员 更加积极地、高质量地修改Bug。在争执时,可以问一句:如果你是用户,你可以接受么?
案例: 例如:需求要求可以上传图片作为头像,但是没有定义格式。开发人员在上传时限制为只能传png格式的。 站在用户角度考虑一下:png,jpg那种格式更多?是否要用户自己进行格式转换再上传?
3)bug级别的定义要有理有据
bug定级描述文档拿出来,然后将bug的表现和bug定级描述文档进行匹配,说服程序员
4)提高自身技术和业务水平,做到不能提出问题,最好也能给出解决方案
(说话预期要委婉,不要以命令式的口吻来要求别人按照自己的逻辑来修改)
测试小白:更多的是提出问题(bug)
测试大牛:除了提出问题也能定位到问题,给出解决方案
5)开发人员比较犟,怎么说都不听的情况下,就需要进行bug评审
多轮沟通,但是开发人员仍然拒不接受。此时可以发起Bug评审。
Bug评审要注意的问题 缺陷的评审应该包括以下两个层面
● 决定如何处理Bug。
● 分析缺陷产生的原 因,找出预防的对策。
(1)决定如何处理Bug。 这一方面评审需要项目组各个方面的代表参加,通常不可缺少的是测试代表、开发代表、产品代表。
测试代表:(测试领导、一起测试的同事)
主要从Bug的具体表现、严重程度等方面提供信息,并提出自己对Bug的处理意见。需要注意 的是,测试人员不应该一味地要求对Bug进行修改,因为修改可能带来回归的风险,同时带来的是回归 测试的工作量,如果时间比较紧迫,修改后剩余的时间若不足以做一次有效的回归测试,可能不修改是 个明智的选择。
开发代表:(开发领导、开发人员)
主要从修改缺陷的难度和风险出发,考虑缺陷修改需要付出的代价,以及可能影响的范围、可 能引发的风险等,如果决定要修改,还要讨论出修改的初步方案。
产品代表:(产品经理)
主要从产品的整体计划、用户的要求等方面对缺陷的修改必要性、缺陷修改的时间和版本提出 自己的意见。 这在微软的做法叫“Bug三方讨论会”,参加者一般是测试人员、开发人员和项目经理。 案例: 某网站经常隔几天访问时会出现500错误,但是之后就不会复现。 测试人员会提出问题:网站偶发性出现500错误。 开发人员回答:不常见,不影响使用,暂不修改 资深测试人员提出问题:网站偶发性500错误,查看日志,是由于mysql数据库8小时超时问题造成。需要修改 连接池配置定期校验连接 开发人员处理:修改xml,增加校验配置项 比特就业课
(2)分析缺陷产生的原因,找出预防的对策。 缺陷评审还应该包括原因分析,找出Bug出现的原因,尤其 是那些重复出现的Bug。应该找出出现错误的根源,并且制定出相应的预防措施,确保同类型的Bug不 再出现。 例如:有些Bug出现的原因不是简单的“引用为空”之类,而是开发人员的编码不规范或者编程 习惯不好而导致,所以必须建立起正确的编程方式才能预防这些错误的出现,否则只是在玩无聊地重复 发现相同的Bug的游戏。
相关文章:

软件测试 - 基础(软件测试的生命周期、测试报告、bug的级别、与开发人员产生争执的调解方式)
一、软件测试的生命周期 测试贯穿软件的整个生命周期 软件测试的生命周期: 需求分析 →测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估->上线->运行维护 需求分析:判断用户的需求是否合理,是否可实现 测试计划:计划项…...

RTX 4070 GDDR6显存曝光:性能与成本的平衡之选
近期,关于NVIDIA RTX 4070新显卡的信息曝光,这款显卡将配备较为缓慢的GDDR6显存,而非更高性能的GDDR6X。这一配置的选择引发了业内的广泛关注,特别是在性能与成本的平衡问题上。 新版RTX 4070 OC 2X的核心特点 **1.显存类型与带…...

canvas的基础使用
canvas的基础使用 一、画一条直线二、线的属性设置三、防止多次绘制的样式污染四、闭合五、快捷绘制矩形六、绘制圆形七、绘制文字八、绘制图片js版dom版图片截取 一、画一条直线 画一条直线需要用到三个方法:cxt.moveTo、cxt.lineTo、cxt.stroke <canvas id&qu…...

Windows 常用网络命令之 telnet(测试端口是否连通)
文章目录 1 概述1.1 启用 telnet 2 常用命令2.1 ping:测试网络是否连通2.2 telnet:测试端口是否连通 3 扩展3.1 进入 cmd 命令3.2 cls 清屏命令 1 概述 1.1 启用 telnet telnet ip:port // 格式 telnet 10.0.24.154:8001若出现上述提示&…...

x264 编码器像素运算系列:asd8函数
x264 编码器中像素间运算 在 x264 编码器中有多种像素间的运算,如下: sad 计算:SAD(Sum of Absolute Differences,绝对差值和)是一种在图像处理和视频编码中常用的度量,用于计算两个图像块之间的差异。SAD值越小,表示两个图像块越相似。hadamard_ac计算:用于计算Hadam…...

什么是AR、VR、MR、XR?
时代背景 近年来随着计算机图形学、显示技术等的发展,视觉虚拟化技术得到了广泛的发展,并且越来越普及化,慢慢的也走入人们的视野。目前市场上视觉虚拟化技术的主流分为这几种 VR、AR、MR、XR。这几项技术并不是最近才出现的,VR的…...

Epic Games 商店面向欧盟 iPhone 用户上线
Epic Games Store 终于在欧盟推出,为玩家提供了不通过 App Store 就能在 iPhone上访问游戏的途径。在经历了漫长而昂贵的关于支付和竞争对手应用程序店面的法律战,以及公证方面的麻烦之后,Epic Games 成功地为App Store 带来了一个数字店面。…...

【计算机毕设项目】2025级计算机专业小程序项目推荐 (小程序+后台管理)
以下项目选题适合计算机专业大部分专业,技术栈主要为:前端小程序,后端Java语言,数据库MySQL 后台免费获取源码,可提供远程调试、环境安装配置服务。(文末有联系方式) 以下是本次部分项目推荐1…...

Fast API + LangServe快速搭建 LLM 后台
如果快速搭建一个 LLM 后台 API,使前端可以快速接入 LLM API。LangChain 或者 LlamaIndex 架构都可以快速集成各种大语言模型,本文将讲述如何通过 Fast API LangServe 快速的搭建一个后台 Rest API 服务。LLM 这些框架现在主打一个就是快速,…...

CSS继承、盒子模型、float浮动、定位、diaplay
一、CSS继承 1.文字相关的样式会被子元素继承。 2.布局样式相关的不会被子元素继承。(用inherit可以强行继承) 实现效果: 二、盒子模型 每个标签都有一个盒子模型,有内容区、内边距、边框、外边距。 从内到外:cont…...

使用百度文心智能体创建AI旅游助手
百度文心智能体平台为你开启。百度文心智能体平台,创建属于自己的智能体应用。百度文心智能体平台是百度旗下的智能AI平台,集成了先进的自然语言处理技术和人工智能技术,可以用来创建属于自己的智能体应用,访问官网链接࿱…...

斗破C++编程入门系列之四:运算符和表达式
鸡啄米C 记住首页不迷路: http://www.jizhuomi.com/software/129.html 斗破观看顺序: https://v.haohuitao.cc/yhplay/336-1-2.html 第一季☞第二季前2集☞特别篇1☞第二季3~12集☞特别篇2沙之澜歌☞第三季☞第四季☞三年之约☞缘起☞年番…...

CVPR2024 | PromptAD: 仅使用正常样本进行小样本异常检测的学习提示
PromptAD: 仅使用正常样本进行小样本异常检测的学习提示 论文名称:PromptAD: Learning Prompts with only Normal Samples for Few-Shot Anomaly Detection 论文地址:https://arxiv.org/pdf/2404.05231 研究背景 异常检测(Anomaly Detecti…...

文件批量上传,oss使用时间戳解决同名问题 以及一些sql bug
1.文件批量上传 ApiOperation(value "文件批量上传")PostMapping("/multipleImageUpload")Transactional(rollbackFor Exception.class)public Result multipleImageUpload(ApiParam(name "files",value "文件",required true) R…...
机器学习——线性回归(sklearn)
目录 一、认识线性回归 1. 介绍 2. 多元线性回归的基本原理(LinearRegression) 二、多重共线性 1. 介绍 2. 多重共线性详细解释 三、岭回归(解决多重共线性问题) 1. 模型推导 2. 选取最佳的正则化参数取值 四、Lasso&am…...

Go 语言切片(Slice) 15
在 Go 语言中,切片(Slice)是一种可以容纳多个值的数据结构,它可以被视为一个可变的数组。切片是一个引用类型,它可以容纳任意类型的值,可以是整数、字符串、浮点数、结构体等。 切片的声明方式是使用 [] 语法,例如&am…...

嵌入式开发--STM32G030C8T6,写片上FLASH死机CFGBSY和写入出错
故障现象1 G0系列,写片上FLASH时,经常死机,而且按复位键都没用,属于不断电都救不回来的那种死法。这种情况一般是由硬件置位了某个标志导致,只有断电才能故障复原。 故障查找 检查FLASH的相关寄存器,发现…...

通过Fiddler抓包保存网页上的视频(包括Bilibili、B站和其他视频站)亲测可用
本文仅供学习交流用途 文中出现的信息仅为演示需要 请勿以任何方法剽窃、盗用任何视频作者的任何视频 有时候遇到一些素材想保存下来,但是网站不给保存,无论视频是否允许转载。这篇介绍一下最近发现的一个保存视频的方法。 不会介绍Fiddler了…...

企业为什么需要安装加密软件
1. 数据保护 防止数据泄露:加密软件通过对敏感数据进行加密处理,确保即使数据在传输或存储过程中被截获,也无法被未授权人员读取或利用,从而有效防止数据泄露。 完整性保护:加密不仅保护数据的机密性,还通…...

Spring Web MVC入门(下)
1. 响应 1.1 返回静态页面 创建前端页面,如下图所示: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Index页面</title> </head> <body>Hello,Spring MVC…...

uniapp app中使用柱状图 折线图 圆环图和饼图
实现思路 借助echarts.min.js 搭配l-echart进行配置 废话不多说上代码后自己百度了解配置项的意思就好 下面代码是折线图的 ,柱状图和它一摸一样,只需要把line换成bar就好 <template><l-echart ref"chart"></l-echart> …...

jmreport测试数据库出现 权限不足,此功能需要分配角色 解决方法
目录 前言1. 问题所示2. 原理分析3. 解决方法前言 关于jmreport的补充可看官网:jmreport上线安全配置 1. 问题所示 jmreport测试数据库出现,出现如下所示的问题:权限不足,此功能需要分配角色! 截图如下所示: 2. 原理分析 对于原理分析的Bug,代表当前用户没有足够的…...

这是啥设计模式-适配模式
有一个广告召回系统,输入用户id就可以给用户推荐相应的广告,一开始我们只有布尔检索和向量检索两种方式。 1. 面向接口编程,而非实现 第一点就是定义接口,客户端关注的是接口,对客户端来说,他只关心检索引…...

大语言模型(LLMs)Tokenizers详解
Tokenizers是大语言模型(Large Language Models,LLMs)中用于将文本分割成基本单元(tokens)的工具。这些工具不仅影响模型的输入表示,还直接影响模型的性能和效率。以下是对Tokenizers的详细解释:…...

分支-快排/归并---1
目录 1.排序数组 2.数组中的第K个最大元素 3.最小k个数 4.排序数组(归并) 5.数组中的逆序对 6.计算右侧小于当前元素的个数 7. 翻转对 1.排序数组 快排的写法有很多,这里我采取了相对快的三路划分加随机基准值。 三路划分,是…...

代码随想录训练营 Day32打卡 动态规划 part01 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
代码随想录训练营 Day32打卡 动态规划 part01 一、 理论基础 动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。 例如:有N件物品和一个最多能背重量为W 的背包…...

【智能流体力学】剖析ANSYS Fluent材料属性设定与边界条件
目录 一、材料属性设定**1. 材料属性的概述****功能****2. 材料属性的类型****标准材料库****多相流****燃烧模型****传热模型****辐射模型****3. 属性设置与函数****4. 自定义材料数据库****5. Granta数据库支持**二、边界条件**1. 通用边界条件****Pressure Inlet (压力-入口…...

微信小程序反编译工具
目录 介绍 工程结构还原 微信开发者工具运行 如何查看当前运行版本? 开启小程序F12 重新打包运行 效果示例 安装 用法 参数说明 获取微信小程序AppID 文件夹名即为AppID 下载地址 介绍 纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器, 自…...

线程基本概念
一、进程的结束 wait(阻塞) 一般不做额外的事情 wait(非阻塞) 逻辑不受影响(必须套在循环中) wait作用:1.获取子进程退出状态 2.回收资源 传参为指针:被调修改主调 获取退出状态值: WIFEXITED 判断是否…...

在SpringBoot中执行后台任务
在 Spring Boot 中执行后台任务通常涉及到使用线程池和定时任务。Spring Boot 提供了多种方式来实现后台任务,包括使用 Scheduled 注解、ThreadPoolTaskExecutor 和 ExecutorService。 下面我将详细介绍如何使用这些方法来实现后台任务。 使用 Scheduled 注解 Sp…...