今月のバグ:PC-LintからPVS-Studioへのリレーレース

最近、2016年のオープンC ++およびC#プロジェクトのトップ10エラーに関する2つの記事を公開しました。 読者はこの記事を気に入っており、これが考えを促しました。毎月そのようなTOPを作ってみませんか? 実際、私たちのサイトにはエラーの巨大なデータベースがあり、それは適切に構造化されており、そこから特定の期間に見つかった最も興味深いバグを選択できます。 この記事では、新しいセクションの「今月のバグ」と、エラーのリストを準備したときから何を進めたかについて説明します。



写真1






Gimpel Softwareにはすでにそのようなセクションがあり、私たちはこのアイデアを借りたと言う人がいるかもしれません。 そうではありません。 共通の名前しかなく、毎月特定の特定のバグがあります。



そもそも、Gimpel Softwareの月のバグの診断番号は実際に存在しますが、以下のコードは面白い説明を持つタスクとして人為的に作成されています。たとえば、「サンタと彼のエルフはクリスマス配信システムを自動化しますが、いくつかのコードのアクションが予測不可能な方法で発生する原因となったミス、または「:」ショーン・オフラハティは、パブで毎年恒例の聖パトリックの日のお祝いプログラムを書いたとき、少しほろ酔いだったかもしれません。 彼はそれを完了しませんでしたが、まだ小さな問題があります。」 すぐにこのバグを自分で見つけることをお勧めします。以下で、自分自身をチェックして問題が何であったかを確認できます。



数年にわたってテストしたオープンソースプロジェクトを含む実際のエラーを取りました。 そして、彼らは最も準備の整った読者だけでなく理解できる明白なバグを選択しようとしました。 たとえば、ほとんどすべてのプロジェクトやさまざまなタイプミスにある、みんなのお気に入りのコピー&ペースト。 エラーコードの一部に加えて、PVS-Studioがそれを検出したことの助けと、問題自体の説明を含む診断も提供されます。 以下に、このプロジェクトのチェックに関する記事へのリンクを示します。この記事では、含まれている他のバグを確認できます。



Gimpel Softwareの公式ウェブサイトに書かれているように、彼らの最初の「今月のバグ」は1991年3月に発見され、リストは21年間成長し続けました。 かつては非常に人気があり、よく宣伝されていたPC-Lintでした。 2012年以降、このセクションの更新は停止しましたが、開発者は「今月のバグ」が将来復活することを望んでいます。



その間、これは起こりませんでした。いわば、PC-Lintからバトンを取り出し、 ブラックジャックで独自の「今月のバグ」を作成することにしました。







写真3








そこで、2014年1月から2017年3月までに確認した多数のプロジェクトを調べ、C#のサポートが2016年にのみ始まったため、C / C ++言語では39、C#では15の興味深いエラーが選択されました。 更新されたバグテーブルは、このリンクhttps://hownot2code.com/bug-of-the-month/にあります



前述したように、このセクションをコンパイルするために、既存のエラーデータベースと定期的に更新される検証済みのオープンソースプロジェクトのリストを分析しました 。 おそらく、これらの資料は読者にとっても興味深いものであり、同じ間違いをしない方法に関する推奨事項の形で使用でき、ソフトウェアの信頼性の向上に関する研究に役立ち、コーディング標準の開発に貢献できるためです。



これらのエラーの大部分(特に大規模なプロジェクトでのエラーの存在)は、実際には、特に数十万個ある場合に、実際にすべてのコード行を常に注意して制御できるとは限らないという事実によって説明できます。 これは、コピー/貼り付けエラー、未定義の動作、nullポインターの逆参照、タイプミス、および静的コード分析で処理できるその他のさまざまなバグが発生する場所です。



このようなエラーを減らし、コードの品質を向上させるために、プロジェクトでPVS-Studioをダウンロードして使用することをお勧めします。 おそらく、今月の面白いバグを見つけることができます。その後、開発者のコ​​ミュニティにそのようなエラーを知らせ、そのようなエラーからそれらを保存することができます。 それまでの間、有名なオープンソースプロジェクト( http://q.viva64.com/)で自分でエラーを練習してみてください。



ご注意 PVS-Studio 6.14の最近リリースされたバージョンでは、Visual Studio 2017のサポートが導入されました。C#アナライザー用のRoslyn 2.0 / C#7.0( バージョン履歴を参照)。



ようこそ: 今月のバグ!











この記事を英語圏の聴衆と共有したい場合は、翻訳へのリンクを使用してください:Ekaterina Milovidova。 今月のバグ:PC-LintからPVS-Studioにバトンを持ち込む



All Articles