针对项目的数据库进行测试,如何通过测试得到项目真正需要的数据库。
1、数据库的一致性
首先,是对数据库基础数据结构的验证工作,即数据库脚本是否满足数据库设计说明书、是否满足行业标准,检查项包括:表名、字段名、数据类型、数据长度、数据精度、主外键约束等;
其次,数据库的一致性是指数据在数据库的各个表中是否一致。如,多表中同一字段的值是否一致。尤其是要注意对于同一数据是否存在多入口现象;
最后,要注意数据的修改和删除等操作,数据库中的同一数据是否能够同步更新,有主外键关系、归属关系的数据是否能够同步删除(如:上级数据删除,而下级数据仍然存在于数据库中,将形成垃圾数据,甚至因统计算法不同而造成系统输出错误的运算结果);
2、防止数据过多的冗余
数据冗余在系统实现中是不可避免的问题,有时会为了提高系统的运行效率或降低复杂度而人为的增加数据冗余;但如果冗余过大,将严重影响系统性能以及增加破坏数据一致性的风险;
3、数据安全性
数据安全性分为两种,其一,指在正常的业务操作中,是否会出现误删、误修改数据的情况;其二,是否存在数据的非法访问,包括业务逻辑的权限限制以及数据库用户的权限限制问题;
4、大数据量测试
主要考虑在大数据量的情况下,是否会出现数据丢失,事物是否回滚,数据一致性能否得到保障,系统响应时间等问题;
5、针对数据存储、数据中间结果的验证
面对复杂的系统,往往数据处理不是一步到位的,而是通过多个步骤,分布计算存储,这时就要去验证数据是否按照设计要求存放在指定位置,是否正确,有无缺失,中间结果是否能够按设计要求生成并存储等;
6、结合业务逻辑验证数据库的合理性
主要包括,数据类型、长度、精度是否满足业务需要,各种标示性字段,是否能够按照设计要求判别等;
7、数据库的性能测试
主要包括数据库的物理调优,索引类型是否合理、各种语句的优化、数据的存储应用能否按照业务使用频率以及业务逻辑规则而设计等等,这条需要有深厚的数据库应用及设计分析能力。
数据库是信息管理系统的基础,一个管理系统的成败,可以说取决于数据库的优良,因此,数据库知识应该是我们测试人员必须掌握的技能,在此,我希望能够把自己的经验与大家分享,也期待大家针对不同的意见与我交流,谢谢!