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、数据库锁测试,当进行并发操作时,多个人同时操作同一条数据,需要进行加锁操作,加锁操作有可能出现死锁情况。