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