web-dev-qa-db-ja.com

検査、コードレビュー-それは本当にテストですか?

ISTQB、Wikipedia、またはその他の情報源は、検証活動(レビューなど)を静的テストとして分類しますが、その他のものは分類しません。ピアレビューと検査が実際には一種のテストであると言える場合、多くの規格は意味をなさない(たとえば、検証はテストによって行われるというISOを検討し、作業成果物のチェックによる検証を行う)-少なくとも検証のための動的なテストを言うべきではありませんか?私はQAに関する修士論文を完成させています。この分野よりも悪くて曖昧で矛盾する文献を見たことがないことを認めなければなりません。テストと静的チェック/分析に固執する必要がありますか?

ウィキペディア:静的テストは、ソフトウェアがテストされていないソフトウェアテストの形式です実際に使用。これは、動的テストとは対照的です。これは通常、詳細なテストではありませんが、主にコード、アルゴリズム、またはドキュメントの健全性をチェックします。それは主にコードの構文チェック、および/またはエラーを見つけるための手動によるコードまたはドキュメントの確認です。このタイプのテストは、コードを記述した開発者が単独で使用できます。コードレビュー、検査、ウォークスルーも使用されます。

編集:レビューなどを採用するための静的テストについて言及している多くの情報源の1つ(Googleブックで「静的テスト」を探してください):

enter image description here

5
John V

個人的には、「静的テスト」という言葉を聞いたことがありません。 「静的分析」という言葉しか聞いたことがありません。これは、作業成果物を使用せずに検査するときをいつでも指します。これには、コードレビュー、lint、FindBugs、PMD、FxCopなどのツールの使用が含まれます。

ここに私が入手できる情報源からのいくつかの情報があります:

  • ソフトウェアエンジニアリングの知識体系のガイド のセクション5(ソフトウェアテスト)は、「静的テスト」を参照していません。これは、セクション11(ソフトウェア品質)で説明されている「静的なソフトウェア品質管理手法」に言及しています。セクション11では、これらのアクティビティをサポートするために使用されているツールについて1つだけ言及しており、静的分析アクティビティは「ツールの支援の有無にかかわらず」実施できると述べています。
  • Ian Sommervilleの Software Engineering、8th Edition の用語集では、静的分析が「エラーと異常を発見するためのプログラムのソースコードのツールベースの分析」であると具体的に言及しています。ただし、22.3章では、Sommervilleは検査を「静的分析の1つの形式」と呼んでいます。 「静的テスト」への言及はありません。この本は、ソフトウェアエンジニアリングの幅広い範囲に関する標準的な参考資料の1つと見なされており、両方のIEEE認定試験の前に推奨される資料として引用されています。
  • Roger S. Pressmanの ソフトウェアエンジニアリング:実務家のアプローチ、第6版 は、静的な分析や静的なテストについて、索引やテストに関する章で参照できませんでした。
  • Steve McConnellの Code Complete、2nd Edition は、静的分析または静的テストのいずれにも特に言及していません。ただし、第30.2章には、コード品質の分析に関するセクションがあります。構文とセマンティクスを自動的にチェックするツールは、「静的ソースコードを調べてその品質を評価する」ツールと呼ばれます。与えられた特定の例は、他のソースから静的分析ツールと呼ばれることが多いLintです。

分析ツールは、製品の検証にのみ使用できます。アーティファクトの人間によるレビューは、検証と検証の両方を実行するために使用できます。ソフトウェアの実行を伴うテストは、状況に応じて、検証、検証、またはその両方になります。主な違いは、検証は間違いや欠陥の発見に関係しているのに対し、検証は、要件が顧客/ユーザーのニーズを適切に説明し、作業成果物(設計、実装、およびテスト)が要件(およびそれらが由来する製品)。

7
Thomas Owens

[〜#〜] s [〜#〜][〜#〜] qa [〜#〜] であり、テストではありません!

実際にはテストを実行しないので、なぜこれがそのように扱われ、参照されるのかと驚かれます。ただし、レビュー担当者がコードのレビューと一緒にプログラムをテストすることを期待している場合は除きます。

2
haylem

最近のコードレビューでは、時々、バグを拾うことがあります。ただし、製品の品質ではなく、コードの品質を確認することを目的としています。

しかし、静的テスト-バグを見つけることを目的としてコードをステップ実行する-が正当な手法であった時代がありました。その時は、コンパイルがVMSキューに入れられ、実行されるまで4時間待っていたときでした。次に、テスト実行をセットアップし、同じキューの後ろに配置します。または、以前は、コードをカードに印刷して、数日でテストできることを期待して、それらを手術室に持ち込みました。

それを待機する前(または、多くの場合、その間)にコードを実行するのに1時間費やすことは非常に良い考えでした。

今すぐコンパイルしてすぐに実行できるため、静的テストのメリットは長くありません。しかし、それらの日は20年未満であり、一部の私たちにとっては、アプリケーションのQAアクティビティとしてコードレビューへの参照が依然として表示されているのはそのためかもしれません。

1
pdr