Whiteboxテストの計画方法
質問
私はWhiteboxテストの世界に比較的慣れていないので、現在取り組んでいる1つのプロジェクトのテスト計画を設計するのに役立ちます。現時点では、テスト可能なコードを探しているだけで、そのためにいくつかのユニットテストを書いています。私はどういうわけか、それはそれをするべき方法ではないと感じています。このプロジェクトをテストするために自分自身をどのように準備するのが最善かについてアドバイスをいただけますか?使用できるツールまたはテストプランテンプレートはありますか?使用されている言語は、違いを生む場合はC ++です。
解決
ホワイトボックステストの目標の1つは、コードステートメントの100%(またはできるだけ近い)をカバーすることです。 C ++コードカバレッジツールを見つけることをお勧めします。これにより、テストが実行されたコードと見逃したコードを確認できます。次に、できるだけ多くのコードがテストされるようにテストを設計します。
別の提案は、statmentの境界条件を、ループの場合は、ループなどの境界条件を調べ、これらを「灰色」領域、偽陽性、偽陰性についてテストすることです。
また、テストを設計して、重要な変数のライフサイクルを調べることもできます。彼らの定義、使用、および破壊をテストして、それらが正しく使用されていることを確認してください:)
あなたを始めるための3つのアイデアがあります。幸運を
他のヒント
現時点では、テスト可能なコードを探しているだけで、そのためにいくつかのユニットテストを書いています。私はどういうわけか、それはそれをするべき方法ではないと感じています。
人々は、の主な利点の1つだと言います。テスト駆動型開発'テスト能力を念頭に置いてコンポーネントを設計することはあなたに響くことです。それはあなたのコンポーネントをよりテストしやすくします。
私の個人的な(非TDD)アプローチは次のとおりです。
- 必要な機能を理解し、実装した機能を理解します:「アプリオリ」の両方(つまり、ソフトウェア機能仕様を読み取り/知ること)、およびソースコードを読み取り、機能を逆転させることにより
- 実装されたすべての/必要な機能のブラックボックステストを実装してください(たとえば」内部実装をテストする必要がありますか、それとも公開行動のみをテストする必要がありますか?').
したがって、私のテストは「白い箱」ではありませんが、テスト対象の機能を逆転させることを除いて。次に、そのリバースエンジニアリング機能をテストし、役に立たない(したがってテストされていない)コードがないことを避けます。コードカバレッジツールを使用して、ブラックボックステストによってソースコードが実行されるかを確認できます。
「レガシーコードで効果的に作業」を試してみてください。 http://www.amazon.com/working-effectively-legacy-michael-feathers/dp/0131177052
「レガシー」とは、テストがないコードを意味するため、関連性があります。それはかなり良い本でもあります。
関連するツールは次のとおりです。 http://code.google.com/p/gooletest/ と http://code.google.com/p/gmock/他のユニットテストとモックフレームワークがあるかもしれませんが、私はこれらに精通しており、それらを強くお勧めします。