1

有没有一种有效的方法来查询哪些测试用例发现了最多的缺陷?

我不认为你可以在测试用例上找到缺陷,而且看起来你不能在测试用例上查询缺陷(该字段在那里但不可查询)。

因此,如果您想找出哪些测试用例发现的缺陷最多,唯一的方法就是查询所有缺陷,然后在客户端统计测试用例。

有没有更好的办法?

4

1 回答 1

1

我也看不到在 TestCases 上查询缺陷的方法。有一个 WorkProduct 字段,但它旨在指向导致创建 TestCase 的故事(或缺陷)而不是您想要的。您想检查缺陷上的 TestCases 字段。不幸的是,Defects 上的 TestCases 字段在我们标准 WSAPI 的查询表达式中不可用。但是,您可以将其包含在我们 Lookback API 的查询中。

此查询将返回提及一个或多个 TestCases 的所有缺陷:

{
    "find":{
        "_TypeHierarchy":"Defect",
        "TestCases":{"$exists":true},
        "__At":"current"
    },
    "fields":["ObjectID","TestCases"]
}

这会给你这样的结果:

[
    {
        "ObjectID": 1412057460,
        "TestCases": [
            1431813466
        ]
    },
    {
        "ObjectID": 1445019668,
        "TestCases": [
            1445020483
        ]
    },
    {
        "ObjectID": 2021743865,
        "TestCases": [
            2844922903,
            2844882838
        ]
    },
    {
        "ObjectID": 2047435117,
        "TestCases": [
            2082930376
        ]
    },
    {
        "ObjectID": 2458916959,
        "TestCases": [
            2082930376
        ]
    }
]

但这仍然不是你想要的。您仍然需要找到最大值和具有该最大值的 TestCases 列表。这段代码就是这样做的。该代码的关键行是:

counts = {}
for r in results
  for t in r.TestCases
    unless counts[t]?
      counts[t] = 0
    counts[t]++

max = Math.max.apply({}, (value for key, value of counts))
testCasesWithMaxDefects = (key for key, value of counts when value is max)

alert("Test Case(s) with the maximum number of defects (#{max}) is(are) #{testCasesWithMaxDefects}")

按照链接查看等效的 JavaScript。

于 2013-01-22T13:20:41.420 回答