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