虽然从很多方面来看,数据库测试与其他传统的应用程序测试过程类似,但团队必须确认他们在整个开发周期中频繁而彻底地执行数据库测试。如果没有适当的数据库测试策略,应用程序更容易发生数据丢失,并受到网络中断、安全漏洞利用和应用程序崩溃导致的损坏的影响。
当团队优化数据库测试时,他们可以确保应用程序提供更高价值的客户体验。数据库测试的理想方案是创建一套自动化的数据库测试,这些测试计划为自动测试,每天执行一次或多次。团队至少需要在开发冲刺中执行数据库测试,再向客户发布产品。
为了优化测试过程,团队必须了解数据库测试的重要性、有效策略的关键要素以及测试 SQL 和 NoSQL 数据库之间的差异。团队还可以创建结合手动和自动执行的混合数据库测试方法。
数据库测试的重要性
为什么数据库测试至关重要呢,这里的原因有很多,最明显的原因是对数据丢失的担忧、数据质量、安全性和应用程序连接。数据库测试还侧重于存储的数据格式验证、基于 API 的数据传输过程的完整性、整体应用程序弹性和其他重要考虑因素。
为了确保有效,数据库测试策略应执行以下操作:
- 确保基本创建、读取、更新和删除 (CRUD) 操作按预期工作。
- 验证查询是否按正确的顺序发生,并且可以准确地从故障中恢复。
- 检查数据库架构的表、字段和数据类型的命名和格式是否正确,并检查任何视图或索引。
- 证明事件触发器和存储过程正常运作,并且不会引发故障。
- 确认正在强制实施数据库约束,并且正在安全地处理数据。
- 测试数据库以查看它是否以可预测的方式适当地响应故障。
数据库测试方法和工具
在执行数据库测试时,测试人员可以选择自动化、手动或混合策略。在选择策略时,第一步是定义应用程序中使用的数据库类型,及其与 API 或其他消息传递系统的所有连接。策略选择还取决于团队需求的开发,以及现有单元测试在多大程度上涵盖数据库测试目标。
如果数据库由正式的平台提供商支持,测试人员可以检查是否已经包含测试工具,或专门根据他们的需求设计了任何测试工具。如果没有的话,他们可以寻找工具以允许他们执行查询和执行数据验证。专用于数据库测试的常用工具包括:
- MockupData
- DTM Data Generator
- MS SQL Server
- SQL Test
- NoSQLUnit
- SeLite
- SLOB
数据库测试可以在持续集成、持续开发和持续测试过程(或CI/CD/CT)中执行。团队执行自动化测试脚本的频率越高越好。如果可能,请将所有数据库测试脚本嵌入到连续测试执行中,每当在主分支中添加或合并代码时,都会执行该执行。另一种选择是,在执行 CI/CD/CT 测试以进行回归或其他常规测试过程时,简单地安排脚本同时运行。
SQL和NoSQL数据库测试
团队采用的数据库测试方法将在很大程度上取决于它是运行SQL还是NoSQL数据库。对于手动测试,团队通常可以以与对应用程序执行黑盒测试相同的方式测试SQL和NoSQL数据库。然而,自动化测试将要求团队编写专门针对SQL或NoSQL数据库的脚本。
对于SQL数据库,大多数测试用例将涉及自动数据库验证脚本,该脚本也是用SQL编写。幸运的是,QA测试人员通常拥有强大的SQL脚本技能。但是,SQL 脚本可能在复杂性和细节方面有所不同,更具挑战性的脚本要求可能要交给成熟的SQL程序员。
对于NoSQL数据库,测试人员需要对所讨论的数据库具有一定经验和熟悉度。例如,当在对MongoDB上构建的NoSQL数据库进行测试时,测试人员必须了解MongoDB使用集合来存储数据以及Binary JSON数据格式的工作原理。
为了执行有效的NoSQL数据库测试,在创建脚本时,团队需要使用编程数据库的语言。幸运的是,很多测试工具包括默认语言、数据库查看器工具,以及为单元类型数据库测试创建代码的选项。然后,数据库QA测试人员可以学习创建和执行这些测试,或者开发人员可以创建数据库测试脚本供QA执行。
整合手动和自动数据库测试
如果想要同时利用手动和自动技术,数据库测试人员可以创建混合策略,以将两者相结合。具体做法是,创建一组手动数据库测试来处理事务功能和数据操作操作,然后将这些手动测试用例添加到现有的执行或回归测试套件中。
接下来,创建一组自动测试脚本,针对正在使用的数据库类型进行校准(使用SQL查询或针对NoSQL的特定语言脚本)。这些自动化测试可以采用单元测试形式,由开发人员编写,并计划例行执行。自动数据库测试也可以由熟悉数据库结构和架构的 QA 测试人员编写脚本,他们知道如何执行触发器和存储过程。
当发布周期较短时,混合策略往往效果最好。通过分别创建一组手动和自动测试套件,至少其中一个套件会频繁执行。执行的测试可能无法涵盖整个数据库测试需求,但有些测试总比没有好。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
Java、JDBC和Postgres
现在越来越多的企业开始部署PostgreSQL,为什么呢?当你看到这个许可开源数据库所提供的功能,你就不会对此 […]
-
5个元数据管理最佳实践
在数据驱动的环境中,元数据不仅仅是数据的副产品;还是综合数据治理战略的关键组成部分。企业需要适当的元数据管理, […]
-
Cockroach Labs增加矢量搜索,更新定价选项
Cockroach Labs 近日推出矢量搜索功能,旨在使客户能够访问和操作非结构化数据,以训练生成式人工智能 […]
-
如何使用数据治理成熟度模型
如果没有强大的数据治理,数据就无法产生有价值的见解以及改善决策。数据治理成熟度模型可帮助企业评估当前的成就水平 […]