Sonar

Sonar یک ابزار تحلیل کیفیت و امنیت سورس-کد برنامه های کاربردی است. این ابزار قادر به آنالیز کیفیت برنامه نویسی از ابعاد مختلفی همچون اصول برنامه نویسی بهینه، اصول برنامه نویسی امن و بسیاری از ابعاد دیگر می باشد. این ابزار برای تحلیل سورس کد تقریبا تمام زبان های برنامه نویسی قابل استفاده است. بررسی و مشاهده نتایج تحلیل کد، هم از طریق یک داشبورد وبی و هم از طریق یکپارچه سازی با IDE های رایج امکان پذیر است.

Service virtualization product views
 

Sonar-Security-tab

  1. قابلیت ها
  2. امکانات

بازرسی مداوم

SonarQube، نه تنها سلامتی یک برنامه را نشان می‌دهد، بلکه مشکلاتی که اخیرا ایجاد شده‌‌اند را نیز به تصویر می کشد. به کمک قابلیت Quality Gate، می‌توانید نشتی برنامه را برطرف نموده و در نتیجه کیفیت کد را به طور سیستماتیک بهبود ‌بخشید.

نرم افزار SonarQube

شناسایی مشکلات فریب‌‌دهنده

تحلیلگرهای کد ابزار SonarQube، جهت شناسایی مشکلات فریب‌دهنده ای همچون عدم ارجاع به اشاره‌گر تهی، خطاهای منطقی و نشتی‌ منابع مجهز به موتورهای قدرتمند و حساس به مسیر جریان داده شده‌اند.

نرم افزار sonarqube
نرم افزار sonarqube

کیفیت متمرکز

مکانی برای فراهم نمودن یک دید مشترک از کیفیت کد برای توسعه‌دهندگان، مدیران فنی و مدیران پروژه می‌باشد و همچنین به عنوان یک دروازه برای توسعه یا انتشار برنامه کاربردی عمل می‌کند.

نرم افزار sonarqube

یکپارچگی با DevOps

SonarQube با استفاده از webhooks و RestAPI داخلی آن، با تمامی ابزارهای DevOps از قبیل سیستم‌های ساخت، موتورهای CI و خطوط لوله‌ توسعه یکپارچه‌ می‌شود.

تشخیص مشکلات فریبنده

تشخیص خطاها

واضح است که مشکلات ناشی از SonarQube به علت کد اشتباه، یا کدی است که رفتار مورد نظر را از خود نشان نمی‌دهد. در حالیکه می‌دانید مشکلات در مکان‌های مختلف برنامه وجود دارند، به آسانی با حرکت در طی مسیرهای کد، فریبنده‌ترین خطاها را می توانید پیدا کنید.

نرم افزار SonarQube

Code Smell ها

Smelly code معمولا آنچه را که باید انجام ‌دهد، انجام می دهد اما قابلیت نگهداشت آن سخت است. نمونه‌هایی از آن شامل کد تکراری، کد پوشش داده نشده توسط تست‌های واحد و کدهای خیلی پیچیده می‌باشد.

نرم افزار SonarQube

آسیب‌پذیری امنیتی

ممکن است تصور‌کنید که شما هرگز توسط هکرها مورد هدف قرار نخواهید گرفت. هنگامی که مورد هدف هکرها قرار بگیرید، چه آسیب‌هایی در سیستم شما پیدا می‌شود؟ SonarQube به شما کمک می‌کند تا ناامنی‌های موجود در کد خود را پیدا نموده و ردیابی کنید. نمونه‌هایی از آن شامل تزریق SQL، پسوردهای هارد کد شده و خطاهای مدیریت نشده می‌باشد.

نرم افزار SonarQube

فعال کردن قواعد مورد نیاز

تحلیلگر کد SonarQube، شامل پروفایل‌های پیش‌فرض کیفیت می‌باشد که مقادیر مناسبی را به همراه مجموعه قواعد مجاز فراهم می سازند. پروفایل‌های ‌‌ پیش‌فرض کیفیت برای اکثر پروژه‌ها کار می‌کند، اما می‌توانید به آسانی آنها را برای مطابقت با نیاز‌های خود تنظیم نمایید. صفحه قواعد امکان یافتن قوانین با استفاده از چند معیار را (به تنهایی یا در ترکیب با یکدیگر) فراهم می‌سازد. بر اساس نتایج جستجو می‌توانید این قواعد را در پروفایل کیفیت خود فعال یا غیرفعال کنید.

نرم افزار SonarQube

کشف همه مسیرهای اجرایی

SonarQube، متکی بر چندین موتور جریان داده حساس به مسیر می‌باشد ولذا تحلیلگر کد همه مسیرهای اجرایی ممکن را کشف می‌کند تا همه خطاهای فریبنده را شناسایی نماید. حتی یک تابع ساده که فقط دارای 10 انشعاب مختلف می‌باشد می‌تواند منجر به 100 مسیر اجرایی در زمان اجرا شود. بررسی دستی این 100 مسیر اجرایی به سادگی ممکن نیست.

نرم افزار SonarQube

قابلیت ارزیابی کیفیت و امنیت برنامه های نوشته شده به زبان های متعددی همچون Java، C/C++، Objective-C، C#، PHP، Flex، Groovy، Python، COBOL و غیره

توانایی تحلیل کیفیت و امنیت توابع و روال های دیتابیسی نوشته شده به زبان های PL/SQL و TSQL

توانایی تحلیل کیفیت و امنیت توابع و روال های دیتابیسی نوشته شده به زبان های PL/SQL و TSQL

امکان تحلیل کیفیت و امنیت سورس های سمت کلاینت همچون HTML، HTML5، CSS، Java Script و Ex JS

امکان ارزیابی کیفیت و امنیت برنامه های کاربردی موبایل تحت بسترهایی همچون Android و iOS

توانایی تشخیص مشکلات نشتی حافظه و مدیریت منابع در سطح برنامه

توانایی تشخیص مشکلات race-condition در برنامه های multi-thread

قابلیت تشخیص آسیب پذیری های رایج همچون SQL Injection، XSS Injection و XPath Injection از طریق آنالیز کردن مسیرهای اجرایی برنامه

ارائه نمودارها و آمارهای متعدد جهت شناسایی اشکالات برنامه نویسی

ارائه گزارش های جامع از نتایج تحلیل کد

قابلیت یکپارچه سازی با Maven، Ant، Gradle، Bamboo، Jenkins و Hudson

امکان یکپارچه سازی با محیط های تولید رایج همچون Eclipse، Intellij و Visual Studio

قابلیت ایجاد پلاگین و تعریف قوانین شخصی برای زبان های مختلف

قابلیت یکپارچه سازی با ابزارهای مدیریت خطا همچون Jira، TFS و Mantis

یکپارچه سازی با متدولوژی SQALE جهت محاسبه میزان کار و هزینه رفع خطاهای برنامه نویسی