ابزارهای تست نرم‌ افزار

ابزارهای تست نرم‌ افزار

تست نرم افزار فرآیند اجرای یک برنامه یا برنامه با هدف پیدا کردن اشکالات نرم افزاری است.

 
انواع تست نرم افزار
تست واحد یا  Unit testing

کوچکترین قسمت قابل تست یک نرم افزار، واحد می باشد که در طی تست واحد، هر واحد به طور جداگانه و دقیق تست می شود.
 تست استاتیک یا  Static testing
یک تکنیک تست نرم افزاری است که در آن نرم افزار بدون اجرای کد مورد آزمایش قرار می گیرد.
تست یکپارچه سازی یا Integration testing
تست یکپارچه سازی یک فرآیند توسعه نرم افزاری است که واحدهای برنامه را به صورت چند گانه ترکیب و آزمایش می کنند.
تست نفوذ یا Penetration Testing
به معنای تست نفوذ، انجام تست سیستم کامپیوتری، شبکه یا برنامه وب برای شناسایی آسیب پذیری هایی است که مهاجم می تواند از آن استفاده کند.
تست خودکار یا Automated Testing
تست خودکار یک تکنیک می باشد که یک اپلیکیشن یا نرم افزار برای پیاده سازی کل چرخه عمر نرم افزار در زمان کم از آن استفاده و بهره وری و اثربخشی را برای نرم افزار تست فراهم می کند.
 
 
 
 

ردیف

دسته مربوطه

(نوع آزمون/ کیفیت، فعالیت آزمون/کیفیت، سطح آزمون)

نام ابزار

توضیحات و قابلیت‌ها

متن باز یا تجاری

پلتفرم

1

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

SonarQube

 

  • SonarQube پلتفرمی متن باز برای مدیریت کیفیت بوده و تمرکز آن بر تحلیل و اندازه‌گیری دائمی کیفیت کد برنامه است
  • این ابزار به خوبی بین بخش‌ها و قابلیت‌های مختلف کد جابجا شده و قادر است کد را از نماهای مختلف به نمایش بگذارد
  • قابلیت نصب افزونه بر روی آن به منظور گسترش قابلیت‌های آن
  • با استفاده از افزونه SonarLint، قابلیت یکپارچه شدن با محیط‌های توسعه Eclipse، Visual Studio و IntelliJ IDEA را دارد

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java (شامل Android)، C#، PHP، JavaScript، C/C++، COBOL، PL/SQL، PL/I، ABAP، VB.NET، VB6، Python، RPG، Flex، Objective-C، Swift، Web، XML

2

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

CodePro AnalytiX

 

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

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

3

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

FindBugs

 

  • ابزاری متن باز است که از آن برای تحلیل ایستای کدهای جاوا استفاده می‌شود
  • این ابزار بایت کدها را برای یافتن الگوهای خطا، نقص‌ها و یا کدهای مشکوک بررسی می‌کند
  • این ابزار برای انجام تحلیل، به فایل کامپایل شده کلاس‌ها نیاز دارد، اما برای تحلیل کد نیازمند اجرای آن‌ها نیست
  • افزونه‌هایی برای یکپارچه شدن این ابزار با Eclipse, NetBeans, IntelliJ IDEA, Gradle, Hudson, Maven, Bamboo و Jenkins وجود دارد

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

4

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

PMD

  • ابزاری برای تحلیل ایستای کدهای جاوا است
  • این ابزار قادر است مواردی از قبیل متغیرهای بدون استفاده، بلوک‌های catch خالی، اشیای بدون استفاده و کدهای تکراری را در کد برنامه کشف کند
  • امکان نصب افزونه بر روی آن به منظور گسترش قابلیت‌های آن

متن باز

سیستم‌عامل: Windows, Linux, macOS

زبان‌ برنامه‌نویسی: Java, JSP, C, C++, Fortran, PHP و C#

5

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

CheckStyle

 

  • ابزاری است که از آن برای تحلیل ایستای کدهای جاوا استفاده می‌شود
  • این ابزار در جریان توسعه نرم‌افزار استفاده شده و همخوانی کدهای جاوا را با مجموعه‌ای از قواعد کدنویسی بررسی می‌کند

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

6

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

ThreadSafe

  • TreadSafe ابزاری برای تحلیل ایستای کدهای جاوا است
  • این ابزار قادر است خطاهای همروندی و مواردی را که ممکن است به کاهش کارایی برنامه منجر شود، کشف کند
  • قادر است ریسک‌ها و آسیب‌پذیری‌های امنیتی حاصل از همروندی را شناسایی کند
  • این ابزار با Eclipce یکپارچه شده است

تجاری

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

