آزمایشگاه آزمون و تایید نرم‌افزار دانشگاه شهید بهشتی

معرفی

ما که هستیم و چه میکنیم

آزمایشگاه آزمون و تأیید نرم افزار دانشگاه شهیدبهشتی، به هدف توسعه پژوهش و رشد صنعت آزمون نرم افزار و سایر حوزه های مرتبط با کیفیت نرم افزار در کشور، ایجاد شده است. با اتكاء به تجارب غني و با ارزش حاصل از اجراي پروژه‏هاي آزمون در صنعت، آزمایشگاه آزمون و تأیید نرم افزار در حال حاضر از لحاظ كادر تخصصي، اطلاعات فني- كارشناسي يكي از معتبرترین آزمایشگاه‌های مهندسي در زمينه آزمون نرم‌افزار در کشور محسوب مي‌گردد، و آمادگي پذيرش و اجراي طرح‌های بزرگ و پيچيده صنعتي به شكل مستقل و يا با همكاری شركت‌های مشاوره‌‏ای و تولیدکننده نرم‌افزار را در کشور دارا مي‌باشد. کادر علمی، فنی و اجرایی آزمایشگاه از سه عضو هیئت علمی دانشگاه شهیدبهشتی، 11 دانشجوی دکترا (8 نفر از دانشگاه شهید بهشتی و سه دانشجوی دکترای همکار از سایر دانشگاه‌ها)، بیش از 20 دانشجو و فارغ التحصیل کارشناسی ارشد، حدود 6 دانشجوی کارشناسی، چندین و چند نفر از افراد خبره و فعال در حوزه صنعت تشکیل شده است که هم اکنون در انجام فعالیت‌ها و خدمات پژوهشی و صنعتی مرتبط با آزمون و کیفیت نرم‌افزار مشارکت جدی دارند. افراد کلیدی آزمایشگاه بالغ بر ۱۰ سال است که در زمینه آزمون و اشکالزدایی نرم افزار از تجربیات صنعتی و پژوهشی قابل توجه برخوردارند.
مشاهده‌ی صفحه‌ی معرفی

آزمون در صنعت

آزمون­ پذیری

 

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

موضوعاتی که در این حوزه باید آموزش داده شود:
مفهوم آزمون پذیری نرم افزار
آزمون پذیری جعبه سفید که شامل موارد زیر است:
-
پیچیدگی نرم افزار
-عدم قطعیت
-وابستگی
نقاط کنترل و مشاهده (PCO’s) که موارد زیر را در نظر می گیرد:
Asserts
Logging
Design by Contract
No Code Left Behind pattern
Percolation pattern
– 
یاریگرهای آزمون حالت (State Test Helpers) که شامل موارد زیر است:
Set state
Get current state
Logical State Invariant Functions
Reset
All actions controllable
All events observable
– 
ساختار مناسب برنامه ها
No cyclic dependencies
Don’t allow build dependencies to leak over structural and functional boundaries
Partition classes and packages to minimize interface complexity
آزمون تعبیه شده
آزمون پذیری جعبه سیاه که موارد زیر را در نظر می گیرد:
-
اندازه سیستم
-تعداد گرههای شکه

-ناثابتها(variants) شامل گزینه های پیکربندی، تعداد سکوهای پشتیبانی شونده، تعداد نسخه های نرم افزار
-مدل آزمون
-اوراکل
-خودکارسازی

خصوصیات آزمون پذیری
طراحی برای آزمون پذیری نرم افزار (Design for testability)
نحوه طراحی و تولید نرم افزار آزمون پذیر
نحوه تبدیل یک نرم افزاراماده به نرم افزار آزمون پذیر

آموزش طراحی معماری نرم افزار جهت افزایش قابلیت آزمون پذیری

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

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

مکان یابی خطا

