پرش به: ناوبری, جستجو

پنج:ارزیابی خودکار کد با SonarQube

ارزیابی خودکار با SonarQube
Rayanesh-5-esfand93.pdf
شماره پنج
نویسنده سید جمال الدین پیشوایی، دبیر علمی انجمن جاواکاپ
بازبینی و ویرایش پردیس پاشاخانلو

SonarQube یک ابزار تحلیل کد متن‌باز و رایگان است که امکانات شگفت‌انگیزی برای تحلیل ایستای کد (static code analysis)،[۱] کشف خطاها و بهبود ساختار کد ارائه می‌کند. ‬‬گاهی غفلت از امکاناتی که می‌تواند در دسترس انسان قرار بگیرد، موجب بروز حسرت عمیقی در وی می‌گردد. اگر از ابزارهای تحلیل و ارزیابی خودکار کد استفاده نمی‌کنید چنین حسرتی در انتظار شماست. این ابزارها می‌توانند ظرف مدت کوتاهی تمام کدهای پروژه شما را بررسی کرده و خطاهای ریز و درشت را استخراج کنند.

Sonar مجموعه‌ای از ابزارهای تحلیل کد مانند PMD، CPD، CheckStyle و FindBugs را در دل خود یکپارچه ساخته و ابزارهای دیگری مانند Squid را به آن‌ها افزوده است. علاوه بر این، Sonar دارای سرور، واسط وب، پایگاه‌داده و قابلیت اتصال به ابزارهای دیگر (مانند Jenkins) است که آن را در مجموع نسبت به سایر ابزارهای این حوزه متمایز می‌کند.

نحوه اجرای Sonar

برای آنکه Sonar را روی پروژه خود اجرا و با استفاده از آن متن برنامه‌های تیم خود را بررسی کنید، روش‌های مختلفی وجود دارد. از جمله می‌توانید از افزونه‌ی Eclipse یا Maven استفاده کنید. اگر بخواهید Sonar را روی دستگاه خود اجرا کنید ولی گزارش‌های آن به سرور منتقل نشود می‌توانید از حالت DryRun استفاده کنید. اگر از ابزارهای یکپارچه‌سازی پیوسته (Continues Integration) همچون Jenkins استفاده می‌کنید، می‌توانید اجرای Sonar را بر عهده‌ی آن بگذارید. در این صورت با هر تثبیت (commit) برنامه‌سازان، تحلیل کد صورت می‌گیرد و در صورت تشخیص خطا، اعضای تیم بلافاصله مطلع می‌شوند.

سرور Sonar

سرور Sonar از وجوه تمایز و برتری آن نسبت به سایر ابزارهای تحلیل کد است. شما می‌توانید در میز فرمان (کنسول)، پروژه خود را معرفی و نحوه تحلیل کد و گزارش‌دهی را مدیریت کنید. شما می‌توانید اولویت قواعد تعریف شده را برای هر پروژه مطابق نیازها تعیین کنید. Sonar بعد از تحلیل کد، گزارشی از خطاهای کشف شده، نتایج اجرای آزمون و میزان پوشش موارد آزمون (Test Coverage) ارائه می‌دهد. همچنین ارتباط‌های بین بسته‌های نرم‌افزاری و رده‌ها (کلاس‌ها) را مدل می‌کند و برخی از این ارتباط‌ها را برای رسیدن به معماری بهتر، نامزد حذف می‌کند. گزارش‌های Sonar روی پایگاه‌داده سرور آن ذخیره می‌شود و امکان مشاهده آن توسط مدیران، ناظران فنی و اعضای تیم وجود دارد.

سخن پایانی

به طور کلی برقراری نظام تضمین کیفیت، هزینه‌بر و نیازمند دانش بیشتر و استقامت در پایبندی به دستورالعمل‌ها است؛ ولی ابزار SonarQube ابزاری است که راه‌اندازی آن کم‌هزینه است؛ اما دستاوردهای پرارزشی در اختیار ما قرار می‌دهد؛ بویژه اگر آن را با ابزارهای یکپارچه‌سازی پیوسته همچون Jenkins تلفیق کنید. آنگاه کافی است که مدیران به طور دوره‌ای گزارش‌ها را مرور و وضعیت را پایش کنند.


  1. ، منظور از تحلیل ایستای کد، تحلیلی است که بدون اجرای نرم‌افزار صورت گرفته باشد. (ویراستار)