Infer، ابزار جدید فیس بوک برای تحلیل ایستای اپلیکیشنهای اندروید و آیفون

Infer یک ابزار متن باز (open source) برای تحلیل ایستای (static analysis) اپلیکیشنهای اندروید (Android) و آیفون (iOS) است که اخیراً توسط فیس بوک (Facebook) ارائه شده است.
اگرچه این ابزار برای کشف باگ (bug) در توسعه اپلیکیشنهای اندروید (Android) و آیفون (iOS) ارائه شده است، اما می تواند برای کشف باگ در سایر اپلیکیشنهای جاوا (C یا Objective-C) نیز به کار رود. این ابزار، فرایند کامپایل برنامه را برای کشف باگها جستوجو میکند و باگهای بالقوه و شرایط خطا (error conditions) را شناسایی میکند.
راهاندازی این ابزار مستلزم استفاده از python 2.7 و سیستم عامل Mac یا Linux است. مثالی از استفاده از این ابزار در [1] به نمایش گذاشته شده است.
تعدادی از ویژگیهای این ابزار در ادامه توضیح داده شدهاند:
– این ابزار را میتوان به راحتی از طریق ابزارهای ساخت (build tools) مانند Maven اجرا کرد.
– امکان تست پویای کد از طریق این ابزار وجود ندارد.
– این ابزار قادر به کشف برخی از انواع باگها نیست؛ مثلاً خطاهای مربوط به حد و مرز آرایهها را بررسی نمیکند.
– مهندسین فیس بوک (Facebook) این ابزار را برای اپلیکیشنهای اینستاگرام و فیسبوک استفاده میکردهاند، بنابراین این ابزار برای اپلیکیشنهای موبایل در مقیاس بزرگ مورد استفاده قرار گرفته است.
– با وجود ابزارهایی مانند FindBugs، این ابزار بهترین ابزار کشف باگ در زبان جاوا نیست، اما با توجه به اینکه این ابزار برای مدتی به صورت یک ابزار داخلی در فیسبوک مورد استفاده بوده است استفاده از آن در کنار سایر ابزارهای کشف باگ میتواند به کشف تعداد بیشتری از باگها کمک کند.
– این ابزار جایگزینی برای ردیابندههای خطا (error trackers) و دیباگرها (debuggers) نیست.
DuckDuckGo یکی از ابزارهایی که توسط این ابزار تحلیل شده است. Conversations نیز یک کلاینت XMPP/Jabber برای تلفنهای هوشمند اندروید است که توسط این ابزار تحلیل شده است.
منابع
[1] http://fbinfer.com
[2] http://blog.takipi.com