杭州9期-覃刚 发表于 2021-8-1 21:49:43

《第五部分:Mysql在Linux环境中使用、以及了解BUG》

一、了解什么测试中的bug 、以及流程(一)市面上有哪些bug管理工具?特点是什么?(二)你之前公司的bug管理流程是怎么样的? (很重要)(三)bug的级别有哪些?(四)一条完整的bug应该包含哪些信息?(五)bug的状态有哪些?(六)bug面试问题二、MySql在Linux环境下安装三、MySql各种指令使用介绍(一)MySQL服务语句(二)MySQL查询数据库、表结构语句(三)MySQL修改表结构(四)MySQL备份表,备份数据,备份数据库,还原数据库(五)MySQL增、删、改语句(六)MySQL单表查询语句(七)MySQL聚合函数(八)数据库用户权限操作
一、了解什么测试中的bug 、以及流程(一)市面上有哪些bug管理工具?特点是什么? 目前市面上用的bug管理工具还是挺多的,就比如:日事清、JIRA(付费)、Trac、Gitlab、pingCode、禅道(zentao)、QC、TAPD等,具体什么特点,读者名可以自行的去百度前三行了,详细很多官网或其他博主讲的已经非常详细了,这里就不一一解说了。其中很大公司使用的是禅道这款管理工具。禅道是第一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。有机会大家可以下载试着玩一下,需要软件包的朋友可以加我下面的QQ群或留言私聊我。

(二)你之前公司的bug管理流程是怎么样的? (很重要)提单:测试人员发现bug,提交bug到bug管理工具(项目管理工具)仲裁:公司里面有话语权的大佬规范审核:测试经理对提交的bug进行规范审核 BUG管理流程一(重点):

BUG管理流程二:

