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

مدرس: دکتر سیدحسن میریان، دکتر مهران ریواده پیش‌نیاز: برنامه‌سازی شی‌گرا (جاوا)
ترم: محل برگزاری: کلاس مجازی
زمان ارائه: دوشنبه ۱۵:۰۰ تا ۱۸:۰۰ مشاهده: دریافت لایسنس

معرفی درس

آزمون نرم‌افزار؛ از طراحی آزمون تا خودکارسازی و تضمین کیفیت

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

در این درس، با مفاهیم اساسی آزمون نرم‌افزار، انواع آزمون و جایگاه آن‌ها در فرایند توسعه آشنا می‌شوید. موضوعاتی مانند آزمون جعبه‌سیاه و جعبه‌سفید، آزمون واحد، آزمون یکپارچگی و آزمون سیستم، مدل V و معیارهای پوشش کد بررسی می‌شوند. همچنین یاد می‌گیرید چگونه موارد آزمون را طراحی کنید و با استفاده از ابزارهای برنامه‌نویسی، بخشی از فرایند آزمون را خودکار سازید. برای این منظور، ابزارهایی مانند `unittest` در پایتون و ابزارهایی مانند `pytest` یا Robot معرفی می‌شوند.

بخش دیگری از درس به آزمون نرم‌افزار در محیط‌های توسعه چابک اختصاص دارد. در این بخش، مفاهیمی مانند یکپارچگی مستمر (CI)، توسعه مبتنی بر آزمون (TDD)، آزمون رگرسیون و هزینه تغییر نرم‌افزار بررسی می‌شوند. همچنین با نقش Mock و Stub در آزمون اجزایی که وابستگی‌هایی به بخش‌های دیگر سامانه دارند، آشنا می‌شوید. در پایان، موضوعاتی مانند برنامه‌ریزی و تدوین نقشه‌راه آزمون و تحلیل ایستای کد با ابزاری مانند SonarQube مطرح می‌شوند تا دید جامع‌تری نسبت به تضمین کیفیت نرم‌افزار پیدا کنید.

در پایان این درس چه توانایی‌هایی کسب می‌کنید؟

با گذراندن این درس، انتظار می‌رود بتوانید:

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

پیش‌نیاز

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

سرفصل‌ها

ارزیابی

منابع

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