7

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Semmle

  • به کد نگاهی مشابه با داده دارد و شاخصی برای کد و تغییرات آن می‌سازد که امکان جستجوی سریع را فراهم می‌کند.
  • تحلیل‌های مهندسی Semmel دانش­هایی ارزشمند را از کدهایی که هر روزه توسط توسعه‌دهنده نرم‌افزار ایجاد می‌شود، جمع‌آوری می­کند و به این طریق به تیم توسعه کمک می­کند تا نرم‌افزاری بهتر تولید کنند.
  • یک واسط گرافیکی برای Eclipce فراهم می‌آورد که امکان زدن پرس‌وجو بر روی کد و بایت کد جاوا را می‌دهد

تجاری

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

8

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

CPP Check

  • Cppcheck ابزاری برای تحلیل ایستای کدهای C و C++ است
  • برخلاف کامپایلرها و سایر ابزارهای تحلیل ایستای مربوط به این دو زبان، Cppcheck خطاهای نحوی را کشف نکرده و آن دسته از خطاهایی را گزارش می‌کند که معمولا کامپایلرها قادر به کشف آنها نیستند
  • هدف این ابزار کشف خطاهای حتمی است. بدین معنی که اگر این ابزار خطایی را گزارش کند به طور حتم آن خطا در کد برنامه موجود است
  • با استفاده از افزونه تجاری VisualLint، می‌توان این ابزار را با Visual studio یکپارچه کرد

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: C/C++

9

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Code Rush

  • Unit Test Runner ابزاری توانمند در زمینه آزمون واحد است. این ابزار قادر است آزمون‌های واحد را اجرا کند، بین آزمون‌های مختلف جابجا شود و پردازش نتایج آزمون را تسهیل نماید
  • این ابزار از چارچوب‌های MbUnit، MSpec، VS Test، NUnit، S1UnitTesting و xUnit پشتیبانی می‌نماید
  • از C#, VB10, ASP.NET, HTML, JavaScript, XML, و XAML پشتیبانی می‌کند

تجاری

سیستم‌عامل: ویندوز

زبان‌ برنامه‌نویسی: .Net

10

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Source Meter

 

  • SourceMeter ابزاری متن باز برای تحلیل کد است که قادر است تحلیل‌های ایستای عمیقی را از کدهای برنامه‌های پیچیده C، C++، جاوا، پایتون، سی‌شارپ و RPG (AS/400) ارائه کند
  • این ابزار توسط FrontEndART و بر پایه فناوری Columbus، که در دانشکده مهندسی کامپیوتر دانشگاه Szeged تحقیق و توسعه داده شده است، بنا شده است

تجاری

سیستم‌عامل: ویندوز و لینوکس

زبان‌ برنامه‌نویسی: C, C++, Java, Python, C#, و RPG

11

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

KLEE

  • ابزار KLEE ویندوزی و لینوکسی و رایگان: روی زیرساخت کامپایلری  LLVM

متن باز

 

12

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

SPLINT

 

  • ابزار SPLINT به طور ایستا کدهای C را تحلیل می‌کند تا آسیب‌پذیری‌های امنیتی یا خطاهای کدنویسی را کشف نماید.

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: C

13

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Gerrit + Maven

  • Gerrit ابزاری مبتنی بر وب برای بازبینی کد و مدیریت مخزن برای سیستم کنترل نسخه Git است
  • Maven ابزاری برای خودکارسازی Build در پروژه‌های جاوا است

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

14

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

FishEye + Crucible (with crack)

  • FishEye امکان استخراج اطلاعات از مخزن کد منبع و نمایش آن در قالب گزارش‌های سطح بالا را فراهم می‌آورد
  • Crucible امکان درخواست، اجرا و مدیریت بازبینی‌های کد را فراهم می‌آورد
  • هر دوی این ابزارها می‌توانند به صورت مستقل اجرا شوند

تجاری

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: نامشخص

15

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

JsHint

  • ابزاری برای تحلیل ایستای کدهای JavaScript است
  • این ابزار مواردی مانند خطاهای نحوی، خطاهای حاصل از تبدیل نوع ضمنی و غیره را چک می‌کند

متن باز

سیستم‌عامل: ویندوز و لینوکس

زبان‌ برنامه‌نویسی: JavaScript

16

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

JSCS  

  • ابزاری برای پاک سازی و قالب‌بندی ظاهر کد است
  • روی هر کد ES6/7 قابل اعمال است
  • به صورت خودکار خطاها را رفع می‌کند
  • به صورت خودکار فایل پیکربندی را ایجاد می‌کند
  • از ابزارهایی مانند grunt, gulp, sublime, atom پشتیبانی می‌کند

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی:  JavaScript

