آزمون نرمافزار
مدرس: مهران ریواده | گواهی: رسمی دوزبانه |
ترم: زمستان | پیشنیاز: برنامهسازی شیگرا (جاوا) |
زمان ارائه: شنبه و دوشنبه ۱۷:۳۰ تا ۱۹:۰۰ | محل برگزاری: کلاس مجازی |
هدف کلی
یکی از مهمترین مهارتهای یک مهندس نرمافزار آشنایی با شیوههای آزمون نرمافزار و توانایی استفاده از آنها در جای مناسب است. در این درس دانشجو با مفاهیم و تکنیکهای آزمون نرمافزار آشنا میشود و برای ایفای نقشی فراتر از یک برنامهنویس ساده اولین گامها را بر میدارد.
سرفصلها
- مفاهیم آزمون نرمافزار
- مفهوم آزمون و شکست
- روال کاری یک آزمونگر نرمافزار
- انواع آزمونهای نرمافزاری (آزمون پذیرش، آزمون سیستم، آزمون یکپارچگی و …)
- مدل V
- مفهوم پوشش کد
- آزمونهای جعبهسیاه و جعبه سفید
- آزمون واحد
- هدف از آزمون واحد
- نحوه نگارش و اجرای آزمونهای واحد در پایتون (بسته unittest)
- خودکار سازی آزمون
- نرمافزار آزمون پذیر و آزمون مستمر
- هدف از خودکارسازی آزمون
- طراحی موارد آزمون
- خودکارسازی آزمونهای واحد (ابزار Robot یا Pytest)
- آزمون در محیطهای چابک
- نمودار هزینه تغییر
- یکپارچگی مستمر
- تستهای سیستمی در محیطهای چابک
- مفهوم TDD همراه با مثالهای عملی
- آشنایی با طراحی آزمون مبتنی بر معیار پوشش
- نیازمندیهای آزمون و تعریف معیار پوشش
- نحوه استفاده از معیارهای پوشش
- آشنایی کلی با معیارهای پوشش (افراز فضای ورودی، پوشش گراف، پوشش منطق، پوشش نحوی)
- نگارش نقشهراه آزمون و برنامهریزی برای آن
- سیستمهای در حال تغییر و آزمون رگرسیون
- Mock و Stub
- مفهوم Mock و Stub و معماری
- پیادهسازی آزمون Mock
- تحلیل ایستای کد
- آشنایی با مفهوم تحلیل ایستای کد
- آشنایی با ابزارهای تحلیل ایستای کد (SonarQube)
ارزیابی
- تمرینهای عملی هفتگی: ۵۰٪ نمره
- آزمون نهایی: ۵۰٪ نمره
منابع
- P. Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2017.