QA: 数据库测试概述:功能、安全与性能测试 by罗少木
原文作者:罗少木
测试技术:测试开发工程师
编者:AT
备注:原文顺序为1性能2功能3安全,个人将之改为1功能2安全3性能,文字内容无修改
=正文开始=
数据库测试:
1、从功能的角度分析数据库测试:
1.1、界面功能在进行操作时,数据库后台的多张表数据会发生变化,需要测试人员去后台查询数据的正确性。
注:尤其是数据库表中非界面可见的字段,比如注册时间字段,由后台代码自动生成数据填入格,这些字段需要测试人员构造各种情况进行模拟检查是否正确
1.2、后台数据库的存储过程、触发器的测试,检查sql语句内部逻辑是否都正确
1.3、数据库约束测试:外键约束、检查约束的检查,实际开发中,数据库的约束很少添加,都是通过代码进行控制2、数据库安全性测试
2.1、数据库服务器基本上部署于内网上,对于大多数来说可能觉得没风险,但是有可能存在同一局域网的其他pc机出现被感染情况,从而从内部机器攻击数据库
2.2、数据库服务器账号密码及防护软件的安装,避免出现被攻击操作数据丢失
2.3、数据库软件账号密码、及权限的设置
2.4、数据库定时热备份3、从性能角度出发考虑:
3.1、测试对象,针对单条sql语句进行测试,方法如下.
3.1.1、打开慢查询日志long_query_time设置一个阀值,比如100ms
3.1.2、如果哪条sql语句查询的时间超过上方设置的阀值,可以将其纪录下来,检查sql语句慢的原因
sql语句慢的原因解决方案:
3.1.2.1、采用设置索引方式,针对进行查询而修改较少的表设置索引,提高查询效率
3.1.2.2、可以根据业务的特点设置不同数据库引擎
3.1.2.3、可以采用将要执行sql语句纪录到后台文件,无需等待数据库执行完毕后才响应。
3.2、并发执行多条sql语句,检查数据库的反应时间(他人提出的观点)
3.3、预计该数据库后期可能达到的数据量,提前构造大量数据,然后进行sql语句执行,检查执行的效率
3.4、数据库锁测试,当进行并发操作时,多个人同时操作同一条数据,需要进行加锁操作,加锁操作有可能出现死锁情况。