تجزیه و تحلیل استاتیک و تجزیه و تحلیل پویا در تست نرم افزار
تجزیه و تحلیل استاتیک چیست؟
تجزیه و تحلیل استاتیک شامل عدم اجرای پویا نرم افزار تحت آزمایش است و می تواند نقص احتمالی را در مراحل اولیه ، قبل از اجرای برنامه تشخیص دهد.
تجزیه و تحلیل استاتیک پس از کدگذاری و قبل از اجرای آزمایشات واحد انجام می شود.
تجزیه و تحلیل استاتیک می تواند توسط یک ماشین انجام شود تا به طور خودکار کد منبع را 'مرور' کند و قوانین غیرقابل انطباق را تشخیص دهد. مثال کلاسیک یک کامپایلر است که اشتباهات لغوی ، نحوی و حتی برخی از معناهای معنایی را پیدا می کند.
تجزیه و تحلیل استاتیک همچنین می تواند توسط شخصی انجام شود که کد را بازبینی کند تا اطمینان حاصل کند که از استانداردها و قراردادهای کدگذاری مناسب برای ساخت برنامه استفاده شده است. این اغلب Code Review نامیده می شود و توسط یک توسعه دهنده مشابه انجام می شود ، شخص دیگری غیر از توسعه دهنده ای که کد را نوشته است.
همچنین با تنظیم قوانینی که نباید از آنها استفاده شود ، تجزیه و تحلیل ایستا برای اجبار توسعه دهندگان به استفاده از قسمت های پرخطر یا باگی زبان برنامه نویسی استفاده می شود.
وقتی توسعه دهندگان آنالیز کد را انجام می دهند ، معمولاً به دنبال آن می گردند
- خطوط کد
- فرکانس نظر
- لانه سازی مناسب
- تعداد تماس های عملکردی
- پیچیدگی سیکلوماتیک
- همچنین می تواند آزمایشات واحدی را بررسی کند
ویژگی های کیفی که می توانند کانون آنالیز ایستا باشند:
- قابلیت اطمینان
- قابلیت نگهداری
- قابل آزمایش بودن
- قابلیت استفاده مجدد
- قابل حمل بودن
- بهره وری
مزایای تجزیه و تحلیل استاتیک چیست؟
مزیت اصلی تجزیه و تحلیل استاتیک این است که قبل از اینکه برای ادغام و آزمایش بیشتر آماده شود ، مشکلات مربوط به کد را پیدا می کند.
مزایای تجزیه و تحلیل کد استاتیک:
- این می تواند نقاط ضعفی را در کد در محل دقیق پیدا کند.
- این را می توان توسط توسعه دهندگان آموزش نرم افزار آموزش دیده که کاملاً کد را درک می کنند ، انجام داد.
- کد منبع می تواند توسط دیگر توسعه دهندگان یا آینده به راحتی قابل درک باشد
- این اجازه می دهد تا سریعتر برای رفع اشکال
- نقاط ضعف در اوایل چرخه عمر مشاهده می شود و هزینه های رفع شده را کاهش می دهد.
- در تست های بعدی نقص کمتری وجود دارد
- نقص های منحصر به فردی شناسایی می شود که با استفاده از آزمایش های دینامیکی قابل تشخیص نیستند یا به سختی قابل تشخیص هستند
- کد غیر قابل دسترسی
- استفاده متغیر (اعلام نشده ، بلااستفاده)
- عملکردهای فراخوانی نشده
- نقض ارزش مرزی
محدودیت های تجزیه و تحلیل کد استاتیک:
- اگر به صورت دستی انجام شود وقت گیر است.
- ابزارهای خودکار باعث تولید مثبت و منفی کاذب می شوند.
- پرسنل آموزش دیده کافی برای انجام کامل تجزیه و تحلیل کد استاتیک وجود ندارند.
- ابزارهای خودکار می توانند احساس کاذب امنیتی را ارائه دهند که به همه چیز پرداخته می شود.
- ابزارهای خودکار فقط به اندازه قوانینی هستند که برای اسکن استفاده می کنند.
- این آسیب پذیری را در محیط زمان اجرا معرفی نمی کند.
تحلیل پویا چیست؟
بر خلاف تحلیل استاتیک ، جایی که کد اجرا نمی شود ، تجزیه و تحلیل پویا بر اساس اجرای سیستم ، اغلب با استفاده از ابزار.
از ویکی پدیا تعریف تجزیه و تحلیل برنامه پویا :
تجزیه و تحلیل برنامه پویا ، تجزیه و تحلیل نرم افزار کامپیوتر است که با اجرای برنامه های ساخته شده از آن نرم افزار بر روی پردازنده واقعی یا مجازی انجام می شود (تجزیه و تحلیل انجام شده بدون اجرای برنامه ها به عنوان تجزیه و تحلیل کد استاتیک شناخته می شود). ابزارهای تجزیه و تحلیل برنامه پویا ممکن است نیاز به بارگذاری کتابخانه های خاص یا حتی کامپایل مجدد کد برنامه داشته باشند.
متداول ترین روش تجزیه و تحلیل دینامیکی ، اجرای Unit Tests برابر کد برای یافتن هرگونه خطا در کد است.
مزایای تجزیه و تحلیل کد پویا:
- این آسیب پذیری ها را در یک محیط زمان اجرا شناسایی می کند.
- این امکان را برای تجزیه و تحلیل برنامه هایی که در آنها به کد واقعی دسترسی ندارید فراهم می کند.
- این آسیب پذیری را شناسایی می کند که ممکن است منفی کاذب در تحلیل کد استاتیک باشد.
- به شما اجازه می دهد یافته های تجزیه و تحلیل کد استاتیک را تأیید کنید.
- این می تواند در برابر هر برنامه ای انجام شود.
محدودیت های تجزیه و تحلیل کد پویا:
- ابزارهای خودکار احساس امنیت کاذبی را ارائه می دهند که به همه چیز پرداخته می شود.
- پوشش کامل آزمایشی کد منبع را نمی توان تضمین کرد
- ابزارهای خودکار باعث تولید مثبت و منفی کاذب می شوند.
- ابزارهای خودکار فقط به اندازه قوانینی هستند که برای اسکن از آنها استفاده می شود.
- ردیابی آسیب پذیری به محل دقیق کد ، مشکل تر است و برای رفع مشکل زمان بیشتری لازم است.