数据库是一种管理、存储数据的仓库。
一款软件的背后是各种数据的存储和交互,必须依托于数据库。因此作为软件测试工程师,数据库是必须要掌握的。
我们常见的数据库Mysql、SQLServer、Oracle、MongoDB等等,Oracle是主流的大型数据库,功能强大、安全性高,常用于金融、电信领域,是收费的。
Mysql、SQLServer比较适用于个人及小型公司。对于新手来说,推荐Mysql,更易上手。
其实几款数据库SQL的使用只是部分语法有不同,掌握任意一种,其他的就都没问题了。
数据库使用场景
(1) 搭建测试环境,对测试环境的数据库进行安装维护
(2) 通过SQL语句(增删改查)对前端操作产生的数据进行验证。
如:用户提交注册信息后,数据库中是否真实存储,和界面展示的数据是否一致
(3) 通过修改数据库数据来验证某种异常情况。
如:测试某个必填项为空时能否做数据同步,界面上无法将必填项清空,那么我们可以在数据库中删除这个字段的值
(4) 快速构造测试数据。
如:将用户状态由已注销改为未注销,就可以重复使用这条数据进行测试了
(5) 在很多报表测试中,往往需要根据多个查询条件进行数据的统计,我们可以通过数据库来进行数据验证。
比如说,数据库符合条件的有100条数据,报表查询出的只有90条,对比漏掉了哪些,就可以发现问题所在了
(6) 性能测试,通过脚本连接数据库批量造数据。
如:需要测试1万条数据同时提交的性能情况,手工造数据显然不太现实
……
准备工作
数据库下载地址:
http://dev.mysql.com/downloads/mysql/
Windows系统下安装说明:
https://blog.csdn.net/qq_39652397/article/details/124022739
Linux系统下安装说明:
http://www.cnblogs.com/chenjunbiao/archive/2011/01/24/1940256.html
安装完成之后,打开图形化界面Mysql Workbench创建一个数据库(也可用命令行客户端),然后建立一个表,表在数据库里用于存放某种特定数据,如职员表、生产物料表等等。
如何建库和建表,可以参考我技术博客中的这篇文章:
https://blog.csdn.net/weixin_44901808/article/details/126027507
接下来你就可以对这个表进行相关的操作了。
测试人员要掌握的数据库操作
对于一个初学者来说,掌握数据库表的增删改查、多表联查就差不多了。
再往上,了解数据库索引、事务、约束、存储过程、数据库三范式等等,这些都是加分项,而且对于以后学习数据库的性能调优有很大帮助。
1、增删改查
其中测试人员最常用的是对表进行查询和修改。
查询示例1:
select *from odk_user where FDepart = "研发部" and FStatus='正常' order by FDate desc
表示:在表odk_user中查询出部门为“研发部”且状态为“正常”的人员,并按日期的降序排列
查询示例2:
select FUserId,FName,FDepart as A from odk_user
表示:从表odk_user中查询出3个字段FUserId,FName,FDepart,并将FDepart展示为A。适用于一个表中有多个字段,不方便我们查阅时,通过这个语句查询想要的字段信息
修改数据:
update odk_user set FStatus='正常' where FUserId='OP009'
表示:在表odk_user中将FUserId为OP009的人员状态改为“正常”
插入数据:
insert into 表 (列名,列名...) values (值,值,...)
-- 如:
insert into odk_user (FUserId,FName) values ('OP012','墨石')
删除数据:
insert into 表 (列名,列名...) values (值,值,...)
-- 如:
insert into odk_user (FUserId,FName) values ('OP012','墨石')
2、多表联查
多表联查分三类:内连接、外连接、子查询
·内连接(用得比较多):查询两个表的交集,包括隐式内连接和显式内连接
select 表1.列,表2.列 from 表1,表2 where 表1.列=表2.列;
select 表1.列,表2.列 from 表1 [inner] join 表2 on 表1.列=表2.列;
·外链接分为左外连接和右外连接:
select 表名.列,...from 表名1 left [outer] join 表名2 on 表名1.列=表名2.列;
select 表名.列,...from 表名1 right [outer] join 表名2 on 表名1.列=表名2.列;
数据库多表联查等相关SQL操作,可以参考这篇文章,写得很全面:
https://mp.csdn.net/mp_blog/creation/editor/126230828
学习资源推荐
1、攻 粽 號 “墨石测试攻略”后台回复“数据库”,获取精心整理的数据库学习资料
2、 牛客网,有大量题库可以刷
关于软件测试学习资源、面试、实战项目等等,都可以moshi-tester私V我。
墨石精心整理了多种软件测试学习资源,点击下方链接获取: