Files

115 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# مشخصات درس‌نامه: بررسی خروجی، تست دستی و چک‌لیست تضمین کیفیت (QA Checklist)
- **شناسه در سیلابس:** `L9.4`
- **فصل:** فصل ۹: تست و Debugging (Ch 9)
- **نوع محتوا:** 📘 درس‌نامه متنی
- **زمان تقریبی مطالعه:** ۱۵ دقیقه
- **پیش‌نیازهای مستقیم:** `L9.3` (انواع تست و اهمیت آن‌ها)
---
## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:
- [ ] **درک کند (Understand):** چرا تست‌های خودکار سبز (Automated Tests) هرگز کافی نیستند و چرا بررسی چشمی، تست دستی اکتشافی (Exploratory Testing) و بازبینی خط‌به‌خط تغییرات (Diff Review) آخرین سنگر دفاعی محصول هستند.
- [ ] **تحلیل/ارزیابی کند (Evaluate):** تغییرات کدی که ایجنت در فایل‌های پروژه ایجاد کرده است را با مهارت Code Review غیربرنامه‌نویسی (بررسی کدهای اضافه، پکیج‌های مخفی، کلیدهای هاردکد شده و کامپوننت‌های دست‌نخورده) ارزیابی کند.
- [ ] **به‌کار ببندد (Apply):** چک‌لیست جامع تضمین کیفیت (QA Checklist) ۱۰ مرحله‌ای شامل: اعتبارسنجی فرم‌ها، سناریوهای مرزی (Edge Cases)، وضعیت‌های خطا، رفتار در صفحات کوچک موبایل، وضعیت بدون اینترنت و رندر فونت‌های فارسی را روی پورتفولیوی شخصی اجرا کند.
- [ ] **ایجاد کند (Create):** یک پرامپت استاندارد گزارش تست دستی به همراه اسکرین‌شات و شرح گام‌به‌گام بازتولید باگ (Reproduction Steps) تدوین کند تا ایجنت مشکل را در اولین تلاش رفع کند.
---
## ۲. محدوده و مرزهای محتوا (Scope & Boundaries)
### آنچه باید پوشش داده شود (In-Scope):
1. **تفاوت تست خودکار و احساس کاربر واقعی:**
* کامپیوترها منطق شرط‌ها را می‌سنجند، اما چشم انسان ناهماهنگی چیدمان، شکستن خط متن، دکمه‌های ناخوانا و حس بد کاربر را درک می‌کند.
2. **هنر Code Review بدون نیاز به تسلط بر نحو برنامه‌نویسی:**
* خواندن Git Diff در Cursor و VS Code: آیا فقط فایل‌های مرتبط تغییر کرده‌اند؟
* شناسایی «کدهای سرگردان و فراموش‌شده» (Ghost Code / Hallucinated Imports).
* کشف کلیدهای محرمانه و توکن‌هایی که ممکن است ناخواسته داخل کامپوننت‌ها نوشته شده باشند.
3. **چک‌لیست ۱۰ گانه QA برای وایب کدرها:**
* ۱. تست مسیرهای بحرانی (Happy Path): لاگین ادمین، ثبت پروژه، ذخیره تنظیمات سئو.
* ۲. تست ورودی‌های مخرب و غیرمعمول (Edge Cases): فیلدهای بسیار طولانی، کاراکترهای ایموجی، متن خالی و لینک‌های نامعتبر.
* ۳. تست نمایش در موبایل واقعی و صفحات باریک (۳۲۰ تا ۳۹۰ پیکسل).
* ۴. بررسی تایپوگرافی فارسی و راست‌چین (RTL) در تمام فرم‌ها و خطاها.
* ۵. تست وضعیت‌های شبکه: قطع اتصال، اینترنت کند و خطاهای سرور.
* ۶. چک کردن مسیرهای ناموجود (صفحه ۴۰۴ اختصاصی).
* ۷. تست دسترسی‌پذیری سریع (فوکوس با کلید Tab روی دکمه‌ها و فرم‌ها).
* ۸. تست خروج از سیستم (Logout) و پاک شدن سشن‌ها.
* ۹. بازبینی کنسول مرورگر برای نبود هشدارهای زرد و خطاهای قرمز (Hydration Errors).
* ۱۰. تست کش مرورگر و رفرش سخت (Hard Reload).
4. **جعبه پرامپت طلایی گزارش باگ به ایجنت:**
* فرمول گزارش باگ: «رفتار مورد انتظار (Expected) + رفتار واقعی رخ داده (Actual) + گام‌های بازتولید (Steps) + اسکرین‌شات یا خطای کنسول».
5. **دستورات چندسکویی برای بررسی پروژه و ساخت Build تست:**
* اجرای تست ساخت کامل (`npm run build`) برای کشف خطاهای زمان کامپایل قبل از تست دستی.
6. **کال‌اوت‌های آموزشی و هشدار کوئرا:**
* کال‌اوت بنفش (`<details class="violet">`): مفهوم تست اکتشافی (Monkey Testing / Exploratory Testing).
* کال‌اوت سبز (`<details class="green">`): توصیه به تست با گوشی واقعی به جای شبیه‌ساز مرورگر.
* کال‌اوت قرمز (`<details class="red">`): تله «تأیید کورکورانه تغییرات ایجنت» (Accept All بدون دیدن Diff).
### آنچه نباید وارد آن شویم (Out-of-Scope):
- مباحث تکنیکال تست نفوذ امنیتی SQL Injection و XSS پیشرفته (فصل ۱۱).
- ابزارهای تحلیل رفتار کاربر مانند Hotjar و مانیتورینگ آنلاین لاگ‌های سرور بعد از دیپلوی (فصل ۱۳).
---
## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده |
| :--- | :--- | :--- |
| Code Review | بازبینی کد | بررسی دقیق تغییرات پیش از اعمال در شاخه اصلی پروژه برای کشف باگ و خطای ناخواسته |
| Git Diff | نمایش تفاوت کدها | ابزار بصری مقایسه نسخه قبلی و تغییرات جدید با رنگ سبز (اضافه) و قرمز (حذف) |
| Exploratory Testing | تست اکتشافی | آزمودن آزادانه نرم‌افزار توسط انسان برای پیدا کردن رفتارهای غیرمنتظره و عجیب |
| Edge Case | حالت حدی و نامتعارف | شرایط استثنایی یا ورودی‌های غیرمعمول که معمولاً در سناریوهای عادی تست از قلم می‌افتند |
| Reproduction Steps | گام‌های بازتولید خطا | مراحل ترتیبی و گام‌به‌گامی که هر فرد برای تکرار دقیق باگ در سیستم باید طی کند |
| Blind Acceptance | پذیرش کورکورانه | خطای رایج زدن دکمه «قبول همه تغییرات» ایجنت بدون خواندن فایل‌های دستکاری‌شده |
---
## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)
> **راهنمای ایجنت نویسنده:** تصاویر باید در پوشهٔ `images/` ذخیره شده و در جدول تک‌خانه‌ای قرار گیرند:
1. **تصویر کاور درس:** `images/cover.png`
* **موضوع:** کاربری با ذره‌بین دیجیتال در حال بررسی کدهای پروژه روی یک تبلت و تیک زدن چک‌لیست تضمین کیفیت.
2. **پنجره بازبینی Diff در ادیتور:** `images/git-diff-inspection.png`
* **موضوع:** نمایش خطوط قرمز (حذف‌شده) و سبز (اضافه‌شده) در ابزار کامپوزر Cursor با نشانه‌گذاری کدهای خطرناک یا اضافه.
3. **اینفوگرافیک چک‌لیست ۱۰ مرحله‌ای QA:** `images/qa-checklist-infographic.png`
* **موضوع:** طراحی بصری ۱۰ گام بازرسی طلایی با آیکون‌های فرم، موبایل، شبکه، کنسول و سشن ادمین.
4. **گزارش باگ سیستماتیک در گفتگو با ایجنت:** `images/structured-bug-report-prompt.png`
* **موضوع:** چت‌باکس ادیتور که گزارش منظم خطا با فرمت ۴ مرحله‌ای به ایجنت ارائه شده و ایجنت در حال اصلاح دقیق است.
---
## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`)
1. **تیتر اصلی:** `# بررسی خروجی، تست دستی و چک‌لیست تضمین کیفیت (QA Checklist)`
2. **مقدمه:** ایجنت می‌گوید «کار تمام شد و تست‌ها سبز است!»؛ اما آیا پروژه واقعاً در دستان کاربر کار می‌کند؟
3. **جدول کاور درس**
4. **استعاره بازرس ساختمان در برابر کارگران ساختمانی:**
* بناها آجرها را می‌چینند، اما بازرس با چک‌لیست لوله‌کشی، برق، فشار آب و ارگونومی درها را بررسی می‌کند. شما بازرس کل پروژه خود هستید.
5. **مهارت بازبینی کد (Code Review) برای افراد غیربرنامه‌نویس:**
* سه سؤالی که هنگام دیدن Git Diff باید بپرسید:
1. آیا فایلی که ربطی به این تسک ندارد تغییر کرده است؟
2. آیا پکیج عجیب یا خط کدی با کامنت‌های عجیب اضافه شده؟
3. آیا کد کارآمد قبلی تصادفاً پاک یا ساده‌سازی نشده است؟
6. **چک‌لیست ۱۰ گانه QA برای وایب کدرها (با تمرکز روی پروژه پورتفولیو):**
* شرح گام‌به‌گام تست هر بخش: فرم لاگین ادمین، ثبت مشخصات، اعتبارسنجی ارقام، وضعیت بدون نت، و رسپانسیو بودن.
7. **باکس نکته Quera (`<details class="violet">`):** تست اکتشافی و تکنیک «میمون بازیگوش» (تایپ کاراکترهای عجیب و غریب و کلیک‌های پشت‌سرهم سریع روی دکمه‌ها).
8. **دستورات چندسکویی ساخت تست پروداکشن قبل از QA:**
* اجرای Build پروژه برای اطمینان از عدم وجود خطای تایپ یا ایمپورت ناقص.
* منوی کشویی سه‌گانه برای ویندوز، مک و لینوکس:
- Windows (PowerShell): `npm run build`
- macOS (Terminal): `npm run build`
- Linux (Bash): `npm run build`
9. **جعبه پرامپت طلایی: انتقال گزارش باگ به ایجنت بدون افتادن در سردرگمی:**
* ساختار قالب گزارش باگ برای ایجنت.
10. **باکس هشدار Quera (`<details class="red">`):** خطای پذیرش کورکورانه (Blind Accept)؛ هرگز بدون بازبینی سریع تغییرات فایل‌ها، کد را تحویل نگیرید.
11. **باکس رضایت‌بخش Quera (`<details class="green">`):** تست روی موبایل واقعی از طریق هات‌اسپات و آی‌پی لوکال؛ تجربه‌ای که هیچ شبیه‌سازی جای آن را نمی‌گیرد.
12. **جمع‌بندی درس‌نامه:** تثبیت چک‌لیست بازبینی و آماده‌سازی برای ورود به جهان دیباگ تخصصی و خواندن پیام‌های خطا در درس بعد.
---
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- [ ] روش بازبینی Git Diff به صورت کاربردی برای افراد غیر فنی تشریح شده باشد.
- [ ] چک‌لیست ۱۰ مرحله‌ای QA با مثال‌های مستقیم از پروژه پورتفولیو ارائه گردد.
- [ ] ساختار ۴ مرحله‌ای گزارش باگ به ایجنت به همراه پرامپت نمونه آماده کپی گنجانده شود.
- [ ] دستورات اجرای بیلد چندسکویی در تب‌های کشویی ویندوز، مک و لینوکس درج شده باشد.