数据库测试 – 类型


根据数据库的功能和结构,数据库测试可以分为三类 -

  • 结构数据库测试- 它涉及表和列测试、模式测试、存储过程和视图测试、检查触发器等。

  • 功能测试- 它涉及从用户的角度检查数据库的功能。最常见的功能测试类型是白盒测试和黑盒测试。

  • 非功能测试- 它涉及负载测试、数据库风险测试、压力测试、最低系统要求,并处理数据库的性能。

结构数据库测试

结构数据库测试涉及验证数据库的那些不暴露给最终用户的组件。它涉及存储库的所有组件,这些组件用于存储数据并且不被最终用户更改。精通 SQL 存储过程和其他概念的数据库管理员通常会执行此测试。

讨论的是结构测试方面测试的常见组件 -

模式/映射测试

它涉及使用数据库对象映射验证前端应用程序的对象。

在模式测试中 -

  • 有时,最终用户应用程序对象未正确映射或与数据库对象不兼容。因此,需要检查与数据库关联的各种模式格式的验证。

  • 需要找到数据库中未映射的对象,如表、视图、列等。

市场上有多种工具可用于在模式中执行对象映射。

示例- 在 Microsoft SQL Server 中,测试人员可以编写简单的查询来检查和验证数据库中的架构。

如果测试人员想要更改表结构,他/她应该确保具有该表的所有存储过程都与此更改兼容。

模式映射测试

存储过程和视图测试

在此测试中,测试人员确保手动执行存储过程和视图生成所需的结果。

测试仪确保 -

  • 如果它能够使所需的触发器按预期执行。

  • 开发团队是否已通过将输入传递给过程中的应用程序来涵盖所有循环和条件。

  • 数据库中是否有未使用的存储过程。

  • 当从数据库中所需的表中获取数据时,TRIM 操作会正确应用。

  • 根据被测应用程序的要求验证存储过程模块的整体集成。

  • 遵循异常和错误处理机制。

用于执行存储过程测试的最常见工具是LINQSP 测试工具等。

触发测试

在触发测试中,测试人员需要确保以下几点 -

  • 在触发器的编码阶段是否遵循编码约定。

  • 查看执行的触发器是否满足要求的条件。

  • 触发器执行后是否正确更新数据。

  • 更新/插入/删除的验证会触发测试应用程序的功能。

表和列测试

此测试涵盖的关键领域是 -

  • 验证数据库中的数据类型与前端应用程序中的字段值。

  • 验证数据库中数据字段的长度与应用程序中数据类型的长度。

  • 检查数据库中是否存在来自应用程序字段对象的任何未映射的表或列。

  • 验证数据库表和列的命名约定是否符合业务需求。

  • 验证数据库中的键和索引,即表中的主键和外键是根据要求定义的。

  • 检查两个表中主键及其对应的外键是否相同。

  • 检查维护键的唯一性和非空特性。

  • 键和索引的长度和数据类型根据要求进行维护。

数据库服务器检查

数据库服务器检查涉及验证 -

  • 数据库服务器是否可以根据业务需求处理预期数量的事务。

  • 数据库服务器的配置细节是否满足业务需求。

  • 是否按照要求维护用户授权。

功能测试

执行功能测试时要牢记最终用户的观点;最终用户运行的所需交易和操作是否满足业务规范。

黑盒测试

黑盒测试涉及验证数据库的集成以检查功能。测试用例很简单,用于验证函数的传入数据和传出数据。

使用因果图技术、等价划分和边界值分析等各种技术来测试数据库的功能。

优点如下:

  • 它相当简单,并且在开发的早期阶段执行。
  • 与白盒测试相比,开发测试用例的成本较低。

它的缺点如下:

  • 无法检测到一些错误
  • 目前尚不清楚有多少程序需要测试。

白盒测试

白盒测试涉及数据库的内部结构,并且对用户隐藏规范细节。它涉及数据库触发器和逻辑视图的测试,这将支持数据库重构。

它执行数据库函数、触发器、视图、SQL 查询等的模块测试。此类测试验证数据库表、数据模型、数据库模式等。它检查引用完整性规则。它选择默认表值来检查数据库一致性。

用于执行白盒测试的最常见技术是条件覆盖、决策覆盖、语句覆盖等。

白盒测试可以检测到编码错误,从而消除数据库的内部错误。白盒测试的局限性是不覆盖SQL语句。

非功能测试

非功能测试包括执行负载测试、压力测试、检查满足业务规范的最低系统要求、风险发现和数据库性能优化。

负载测试

负载测试的主要目标是检查大多数正在运行的事务是否对数据库产生性能影响。

在负载测试中,测试人员检查 -

  • 为多个远程用户执行事务的响应时间。
  • 数据库获取特定记录所花费的时间。

不同测试类型的负载测试示例-

  • 重复运行最常用的事务以查看数据库系统的性能。
  • 从互联网下载一系列大文件。
  • 在计算机或服务器上同时运行多个应用程序。

压力测试

执行压力测试来识别系统断点。在此测试中,应用程序的加载方式导致系统在某一点出现故障。这个点称为数据库系统的断点

确定数据库事务的状态需要付出大量的努力。需要适当的规划以避免任何基于时间和成本的问题。

最常用的压力测试工具是LoadRunnerWinRunner

让我们举一个压力测试的例子。CRM 应用程序最多可承受 50000 个并发用户的用户负载。假设您将负载增加到 51000 并进行一些事务,例如更新记录或添加条目。一旦您执行事务,应用程序就可以与数据库系统同步。所以接下来的测试是用52000的用户负载来执行。有时,压力测试也称为疲劳测试