17

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Sotoarc

  • ابزاری برای تحلیل ایستای کد است
  • این ابزار ساختار ایستای سیستم نرم‌افزاری را به صورت گرافیکی نمایش می‌دهد
  • ساختار کد در قالب یک ساختار سلسله مراتبی (درخت) از ماژول‌ها، بسته‌ها و فایل‌ها نمایش داده می‌شود
  • همچنین کاربر قادر است معماری نرم‌افزار را به صورت گرافیکی توصیف کند و سپس معماری توصیف شده با معماری کد پیاده‌سازی شده قابل مقایسه خواهد بود

تجاری

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java, C#, C++

18

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

SonarJ

  • این ابزار که نام آن به Sonargraph تغییر یافته است، ابزاری برای تحلیل ایستای کد است
  • از کدهای نوشته شده به زبان‌های Java، C# و C/C++ پشتیبانی می‌کند.
  • این ابزار با تحلیل کد، یک مدل از وابستگی درون حافظه و سنجه‌های مرتبط از کد تحلیل شده ایجاد می‌کند
  • وابستگی‌های مدل می‌تواند به صورت گرافیکی نمایش داده شود و درنتیجه کاربر می‌تواند ساختار سیستم را درک کند
  • این ابزار امکانی برای تعریف یک مدل معماری منطقی فراهم می‌آورد
  • این ابزار می‌تواند از طریق مقایسه مدل منطقی و ساختار وابستگی واقعی، همه انحراف‌ها از معماری تعریف شده را پیدا کند.

تجاری

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java, C#, C/C++

19

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Imagix 4D

  • ابزاری برای تحلیل ایستای کد منبع است
  • از کدهای نوشته شده به زبان‌های Java و C/C++ پشتیبانی می‌کند
  • این ابزار در درک، مستندسازی و بهبود کدهای پیچیده به توسعه‌دهندگان می‌تواند کمک کند
  • می‌تواند تحلیل جریان کنترل و وابستگی‌ها را به صورت خودکار انجام دهد
  • قادر به شناسایی مشکلات در استفاده از داده و تعاملات وظایف است
  • این ابزار قادر به افزایش بهره‌وری، بهبود کیفیت و کاهش ریسک است

تجاری

سیستم‌عامل: Windows, Linux, Solaris, HP-UX

زبان‌ برنامه‌نویسی: Java, C/C++

20

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Astrée

  • همه خطاهای بالقوه زمان اجرا را با تفسیر انتزاعی پیدا می‌کند
  • از روش‌های صوری استوار (بدون منفی کاذب) برای تحلیل ایستا  استفاده می‌کند
  • می‌تواند عدم وجود خطاهای زمان اجرا را اثبات کند
  • می‌تواند اظهارات عملکردی را اثبات کند
  • مناسب کدهای ایمنی-حیاتی در C است

تجاری

سیستم‌عامل: Linux

زبان‌ برنامه‌نویسی: C

21

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

CodePeer

  • ابزاری برای تحلیل ایستای کدهای زبان Ada است و به صورت یک ابزار مستقل است
  • از روش‌های صوری استوار (بدون منفی کاذب) برای تحلیل ایستا (مثل استفاده از اظهارات  ایستای برنامه) استفاده می‌کند
  • بطور ایستا پیش شرط‌ها و پس شرط‌ها را برای زیربرنامه‌های Ada تعیین و مستندسازی می‌کند
  • بطور ایستا پیش شرط‌ها را در همه محل‌های فراخوانی وارسی می‌نماید

تجاری

سیستم‌عامل: Windows, Linux

زبان‌ برنامه‌نویسی: Ada

22

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

ECLAIR

  • از فنون تحلیل ایستای کد مبتنی بر روش‌های صوری (مثل تفسیر انتزاعی و وارسی مدل ترکیب شده با فنون ارضای محدودیت‌ها) برای کشف یا اثبات عدم وجود خطاهای خاصی در زمان اجرا در کد منبع استفاده می‌کند

تجاری

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: C/C++

23

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

ESC/Java  یا  ESC/Java2

 

  • ابزاری بر اساس زبان مدل‌سازی جاوا (JML) که نسخه غنی شده جاوا است
  • خطاهای زمان اجرا در برنامه‌های جاوا را در زمان کامپایل می‌یابد

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

24

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Frama-C

  • چارچوبی برای تحلیل ماژولار و ایستای کدهای زبان C است.
  • قابلیت تایید پیروی کد منبع از توصیف صوری را دارد
  • یک معماری ماژولار افزونه دارد

متن باز

سیستم‌عامل: Microsoft Windows, FreeBSD, Linux, Mac OS X

زبان‌ برنامه‌نویسی: C

25