ایجاد یک نرم‌افزار عاری از خطا، آرمان تولیدکنندگان نرم‌افزار است. با وجود تلاشهای فراوانی که از سوی تولیدکنندگان نرم‌افزار جهت شناسایی و حذف خطاهای معنایی نرم‌افزار در مراحل مختلف فرآیند توسعه آن صورت می‌گیرد، بخش زیادی از این خطاها به صورت پنهان در برنامه‌ها باقی مانده و بعدها در دستان کاربران نهایی نرم‌افزار نمایان می‌شوند. تخمین‌ها نشان می‌دهند مابین ۵۰ تا ۸۰ درصد هزینه‌ها و تلاش‌های صورت گرفته جهت توسعه و نگهداری نرم‌افزار، صرف آزمون و مکانیابی خطاهای موجود در برنامه‌های نرم‌افزاری می‌شوند. براساس آخرین گزارش منتشر شده (۲۰۱۳) از تحقیق دانشگاه کمبریج هزینه آزمون و اشکال‌زدایی‌نرم‌افزارها، در سطح جهان، به ۳۱۲ میلیارد دلار در سال بالغ می‌شود. برای اینکه تصور بهتری از این مبلغ در ذهن خواننده ایجاد شود، به پرداخت کمک مالی اتحادیه اروپا به کشورهای یونان، ایرلند، پرتغال و اسپانیا از سال ۲۰۰۸ تا به امروز، توجه کنید که در مجموع مبلغی بالغ بر ۵۹۱ میلیارد دلار در ۵ سال اخیر بوده است. این کمک مالی از نصفِ هزینه‌های آزمون در نرم‌افزارها در طی این پنج سال کمتر است! این امر، اهمیت غیرقابل انکار تکنیک‌های خودکار آزمون نرم‌افزار به هدف کاهش زمان و هزینه‌های توسعه نرم‌افزار را نشان می‌دهد. بی‌دلیل نیست که در سالهای اخیر محققان و دانشمندان بسیاری، زمان و تمرکز خود را صرف ابداع و توسعه روش‌ها و ابزارهای خودکارسازی آزمون و مکان یابی خطا نموده‌اند.
تحقیقات نشان می‌دهندشرکت‌های تولید‌کننده نرم‌افزار که از ابزارهای آزمون برای کشف و رفع خطاها در نرم‌افزارهایشان استفاده کردند، به طور متوسط ۲۶% زمان کمتر از شرکت‌هایی صرف کردند که از روشهای دستی و سنتی استفاده می‌کنند. با توجه به اینکه توسعه نرم‌افزارها توسط انسانها انجام می‌شود، بروز اشتباهات و اِشکالات انسانی در هنگام تحلیل، طراحی و نوشتن برنامه‌های پیچیده، که سبب عملکرد نامناسب برنامه شده و باقی‌ماندن خطاهای نهان و آشکارشدن آنها در آینده، اجتناب‌ناپذیر است.
تحقیق ارایه شده زنگ خطر را این‌گونه به صدا در می‌آورد: در صورت عدم به‌کارگیری تکنیک‌های کارآمد آزمون نرم افزار، هزینه‌ها و خسارات حاصل از وجود خطاها و اِشکالات نرم‌افزاری در سالهای آینده به دلیل رشد نمایی صنعت نرم‌افزار، به مراتب بیش از ۳۱۲ میلیارد دلار خواهد بود. تحقیقات مؤسسه بلومبرگ نشان می‌دهد، بین سالهای۲۰۰۷ تا ۲۰۱۱ رشد صنعت نرم‌افزار در کشورهای آمریکا، انگلستان و چین به ترتیب ۳۴%، ۳۸% و ۶۳% بوده است. در همین بازه زمانی،یک افزایش جهانی قابل توجه در میزان دستمزد برنامه‌نویسان صورت گرفته است و همزمان، نیاز برای نرم‌افزارهای سفارشی و در نتیجه فشار بر شرکت‌های تولید‌کننده نرم‌افزار جهت استخدام برنامه‌نویسانِ بیشتر، درحال افزایش بوده است. طبق آمار منتشرشده در سال ۲۰۰۲ توسط مؤسسه ملي استاندارد و فناوري ايالات متحده، خطاهاي پنهان نرم‌افزار سالانه ۵/۵۹ ميليارد دلار هزينه براي آمريکا دربرداشته‌اند. جدیدترین آمار این مؤسسه نشان می‌دهد، هزینه خسارات خطاهای نرم‌افزاری معادل یک درصدِ تولید ناخالص ملی این کشور بوده است. این گزارش به مدیران، سیاستمداران و تصمیم‌سازان در کشورها در رابطه با افزایش سرسام‌آور هزینه‌های اشکال‌زدایی غیرخودکار هشدار می‌دهد و به آنها پیشنهاد می‌کند که با به‌کارگیری تکنیک‌های خودکارِ آزمون و اشکال‌زدایی نرم‌افزارها، به طور مؤثری بر بهبود اقتصاد جهانی تأثیر بگذارند. آمارهای ارایه شده، به وضوح اهمیت موضوع آزمون کارآمد نرم‌افزارها را آشکار می‌سازند.

ترمیم خودکار نرم افزار

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

اوراکل

در آزمون نرم‌افزار ابزاری که بتواند صحت اجرای یک مورد آزمون بوسیله نرم افزار تحت آزمون را تائید یا رد کند، اوراکل نامیده می شود. به عبارتی دیگر، اوراکل سازوکاری است که تعیین می‌کند اجرای یک مورد آزمون بوسیله نرم افزار تحت آزمون موفق بوده است یا خیر. بوسیله اوراکل رفتار نرم افزار در زمان اجرا مورد ارزیابی قرار می گیرد؛ در حقیقت چالش آزمونگرها، تولید ابزاری است که بتواند وضعیت اجرایی نرم افزار را در زمان اجرا برچسب گذاری کند. از آنجا که انجام این کار بوسیله انسان کار سخت و هزینه‌بری است، باید از روش‌های خودکار برای برچسب گذاری رفتار نرم افزار استفاده شود.

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

  1. دامنه خروجی مورد انتظار را تولید کنیم
  2. مورد آزمون‌ها را اجرا کنیم
  3. نگاشت بین دامنه ورودی به خروجی مورد انتظار را پیدا کنیم
  4. خروجی مورد انتظار(خروجی نگاشت) با خروجی واقعی(خروجی نرم افزار تحت آزمون) مقایسه کنیم
  5. تصمیم گیر در مورد اینکه آیا خطا رخ داده است یا نه

آزمون اوراکل را می توان به دسته های مختلفی تقسیم کرد:

  • زبانهای مشخصه سازی

در این روش‌ها رفتار سیستم نرم افزاری در قالب یک مدل ریاضی بیان می‌شود که از مفاهیم صوری برای بیان محدودیت‌های موجود در مدل استفاده می‌کنند

  • اظهارها (Assertion) و قراردادها (Contracts)

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

  • زبانهای مشخصه سازی جبری

در این روش‌ها ماژول‌های نرم افزار را به عنوان رابط در نظر می‌گیرند و پارامترهای تابع نمادهای عملیاتی است

  • زبانهای مشخصه سازی مبتنی بر مدل

