0

テストするオープンソース ソフトウェアが割り当てられました。ソフトウェアには 3 つのパッケージがあり、各パッケージには 10 個以上のクラスがあり、各クラスには数十のメソッドがある場合があります。

私の質問は、構造 (ホワイト ボックス) テストを開始する前に、ソフトウェアのすべてのコード行を理解する必要があるかということです。

main() メソッドから始まるプログラム全体の流れを理解する必要がありますか?

私が取るべきアプローチは何ですか?

4

3 に答える 3

1

各メソッドが何をすべきかについての仕様がある場合: 指定された入力に対して期待される出力は何ですか? それらのメソッドの実装の詳細に入る必要はありません。通常、これは書き留めておく必要があります。

メソッドが定義済みのコントラクト (存在する場合) を満たしているかどうかを確認する単体テストを作成できます。

仕様がない場合、または最近の傾向である「UserStories」を使用している場合は、「仕様をリバース エンジニアリングする」必要があります:) 各メソッドを分析して、それが何をしているのかを理解する必要があります。次に、それらのメソッドが呼び出されている場所を確認します。メソッド呼び出しで渡される可能性のある値を把握するために。また、呼び出しメソッドから、コーナー ケースが何であるかがわかります。そして、あなたが間違いなくテストしたいもの。

....そしてゆっくりとコード全体を学びました:)

于 2015-12-01T21:49:42.877 に答える
0

テストにはいくつかの種類があります。

  • 単体テストでは、さまざまなケースの入力データで各メソッドの機能をテストします。同様に、BigInteger fact(int n)メソッドがある場合、通常の正の整数、ゼロ、負の整数、および最大/最小値に関するテストを作成する必要があります。JUnitTestNGなど、役立つライブラリがいくつかあります。
  • 統合テストは、アプリケーション全体、すべてのパッケージとクラスをグループとしてテストします。Arquillian プロジェクトを参照してください。
  • また、 Seleniumを使用してブラック ボックス テストを作成することもできます。
  • 回帰テスト、負荷テストなど、より多くの種類のテスト。これは QA エンジニアの仕事です。

ソフトウェア業界の暗黒時代の後、コミュニティはついにいくつかの優れた単体テストの実践にたどり着きました。

  • コード カバレッジ。コード カバレッジ メトリクスがなければ、私たちは洞窟に住んでいるでしょう。
  • フォールト挿入は、より堅牢で安定したソフトウェアの構築に役立ちます。
  • アプリケーションの残りの部分に悪影響を与えることなく、より具体的なテストを作成するための幅広いモックの使用。
于 2015-12-01T22:18:48.480 に答える