根据数据库的功能和结构,数据库测试可分为三类 :
结构数据库测试 : 它处理表和列测试,模式测试,存储过程和视图测试,检查触发器等.
功能测试 : ;它涉及从用户的角度检查数据库的功能.最常见的功能测试类型是白盒和黑盒测试.
非功能测试 : 它涉及负载测试,数据库风险测试,压力测试,最低系统要求,以及处理数据库的性能.
结构数据库测试
结构化数据库测试涉及验证数据库的那些组件,这些组件未向最终用户公开.它涉及存储库的所有组件,这些组件用于存储数据,最终用户不会更改.对SQL存储过程和其他概念具有良好命令的数据库管理员通常会执行此测试.
讨论了针对Structural Testing : 测试的常用组件;
模式/映射测试
它涉及使用数据库对象映射验证前端应用程序的对象.
在Schema Testing :
有时会发生最终用户应用程序对象未正确映射或与数据库对象兼容的情况.因此,需要检查与数据库关联的各种模式格式的验证.
需要在数据库中查找未映射的对象,如表,视图,列等是必需的.
市场上有各种工具可用于在模式中执行对象映射.
示例 : 在Microsoft SQL Server中,测试人员可以编写简单查询来检查和验证数据库中的模式.
如果测试人员想要对表结构进行更改,他/她应该确保所有具有该表的存储的过程与此更改兼容.
存储过程和视图测试
在此测试中,测试人员确保手动执行存储过程和视图会生成所需的结果.
测试人员确保 : 去;
如果它允许按预期执行所需的触发器.
如果开发团队通过将输入传递给过程中的应用程序来覆盖所有循环和条件.
如果数据库中有任何未使用的存储过程.
正确应用TRIM操作当从数据库中的必需表中提取数据时.
根据被测应用程序的要求验证存储过程模块的整体集成.
遵循异常和错误处理机制.
用于执行存储过程测试的最常用工具是 LINQ , SP测试工具等.
触发器测试
在触发测试中,测试人员需要确保以下内容;
是否编码在触发器的编码阶段遵循惯例.
查看执行的触发器是否满足所需条件.
触发器是否在执行后正确更新数据.
验证更新/插入/删除触发器功能测试.
表和列测试g
此测试涵盖的关键领域是 :
验证数据库中的数据类型到前端应用程序中的字段值.
验证数据库中数据字段的长度与应用程序中数据类型的长度./p>
检查数据库中是否存在来自应用程序字段对象的未映射表或列.
如果数据库表和列的命名约定符合业务要求,则验证它们的命名约定.
验证数据库中的键和索引,即,表中的主键和外键是根据要求定义的.
检查两个表中的主键及其对应的外键是否相同.
检查密钥的唯一和非NULL特征.
长度和数据类型根据需要维护密钥和索引t.
数据库服务器检查
数据库服务器检查涉及验证 : 去;
如果数据库服务器可以根据业务需求处理预期的事务数.
如果数据库服务器的配置详细信息满足业务要求.
如果按照要求维护用户授权.
功能测试
执行功能测试时要记住最终用户的观点;最终用户运行所需的交易和操作是否符合业务规范.
黑匣子测试
黑匣子测试涉及验证整合数据库来检查功能.测试用例很简单,用于验证来自函数的传入数据和传出数据.
使用各种技术,如因果图形技术,等价划分和边界值分析测试数据库的功能.
其优点如下 :
这很简单,并且在开发的早期阶段执行.
与白盒测试相比,开发测试用例的成本更低.
它的缺点如下:<
一些错误不能是检测到
不知道需要测试多少程序.
白盒测试
白盒测试处理数据库的内部结构,并且对用户隐藏规范细节.它涉及数据库触发器和逻辑视图的测试,它们将支持数据库重构.
它执行数据库函数,触发器,视图,SQL查询等的模块测试.这种类型的测试验证数据库表,数据模型,数据库架构等.它检查参照完整性的规则.它选择默认表值来检查数据库一致性.
用于执行白盒测试的最常用技术是条件覆盖,决策覆盖,语句覆盖等.
可以在白盒测试中检测到编码错误,因此可以消除数据库中的内部错误.白盒测试的局限性是不包括SQL语句.
非功能测试
非功能测试包括执行负载测试,压力测试,检查满足业务规范,风险发现和数据库性能优化的最低系统要求.
负载测试
负载测试的主要目标是检查是否大多数正在运行的事务都会对数据库产生性能影响.
在负载测试中,测试人员检查 : 去;
执行多个远程用户的事务的响应时间.
数据库获取特定记录所花费的时间.
不同测试类型的负载测试示例 :
重复运行最常用的事务
从互联网上下载一系列大文件.
同时在计算机或服务器上运行多个应用程序.
压力测试
执行压力测试以识别系统断点.在此测试中,应用程序的加载方式使系统在某一点失败.这一点称为数据库系统的断点.
确定数据库事务的状态需要花费大量的精力.需要进行适当的规划以避免任何时间和成本问题.
最常用的压力测试工具是 LoadRunner 和 WinRunner .
让我们来看看压力测试的示例. CRM应用程序最多可以占用50000个并发用户.假设您将负载增加到51000并进行一些事务,例如更新记录或添加条目.只要执行事务,应用程序就可以与数据库系统同步.因此,下一个测试是在52000的用户负载下执行.有时,压力测试也称为疲劳测试.