سیستم را به عنوان مجموعه ای از وضعیت‌ها در نظر می‌گیرند و عملیات‌ها موجب تغییر وضعیت می‌شوند روش‌های مختلفی مانند Z, B, UML/OCL, VDM/VDM-SL, Alloy بر این اساس ارائه شده است. روش‌های مانند VDM,Z,B مجموعه ای از نامتغیرها (invariant)موجود در نرم افزار را استخراج می‌کنند؛ بطوریکه هر مورد آزمون که در اجرا بوسیله نرم افزار نتیجه اشباه بدهد نامتغیرهم آن را تشخیص می‌دهد. بنابراین نامتغیر یک اوراکل جزئی است. تکنیک‌های خوبی برای تشخیص نامتغیر بوسیله Ernst ارائه شده است که همه آنها در ابزاری به نام Daikon پیاده سازی شده‌اند.

تحلیل آزمون

در این فعالیت، با دریافت فرآورده های نرم افزاری مختلف (شامل کد منبع برنامه، نمودارها و دیاگرامهای حاصل از تحلیل و طراحی نرم افزار مانند گراف عملیات، گراف فراخوانی و ...، دیدهای معماری نرم افزار، سند توصیف نیازمندیهای مشتری و حتی فرآیندهای کسب و کار)، یک مدل یا ساختار (شامل گراف، عبارات منطقی، مدلهای مبتنی بر گرامر و ...) استخراج شده و در نهایت بر اساس معیار آزمون منتخب، نیازمندیهای آزمون استخراج می گردد. البته در کنار فعالیت مذکور، که مبتنی بر معیار آزمون است، نیازمندیهای آزمون حاصل از نظرات خبرگان دامنه نیز دریافت شده و بر اساس آنها، نیازمندیهای آزمون اولیه تکمیل و اولویت بندی می گردند.

طراحی آزمون

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

پیاده سازی آزمون

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

آزمون کارایی

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

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

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

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

آزمون امنیت

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

·       محرمانگی

·       جامعیت محتوا

·       قابلیت دسترس‌پذیری

·       احراز هویت و صلاحیت کاربران

·       انکارناپذیری عملکرد نرم‌افزار و کاربران

تعریف می‌شود.

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

آزمایشگاه آزمون و تایید نرم‌افزار دانشگاه شهید بهشتی، خدمات مشاوره و آزمون در موضوع امنیت نرم‌افزار را در سطوح مختلف قبل از توسعه‌ی نرم‌افزار، در فاز تحلیل و طراحی، در فاز کدنویسی و بعد از تولید و استقرار محصول نرم‌افزاری ارائه می‌کند.

اجرای آزمون

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

مشاوره و نظارت بر فرآیند آزمون

خدمات آزمایشگاه به صنعت در حوزه های مختلف تحلیل، طراحی، پیاده سازی و اجرای آزمون، مشاوره و نظارت بر فرآیند آزمون، تاسیس دپارتمان آزمون در شرکتها، موسسات و سازمانها، افزایش قابلیت آزمون پذیری نرم افزارها، آموزش زمینه های مختلف مرتبط با آزمون، توسعه، سفارشی سازی و ارائه ابزارهای مختلف آزمون، تولید محتوای مفید و ارزشمند برای استفاده در پروژه ها،برگزاری سخنرانی ها و نشستهای تخصصی در سازمانها، همایشها و … می باشد

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

در این مطلب، ابزارهای آزمون ایستا معرفی شده‌اند.

فهرست ابزارها

ردیف

دسته مربوطه

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

نام ابزار

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

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

پلتفرم

1

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

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

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

SonarQube

 

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

متن باز

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

زبان‌ برنامه‌نویسی: Java (شامل AndroidC#، 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

 

 

 

انواع آزمون های کیفیت نرم افزار

آزمون عملکردی

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

آزمون قابلیت دستیابی

هدف از آزمون قابلیت دستیابی، تعیین قابل استفاده بودن آیتم آزمون (بخش تحت آزمون از سامانه نرم­افزاری) برای کاربر، با بیشترین طیف مشخصه‌ها و قابلیت‌ها (ISO/IEC 25010)، شامل نیازمندی‌های قابلیت دستیابی ویژه (به عنوان مثال، بر اساس سن، ضعف بصری یا ضعف سمعی کاربر) است.

نکته: کنسرسیوم شبکه جهانی وب (W3C) استانداردهایی برای قابلیت دستیابی، شامل قابلیت دستیابی کاربرد‌ها و دستگاه‌های تحت وب تعریف می‌کند. برای اطلاعات بیشتر به سایت http://www.w3.org/standards مراجعه شود.

آزمون پشتیبان‌ گیری/ بازیابی

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

آزمون سازگاری

هدف از آزمون سازگاری، تعیین قابلیت کارکرد یک آیتم آزمون در کنار سایر محصولات مستقل یا غیرمستقل (که لزوماً با هم در ارتباط نیستند) در یک محیط مشترک است. آزمون سازگاری ممکن است بر روی چندین نمونه از یک آیتم آزمون یا چندین آیتم آزمون در یک محیط مشترک اعمال شود.

نیازمندی‌های سازگاری برای آزمون آیتم‌ها، معمولا شامل یک یا چند زیرنیازمندی می‌باشد که در ادامه بیان شده‌اند:

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

آزمون تبدیل

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

آزمون بازیابی فاجعه

هدف از آزمون بازیابی فاجعه، تعیین این است که آیا در یک رویداد خرابی، آیتم آزمون می‌تواند به یک سایت عملیاتی دیگر انتقال یابد و آیا بعد از رفع خرابی، می‌تواند مجددا به سایت عملیاتی قبلی خود انتقال یابد. آزمون بازیابی فاجعه، از یک مدل از آیتم آزمون (معمولاً از یک طرح بازیابی فاجعه) استفاده می‌کند که نیازمندی‌های بازیابی فاجعه آن آیتم را (شامل هر استاندارد موردنیاز برای طراحی بازیابی فاجعه که آیتم آزمون باید از آن پیروی کند) توصیف می‌نماید. در آزمون بازیابی فاجعه، آیتم آزمون ممکن است کل سیستم عملیاتی، به همراه تجهیزات، کارمندان و رویه‌ها باشد. آزمون بازیابی فاجعه، ممکن است فاکتورهایی مانند رویه‌هایی که باید توسط کارکنان رعایت شود، تعیین مجدد مکان داده، نرم‌افزار، کارکنان، ادارات، تجهیزات، یا ترمیم داده‌هایی را که از آنها قبلا در یک مکان دور نسخه پشتیبان تهیه شده است، پوشش دهد.

آزمون قابلیت نصب

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

آزمون تعامل‌ پذیری

هدف از آزمون تعامل‌پذیری، تعیین این است که آیا یک آیتم آزمون می‌تواند با سایر آیتم‌های آزمون یا سیستم‌ها در یک محیط یکسان یا محیط‌های متفاوت به درستی تعاملاتی داشته باشد (شامل قابلیت استفاده موثر از اطلاعات دریافت شده از سایر سیستم‌ها). این آزمون، تعیین اینکه یک آیتم آزمون می‌تواند با سایر آیتم‌های آزمون یا سیستم‌ها در یک محیط مجزا، به صورت درستی تعامل داشته باشد را نیز شامل می‌شود.

آزمون محلی‌ سازی

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

آزمون قابلیت نگهداشت

هدف از آزمون قابلیت نگهداشت، تعیین قابلیت نگهداری یک آیتم آزمون با یک تلاش قابل قبول است. آزمون قابلیت نگهداشت، از یک مدل از نیازمندی‌های قابلیت نگهداشت آیتم آزمون استفاده می‌کند که معمولا در قالب تلاش موردنیاز برای عملی کردن یک تغییر در دسته‌های زیر توصیف می‌شود:

  • نگهداری تصحیحی (به عنون مثال، اصلاح مشکلات)
  • نگهداری تکاملی (به عنون مثال، افزایش کیفیت)
  • نگهداری تطبیقی (به عنوان مثال، تطبیق نسبت به تغییرات محیط)
  • نگهداری پیشگیرانه (به عنوان مثال، اقداماتی برای کاهش هزینه‌های نگهداری در آینده)

آزمون‌ های مرتبط با کارایی

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

تکنیک‌های بسیاری برای تعیین کارایی آیتم آزمون وجود دارد:

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

آزمون قابلیت حمل

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

آزمون رویه

هدف از آزمون رویه، تعیین میزان برآورده شدن نیازمندی‌های کاربران و پشتیبانی از اهداف آنها، توسط دستورالعمل‌های رویه‌ای است. آزمون رویه، از یک مدل از نیازمندی‌های رویه‌ای آیتم آزمون (به عنوان یک واحد کامل و تحویل داده شده)، استفاده می‌کند. نیازمندی‌های رویه‌ای، چیزی را که از اسناد رویه‌ای مورد انتظار است، تعریف می‌کنند و به صورت دستورات رویه‌ای نوشته می‌شوند. این دستورات رویه‌ای، معمولا در قالب یکی از اسناد زیر می‌آیند:

  • یک راهنمای کاربری
  • یک راهنمای دستورالعمل‌ها
  • یک راهنمای مرجع برای کاربر

این اطلاعات معمولا تعریف می‌کنند که کاربر چگونه می‌تواند:

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

آزمون قابلیت اطمینان

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

آزمون امنیت

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

تکنیک‌های بسیاری برای تعیین امنیت آیتم آزمون وجود دارد:

  • آزمون نفوذ که در آن یک آزمونگر که اقدامات یک کاربر غیرمجاز را تقلید می‌کند، تلاش می‌کند که به یک آیتم آزمون (شامل عملکرد آن و/ یا داده‌های خصوصی) دسترسی یابد.
  • آزمون حریم خصوصی که در آن تلاش می‌شود به داده‌های خصوصی دسترسی یافته شود و دنباله (یا ردیابی‌) ممیزی که پس از دسترسی کاربران به داده‌های خصوصی به جا می‌ماند، صحت‌سنجی شود.
  • ممیزی امنیت، یک نوع از آزمون ایستا است که در آن، یک آزمونگر به منظور شناسایی آسیب‌پذیری‌های امنیتی موجود، نیازمندی‌ها و کُد، یک آیتم آزمون را بازرسی و بازبینی می‌کند.
  • پویش آسیب‌پذیری، که از ابزارهای خودکارسازی آزمون برای پویش یک آیتم آزمون برای یافتن نشانه‌های آسیب‌پذیری‌های شناخته شده خاص استفاده می‌کند.

آزمون قابلیت استفاده

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

 

فعالیتهای تحقیقاتی و اجرایی

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

مکانیابی خطا و ترمیم نرم افزار

این آزمایشگاه بر روی موضوعات مکانیابی خطا و ترمیم نرم افزار نیز تمرکز مشخصی دارد. آزمایشگاه به طور ویژه بر روی آزمون و اشکال زدایی نرم افزارهای مبتنی بر وب و نرم افزارهای موبایل فعالیت نمودهو به دنبال راهکارهای مناسب برای نرم افزارهای توسعه یافته با متدلوژی های مختلف شی گرا، سرویس گرا، عامل گرا و جنبه گرا است.

روشهای فراابتکاری

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

آزمون اینترنت اشیا

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

انواع آزمون‌های انجام گرفته:

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

چالشهای آزمون:

  • هزینه‌ی سنگین آزمون
  • وابستگی شدید مؤلفه‌های گوناگون به هم
  • دشواری در استخراج  داده‌ی آزمون
  • عدم وجود امکانات مناسب برای انجام آزمون
  • پیچیدگی

آزمون سیستم‌های ارائه‌دهنده خدمات بانکی

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

انواع آزمون‌های انجام گرفته:

  • آزمون پایگاه داده
  • آزمون یکپارچگی
  • آزمون عملکرد
  • آزمون امنیت
  • آزمون قابلیت استفاده
  • آزمون پذیرش توسط کاربر

چالشهای آزمون:

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

سیستم‌های ارائه‌دهنده‌ی خدمات سلامت

در سال 1983، یک داروساز و یک مهندس نرمافزار، برای اولین بار ایدهی تولید نرمافزارهایی برای سیستمهای ارائهدهندهی خدمات سلامت را با هدف تولید نرمافزارهایی که نیازهای موجود در حوزهی سلامت و بیمارستانی را برطرف نماید، مطرح نمودند. نرمافزارهای نوشته شده برای اینگونه سیستمها اطلاعات مربوط به پزشکان، شرکتهای بیمه، بیماران را نگهداری مینماید.  این نرمافزارها امکاناتی از قبیل پذیرش بیماران به صورت الکترونیکی، نگهداری وضعیت بیمار در طول درمان،  نگهداری و تحلیل اطلاعات آزمایشگاهی بیمار، نگهداری صورت حساب بیمار، ارائه خدمات بیمهای و غیره را فراهم میکنند. این گونه نرمافزارها دارای زیر سسیتمهای گوناگونی برای ارائه خدمات به ارائهدهندگان (پزشک، بیمارستان و غیره)، واسطهها (شرکتهای بیمه) و بیماران هستند.

انواع آزمون‌های انجام گرفته:

  • آزمون سیستمهای ارائهدهنده
  • آزمون سیستمهای واسطه
  • آزمون سیستمهای عضویت
  • آزمون سیستمهای درخواست
  • آزمون سیستمهای مالی
  • آزمون پیروی از قوانین
  • آزمون کارایی
  • آزمون عملکرد
  • آزمون پیروی
  • آزمون سکو
  • آزمون قابلیت همکاری

چالشهای آزمون:

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

مشتریان

برخی مشتریان آزمایشگاه

سازمان فناوری اطلاعات ایران

مجری پروژه "ارائه چارچوب و ابزار ارزيابي کیفیت قبل از بهره‌برداري سامانه‌ هاي نرم‌ افزاري ملي و تدوین مدل مرجع ملی نرم‌افزار"، سال 1396 تا 1397

شرکت خدمات انفورماتیک

آزمون کارایی، بار، استرس، استقامت و مقیاس‌ پذیری سیستم بانکی ABIS، سال 1395 و 1396

شرکت بیمه دی

آزمون کارایی و امنیت سیستم جامع بیمه عمر، سال 1396 و 1397

سازمان امور مالیاتی کشور

مشارکت در ارزیابی کیفیت و آزمون‌ های کارکردی و غیرکارکردی (به ویژه کارایی، نگهداشت‌ پذیری، مدیریت‌ پذیری، مقیاس‌ پذیری، تعامل‌ پذیری، همروندی، دسترس‌ پذیری و مهاجرت داده) سیستم یکپارچه مالیاتی (ITS)، از سال 1390 تا 1395

نیروی انتظامی جمهوری اسلامی ایران

فاز اول ایجاد دپارتمان آزمون در معاونت فاوا، سال 1394

سازمان دامپزشکی کشور

بررسی بهبود کیفیت (به ویژه در حوزه های عملکردی و کارایی) سامانه‌های نرم‌ افزاری سازمان دامپزشکی، سال 1395 و 1396

سازمان هواشناسی کشور

مشارکت در ارزیابی کیفیت و آزمون کارکردی و غیرکارکردی (به ویژه کارایی ، بار، استرس و امنیت) سیستم‌های نرم‌ افزاری پروژه نوین‌ سازی سیستم‌ های اطلاعاتی، سال 1389

کارخانه شاهسوند

، ارزیابی کیفیت و آزمون کارکردی، کارایی، بار و امنیت سیستم ERP مورد استفاده در کارخانه شاهسوند و بیش از 10 شعبه آن در سطح کشور، سال 1388 تا 1391

شرکت راه آهن ایران

تولید و تدوین مستندات نیازمندی های نرم‌افزاری و طراحی معماری نرم افزاری حوزه رفاه و سلامت شرکت راه آهن، سال 1396 و 1397

وزارت آموزش و پرورش

مشارکت در مشاوره و نظارت بر سیستم جامع دانش آموزی، سال 1394 و 1395

سازمان دامپزشکی کشور

مشارکت در پروژه توسعه و تکمیل سامانه یکپارچه خدمات دارو و درمان، سال 1395 و 1396

سازمان دامپزشکی کشور

مشارکت در پروژه باز ساختاردهی سامانه الکترونیکی دارو و درمان و توسعه سامانه صدور مجوزهای سازمان دامپزشکی کشور، سال 1397

سازمان بنادر و دریانوردی

تدوین طرح نگهداشت و به روز رسانی برنامه کلان فناوری اطلاعات و ارتباطات، سال 1390 و 1391

سازمان فناوری اطلاعات و ارتباطات شهرداری تهران

طرح تدوین نظام جامع فناوری اطلاعات مدیریت شهری تهران (فاز اول)، سال 1394 و 1395

سازمان تامین اجتماعی

مشارکت در تدوین طرح کلان فناوری اطلاعات و ارتباطات، سال 1392 و 1393

شرکت ملی نفت ایران

مشارکت در مشاوره طرح ERP، سال 1392 و 1393

وزارت ارتباطات و فناوري اطلاعات

تدوين استانداردهاي توليد‏، ارزيابي‏، انتخاب و پياده‌سازي ERP در جمهوري اسلامي ایران، سال 1388

مرکز مطالعات و برنامه ریزی شهر تهران

طراحي مدل آموزش شهروندي به منظور بهره برداري از خدمات الكترونيكي شهرداري تهران، سال 1395

مرکز مطالعات و برنامه ریزی شهر تهران

ارائه مدل اتصال شهرداری تهران به شبکه ملی اطلاعات کشور، سال 1396

بنیاد ملی نخبگان

ارائه یک معماری مناسب برای نرم افزارهای برنامه ریزی منابع سازمانی، سال 1389

شرکت ماشین آلات هپکو

آزمون کارکردی و غیرکارکردی نرم‌افزارهای جامع و یکپارچه توسعه‌یافته برای سازمان‌های مختلف از جمله شرکت مهندسی مواد و ماشین آلات هپکو از سال ۱۳۸۰ تا ۱۳۸۷

رویدادها

سمینار ها و دیگر رویدادهای مربوط به آزمایشگاه آزمون و تایید نرم افزار

بلاگ و اخبار

مطالب و اخبار اخیر

استاندارد IEEE 730 – 2014 در ارتباط...

۱۶,مهر,۱۳۹۷

این استاندارد، نیازمندی‌ها مرتبط با تضمین کیفیت نرم‌ افزار (SQA) در یک پروژه‌ نرم‌افزاری را تعیین و یک راهنما برای رسیدن به آن نیازمندی‌ها ارائه می‌کند. همچنین در این استاندارد جزئیات دقیقی از وظایف تضمین کیفیت نرم‌افزار، که در استاندارد IEEE 12207 برای فرایندهای چرخه‌ی حیات نرم‌افزار ارائه شده‌اند، بیان می‌شود. این استاندارد ابتدا در سال ۱۹۷۹، به‌عنوان اولین استاندارد مهندسی نرم‌افزار، ارائه شده است. در سال‌های اخیر تغییرات زیادی در محتوای آن ایجاد شده است، به‌گونه‌ای که نسخه ۲۰۱۴ این استاندارد نسبت به نسخه ۲۰۰۲، بیشتر شبیه به یک استاندارد جدید است.

استفاده از این استاندارد بسیار ساده بوده و شامل تمامی اطلاعات موردنیاز برای تضمین کیفیت نرم‌افزار است. این استاندارد یک چک لیست از آنچه باید برای تولید نرم‌افزار با کیفیت انجام شود، ارائه می‌دهد. استفاده از این استاندارد درون سازمان‌ها، به‌ شکل یک مرجع برای انجام مؤثر فرایندهای SQA، اهداف کیفی این سازمان‌ها را برآورده می‌کند. استفاده از این استاندارد در سازمان‌ها، فواید بسیاری دارد و تمام افراد سازمان از آن سود می‌برند. به‌عنوان مثال، افراد زیر:

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

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

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

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

انجام فرایندهای تضمین کیفیت نرم‌افزار فوائد بسیار زیادی دارد. مزایای انجام فرآیندهای تضمین کیفیت به شرح زیر است:

  1. کاهش نواقص در فرآیندهای استفاده شده برای توسعه نرم‌افزار، قوانین و نیازمندی‌های کسب و کار و محصولات نرم‌افزاری
  2. کشف سریع‌تر نواقص در چرخه حیات توسعه نرم‌افزار (و کاهش در زمان و هزینه کلی توسعه)
  3. ایجاد اطمینان در سرتاسر پروژه که فعالیت‌ها به خوبی پیش می‌روند.

 باید توجه داشت که تضمین کیفیت به آزمون نرم‌افزار، و مواردی مانند بازبینی (Review)، بازرسی­ (Inspection)، سیستمگردی (Walkthrough) و ممیزی (Audit) محدود نمی‌شود. همچنین این فرآیند نباید صرفا در انتهای پروژه انجام شود و مسئولیت آن تنها با یک واحد سازمانی نیست. در واقع تضمین کیفیت یک فعالیت همیشگی است که تمام فرآیندها و رویه‌های مرتبط با کیفیت را با هدف تضمین کیفیت تعریف کرده و بهبود می‌بخشد. با این تعریف، کنترل کیفیت بخشی از تضمین کیفیت است که طی آن کیفیت صرفا ارزیابی می‌شود. یعنی برآورد می‌شود که آیا محصول نرم‌افزاری انتظارات مشتری و کاربر را پاسخ می‌دهد یا خیر؟ و آزمون تنها بخشی از کنترل کیفیت است که سعی در یافتن نواقص و اشکالات در نرم‌افزار را دارد.

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

پیوست‌های مهم این استاندارد عبارتند از:

الف) نگاشت بین IEEE 12207 و IEEE 730

ب) راهنمایی برای ایجاد برنامه‌ریزی‌های تضمین کیفیت نرم‌افزار

پ) نگاشت بین IEEE 730 و SPICE

ت) راهنمای ویژه‌ی صنعتی برای IEEE 730

ث) IEEE 730 و فرایند توسعه چابک

ج) IEEE 730 و موسسات بسیار کوچک

چ) اعتبارسنجی ابزار نرم‌افزاری

ح) برآورد ریسک محصول: سطح کمال نرم‌افزار و موارد تضمین

خ) فرایندهای اصلاحی و پیشگیرانه

 

مشاهده‌ی مطلب

انواع آزمون های کیفیت نرم افزار

۸,مهر,۱۳۹۷

آزمون عملکردی

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

آزمون قابلیت دستیابی

هدف از آزمون قابلیت دستیابی، تعیین قابل استفاده بودن آیتم آزمون (بخش تحت آزمون از سامانه نرم­افزاری) برای کاربر، با بیشترین طیف مشخصه‌ها و قابلیت‌ها (ISO/IEC 25010)، شامل نیازمندی‌های قابلیت دستیابی ویژه (به عنوان مثال، بر اساس سن، ضعف بصری یا ضعف سمعی کاربر) است.

نکته: کنسرسیوم شبکه جهانی وب (W3C) استانداردهایی برای قابلیت دستیابی، شامل قابلیت دستیابی کاربرد‌ها و دستگاه‌های تحت وب تعریف می‌کند. برای اطلاعات بیشتر به سایت http://www.w3.org/standards مراجعه شود.

آزمون پشتیبان‌ گیری/ بازیابی

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

آزمون سازگاری

هدف از آزمون سازگاری، تعیین قابلیت کارکرد یک آیتم آزمون در کنار سایر محصولات مستقل یا غیرمستقل (که لزوماً با هم در ارتباط نیستند) در یک محیط مشترک است. آزمون سازگاری ممکن است بر روی چندین نمونه از یک آیتم آزمون یا چندین آیتم آزمون در یک محیط مشترک اعمال شود.

نیازمندی‌های سازگاری برای آزمون آیتم‌ها، معمولا شامل یک یا چند زیرنیازمندی می‌باشد که در ادامه بیان شده‌اند:

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

آزمون تبدیل

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

آزمون بازیابی فاجعه

هدف از آزمون بازیابی فاجعه، تعیین این است که آیا در یک رویداد خرابی، آیتم آزمون می‌تواند به یک سایت عملیاتی دیگر انتقال یابد و آیا بعد از رفع خرابی، می‌تواند مجددا به سایت عملیاتی قبلی خود انتقال یابد. آزمون بازیابی فاجعه، از یک مدل از آیتم آزمون (معمولاً از یک طرح بازیابی فاجعه) استفاده می‌کند که نیازمندی‌های بازیابی فاجعه آن آیتم را (شامل هر استاندارد موردنیاز برای طراحی بازیابی فاجعه که آیتم آزمون باید از آن پیروی کند) توصیف می‌نماید. در آزمون بازیابی فاجعه، آیتم آزمون ممکن است کل سیستم عملیاتی، به همراه تجهیزات، کارمندان و رویه‌ها باشد. آزمون بازیابی فاجعه، ممکن است فاکتورهایی مانند رویه‌هایی که باید توسط کارکنان رعایت شود، تعیین مجدد مکان داده، نرم‌افزار، کارکنان، ادارات، تجهیزات، یا ترمیم داده‌هایی را که از آنها قبلا در یک مکان دور نسخه پشتیبان تهیه شده است، پوشش دهد.

