آزمون نرم‌افزار

شماره درس: ۴۰۱۲ تعداد واحد: ۳
نوع درس: نظری پیش‌نیاز: برنامه‌سازی پیشرفته

اهداف درس

یکی از مهم‌ترین مهارت‌های یک مهندس نرم‌افزار آشنایی با شیوه‌های آزمون نرم‌افزار و توانایی استفاده از آن‌ها در جای مناسب است. در این درس دانش‌پذیر میکرومستر مهندسی نرم‌افزار با مفاهیم و تکنیک‌های آزمون نرم‌افزار آشنا می‌شود و برای ایفای نقشی فراتر از یک برنامه‌نویس ساده اولین گام‌ها را بر می‌دارد.

ریز مواد

  • مفاهیم آزمون نرم‌افزار
    • مفهوم آزمون، شکست و …
    • روال کاری یک آزمونگر نرم‌افزار
    • انواع آزمون‌های نرم‌افزاری (آزمون پذیرش، آزمون سیستم، آزمون یکپارچگی و …)
    • مدل V
    • مفهوم پوشش کد
    • آزمون‌های جعبه‌سیاه و جعبه سفید
  • آزمون واحد
    • هدف از آزمون واحد
    • نحوه نگارش و اجرای آزمون‌های واحد در پایتون (بسته unittest)
  • خودکار ‌سازی آزمون
    • نرم‌افزار آزمون پذیر و آزمون مستمر
    • هدف از خودکارسازی آزمون
    • طراحی موارد آزمون
    • خودکارسازی آزمون‌های واحد (ابزار Robot یا Pytest)
  • آزمون در محیط‌های چابک
    • نمودار هزینه تغییر
    • یکپارچگی مستمر
    • تست‌های سیستمی در محیط‌های چابک
    • مفهوم TDD همراه با مثال‌های عملی
  • آشنایی با طراحی آزمون مبتنی بر معیار پوشش
    • نیازمندی‌های آزمون و تعریف معیار پوشش
    • نحوه استفاده از معیارهای پوشش
    • آشنایی کلی با معیارهای پوشش (افراز فضای ورودی، پوشش گراف، پوشش منطق، پوشش نحوی)
  • نگارش نقشه‌راه آزمون و برنامه‌ریزی برای آن
  • سیستم‌های در حال تغییر و آزمون رگرسیون
  • Mock‌ و Stub
    • مفهوم Mock و Stub‌ و معماری
    • پیاده‌سازی آزمون Mock
  • تحلیل ایستای کد
    • آشنایی با مفهوم تحلیل ایستای کد
    • آشنایی با ابزارهای تحلیل ایستای کد (SonarQube)

ارزیابی

  • تمرین‌های عملی هفتگی: ۵۰٪ نمره
  • آزمون‌ نهایی: ۵۰٪ نمره

مراجع

  1. P. Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2017.