检查数据完整性和一致性
以下检查很重要:
1、数据是否在逻辑上井然有序。
2、表中存储的数据是否正确以及是否符合业务要求。
3、被测应用程序中是否存在不必要的数据。
4、数据是否按照用户界面更新数据的要求进行存储。
5、在将数据插入被测数据库之前,是否对数据执行了TRIM操作。
6、是否已根据业务需求规格执行了事务以及结果是否正确。
7、如果已根据业务需求成功执行了事务,则是否已正确提交数据。
8、如果终端用户未成功执行事务,数据是否已成功回滚。
9、在事务未成功执行且事务中涉及多个异构数据库的情况下,数据是否已完全回滚。
10、是否已使用系统业务需求指定的必需设计过程执行了所有事务。
登录和用户安全
登录和用户安全凭证的验证需要考虑以下事项:
1、如果出现以下情况,该应用程序是否阻止用户继续进行该应用操作
①用户名无效,但密码有效。
②用户名有效,但密码无效。
③用户名和密码无效。
④有效的用户名和有效的密码。
2、是否只允许用户执行业务需求指定的特定操作。
3、数据是否受到未经授权访问的保护。
4、是否创建了具有不同权限的不同用户角色。
5、是否所有用户都具有业务规范所要求的对指定数据库的访问级别。
6、检查敏感数据(如密码、信用卡号)是否已加密并且未以纯文本格式存储在数据库中。确保所有账户都应使用复杂且不容易猜到的密码,这是一个好习惯。
非功能测试
根据业务需求,可以将数据库测试环境中的非功能测试分为各种类别。这些测试可以是负载测试、压力测试、安全性测试,可用性测试和兼容性测试等。当涉及到非功能性测试的作用时,负载测试和压力测试有两个特定的目的。
风险量化 - 风险量化实际上可以帮助利益相关方确定所需负载水平下各种系统响应时间的要求。这是任何质量保证任务的初衷。我们需要注意的是,负载测试并不能直接降低风险,而是通过风险识别和风险量化过程提供纠正机会,并提供了可以降低风险的补救措施。
最低系统设备要求 - 我们通过正式测试观察了解,系统能够满足利益相关方正式陈述的性能期望的最低系统配置。这样可以将硬件、软件和相关成本降到最低。可以将此特定要求归类为总体业务优化要求。
负载测试
任何负载测试的目的都应清楚地理解和记录。
以下类型的配置是负载测试所必需的:
1、最常用的用户事务如果效率不高,则有可能影响所有其他事务的性能。
2、最终测试用例集中至少应包含一个非编辑的用户事务,以便可以将此类事务的性能与其他更复杂的事务区分开。
3、应包括有助于实现系统核心目标的更重要事务,因为根据定义,这些事务在负载故障中具有最大的影响。
4、应该包括至少一个可编辑的事务,以便可以将此类事务的性能与其他事务区分开。
5、在满足所有预期需求的情况下,在大量虚拟用户的情况下观察最佳响应时间。
6、对获取各种记录的有效时间的观察。
压力测试
在巨大的工作负载下给被测应用程序施加压力,直至系统出现故障。这有助于确定系统的故障点。
数据库测试期间最常见的问题:
1、为了确定数据库事务的状态,可能会涉及大量开销。
解决方案:应该组织整个过程的计划和时间安排,以便不会出现基于时间和成本的问题。
2、在清除旧测试数据之后,必须设计新的测试数据。
解决方案:应事先制定测试数据生成的计划和方法。
3、需要SQL生成器来转换SQL验证器,以确保SQL查询易于处理所需的数据库测试用例。
解决方案:SQL 查询的维护及其不断更新是整个测试过程的重要组成部分,这应该是整个测试策略的一部分。
4、上述先决条件确保了数据库测试过程的设置可能既昂贵又耗时。
解决方案:在质量和项目总工期之间应该有一个很好的平衡。
重要的负载、压力测试工具是 Loadrunner 和 JMeter。
与数据库测试有关的误解或误解:
1、数据库测试需要大量的专业知识,这是一项非常繁琐的工作
实际:有效的数据库测试为整个应用程序提供了长期的功能稳定性,因此有必要投入大量的工作。
2、数据库测试增加了额外的工作瓶颈
实际:相反,数据库测试通过找出隐藏问题,积极地帮助改进整个应用程序,从而为整个工作增加了更多的价值。
3、数据库测试减缓了整个开发过程
实际:大量的数据库测试有助于全面提高数据库应用程序的质量。
4、数据库测试可能会非常昂贵
实际:数据库测试的任何支出都是一项长期投资,这会导致应用程序的长期稳定性和健壮性。因此,用于数据库测试的支出是必要的。
最佳实践
1、包括元数据和功能数据在内的所有数据都需要根据需求规范文档对其映射进行验证。
2、需要验证由/与开发团队协商创建的测试数据。
3、通过使用手动和自动化程序来验证输出数据。
4、部署各种技术(例如因果图技术,等效划分技术和边界值分析技术)以生成所需的测试数据条件。
5、还需要验证所需数据库表的引用完整性的验证规则。
6、选择默认表值以验证数据库一致性是一个非常重要的概念,是否已为所有必需的登录事件成功将日志事件添加到数据库中。
7、计划的作业是否及时执行?
8、及时备份数据库。