Tim PVS-Studio dan produk kami memberikan kontribusi besar untuk meningkatkan kualitas perangkat lunak. Selain itu, selain mendeteksi kesalahan dalam proyek sumber terbuka dan tertutup, ada kontribusi tidak langsung untuk pengembangan kompiler dan alat analisis kode lainnya. Kami senang bahwa dalam beberapa kasus kami adalah trendsetter dan kami memutuskan untuk mendedikasikan catatan kecil untuk ini di blog kami.
PVS-Studio adalah penganalisa kode statis untuk mendeteksi kesalahan dan potensi kerentanan dalam kode sumber program, ditulis dalam C, C ++, C # dan Java.
Untuk mempopulerkan metodologi analisis kode statis dan alat kami, kami menulis artikel tentang pemeriksaan berbagai
proyek terbuka. Selain itu, kami memeriksa berbagai kompiler sesekali. Misalnya, kami telah menguji dan menemukan bug di proyek-proyek seperti: GCC, LLVM, PascalABC.NET, Roslyn.
Lebih dari sekali kita menemukan fakta menarik. Segera setelah kami memeriksa, katakanlah, LLVM atau GCC, beberapa diagnostik baru akan muncul di kompiler ini di berikutnya atau di berikutnya tetapi satu rilis. Dan mereka mendeteksi kesalahan yang berhasil ditemukan oleh PVS-Studio dalam kode mereka :). Sayangnya, kami belum mencatat tanggal dan tautan ke peningkatan terkait, jadi Anda harus mengambil kata kami untuk itu. Berbagai kompiler C ++ meminjam beberapa diagnostik kami dan kami pikir itu sangat normal, benar dan bermanfaat!
Selain kompiler C ++, analis C # juga sudah mulai mengadopsi ide-ide diagnostik kami. Yang berarti, C # analyzer, diimplementasikan dalam PVS-Studio, telah menjadi pondestar lain! Sangat menyenangkan dan keren untuk menyadarinya.
Dalam hal ini, saya dapat melacak bagaimana hal itu terjadi, katakanlah, secara real time. Pada 13 Agustus 2019 kami memposting
artikel besar di cek .NET Core Libraries (CoreFX). Antara lain, artikel ini menjelaskan pola kesalahan yang terkait dengan penggunaan string interpolasi (lihat diagnostik
V3138 ). Pengembang CoreFX menaruh minat pada publikasi kami dan mulai memperbaiki kesalahan yang kami temukan. Dan pada tanggal 14 Agustus, mereka menemukan kesalahan yang kami temukan terkait dengan string yang sangat interpolasi ini:
Memperbaiki beberapa $ yang hilang untuk interpolasi string dalam penelusuran .
Di sini dimulai bagian yang paling menarik. Pada hari itu juga, sebuah tugas baru muncul dalam proyek Roslyn Analyzers tentang penerapan diagnostik baru "
Aturan baru: Interpolasi string yang kehilangan $ karakter khusus # 2767 ", terkait hak untuk kesalahan, diperbaiki di CoreFX. Kami sangat senang bahwa upaya kami ternyata bermanfaat bagi pengembang CoreFX dan diagnostik kami telah menjadi panutan bagi pengembang Roslyn Analyzers. Sangat disayangkan bahwa alat PVS-Studio tidak disebutkan di mana pun dalam diskusi. Sepertinya mereka menemukan kesalahan itu dan muncul dengan ide untuk membuat diagnosa sendiri. Tentu saja, kami akan tersanjung, jika kami disebut sebagai sumber aslinya. Yah, tidak apa-apa.
Mengapa kami memutuskan untuk menulis tentang semua ini? Kami sangat senang dan kami bahkan sedikit bangga dengan diri kami sendiri! Dengan mempelajari pengalaman kami, kompiler lain menerapkan diagnostik baru, itu meningkatkan kualitas perangkat lunak yang dikembangkan secara keseluruhan. Saya mengerti bahwa kami bukan satu-satunya yang mempengaruhi pengembangan kemampuan pencarian kesalahan kompiler. Namun, kami senang mengetahui bahwa kami berkontribusi pada proses ini.
Apakah kami khawatir bahwa alat lain secara bertahap belajar menemukan bug yang sama dengan PVS-Studio? Tidak. Alat kami ada dan dijual tepat dengan alasan bahwa kami selalu di depan kemampuan kompiler. Tujuan kami adalah untuk selalu berada di depan. Kesadaran bahwa seseorang secara konstan menebus kita tidak meninggalkan kita hak untuk bersantai, dan itu menguntungkan semua orang. Selain itu, harus dipahami bahwa PVS-Studio tidak hanya peringatan, tetapi juga:
- Dukungan cepat dan berkualitas tinggi (hanya programmer yang merespons surat);
- Integrasi dengan Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
- Kemampuan untuk menggunakan alat ini baik secara lokal maupun di cloud (Docker, Travis CI);
- Alat untuk mengintegrasikan analisis ke dalam proyek-proyek besar yang lama (Mass Suppression);
- Dokumentasi terperinci dengan contoh untuk setiap pola kesalahan;
- Mekanisme untuk mengirim email ke pengembang (BlameNotifier);
- Pemantau berjalan kompilator (Compiler Monitoring);
- Dan sebagainya.
Terima kasih atas perhatian anda Semoga Anda berbagi kegembiraan kami untuk PVS-Studio.
Coba penganalisa kami untuk kontrol kualitas kode berkelanjutan dari proyek Anda.
Tautan tambahan:
- Grafik PVS-Studio dari Pengembangan Kemampuan Diagnostik .
- Teknologi yang digunakan dalam penganalisa kode PVS-Studio untuk menemukan bug dan kerentanan potensial .