نوع آزمون: ایستا

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Polyspace

 

  • این ابزار از روش‌های صوری مانند تفسیر انتزاعی برای کشف و اثبات عدم وجود نوع خاصی از خطای زمان اجرا (مانند خطای تقسیم بر صفر) در کد زبان‌های C/C++/Ada استفاده می‌کند
  • قابلیت اثبات عدم وجود خطاهای حیاتی در زمان اجرا، بدون اجرا کد را دارد
  • قابلیت بررسی قوانین کدنویسی، استانداردهای امنیت، سنجه‌های کد، و یافتن خطاها را دارد

تجاری

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: C/C++، Ada

26

نوع آزمون: ایستا و کارکردی

فعالیت آزمون: تحلیل و خطایابی کد، اجرای آزمون

سطح آزمون: کد برنامه، کل سیستم

Parasoft DotTest

  • راه‌حلی برای آزمون در محیط‌های توسعه یکپارچه است که برای خودکارسازی گستره‌ی وسیعی از بهترین روش‌های آزمون، مورد استفاده قرار می‌گیرد
  • ثابت شده است که این ابزار بهره‌وری تیم توسعه و همچنین کیفیت نرم‌افزار را افزایش می‌دهد
  • این ابزار می‌تواند به خوبی با Parasoft SOAtest یکپارچه شود که در این صورت قادر است آزمون‌های کارکردی، پایان‌به‌پایان و بار را برای برنامه‌ها و تراکنش‌های توزیع‌شده‌ی پیچیده، به انجام رساند

تجاری

سیستم‌عامل: ویندوز

زبان‌ برنامه‌نویسی: C/C++، Java، .NET

27

نوع آزمون: ایستا (امنیت)

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

FlawFinder

  • ابزاری برای تحلیل ایستای کدهای C/C++ است
  • این ابزار آسیب‌پذیری‌های امنیتی کد را به ترتیب سطح ریسک گزارش می‌دهد
  • نصب و استفاده از این ابزار بسیار آسان است

متن باز

سیستم‌عامل: Windows، Linux

زبان‌ برنامه‌نویسی: C/C++

28

نوع آزمون: ایستا (امنیت)

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

HP Fortify

 

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

تجاری

سیستم‌عامل: نامشخص

زبان‌ برنامه‌نویسی: نامشخص

29

نوع آزمون: ایستا (امنیت)

فعالیت آزمون: تحلیل و خطایابی کد

سطح آزمون: کد برنامه

Coverity

  • پلتفرمی برای آزمون ایستای امنیت برنامه‌های کاربردی است
  • با شناسایی نواقص کیفی بحرانی و آسیب‌پذیری‌های امنیتی بالقوه در طول فرآیند توسعه، ریسک و هزینه کلی پروژه را کاهش می‌دهد
  • این ابزار یک پوشش مسیر کامل را فراهم می‌آورد، به گونه‌ای که تمامی خطوط کد آزمون می‌شوند
  • این ابزار از تحلیل موازی استفاده می‌کند که آن را 10 برابر سریعتر از تحلیل سریال می‌نماید
  • قابلیت یکپارچه شدن با ابزارهای ردیابی خطا مانند JIRA و Bugzilla را دارد
  • قابلیت یکپارچه شدن با ابزارهای کنترل نسخه مانند Accurev, Clearcase, CVS, Git, Hg (Mercurial), Perforce, SVN, TFS SCM را دارد

نامشخص

سیستم‌عامل: Windows, AIX, Linux, HP-UX, Mac OS X, NetBSD, Solaris, FreeBSD

زبان‌ برنامه‌نویسی: C/C++, JavaScript, ASP .NET, Node.js, Swift, C#, PHP, Objective-C, Ruby, Fortran, Java, Python, JSP, Android

30

نوع آزمون: ایستا

فعالیت آزمون: مرور و وارسی کد

سطح آزمون: کد برنامه

Java collections framework

  • Collection Framework کتابخانه‌ای است در جاوا که کاملا با الگوهای طراحی شناخته شده توسعه پیدا کرده است و در آن، با مرور و وارسی کد می‌توان از روش طراحی و عملکرد کد آگاهی پیدا کرد

متن باز

سیستم‌عامل: Cross-platform

زبان‌ برنامه‌نویسی: Java

 

 

 

 

 

 

نویسنده :
مجید پورداود
  • مجید پورداود
  • مهندس نرم افزار و تحلیلگر ارشد سیستم های کامپیوتری تحت وب می باشم. از سال 1395 برنامه نویسی را شروع کردم و به زبان های php (فریم ورک laravel -codeigniter)  و زبان جاوا اسکریپت (فریم ورک express.js-nest.js)  تسلط دارم.  

ثبت دیدگاه جدید

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *