タグ付けされた質問 「software-testing」

1
ランダムテストグラフアルゴリズムの入力を生成しますか?
アルゴリズムをテストする場合、一般的なアプローチはランダムテストです。ある分布(通常は均一)に従ってかなりの数の入力を生成し、それらに対してアルゴリズムを実行して、正当性を検証します。最新のテストフレームワークでは、いくつかの制限がありますが、アルゴリズムシグネチャを指定して自動的に入力を生成できます。 入力が数字、リスト、または文字列の場合、そのような入力を簡単に生成します。ツリーはより難しくなりますが、それでも簡単です(確率的な文脈自由文法または同様のアプローチを使用)。 ランダムグラフを(効率的に)生成するにはどうすればよいですか?通常、グラフをランダムに均一に選択することは、望むものではありません。それらは接続されているか、平面であるか、サイクルフリーであるか、他のプロパティを満たしている必要があります。拒否サンプリングは、潜在的に膨大な望ましくないグラフのセットのため、次善のようです。 注目すべき有用な分布は何ですか?ここで有用なのは グラフは手元のアルゴリズムを十分にテストする可能性が高く、 効果的かつ効率的に生成できます。 ランダムグラフには多くのモデルがあることを知っているので、この点でグラフ生成に最適な洞察に感謝します。 「あるアルゴリズム」が一般的すぎる場合は、テスト中のアルゴリズムの具体的なクラスとして、最短パス検索アルゴリズムを使用してください。テスト用のグラフは、接続されており、かなり高密度である必要があります(高い確率で、または少なくとも予想)。テストの場合、最適な解決策は、最短のパスの周りにランダムなグラフを作成して、目的の結果を知ることです(別のアルゴリズムを使用する必要はありません)。

3
n個の項目をテストするとき、すべてのtサブセットを可能な限り少数のsサブセットでカバーするにはどうすればよいですか?
この問題は、ソフトウェアのテストから発生しました。問題を説明するのは少し難しいです。最初に例を示し、次に問題を一般化してみます。 AからJまでの10項目のテストがあり、同時に3項目をテストできるテストツールがあります。テストツール内のアイテムの順序は関係ありません。もちろん、徹底的なテストを行うには、アイテムの組み合わせが必要です。10C310C3^{10}C_{3} 問題はより複雑です。追加の条件として、1組のアイテムを一緒にテストすると、同じペアを再度テストする必要がなくなるという条件があります。 たとえば、次の3つのテストを実行するとします。 ABC ADE BDF 実行する必要はありません: ABD ペアA、Bは最初のテストケースでカバーされ、A、Dは2番目のテストケースでカバーされ、B、Dは3番目のテストケースでカバーされたためです。 それで問題は、すべてのペアがテストされることを保証するために必要なテストケースの最小数は何ですか? 一般化するために、n個のアイテムがある場合、sを同時にテストでき、可能なすべてのtタプル(s> tなど)をテストする必要があります。これは、必要なテストケースの最小数です。 n、s、tの項? そして最後に、必要なテストケースを生成するための良いアルゴリズムは何でしょうか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.