آزمون قابلیت نصب

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

آزمون تعامل‌ پذیری

هدف از آزمون تعامل‌پذیری، تعیین این است که آیا یک آیتم آزمون می‌تواند با سایر آیتم‌های آزمون یا سیستم‌ها در یک محیط یکسان یا محیط‌های متفاوت به درستی تعاملاتی داشته باشد (شامل قابلیت استفاده موثر از اطلاعات دریافت شده از سایر سیستم‌ها). این آزمون، تعیین اینکه یک آیتم آزمون می‌تواند با سایر آیتم‌های آزمون یا سیستم‌ها در یک محیط مجزا، به صورت درستی تعامل داشته باشد را نیز شامل می‌شود.

آزمون محلی‌ سازی

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

آزمون قابلیت نگهداشت

هدف از آزمون قابلیت نگهداشت، تعیین قابلیت نگهداری یک آیتم آزمون با یک تلاش قابل قبول است. آزمون قابلیت نگهداشت، از یک مدل از نیازمندی‌های قابلیت نگهداشت آیتم آزمون استفاده می‌کند که معمولا در قالب تلاش موردنیاز برای عملی کردن یک تغییر در دسته‌های زیر توصیف می‌شود:

  • نگهداری تصحیحی (به عنون مثال، اصلاح مشکلات)
  • نگهداری تکاملی (به عنون مثال، افزایش کیفیت)
  • نگهداری تطبیقی (به عنوان مثال، تطبیق نسبت به تغییرات محیط)
  • نگهداری پیشگیرانه (به عنوان مثال، اقداماتی برای کاهش هزینه‌های نگهداری در آینده)

