数据库测试时几个点

慢慢补充自己工作学习中遇到的关于数据库测试的部分要点吧!

1、ER图查看各表之间的关联

表与表之间根据公共的字段连接在一起,这样才能统一数据,防止数据被篡改。如,用户表与历史记录表,当获取登录权限后,可在发送的数据包(使用jmeter、fiddler等)中修改用户名,有可能使得历史记录表,出现原本不存在的用户。此时历史记录表因为无法得知哪个用户执行了此操作,就失去了意义。

2、表字段的设计合理

比如手机号,应尽量在数据库里设定约束条件,如果单纯的使用字符串类型,而在前端利用正则表达式检测输入框,会被绕过并篡改(同1所说)。同理开发者也应尽量在代码完成各条件约束,而不是偷懒交给前端。

3、敏感字段的加密

如密码,应使用加密算法进行加密,最好是使用不常见的加密,如果单纯使用base64对密码进行加密,那依旧效果甚微。可以考虑加密算法,也可以从加密字段上增加长度。比如采用日期加密码等。

4、伪删除

如果在数据库删除信息,将会无法再次得到相关信息(这里不考虑数据库备份)。如果用户在前端误操作,就要实现数据回退。

为了保存全部的数据(如果可以且有必要),可添加字段如status,0表示删除,1表示正常。每次从数据库里读取信息先判断status是否为1,每次删除信息只要将其改为0即可。这样数据将永久保留。

当然这样数据会一直增多(管理员可手动删除),以及查询会多消耗时间(因为多个关于status的判断,一般情况下很短)。

5、判断数据的一致性

当在前端进行增删改查,请关注数据库的信息是否有正确的增删改以及返回正确数据。

6、(这里想说下数据库设计,目前工作不测,但是自己协助开发设计数据库会注意的点)

如上面提到的字段设计,伪删除等,要确认需求,完善设计。比如一个新概念(物料图号),你得深刻了解图号是怎么构成的,有字母有数字还是就数字,长度是固定的吗等等。

表的个数,表太少,可能会影响操作(增删改查)时间,表太多,连接表也会降低查询速度。故要根据需求确定前端所用的几个操作,确定表的设计。当然也请考虑数据库的维护,如果你每个需求都建一个表。。。

posted @ 2020-03-25 14:52  黑子的博客yuan  阅读(521)  评论(0)    收藏  举报