最近まで、私たちはPVS-Studio製品の開発と販売に専念していました。 次に、新しいサービスを提供することを考え、決定しました。通常のコード監査です。 彼女についてお話します。 この記事は、マネージャーとチームリーダーを対象としています。 あなたの気分を損なうことなく、マイナスにならないように、私はプログラマーにこの記事を読まないようお願いします。
製品としての静的解析の問題
静的分析ツールには、心理的な不快感を引き起こすいくつかの欠点と、実際の欠点があります。 多くのマネージャーはすべてを完全に理解しており、全体として静的分析が有益であるため、不便を我慢する準備ができています。 残念ながら、静的分析ツールの導入はプログラマーによって否定的に満たされる可能性があります。 静的分析の通常の使用を販売して実装することが難しい場合があるため、ツールではなくサービスを販売することにしました。
開発者が静的分析ツールを否定的に認識できる理由の最初に調べてみましょう。
- プログラマーは、静的分析ツールを試してみると、実際のエラーはほとんど見られず、多くの誤検知( 説明 )を見ています。 開発者には時間がなく、静的分析の方法論の詳細に立ち入りたくありません。 彼は多くの時事問題を抱えています。 したがって、彼はツールが役に立たないとすぐに判断し、以前の問題に戻ることを目指しています。 幸いなことに、これはそれほど怖くない。 静的分析の主な利点は、1回限りのチェックではなく、定期的な使用であることをプログラマーに説明できます。 良い例えは、コンパイラの警告です。 結局のところ、彼は年に数回それらを含めませんが、常に彼らと働きます。
- それでも、PVS-Studioは試用版の実行中であっても、コード内の実際のエラーを見つけることができます。 このため、残念ながら、血の敵に変わる可能性があります。 批判に耐えられない人もいます。 これがプログラムの出力であっても。 そのような結論は、論理的な結論と、時には私たちに降りかかる否定性の両方によってなされます。 外部から理解することは困難です。 コードにエラーが含まれている場合は、会社にとって有益です。 しかし、間違いを犯した人にとっては、これは不快です。 彼は見せませんが、彼自身ではなく、誰かが間違いを見つける状況を無意識に避けようとします。 これは、静的解析を使用しなくすることで実現できます。 チームワークの観点からの不合理な決定。しかし、その人はより快適に感じます。 開発部門の一部の責任者が診断警告の分析の役割を果たすのは、この妨害行為によるものです。 そのような状況では、プログラマはどこにも行けません。 この段落を読んだプログラマは激怒します。 だからこそ、私はこのテキストを読むことを勧めませんでした:)。
- 静的解析には時間がかかるようです。 注目に値するのは、人がアナライザの設定と定期的な作業に定期的に費やす時間です。 しかし、コード分析中に見つかったタイプミスをすばやく排除することによって、どれだけの時間と労力が節約されるかは完全に理解できません。
- 心理的な不快感から実用的な不便さへと移行しましょう。 多くの場合、プログラマーは静的コードアナライザーが何を伝えたいのか理解していない。 残念ながら、PVS-Studioには、なぜ間違いがあるのかを説明する人工知能がありません。 これは大きな問題です。 プログラマーのせいではありません。 アナライザーのメッセージを理解するには、時間と経験が必要です。 その結果、PVS-Studioの機能は過小評価されたままです。 サポートでコミュニケーションをとることでよくわかります。 人々は、1つまたは別の誤検知に会ったと書いて、それを修正することを申し出ます。 明確化の過程で、これは本当の間違いであることがしばしば判明し、開発者はそれに気づかず、そのような状況が起こり得るとさえ仮定することさえできませんでした。 これは悲しいです。 結局のところ、私たちは私たちに書いた人について話している。 多くの実際のエラーは認識されておらず、誤検知としてマークされていると想定できます。 ちなみに、このような災害は静的アナライザーだけではありません。 コンパイラの動作でさえ間違って解釈されます( 例 )。
- 誤検知。 残念ながら、彼らはそうであり、そうであり、そうである。 これが静的コード分析方法論の本質です。 誤検知は、コードを改善するか、設定を使用して抑制することで対処できます。 いずれにせよ、これは仕事であり、対処するのは面白くありません。 さらに、経験を積むには再び時間がかかります。 誤検知は製品の印象を損ないます。 しかし、PVS-Studioを製品として販売しているので、それについては何もできません。
ご覧のとおり、静的分析の評価と定期的な分析の両方の使用を妨げる客観的および主観的な理由がいくつかあります。
マネージャーに回避策を提供することを決定しました。これにより、作業で静的コード分析の方法論を迅速かつ効率的に定期的に使用できるようになります。
新しいオファー:監査
監査プロセスとその利点がどのように構築されるかを説明します。
プロセス:
- コードを渡すことができるNDAに署名します。
- 契約を締結します。 年間契約に焦点を当てています。 ただし、常に最初から試したいと思うでしょう。 したがって、3か月のトライアル契約を締結するオプションが可能です。 3ヶ月未満の間、契約をすることは無意味です。 プロジェクトをコンパイルする方法、アップデートを自動的にダウンロードする方法、チェックする方法、アナライザーを設定する方法、管理者がレターを禁止しないようにする方法などを学ぶ必要があります。 これらの問題はすべて解決されますが、1か月が経過します。 また、協力のメリットを評価するには、少なくとも2か月は必要です。
- 最初の段階で、当社の従業員はアナライザーによって発行されたすべての一般的な診断メッセージを調べ、見つかった欠陥に関するレポートを提供します。 その後、新しいコードの毎日の監査が既に開始されます。
- 献身的な経験豊富な従業員がプロジェクトに毎日関与しています。 何かが壊れると、プロジェクトアセンブリが修復されます。 そして最も重要なことは、分析の結果をスキャンします。 彼がコード内で疑わしい場所を見つけた場合、彼はあなたに通知します。 同時に、彼は、警告につながるコードを作成した従業員の名前を通知できます。
- エラーが明らかでない場合は、従業員が説明し、最適な修正方法に関するアドバイスも提供します。
監査の利点:
- PVS-StudioのLinuxバージョンがあるかどうかを気にする必要はありません。 オペレーティングシステムとコンパイラに合わせてアナライザーを適合させることは私たちの仕事です。 開発に特殊なものを使用しない場合は、コードを確認できます。
- 従業員は、意識的または無意識的に定期的なコードチェックを妨害することはできません。 彼らはどこにも行きません。
- 間違いを探すためのお金を得る。 これは、アナライザーの警告を慎重に処理することに関心があることを意味します。 プログラマーは、エラーをエラーではなく、または明らかに悪いコードを変更するのが面倒です。 監査の場合、すべてが表示されます。 PVS-Studioが検出したエラーは隠されないため、ツールの価値が確認されます。 利点は、診断メッセージを慎重に分析することです。
- プログラマーは虚偽のメッセージを処理しません。 この場合、誤検知を排除するためにコードを変更する必要はありません。 コード内の実際の問題または明らかに悪いコードに関する情報のみを取得します。 誤検知は私たちが処理できる問題です。 プログラマーの夢が実現します-誤検知をほとんど起こさないツールが手に入ります!
- 発見された欠陥に関する情報は、特に危険なコードを書いたプログラマーの頭に浮かびます。 プログラマは自分のコードを簡単に修正できます。 マネージャーは全体像を見るでしょう。
- 静的アナライザーの仕組みをよく理解しています。 そのため、警告の理由を理解するのに役立つ追加のコメントをアナライザー診断メッセージに提供することができます。 これは非常に重要なポイントです。 真のエラーが誤って誤検知としてフラグ付けされることはありません。
- 必要に応じて、監査を実施するスペシャリストは、コードを改善するための一般的な推奨事項を提供できます。 また、会社が使用するコーディング標準の改善にも役立ちます。
監査の欠点:
- コードの欠陥に対する応答が遅くなります。 最も効率的なモードは、コンパイル直後にコードをチェックすることです。 PVS-Studioには、このための自動分析モードがあります 。 監査の場合、1日に1回レポートを受け取ります。 もちろん、これも非常に優れていますが、まだ遅れています。
価格
100,000摩擦で1か月の監査を見積もります。 経済的です。 数えましょう。
自分でコードを監査するには、まずPVS-Studioライセンスを購入する必要があります。 第二に、高額なスペシャリストがスタッフに現れ、定期的にプロジェクト分析に従事し、分析レポートを調査し、プログラマーにエラーを報告し、アドバイスをします。 簡単にするために、そのような専門家はまだ見に行かなければなりません。 別のタスク。
ライセンスの購入、資格のある新しい従業員の給与、および従業員が追加のオーバーヘッドコスト(給与税、オフィススペース、テストを実行するための強力なコンピューター)を必要とするという事実を考えると、1か月に10万人を満たすことはできません。
したがって、リモート監査を行うと、会社のコストが安くなるだけでなく、実装がはるかに簡単になります。 彼らはあなたのためにすべてを行います。 ソースへのアクセスを提供し、コードで見つかったエラーに関する情報を分析するだけです。
連絡先
定期的なコード監査に興味がある場合は、 フィードバックページまたは電子メール( support@viva64.com)を使用してご連絡ください 。