像分布式 Cassandra 一样测试 NOSQL DB

软件测试 测试管理 测试创建
2022-01-15 17:36:32

有没有人致力于测试作为 NOSQL 分布式数据库的 Cassandra DB?执行此操作时需要考虑哪些重要事项?

2个回答

您真正需要感兴趣的是单独测试每个组件。

集成级别及以上的测试变得更具挑战性。如果您使用的是自动化测试,那么这些测试不能依赖于将数据放入数据库并期望它立即存在。您需要等待一个复制时间,这可能会显着减慢测试速度。虽然不太可能,但如果数据库之间的连接中断,这可能会超过 30 秒左右。

我会采用的一种方法是重点关注对每个组件进行单元测试,并模拟数据层。这将允许您确保应用程序的其余部分正常运行。

这使您可以确定数据访问层是否正常运行。为此,从 UI 驱动它的一次性应用程序将帮助您确定应用程序是否正在从 NOSQL 数据库写入和读取数据。您可能还想编写一小组集成测试来自动为您检查。

本质上,您将遇到的主要问题是数据库之间的数据复制。您还需要记住,在某些情况下,有人可以删除一个节点上的记录,而其他人可以在删除事件未复制的情况下在另一个节点上编辑它。你的应用程序处理这个吗?


刚开始玩no-sql的一种实现,所以我只能给你建议是我的猜测+实际上我不是QA工程师,所以建议不是正式的。但是,希望它会有所帮助。

那么,需要注意什么:

  • 最终一致性(使数据在写入时保持一致所需的时间是可接受的);
  • 故障安全(如果其中一个,比如说 5,节点下降,数据将保持活动状态);
  • 具有传递循环引用的方案(例如,db 如何与A -> BB -> CC -> A 之类的东西一起使用。当我尝试检索此类数据时,使用的 Db 有时会失败);

也许以后我会记得更多要检查的东西......