Saya hanya ingin tahu apa perbedaan antara analisis kode statis dan tinjauan kode. Bagaimana masing-masing dilakukan? Lebih khusus lagi, alat apa yang tersedia saat ini untuk tinjauan kode / analisis statis PHP? Saya juga ingin tahu tentang alat yang baik untuk meninjau kode untuk bahasa apa pun.
code-quality
terminology
code-reviews
quality
Thomas Owens
sumber
sumber
Jawaban:
Ulasan kode adalah sesuatu yang dilakukan orang, analisis statis adalah sesuatu yang dilakukan mesin. Ada (kadang-kadang baik) alat analisis statis. Peninjauan kode adalah ketika seorang kolega / mentor / profesor / teman memeriksa kode Anda dan memberi Anda kritik yang membangun.
Analisis statis, di sisi lain, adalah proses otomatis di mana sebuah mesin, diinformasikan oleh apa yang ia ketahui tentang bahasa yang dianalisis (biasanya dari sistem tipe), menganalisis suatu program dan mencoba untuk memilih hal-hal yang bisa salah, tidak efisien, gaya buruk, atau tidak optimal.
sumber
Analisis statis adalah proses menganalisis perangkat lunak tanpa menjalankannya. Ini sangat bagus dan direkomendasikan, tetapi Anda harus mengingatnya
Kedua pendekatan ini menderita karena kurangnya konteks: mereka tidak tahu apa yang harus dicapai oleh sw.
Peninjauan kode dilakukan oleh pembuat kode lain, yang konon tahu dan bisa memeriksanya
Ini jauh lebih mahal dan memiliki tingkat pengulangan yang bervariasi tetapi sangat membantu.
Seperti biasa, tidak ada satu pun peluru perak yang akan memperbaiki semua bug dan menghindari semua masalah. Menerapkan - sebanyak mungkin diberikan tempat, kode, waktu, tiga bentuk pemeriksaan (statis, dinamis, lebih banyak mata (dan otak) yang benar-benar melihat kode) disarankan.
ps: Saya harus mencatat bahwa biasanya lebih baik untuk menerapkan alat dari awal. Mengubah sistem warisan adalah pengalaman yang jauh lebih tidak menyenangkan, karena positif palsu. Jika Anda mulai dari awal dan selalu bertujuan untuk menjaga alat analisis tetap bersih, Anda mungkin akan menghindari banyak masalah.
pps: untuk alat, itu tergantung pada bahasa. Di dunia C dan C ++ Anda bisa mulai dengan melihat Visual Studio itu sendiri, yang berisi alat analisis statis bawaan. Sebuah relatif lengkap daftar dapat ditemukan di Wikipedia.
ppps: Analisis statis lebih cocok untuk bahasa statis, seperti C atau C ++. Untuk Python bisa sangat sulit untuk mengatakan apakah nama yang merujuk ke daftar pada suatu titik akan merujuk ke daftar untuk sisa program, karena sifat dinamisnya. Ini tidak berarti bahwa tidak ada yang bisa dilakukan, seperti upaya JIT seperti yang ditunjukkan PyPy .
sumber
Peninjauan Kode adalah ketika otoritas senior atau khusus memeriksa kode Anda, cara pengkodean Anda, standar yang diikuti dalam kode dan khususnya tingkat logika kode
Sejauh menyangkut analisis statis, analisis perangkat lunak komputer dilakukan tanpa benar-benar menjalankan program yang dibangun dari perangkat lunak tersebut (analisis yang dilakukan pada program pelaksana dikenal sebagai analisis dinamis)
Daftar alat sesuai teknologi diberikan dalam tautan di bawah ini
Daftar Alat untuk Analisis Statis
Karenanya tinjauan kode dan analisis statis adalah istilah yang sama sekali berbeda.
sumber
Tinjauan kode adalah penilaian yang lebih kualitatif, analisis kode statis adalah penilaian yang lebih kuantitatif.
vs, fe
Sementara kesalahan nyata dapat (jelas) ada dan terdeteksi oleh SCA
sumber
Analisis statis adalah ketika artefak dianalisis tanpa dieksekusi. Meskipun dapat diterapkan pada artefak apa pun, sering kali diterapkan pada kode sumber atau kode objek dan merujuk pada penggunaan alat khusus untuk menganalisis dan mendapatkan informasi tentang produk kerja ini. Alat-alat ini menghasilkan laporan yang ditafsirkan oleh seorang insinyur untuk digunakan dalam menentukan kualitas sistem yang sedang dibangun, dan sebagai panduan untuk perencanaan pengembangan dan pemeliharaan. Wikipedia memiliki daftar alat untuk analisis statis , yang disusun berdasarkan bahasa dan dengan deskripsi singkat tentang kemampuan mereka.
Ulasan adalah evaluasi manusia terhadap beberapa produk kerja, yang bisa berupa kode. Ulasan juga dapat dilakukan pada desain atau dokumen lain juga. Idenya adalah bahwa orang yang akrab dengan produk kerja selain dari pengembang melihatnya untuk menemukan kesalahan, mulai dari masalah keamanan hingga pelanggaran standar pengkodean.
Secara teknis, tinjauan kode dapat dianggap sebagai bentuk analisis statis, karena kode tersebut tidak benar-benar dieksekusi selama tinjauan. Namun, dalam terminologi umum, "analisis statis" biasanya mengacu pada parsing mesin dari file sumber atau objek sementara "review" menunjukkan bahwa manusia adalah orang yang melakukan analisis.
sumber
Review kode adalah teknik yang berguna untuk mencium masalah dalam kode sumber tahap sangat awal. Sebagai bagian dari latihan ini, banyak masalah seperti kinerja, skalabilitas, dan standar pengkodean diidentifikasi dan diperbaiki. Ini akan meningkatkan kualitas kode.
Analisis statis digunakan untuk menganalisis metrik kualitas kode seperti kompleksitas cyclometric, indeks rawatan, kedalaman pewarisan, dan kopling kelas. Berbagai alat tersedia di pasar untuk menganalisis kualitas kode. Pengembang C # menggunakan Microsoft visual studio untuk menghasilkan laporan metrik.
sumber
analisis kode statis dilakukan oleh alat otomatis, tinjauan kode dilakukan dengan orang-orang sebelum kode tersebut dilakukan.
Alat untuk meninjau kode:
1.bandingkan tanpa
2. perbedaan perangkat lunak kontrol versi
Alat-alat ini selalu digunakan untuk menghasilkan perbedaan antara versi lama dan versi baru.
sumber