1

どのテストケースが最も多くの欠陥を発見したかを照会する効率的な方法はありますか?

テストケースで欠陥を見つけることができるとは思いません。また、テストケースで欠陥を照会できるようには見えません (フィールドはありますが、照会できません)。

したがって、どのテストケースが最も多くの欠陥を発見したかを知りたい場合、それを行う唯一の方法は、すべての欠陥を照会してから、クライアント側でテスト ケースを数えることです。

より良い方法はありますか?

4

1 に答える 1

1

私も、TestCases で欠陥を照会する方法がわかりません。WorkProduct フィールドがありますが、これは、必要なものではなく、TestCase が作成される結果となった Story (または Defect) を指すことを目的としています。Defects の TestCases フィールドを調べます。残念ながら、Defects の TestCases フィールドは、標準 WSAPI のクエリ式では使用できません。ただし、ルックバック API のクエリに含めることができます。

このクエリは、1 つ以上の 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 に答える