【问题标题】:Comparing multiple columns in a table: Regression Testing比较表中的多个列:回归测试
【发布时间】:2018-01-11 22:51:09
【问题描述】:

我目前正在执行回归测试,并想编写一个查询来自动比较两个表之间的列中的值。希望将来也能自动化此功能。

基本上检查每个单元格。

我们目前正在使用基于 Oracle 和 MSSQL 的环境。

例如

Table A:

Column 1 |  Column 2 | Column 3
  540        EQUITY    10-09-12

Table B:

Column 1 |  Column 2 | Column 3
  330        CASH      10-03-11

我们将不胜感激。

【问题讨论】:

  • 你想比较什么?表 A 和 B 中 column1、2 和 3 之间的所有值?
  • 我不清楚。如果您正在进行回归测试,这是否意味着这两个表是由两个版本的查询(或应用程序等)生成的,并且您想检查这两个表是否相同?你不检查“每个单元格”(这实际上并不意味着什么);您检查两个表是否具有相同的行,如果可能重复,则两个表的每一行的“副本”数量是否相同。那是你需要的吗?简单易做,但请先确认问题需求。

标签: oracle testing compare regression


【解决方案1】:

我们的测试人员发现对此类比较有用的最简单查询之一是使用MINUS 运算符。

SELECT COUNT(*)
FROM   ((SELECT *
         FROM   tableA
         MINUS
         SELECT *
         FROM   tableB)
        UNION ALL
        (SELECT *
         FROM   tableB
         MINUS
         SELECT *
         FROM   tableA)) ; 

这告诉您有多少行在 TableA 中,而不是在 TableB 中,并且在 TableB 中,而不是在 TableA 中。 如果两个表具有相同的结构并且您尝试仅比较值,则此方法有效。

您可以编写一个动态 PL/SQL 块来检查您需要在循环中比较并生成报告的所有表的计数。

您还可以在ToadSQL Developer 中找到比较实用程序,它们也可以比较表结构。例如:- 如果 columnA 在 TableA 中,在 TableB 中缺失等,您可以生成报告。

如果表格很小,你也可以使用外部文本比较工具,例如Beyond compareWinmerge

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多