آزمون و تضمین کیفیت نرمافزار
اطلاعات کلی
- نام درس به فارسی: آزمون و تضمین کیفیت نرمافزار
- نام درس به انگلیسی: Software Testing and Quality Assurance
- رشته، گرایش، نوع و واحد درس: مهندسی کامپیوتر – نرمافزار، اختصاصی، ۳ واحد
- مقطع: کارشناسی
- پیش نیازها: برنامهنویسی شیگرا
- هم نیازها: مهندسی نرمافزار
- مطالب پیش نیاز: مفاهیم پایه مهندسی نرمافزار و برنامهنویسی
توضیح کوتاه درس
تولید محصول نرمافزاری موفق و کمهزینه، نیازمند بهکارگیری روشهای سیستماتیک آزمون و تضمین کیفیت نرمافزار است. این درس اصول، فنون و ابزارهای آزمون کارکردی، آزمونپذیری، و مدیریت پروژه آزمون را آموزش میدهد.
اهداف و نتایج درس
- آشنایی با مفاهیم پایهای آزمون نرمافزار
- آشنایی با انواع و سطوح آزمون نرمافزار
- یادگیری روشهای طراحی و ارزیابی آزمون
- آشنایی با ابزارهای خودکارسازی آزمون
- توانایی مدیریت پروژههای آزمون و تضمین کیفیت
- بررسی زمینههای پژوهشی مرتبط
مخاطبین
- دانشجویان مهندسی و علوم کامپیوتر
- مهندسین نرمافزار و برنامهنویسان
- علاقهمندان به پژوهش
مشخصات دوره
- سطح: مبتدی تا متوسط
- طول دوره: ۴ ماه (۳۰ جلسه)
- زمانبندی:
- ۲۴ جلسه کلاس (۳۶ ساعت)
- ۴ جلسه جبرانی
- ۲ جلسه ارزیابی
- شیوه برگزاری: ترکیبی (کلاس مجازی + ارزیابی حضوری)
سرفصلها و مباحث
-
مقدمه (۳ جلسه)
- اهمیت و جایگاه آزمون کارکردی
- تعاریف و واژهشناسی
- انواع و سطوح آزمون (مدل V)
-
آزمون پیوسته و چابک (۵ جلسه)
- طراحی آزمون مدلرانده
- آزمونپذیری
- خودکارسازی آزمون
- توسعه آزمونرانده (TDD)
-
طراحی و ارزیابی سیستماتیک آزمون (۱۲ جلسه)
- معیارهای کفایت آزمون
- طراحی آزمون مبتنی بر افراز
- طراحی آزمون مبتنی بر گراف
- طراحی آزمون مبتنی بر منطق
- طراحی آزمون مبتنی بر نحو (دستور زبان)
-
آزمون واسط کاربری گرافیکی (GUI) (۳ جلسه)
- استخراج سناریو
- تولید دادههای آزمون
- ابزار سلنیوم
-
آزمون فازی و شناسایی آسیبپذیریها (۳ جلسه)
- فازرهای مبتنی بر جهش
- فازرهای مبتنی بر گرامر
- فازرهای ترکیبی
- فازرهای قالب فایل
-
مدیریت پروژههای آزمون (۴ جلسه)
- نوشتن و اجرای طرح آزمون
- آزمون در فرهنگ devops
نرمافزارها و ابزارهای مورد بحث
- ابزارهای آزمون واحد: JUnit, NUnit, PyTest
- آنالیز کیفیت کد: SonarQube
- تولید تست خودکار: EvoSuite, Randoop
- آزمون فازی: AFL, DeepFuzz
- آزمون واسط کاربری: Selenium
تکالیف و ارزیابی
- تکالیف تئوری: ۲۰٪
- تکالیف عملی: ۳۰٪
- آزمونها: ۵۰٪
مراجع
- P. Ammann and J. Offutt. Introduction to Software Testing. 2nd Edition, Cambridge University Press, 2017.
- P. C. Jorgensen and B. DeVries. Software Testing: A Craftsman’s Approach. 5th Edition, CRC Press, 2021.
- R. Bierig, S. Brown, E. Galván, and J. Timoney. Essentials of Software Testing. Cambridge University Press, 2021.
تهیهکننده
- نام: مرتضی ذاکری
- نگارش: ۱.۰