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