bug管理流程(重点-参考BUG管理图一):(1)多名测试人员发现bug并且提交bug到bug管理工具。(2)测试经理会对提交的bug进行规范审核。(3)测试经理如发现提交bug已经存在则给到测试人员进行确认。(4)测试人员确认是重复的bug则直接丢弃,如不存在则把bug重新给到测试经理进行规范审核该bug是否重复,如果确认不是重复的bug,测试经理则将bug发送至开发经理。(5)开发经理分配给到具体的开发人员。(6)开发人员会对bug进行确认,确认测试提交的bug是否为有效bug,如果该bug确认有效则会根据项目的进度,对bug进行修复(越严"重的bug修复的优先级越高),bug修复完成后,提交至测试经理。(7)测试经理分配给到具体的测试人员进行回归测试(bug级别比较严重会直接给到bug的发起人进行回归测试)。回归测试通过则关闭bug,如果进行回归测试不通过,则把bug重新激活。


(三)bug的级别有哪些?
bug的级别有哪些?
序号等级介绍原因
11级bug必须优先要改致命错误1、常规操作引起的系统崩溃、死机、死循环、白屏、crash。2、造成数据泄漏的安全性问题,比如恶意攻击造成的账户私密信息泄露3、涉及金钱,如支付类软件,金钱计算错误
22级bug、严重错误次主体功能1、重要功能不能实现(例如:微信没有实现语音聊天、朋友圈,等)2、错误的波及面广,影响到其他重要功能正常实现3、非常规操作导致的程序崩溃、死机、死循环 (非常规操作:用户使用软件时不会进行的操作)4、外观难以接受的缺陷(例如:直播平台的封面图片的失真、压缩,完全变形)5、密码明文显示
33级bug,一般错误不影响产品的运行、不会成为故障的起因、但对产品外观和下道工序影响较大的缺陷涉及到其他功能的使用1、次要功能不能正常实现2、操作界面错误(包括数据窗口内列名的定义,含义不一致)(例如:列名与列名下的内容不一致)3、查询错误、数据错误显示4、简单的输入限制未放在前端进行控制;(格式显示,如登录和注册中的格式判断可由前端判断)5、删除操作未给出提示
44级bug建议性BUG(优化)程序在一些显示上不美观,不符合用户习惯,或者是一些文字的错误1、界面不规范2、辅助说明描述不清楚3、提示窗口文字未采用行业术语4、界面存在文字错误5、改进意见:可以提高产品质量的建议, 包括新需求和对需求的改进



(四)一条完整的bug应该包含哪些信息?
4、一条完整的bug应该包含哪些信息?
序号介绍介绍
1bug编号
2Bug标题bug呈现的样子
3bug等级
4bug优先级
5bug重现步骤是怎样一步一步发现BUG的
6bug所属的模块
7bug的前置条件
8bug的附件可以附上出现的缺陷截图更有说服力
9bug的预期结果就是bug的用例的预期结果
10bug的实际结果就是bug的用例的实际结果
11bug创建人
12bug的接收人是指开发



(五)bug的状态有哪些?
bug的状态有哪些?
序号bug状态介绍
1New(新的)bug被发现
2Assigned (已指派的)开发人员接受此bug
3Open(打开)开发人员正在修复此bug
4Fixed (已修复的)bug已经被修复
5Pending Reset(待再测试的)按bug等级进行测试
6Reset(测试)测试人员正在进行测试
7close(关闭)bug被修复
8reopen(重新打开)回归bug时发现bug依然存在或者产生了新的bug,将bug状态修改为reopen

以下是借鉴网上其他博主
序号bug状态介绍
1已指派的bug1、跟踪、提醒开发、
2、已修复的,更新环境验证
2已解决的bug1、更新环境验证
2、验证通过,关闭
3、验证不通过,重新打开
4、回归验证时继续跟进bug,直到关闭bug
3重复的bug1、确认重复,关闭
2、不重复,写明原因
4不是bug1、首先确认开发环境和测试环境是否一致
2、不是缺陷关闭
3、是缺陷和开发沟通
4、未得到解决与产品沟通
5无法重现1、首先确认开发环境和测试环境是否一致
2、重现不了,与产品和开发一起确认关闭(依据bug的严重程度)
3、找到重现原因,写明清楚,指派给开发
6不予解决1、找产品经理确认
2、不予解决,关闭
3、要解决,写明原因给开发
7设计如此1、找产品经理确认
2、不予解决,关闭
3、要解决,写明原因给开发
8 延期修改1、根据bug的严重程度,是否影响当前版本的发布
2、与产品经理确认
3、不予延期,写明情况,激活
4、确认延期,做好记录,后续版本进行关注


(六)bug面试问题问:如果出现偶现bug怎么解决?首先我会根据上次操作步骤进行重现,如果出现了BUG,我会截图并保存并比较BUG给开发,如若不能重现,我会反馈给测试经理或产品经理进行反馈。

二、MySql在Linux环境下安装()在线安装mysql命令:yum install mysqlyum install mysql-server

三、MySql各种指令使用介绍(一)MySQL服务语句
MySQL服务语句
命令介绍及用法
service mysqld start启动mysql
service mysqld stoped关闭mysql
service mysqld status查看mysql状态
mysql -uroot -p登录mysql方法一
mysql -uroot -p123456登录mysql方法二
mysqladmin -uroot password "123456"重置root账号的密码
select version();查看mysql版本
按键:ctrl+c(或者exit)退出mysql操作界面


(二)MySQL查询数据库、表结构语句
MySQL基本语句
命令介绍及用法
2.1 常用的sql语句
show databases;查看mysql的所有数据库
show tables;查看数据库下所有表
select database();查看所在数据库
use 数据库名称;进入数据库
desc 表名;查看表结构
create database 数据库名称创建数据库
drop database 数据库名称删除数据库
create table+表名(字段1名称 数据类型 约束,字段2名称 数据类型 约束)创建表


2.2 数据类型:
数值型:int、bigint、float单浮点型int数据类型的存储数据值的范围为-2147483648 至 2147483647
文本型:varchar、char
日期型:date、datetime


2.3 常见的约束:
primary key主键约束:具有唯一性,设置为主键的字段对应的值必须唯一
auto_increment自增长约束:默认在之前的数值上加一
default默认值约束
not null非空约束(非null约束)
foreign key外键约束


(三)MySQL修改表结构
修改表结构
命令介绍及用法
desc1.查看表结构
desc+表名;(显示字段名称,数据类型,约束,备注)
rename⒉修改表名
alter table +表名 rename +新表名
change3.修改表字段
alter table +表名 change+原字段名+新字段名+数据类型+约束
add4.添加表字段(默认放最后面)
alter table +表名 add+字段名+ 数据类型+约束;
add...first5.添加表字段,并放到第一个字段前
alter table +表名 add+字段名+ 数据类型+约束 first;
add...after6.添加表字段,并放到某个字段后
alter table +表名 add+字段名+数据类型+约束 after+字段名;
7.同时添加两个字段,默认添加到字段最后
alter table +表名 add(字段1+数据类型,字段2+数据类型);
drop8.删除表字段
alter table +表名 drop +字段;
9.删除表两个字段
alter table +表名 drop 字段1,drop 字段2;
auto_uincrement10.修改主键id为自增长
alter table +表名 change 字段名+字段名+数据类型 auto_increment;
alter table +表名 modif 字段名 +数据类型 auto_inrement;
删除primary key11.删除主键约束
alter table student drop primary key;(如果同时有主键和自增约束,没办法直接删除主键约束,需要先删除自增约束,实例如下)alter table student modify id int;alter table student change id id int;
添加primary key12.添加主键约束
alter table student modify sid int primary key auto_increment;
删表13.删除表
drop table+表名
默认值default14.修改字段默认值语法:
alter table 表名 alter column 字段名 drop default; (若本身存在默认值,则先删除)alter table 表名 alter column 字段名 set default 默认值;(若本身不存在则可以直接设定)alter table 表名 change age age int not null default 222;(修改默认值方式二)alter table 表名 modify age int not null default 222;(修改默认值方式三)
拓展【拓展change和modif区别】实例:
alter table student change sex sex varchar (20) ;
alter table student modify sex varchar (20) ;
alter table student modify class int first ;
modif和change区别是modif不能改字段名称,而change可以;modif可以修改表字段位置,而change不可以。



(四)MySQL备份表,备份数据,备份数据库,还原数据库
备份表,备份数据,备份数据库,还原数据库
命令介绍及用法
备份表,备份数据,备份数据库,还原数据库
1.备份表,创建一个表与某个表相同
create table+表1 like +表2
⒉备份数据,把一个表的数据插入到另一个表
insert into +表名 select * from+表名注意点:插入的表必须要存在
3.把一个表的某些字段插入到一个新表中
insert into +表1(字段1,字段2) select 字段1,字段2 from表2(表相同情况下)insert into +表1select   from表2注意点: 1.插入的表必须存在 ⒉.插入的表是新表,没有数据。
4.备份数据库
mysqldump -uroot -p 数据库名>脚本名
5.还原数据库
mysql   -uroot -p +数据库<脚本名



(五)MySQL增、删、改语句
Mysql增删改语句
命令介绍及用法
新增1.表中插入数据、插入多行数据
insert into+表名+values(字段1值,字段2值..)
insert into+表名+values(字段1值,字段2值..),(字段1值,字段2值...)
3.对表中指定字段插入数据
insert into+表名(字段1,字段2) values(字段1值,字段2值)
insert into+表名(字段1,字段2) values(字段1值,字段2值),(字段1值,字段2值)
删除4.删除表中指定数据、指定字段多行插入
delete from+表名 where 条件
5.删除表所有数据
delete from+表名
truncate+表名
删除表6.删除表
drop table +表名
注:TRUNCATE,DELETE,DROP放在一起比较:TRUNCATE TABLE:删除表中所有行,表结构,列,约束保存不变;DELETE TABLE:按条件删除表数据;DROP TABLE:删除表结构和表数据;
更新7.更新表中指定字段数据
update+表名+ set+字段名 = 值 where 条件



(六)MySQL单表查询语句
单表查询
命令介绍及用法
*1:查询表中所有数据
select * from+表名 (“*”代表所有)
2:查询1字段、多个字段的数据
select 字段 from +表名
select 字段1,字段2 from+表名
=3:查询满足某个条件的所有数据
select * from+表名 where 字段=值 (where后面接满足的条件)
!=、<>4:查询不满足某个条件的所有数据
select * from+表名 where字段!=value(“! =”代表不等于,也可以用符号”<>“代表不等于)
and5:查询同时满足多个条件数据
select * from+表名where 条件1 and 条件2 (and关键字左右的两个条件必须同时满足)
or6:查询满足至少1个条件的数据
select * from+表名where条件1 or 条件2 (or关键字左右的两个条件至少满足1个,否则返回空)
between..and ..7:查询一个条件范围内的数据
select * from +表名 where字段 between m and n (between...and ...指定一个范围)
in8:查询字段满足在指定的集合中的数据
select *from+表名where字段in(值1,值2,值3)
not in9:查询字段不满足在指定集合中的数据
select * from+表名where字段not in(值1,值2,值3)
null10:查询字段值为空的数据
select * from+表名where字段 is null(注意:字段是空不能写成字段=null)
not null11:查询字段不为空的数据
select * from+表名where字段is not null
like12:查询某个字段模糊匹配成功的数据
select * from+表名where字段like“%值%"(%用于匹配字段开头和结尾)
limit13:查询限定的数量的数据
select * from+表名 limit n(n指限定的下标,意思是前n行数据)
select * from+表名 limit m,n(m指下标,n指限定的数量,下标为m的开始的n条数据)
排序asc14:查询的数据根据某个字段从小到大排序
select * from+表名order by 字段 asc (order by ...asc 从小到大排序)
排序desc15:查询的数据根据某个字段从大到小排序
select * from+表名order by 字段 desc (order by ... desc从大到小排序)
group by16:查询的数据根据某个字段进行分组
select * from+表名group by字段 (group by ...根据字段分组)
having17:查询的数据根据某个字段进行分组再条件过滤
select *from+表名group by 字段 having 条件 (having跟在group by后面,作用相当于where)
【拓展】检查字符长度:查找字符为7位、或大于7位的方法
select * from student where length(name) >=7select * from student where name like '_______'



(七)MySQL聚合函数
MySQL聚合函数
命令介绍及用法
count(*)1:统计查询数据的数量
select count(*) from+表名
sum(字段)2:查询某个字段求和
select sum(字段) from+表名
avg(字段)3:查询某个字段进行平均值
select avg(字段)from+表名
max(字段)4:查询某个字段最大值
select max(字段)from+表名
min(字段)5:查询某个字段最小值
select min(字段)from+表名
distinct6:对某个字段进行去重
select distinct(字段) from+表名
【实例】select class,sum(math) from student where sex=1 group by class having sum(math)>100;
sql语句的注意点:
1、要求查询的内容放在select后面;
2、已知的内容放在where后面;
3、group by后面不能接where,但是where后面可以接group by(相当于where先筛选过滤遍,然后在通过group by 进行分组)
4、group by后面不能接and
5、group by分组函数的一般和聚合函数一起使用,不能和除了分组以外的字段结合使用
6、分组字段可以可以和任意聚合函数使用



(八)数据库用户权限操作
(八)数据库用户权限操作
如何给普通的数据库用户赋予相应的权限(如增删改查)∶
1.进入:mysql数据库:
use mysql;service iptables stop(补充:关闭linux系统防火墙)
2.查询:mysql数据库服务器已经创建的所有用户
select host,user from user;
3.查询:指定用户所有权限
(本地用户)show grants for "用户名" @"localhost";(usage没有任何权限、all所有权限)
(远程用户)show grants for '用户名'@'%;
4.创建用户:未授权(方法一)
(本地用户)insert into user(host,user,password)values('localhost','用户名',password('密码'));
(远程用户)insert into user (host,user, password) values("%",'用户名',password('密码'));
创建用户后需要刷新下:flush privileges;
注意:password('密码')的目的是为了给括号里面的密码进行加密、%表示远程用户
5.创建用户:授权(方法二)
(部分权限)grant select,update,delete,drop on *.* to 'wang' @'localhost' identified by'123456'
(所有权限)grant all on *.* to '用户名' @'localhost' identified by'密码';
创建用户后需要刷新下:flush privileges;
注意:*.*,第一个*表示所有库,第二个库表示所有表
6.创建用户:授权、并刷新
grant all privileges on *.* to 'dcs'@'%' identified by '123456;
授予一个普通用户dcs及密码为123456,允许其可以通过所有客户机访问本数据库下所有的库及所有的表,假如为localhost只能在本地进行访问。
7.修改:修改用户密码
update user set password=password(123456') where user='root;(修改root用户的密码)
8.删除:删除用户
delete from user where user='zhongguo'and host='localhost;(删除用户)
9.删除:取消用户权限
revoke all on *.* from 'dcs'@'%';(取消所有权限0
revoke select,update,delete on *.* from 'dcs'@'%';(取消所有权限0
11.刷新:只要修改了权限,都需要刷新服务。
flush privileges; //刷新


【小总结】操作修改权限的过程:
1、进入mysql数据库:use mysql
2、查询user表中存在哪些用户:   select host,user,password from user;
3、插入一个本地用户dcs,通过password函数对明文密码进行加密insert into user(host,user,password) values("localhost","dcs",password("123456"));
4、刷新权限:flush privileges;
5、查看本地用户dcs具有哪些权限(显示USAGE表示没有权限/ALL表示所有,然后再进行授权操作):show grants for "dcs"@"localhost";
6、授予本地用户dcs对所有的库下所有的表具有所有的操作权限:grant all privileges on *.* to "dcs"@"localhost" identified by "123456";
4、刷新权限:flush privileges;
8、移除本地用户dcs所有的库下所有表的所有权限:revoke all privileges on *.* from "dcs"@"localhost";
9、(拓展是否需要)修改数据库的用户密码:update user set password=password("654321") where user="dcs" and host="localhost";将本地用户dcs的密码修改为“654321”

页: [1]
查看完整版本: 《第五部分:Mysql在Linux环境中使用、以及了解BUG》