ロシアの動画
静的コード分析
→ https://youtu.be/nz1ZmHArPX4
作成者:Artyom Koshelev
高品質のコードのコンポーネントは、わかりやすさ、シンプルさ、アーキテクチャです。 このビデオでは、静的分析とは何か、どのようなデバイスであるか、どのツールを使用するかについて説明しています。 動的および静的分析の機能、長所、短所について質問があります。 人気のある静的解析ツール、特にSonarQubeが検討されています。
コード衛生のような静的分析
→ https://youtu.be/YNrr_mMgEDU
投稿者:Andrey Karpov
DotNext 2015モスクワ会議のビデオ。 このレポートでは、エラーを検出する方法、静的分析の方法論、コード分析ツールの正しい使用方法と誤った使用方法について説明しています。 著者はまた、開発者にとって誤解を招く可能性のある静的分析に関する神話を引用しています。 ReSharper、PVS-Studio、Visual Studio SCAなどのツールを使用して特定されたオープンソースプロジェクトのエラーの例を示します。
C ++の静的分析とパフォーマンス分析
→ https://youtu.be/6m1KcWxWDNg
著者:アレクサンダー・ネヘルスキー、エフゲニー・ブッシュティレフ、ニキータ・カクエフ、ニコライ・ダコノフ。
カスペルスキーの本部で行われるCoLaboratoryイベントで発表されたレポートの記録。 ビデオでは、C ++コードの静的分析とプログラムパフォーマンスの分析について説明しています。 とりわけ、著者は、コードを静的分析に適したものにする方法、誤検知に対処する方法、および独自のチェックを通じてClang Static Analyzerの機能を拡張する方法を教えています。
最新の静的コード分析:できること、できないこと
→ https://youtu.be/aQaJs7PcJao
投稿者:パベル・ベリコフ
C ++ CoreHard Winter 2017カンファレンスからのビデオ:著者は、静的アナライザーが登場してから現在までに学んだことを示しています。 さまざまな分析方法が検討され、それらがどのように表示され、どのようなエラーが彼らの助けを借りて見つけることができます。 このビデオでは、オープンソースプロジェクトで見つかったエラーを分析し、静的アナライザーが「ランター」や他のツールとどのように異なるか、コード分析に加えてどのような問題を解決するかについて説明します。
静的コードアナライザーでのデータフロー分析の仕組み
→ https://youtu.be/nrQUpGM9vYQ
投稿者:パベル・ベリコフ
Conference CoreHard Spring 2018のビデオ。データフローの分析(データストリーム)-コンパイラ、リンター、IDEなどのさまざまな開発ツールで広く使用されているプログラムのソースコードを分析する技術。 例として静的アナライザーの開発を使用して説明します。 分類とさまざまな種類のデータフロー分析、相互に補完する関連技術、およびその開発中に発生する問題、およびC ++が分析しようとする際に私たちに提示する驚きを考慮してください。 レポートでは、このテクノロジーを使用して実際のプロジェクトで見つかったいくつかのエラーを分析します。
静的アナライザーを使用するシナリオ
→ https://youtu.be/k9zjmg7spEA
著者:ヴァレリー・イグナティエフ
作成者が静的アナライザーを使用するシナリオを検討し、起こりうるエラーに対して警告するSPB .NETミーティングからのレポート。 静的解析用の商用ツールについても簡単に説明します。
C ++抽象構文ツリー内のlang-Tidyジャーニー
→ https://youtu.be/6azelG0PbAs
著者:ユーリ・エフィモチェフ
会議CoreHard Summer Conf 2016のビデオ。Clangファミリのライブラリは、開発者に、抽象構文ツリー(AST)の分析と分析に基づいてさまざまなツールを実装するための幅広い可能性を提供します。 特に、Clangの作成者は、強力な静的コードアナライザーであるClang-Tidyなどのツールをリリースしています。 ビデオでは、C ++の開発プロセスでこのツールがどのように使用されるか、および独自のチェックを追加する方法について説明しています。 その過程で、AST for C ++の興味深い機能の分析があります。
すべての静的アナライザーが同等に役立つわけではありません。
→ https://youtu.be/axwoBjT3R-M
投稿者:ウラジミール・コシェレフ
DotNext 2016 Spbカンファレンスのビデオ。 レポートは、ガイドラインの違反、コピーアンドペーストのエラー、およびソースコードのタイプミスを探す一般的なツールに焦点を当てます。 一連のオープンソースプロジェクトでこれらのツールを使用した結果と、比較に使用した手法について説明します。 以下は、NullReferenceExceptionやリソースリークなどのより複雑なエラーとその検出方法です。 Coverity Preventなどの純粋な静的分析と、IntelliTest(Pex)などの静的-動的分析の両方が、このようなエラーの検出に役立ちます。
SSDLのコンテキストでの静的コード分析
→ https://youtu.be/30re90uJSjc
著者:イワン・ヨーキン
PHDays VIフォーラムからのビデオ。 主要なファーストトラックは、QIWIで静的分析セキュリティツールを実装した経験、開発者が直面した困難について語っています。 彼は、「クランチ」の作成やコードのリファクタリングなどの問題、およびクライアントと開発者の意見が異なる場合の対処方法を分析します。 彼は、スキャナーの起動前後に読み取りおよび書き込みが必要なコードの行数を教え、発見された脆弱性と見逃された脆弱性の概要を提供します。
静的JSコード分析
→ https://youtu.be/F7FtAxUHd54
著者:アントン・クリノフスキー
多くの開発者は、リンター、ミニファイアー、またはバンドラーで作業する必要がありました。 何らかの方法で、彼らはそれを起動せずにコードを操作します。 このようなツールの内部で機能する魔法は静的コード分析と呼ばれ、著者はこのビデオでそれについて説明します。JSコードを解析する方法と方法。 それを回収する方法; JSコードと連携する独自のJSコードを作成するときに、これによってどのような機会が与えられ、どのような妨害が発生する可能性があります。
英語の動画
静的分析とは何ですか?
→ https://youtu.be/POvX4hYIoxg
投稿者:Matt Might
静的アナライザーを使用すると、開発者はプログラムを開始せずにプログラムの動作を評価および予測できます。 一度最適化のみに使用されると、急速に成長し、セキュリティや自動並列化などの分野で知られるようになりました。 著者は、抽象解釈のプリズムを通して、静的分析の知人ツアーを実施します。
静的コード分析:すべてのコードでエラーをスキャンします
→ https://youtu.be/Heor8BVa4A0
投稿者:Jared DeMott
著者は静的コード分析について議論し、その助けを借りてエラーを検出して修正する方法を検討します。 このレポートでは、パターンマッチング、手順とデータフローの分析、および統計分析の問題を提起しています。 メモリの破損、バッファのオーバーフロー、バッファの読み取り中の範囲外、コマンドの挿入、XSSおよびCSRFスクリプト、不適切な構成など、一般的なソフトウェアの脆弱性の例も含まれています。
静的コード分析:エラーとスローダウンを未然に防ぐ
→ https://youtu.be/VxeC7WFfg3Q
投稿者:Vinny DaSilva
Unit 16 Los Angelesフォーラムからの会議。 著者は、静的分析ツールを使用して開発プロセス中にコードの品質を改善する方法、開発チームの特定のニーズとワークフローに合わせて静的コード分析を構成する方法、および開発者に継続的なフィードバックを提供するための継続的統合システムとの組み合わせ方法を説明します。
コードをより安全にしましょう! -安全な開発ライフサイクルと静的コード分析の概要
→ https://youtu.be/DyWpRmhGnRI
投稿者:Jason Cohen
製品、セキュリティサービス、企業、セキュリティ証明書、およびこのトピックに対する一般的な関心の指数関数的な成長にもかかわらず、新しいセキュリティ脆弱性は毎日公開されています。 この領域にベストプラクティス、開発ライフサイクルの原則、および静的コード分析を実装すると、一般的なセキュリティ問題の可能性を大幅に減らすことができます。 入力処理、クロスサイトスクリプティング、バッファオーバーフロー、およびその他のタスクは、引き続き大きなセキュリティ上の懸念を引き起こします。 静的コード分析は、コードが開発者の手に渡る前に、これらの目に見えない脆弱性の多くを見つけるのに役立ちます。 ビデオでは、セキュリティライフサイクルの開発における一般的なベストプラクティスと、それらを最新のコード開発スキームに統合する方法について説明しています。
静的コード分析を使用したバグ追跡
→ https://youtu.be/Sb011qfbMkQ
投稿者:Nick Jones
BSlidesLondon 2016カンファレンスのビデオ。著者は、自動化された分析方法を使用して、高速スクリプトから商用アナライザー、オープンソースツール、ユーザーソリューションまで、ソースコードレベルでアプリケーションのセキュリティのエラーや欠陥を特定する多くの可能性について語ります。 これらのメソッドを継続的インテグレーションシステムで使用する方法、および開発サイクルの最初の段階でエラーを検出する方法を検討します。
(無料の)静的解析の現在の状態
→ https://youtu.be/sn1Vg8A_MPU
投稿者:ジェイソン・ターナー
CPPCON2015カンファレンスのビデオ。 C ++で利用可能な現在利用可能な無料の静的アナライザーについて説明します。 著者は、これらのツールがどのエラーをキャッチできるのか、どのエラーを逃すのか、そして静的解析を通常のアセンブリプロセスの一部とすべき理由について話します。
静的解析とC ++:リント以上
→ https://youtu.be/rKlHvAw1z50
投稿者:Neil MacIntosh
CPPCON2015カンファレンスのビデオ。 静的分析では、開発の初期段階で単純なエラーだけでなく隠れた複雑なエラーを見つけ、生産性を向上させる機会を特定し、統合コーディングのスタイルを改善し、ライブラリとAPIを適切に使用できます。 このビデオでは、この目的のための静的解析ツールについて説明します。 大規模な商用コードベースでの複雑な分析ツールの経験からの具体例を示します。
Clang静的解析ツールで友達を作る
→ https://youtu.be/AQF6hjLKsnM
投稿者:Gabor Horvath
CPPCON2016カンファレンスのビデオ。 このレポートは、オープンソースC ++の静的分析ツールの概要を提供します。 Clangに基づいたツールに重点が置かれています。 そのようなツールのさまざまな開発方法を理解することは、より使いやすい静的コードアナライザーを作成し、誤検知の原因を理解するのに役立ち、現在利用可能なツールの制限も示すため、非常に役立ちます。 著者は、それらを使用してワークフローに統合する方法に関する簡単なトレーニング資料を提供します。
コンパイル時および実行時にClangでバグを見つける
→ https://youtu.be/kkokHPKlhzQ
投稿者:ベルンハルト・マークル
ACCU 2016カンファレンスのビデオコード分析と検証は、ソフトウェアプロジェクトのプログラミングと品質保証においてますます重要になっています。 特にC / C ++などの言語では、エラーにより未定義の動作やメモリリークが発生する可能性があります。 これには静的解析ツールが役立ちますが、プログラムの実行中に発生する問題を検出することは困難です。 このレポートは、コンパイル時(静的アナライザーを使用)と実行時(サニタイザーを使用)の両方でバグを検索するためのClangの機能の使用を示しています。 両方のアプローチを組み合わせることにより、ソフトウェアの品質が向上します。
ソースコードの静的分析。 次世代
→ https://youtu.be/W_xIm5Djnpk
投稿者:James Croall
Devoxx 2016カンファレンスのビデオ:「リンター」や輝かしいスペルチェックの時代は終わりました。 現在、ソースコードの静的分析は正確で信頼性が高く、人間の目には見えない並列プログラムで複雑なコーディングの欠陥を見つけることができます。 このレポートでは、オープンソースプロジェクトで、Coverityソフトウェアを使用している開発者が、Java言語のクラッシュとセキュリティの欠陥につながる重大なエラーをどのように見つけて修正したかについて説明しています。
静的解析は今日私のコードを保存しました
→ https://youtu.be/TelqURPdQmQ
投稿者:Damien Seguy
PHP UK Conference 2017のビデオ。静的分析ツールは、PHPコードを実行せずにチェックします。 完全に自動化されているため、コードのレビュー、プログラミングのベストプラクティスへの準拠、PHPの次のバージョンへのコードの準備が可能になります。 PHP 7では、コードを監査する機能が大幅に拡張されました。ASTおよび戻り値のタイプのおかげで、より詳細な分析を行い、エラーを防ぐことができます。 このビデオでは、著者は静的解析ツールの現在の状態を調べ、それらが見つけることができるものを示し、またそれらを開発サイクルに統合する方法を示します。
Pythonの静的コード分析
→ https://youtu.be/mfXIJ-Fu5Fw
投稿者:アンドリュー・ウルフ
エラー、潜在的な脆弱性、または欠陥を探すためにコードベースを確認するのに時間がかかる場合があります。 静的分析により、コンピューターがこれを行うことができます。 このビデオでは、静的コード分析を使用して、早い段階でバグを検出し、Pythonのコード品質を改善する方法を示します。
アブレーションを使用した静的解析の追加
→ https://youtu.be/wHIlNRK_HiQ
投稿者:ポール・メタ
BH USA 2016 Conference。アブレーションは、進行中のプロセスから情報を抽出するために設計された静的分析用の追加ツールです。 次に、この情報は逆アセンブリ環境にインポートされ、そこで仮想呼び出しの解決、実行可能コードの領域の強調表示、およびスクリプトの視覚的な区別に使用されます。 アブレーションの目標は、最小限の費用またはユーザーの関与で静的分析を拡張することです。 アブレーションを使用すると、シナリオを簡単に比較して、さまざまなシナリオを強調できます。 これは、一致するデータだけでなく、実行可能コードを比較することで実現されます。 ビデオでは、紛らわしい秋のシナリオと元のシナリオの比較についても説明しています。
おわりに
一部のビデオでは静的解析のトピックが重複する可能性がありますが、各コードベースは一意であり、開発者の経験は他の開発者の経験と異なる場合があります。 著者は、静的分析ツールを使用した方法論と経験の知識を聴衆に提供し、同じミスを犯さず、それらを見つけて修正するのに時間と神経を浪費しないようにします。 静的解析の分野は活発に開発されており、必然的に、一部のルールは廃止され、新しい診断と標準が登場します。 したがって、検出された欠陥のリストまたは総合的なテストに基づいてアナライザーを比較することは意味がありません。 ツールを比較する唯一の方法は、コードでツールを実行し、ニーズと期待に最適なアナライザーを確認することです。
その他の資料
興味深いと思われる静的コード分析に関するビデオへのリンクを送信できます。この記事の最後にそれらを追加します。
この記事を英語圏の聴衆と共有したい場合は、翻訳へのリンクを使用してください:Ekaterina Milovidova。 静的コード分析に関するビデオ
記事を読んで質問がありますか?
多くの場合、記事には同じ質問が寄せられます。 ここで回答を収集しました: PVS-Studioバージョン2015に関する記事の読者からの質問への回答 。 リストをご覧ください。