什么是数据库测试?
数据库测试检查被测数据库的模式,表,触发器等。 它可能涉及使用负载/压力测试创建复杂查询并检查其响应性。 它检查数据的完整性和一致性。
数据库测试在软件测试中很重要,因为它确保接收到并存储到数据库中的数据值和信息有效或无效。 数据库测试有助于避免数据丢失,保存中止的交易数据和防止未经授权的信息访问。 数据库对于任何软件应用程序都很重要,因此测试人员必须具备良好的 SQL 知识才能进行数据库测试。
[图片上传失败...(image-dc96b9-1686526467395)]
GUI和数据测试的区别
GUI | 数据测试 |
---|---|
图形用户界面测试或前端测试 | 属于后台测试 |
用户可见部分,如表单,演示文稿,图表,菜单和报告等。 | 通常对用户隐藏的可测试项目 |
关注文本框、下拉菜单等控件,页面跳转、图像和主观体验等。 | 关注架构, 数据库表, 列 , 键和索引, 存储过程, 触发器, 数据库服务器验证, 验证数据重复 |
了解业务需求以及开发工具的使用以及自动化框架和工具的使用。 | 具有数据库服务器和结构化查询语言概念的强大背景。 |
数据库测试的类型
[图片上传失败...(image-270835-1686526467395)]
结构测试、功能测试、非功能测试
结构测试
结构数据测试涉及验证数据存储库内的所有元素,这些元素主要用于存储数据,并且不允许最终用户直接操作。 在这些类型的测试中,数据库服务器的验证也是非常重要的考虑因素。 测试人员需掌握SQL查询。
模式(schema)测试
数据库模式是对数据在数据库中如何组织的正式定义。模式测试确保前端和后端之间的模式映射是一致。 因此,我们也可以将模式测试称为映射测试。
最重要检查点:
- 验证与数据库关联的各种模式格式。 很多时候,表的映射格式可能与应用程序的用户界面级中存在的映射格式不兼容。
- 验证在未映射的表/视图/列。
- 验证环境中的异构数据库是否与整个应用程序映射一致。
- 规范化的范式可分为第一范式、第二范式、第三范式、BCNF 范式、第四范式和第五范式。一般来说,逻辑数据库设计应满足第三范式的要求,这是因为满足第三范式的表结构容易维护,且基本满足实际应用的要求。
每当在应用程序的前端执行某个动作时,相应的CRUD(创建、检索、更新和删除)动作会在后端被调用。测试人员必须检查是否调用了正确的动作,以及调用的动作本身是否成功。
- 表的映射,列的映射,以及数据类型的映射。
- 查询数据映射。
- 在用户界面上的每个用户操作都调用了正确的CRUD操作。
- CRUD操作是成功的。
我们还要看一些用于验证数据库模式的有趣工具。
- 与Ant集成的DBUnit非常适合映射测试。
- 通过编写简单查询或代码来检查和查询数据库的模式。
为了测试它:
- 确定数据库运行所基于的要求。样品要求:
- 在创建任何其他字段之前,应先创建主键。
- 外键应该是完全索引的,以便于检索和搜索。
- 字段名以某些字符开始或结束。
- 具有限制条件的字段,即某些值可以或不可以被插入。
- 根据相关性,使用以下方法之一:
- SQL查询DESC<表名>来验证模式。
- 用正则表达式来验证各个字段的名称和它们的值
- 像SchemaCrawler这样的工具