آزمون‌ های مرتبط با کارایی

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

تکنیک‌های بسیاری برای تعیین کارایی آیتم آزمون وجود دارد:

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

آزمون قابلیت حمل

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

آزمون رویه

هدف از آزمون رویه، تعیین میزان برآورده شدن نیازمندی‌های کاربران و پشتیبانی از اهداف آنها، توسط دستورالعمل‌های رویه‌ای است. آزمون رویه، از یک مدل از نیازمندی‌های رویه‌ای آیتم آزمون (به عنوان یک واحد کامل و تحویل داده شده)، استفاده می‌کند. نیازمندی‌های رویه‌ای، چیزی را که از اسناد رویه‌ای مورد انتظار است، تعریف می‌کنند و به صورت دستورات رویه‌ای نوشته می‌شوند. این دستورات رویه‌ای، معمولا در قالب یکی از اسناد زیر می‌آیند:

  • یک راهنمای کاربری
  • یک راهنمای دستورالعمل‌ها
  • یک راهنمای مرجع برای کاربر

این اطلاعات معمولا تعریف می‌کنند که کاربر چگونه می‌تواند:

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

آزمون قابلیت اطمینان

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

آزمون امنیت

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

تکنیک‌های بسیاری برای تعیین امنیت آیتم آزمون وجود دارد:

  • آزمون نفوذ که در آن یک آزمونگر که اقدامات یک کاربر غیرمجاز را تقلید می‌کند، تلاش می‌کند که به یک آیتم آزمون (شامل عملکرد آن و/ یا داده‌های خصوصی) دسترسی یابد.
  • آزمون حریم خصوصی که در آن تلاش می‌شود به داده‌های خصوصی دسترسی یافته شود و دنباله (یا ردیابی‌) ممیزی که پس از دسترسی کاربران به داده‌های خصوصی به جا می‌ماند، صحت‌سنجی شود.
  • ممیزی امنیت، یک نوع از آزمون ایستا است که در آن، یک آزمونگر به منظور شناسایی آسیب‌پذیری‌های امنیتی موجود، نیازمندی‌ها و کُد، یک آیتم آزمون را بازرسی و بازبینی می‌کند.
  • پویش آسیب‌پذیری، که از ابزارهای خودکارسازی آزمون برای پویش یک آیتم آزمون برای یافتن نشانه‌های آسیب‌پذیری‌های شناخته شده خاص استفاده می‌کند.

آزمون قابلیت استفاده

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

مشاهده‌ی مطلب

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

۸,مهر,۱۳۹۷

در این مطلب، ابزارهای آزمون ایستا معرفی شده‌اند.

فهرست ابزارها

ردیف

دسته مربوطه

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

نام ابزار

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

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

پلتفرم

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

 

مشاهده‌ی مطلب
مشاهده‌ی تمام بلاگ‌ها

اعضا

اعضای آزمایشگاه آزمون و تایید نرم افزار

آموزشی

مطالب آموزشی در حوزه‌ی آزمون و تایید نرم افزار

ابزار pluralsight- Test First Devel...

۳۰,آبان,۱۳۹۵

در این دوره  از محصولات pluralsight  سبک توسعه‌ی test-first برای ساخت نرم‌افرارهای بهتر آموزش داده می‌شود. در این دوره از ارزش آزمون واحد و گردش کار red-green-refactor در طراحی و پیاده سازی نیازمندی‌های کسب وکار پرداخته شده است. ابزارهایی مانند NUnit و JetBrains Resharper برای نوشتن آزمون‌های واحد بهتر به کار گرفته شده است.

مشاهده‌ی مطلب
مشاهده‌ی تمام مطالب

منابع

لینک‌های مفید

مقالات

From Object-Z Specification to Groovy Implementation

Farzin Zaker, Hassan Haghighi and Eslam Nazemi
So far, valuable researches have been conducted on mapping object-oriented specification notations, such as Object-Z, to different object-oriented programming languages, such as C++. However, the results of selecting JVM-based programming languages for mapping have not covered most of basic Object-Z structures. In this paper, the Groovy language, a...

مشاهده ی مطلب

Structural test data generation using a memetic ant colony o...

Hossein Sharifipour , Mojtaba Shakeri, Hassan Haghighi
Test data generation is one of the key activities that has a significant impact on the efficiency and effectiveness of software testing. Since manual test data generation is quite inefficient and even impractical, automated test data generation has been realized to produce an appropriate subset of input data to carry out effective software testing...

مشاهده ی مطلب
مشاهده‌ی تمام مطالب

Empirical Evaluation of Existing Algorithms of Spectrum bas...

Jeongho Kim, Eunseok Lee
Fault localization is an essential step for debugging, even though it is still tedious and time-consuming activity. Many researchers tried to find a good way for it for decades. Many solutions proposed by them have different performance, such as correctness, code coverage, and etc. However there are few attempts to compare those solutions in an obj...

مشاهده ی مطلب

Test data regeneration: generating new test data from exist...

S. Yoo and M. Harman
Existing automated test data generation techniques tend to start from scratch, implicitly assuming that no pre-existing test data are available. However, this assumption may not always hold, and where it does not, there may be a missed opportunity; perhaps the pre-existing test cases could be used to assist the automated generation of additional te...

مشاهده ی مطلب
مشاهده‌ی تمام مطالب

گالری

گالری عکس‌های آزمایشگاه

مشاهده تمام آلبوم ها

تماس با ما

راه‌های ارتباطی آزمایشگاه