PVS-Studio - mesin kemajuan

Gambar 1

Tim PVS-Studio dan produk kami memberikan kontribusi besar bagi pengembangan kualitas perangkat lunak. Selain itu, selain deteksi eksplisit kesalahan dalam proyek tertutup dan terbuka, ada kontribusi tidak langsung untuk pengembangan kompiler dan alat analisis kode lainnya. Kami senang bahwa kami kadang-kadang menjadi trendsetter dan kami memutuskan untuk mencurahkan catatan kecil untuk ini di blog kami.

PVS-Studio adalah penganalisa statis untuk mendeteksi kesalahan dan potensi kerentanan dalam kode sumber program yang ditulis dalam C, C ++, C # dan Java.

Untuk mempopulerkan metodologi analisis kode statis dan alat kami, kami menulis catatan tentang verifikasi berbagai proyek sumber terbuka. Secara khusus, kami memeriksa berbagai kompiler dari waktu ke waktu. Sebagai contoh, kami memeriksa dan menemukan kesalahan dalam proyek seperti: GCC, LLVM, PascalABC.NET, Roslyn.

Kami telah berulang kali memperhatikan fakta yang menarik. Segera setelah kami memeriksa, katakanlah, LLVM atau GCC, setelah satu atau dua rilis dalam kompiler ini muncul beberapa diagnostik baru, yang bertujuan untuk mengidentifikasi kesalahan yang dapat ditemukan PVS-Studio dalam kode mereka :). Sayangnya, kami tidak menebak untuk menuliskan tanggal dan tautan ke inovasi yang relevan, jadi Anda harus mengambil kata kami untuk itu di sini. Berbagai kompiler C ++ meminjam sebagian dari diagnostik kami, dan kami percaya bahwa ini sepenuhnya normal, benar dan bermanfaat!

Selain kompiler C ++, analisa C # sekarang terhubung ke diagnostik pinjaman. Ini berarti bahwa penganalisa C # diimplementasikan dalam PVS-Studio menjadi model peran yang berbeda! Menyadari ini bagus dan hebat.

Dalam hal ini, saya dapat memperbaiki, kita dapat mengatakan, secara real time, bagaimana ini terjadi. Pada 13 Agustus 2019, kami menerbitkan artikel besar yang didedikasikan untuk memeriksa .NET Core Libraries (CoreFX). Antara lain, dalam artikel ini kami menggambarkan pola kesalahan yang terkait dengan penggunaan string yang diinterpolasi (lihat diagnostik V3138 ). Pengembang CoreFX sangat tertarik dengan publikasi kami dan mulai memperbaiki bug yang kami temukan. Dan sudah pada 14 Agustus, mereka sampai pada kesalahan yang kami temukan terkait dengan baris yang sangat interpolasi ini: Memperbaiki beberapa $ yang hilang untuk interpolasi string dalam penelusuran .

Sekarang bagian yang menyenangkan. Pada hari yang sama, sebuah tugas muncul dalam proyek Roslyn Analyzers untuk mengimplementasikan diagnostik baru " Aturan baru: String yang diinterpolasi yang kehilangan karakter $ spesial # 2767 ", yang terhubung persis dengan kesalahan yang diperbaiki di CoreFX.

Kami senang bahwa pekerjaan kami bermanfaat bagi para pengembang CoreFX dan bahwa diagnostik kami menjadi contoh bagi para pengembang Roslyn Analyzers untuk diikuti. Sangat disayangkan bahwa alat PVS-Studio tidak disebutkan di mana pun dalam diskusi. Ternyata seolah-olah mereka sendiri menemukan kesalahan ini dan muncul dengan diagnosa mereka sendiri. Tentu saja, kami akan tersanjung jika kami disebut sebagai sumber. Oh baiklah

Mengapa kami memutuskan untuk menulis tentang semua ini? Kami sangat senang, dan kami bahkan sedikit bangga dengan diri kami sendiri! Mempelajari pengalaman kami, kompiler lain menerapkan diagnostik baru, yang meningkatkan kualitas perangkat lunak yang dikembangkan secara keseluruhan. Saya mengerti bahwa kita tidak hanya memengaruhi pengembangan kemampuan penyusun untuk menemukan kesalahan. Namun, kami senang mengetahui bahwa kami berkontribusi pada proses ini.

Apakah itu mengganggu kita bahwa alat lain secara bertahap belajar menemukan kesalahan yang sama dengan PVS-Studio? Tidak. Alat kami baru saja ada dan dijual dengan alasan kami selalu berada di depan kompilator. Tugas kita adalah untuk selalu berada di depan. Kesadaran akan fakta bahwa kita terus-menerus terjebak tidak memungkinkan kita untuk rileks, dan itu menguntungkan semua orang. Selain itu, orang harus mengerti bahwa PVS-Studio tidak hanya peringatan, tetapi juga:

  • Dukungan cepat berkualitas tinggi (hanya programmer yang menjawab surat);
  • Integrasi dengan Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
  • Kemampuan untuk menggunakan keduanya secara lokal dan di cloud (Docker, Travis CI);
  • Alat untuk mengintegrasikan analisis ke dalam proyek-proyek lama yang besar (Mass Suppression);
  • Dokumentasi terperinci dengan contoh untuk setiap pola kesalahan;
  • Mekanisme untuk mengirim surat ke pengembang (BlameNotifier);
  • Pemantauan Kompiler;
  • Dan sebagainya.

Terima kasih atas perhatian anda Saya harap Anda senang dengan kami untuk PVS-Studio. Dan coba penganalisa kami untuk kontrol kualitas terus menerus dari kode proyek Anda.

Tautan tambahan:

  1. Jadwal untuk pengembangan kemampuan diagnostik di PVS-Studio .
  2. Teknologi yang digunakan dalam penganalisa kode PVS-Studio untuk mencari kesalahan dan kerentanan potensial .



Jika Anda ingin berbagi artikel ini dengan audiens yang berbahasa Inggris, silakan gunakan tautan ke terjemahan: Andrey Karpov. PVS-Studio: Mesin Kemajuan .

Source: https://habr.com/ru/post/id464413/


All Articles