ראינו פעמים רבות כיצד פרויקט בקו הסיום הופך לסיוט: הכל רץ חלק על המחשב של המפתח, אבל על Samsung Galaxy A12 זה 15 FPS עם קריסות, ובאייפד אייר הטקסטורות מטושטשות. ללא תהליך QA מבוסס, בדיקת משחקים הופכת להגרלה. הצוות שלנו, עם ניסיון של 8 שנים, בדק מעל 30 משחקי מובייל ובכל פרויקט מצא בעיות קריטיות שבדיקות רגילות פספסו. בדיקת משחקים סוהר — מבדיקות פונקציונליות ועד בדיקות עומס — עם אבטחת איכות ודוח מוכן ליישום. נעריך את הפרויקט שלך תוך 3 ימים — צור קשר.
כיצד אנו מבטיחים איכות גבוהה באמצעות בדיקות?
תהליך הבדיקות המקיף שלנו כולל בדיקות פונקציונליות, רגרסיה, עומס וביצועים על מכשירים אמיתיים כדי להבטיח שהמשחק שלך רץ חלק.
בדיקות ו-QA
כיצד לאוטומט בדיקות ב-Unity?
הדרך היעילה ביותר לתפוס רגרסיה היא בדיקות אוטומטיות שרצות ללא התערבות אנושית. ב-Unity זה Unity Test Framework (UTF) המבוסס על NUnit. שני מצבים.
בדיקות Edit Mode רצות ללא לולאת המשחק — מהירות ביצוע במילישניות. מתאימות לנוסחאות נזק, חישובי כלכלה, אימות קונפיגורציה. בדיקות Play Mode מריצות את לולאת המשחק המלאה — בודקות לוגיקת MonoBehaviour, קורוטינות, מעברי סצנה.
דוגמה:
[UnityTest] public IEnumerator PlayerTakeDamage_HealthReduces() { var go = new GameObject(); var health = go.AddComponent<HealthComponent>(); health.Initialize(100); health.ApplyDamage(30); yield return null; Assert.AreEqual(70, health.CurrentHealth); } כסה את מה שנשבר הכי הרבה: מערכת שמירה, כלכלה, לוגיקת קרב. אין צורך בכיסוי של 100% — מספיקים נתיבים קריטיים. UI (UGUI, UI Toolkit) קשה יותר לאוטומציה: השתמש ב-[UnityTest] public IEnumerator PlayerTakeDamage_HealthReduces() { var go = new GameObject(); var health = go.AddComponent<HealthComponent>(); health.Initialize(100); health.ApplyDamage(30); yield return null; Assert.AreEqual(70, health.CurrentHealth); } או Appium בפלטפורמות מובייל. בדיקות אוטומטיות רצות פי 50 מהר יותר מבדיקות ידניות ברגרסיה — זה מפחית את תקציב בדיקות הרגרסיה ב-40%.
למה Profiling על מכשיר אמיתי הוא קריטי?
בדיקות לא תופסות בעיות ביצועים. לשם כך, צריך פרופיילר על פלטפורמת היעד. Unity Profiler הוא נקודת התחלה. שלבים מרכזיים:
- בצע Profiling על המכשיר, לא בעורך — העורך מוסיף תקורה. חבר את המכשיר דרך USB עם Development Build ו-Autoconnect Profiler.
- הסתכל על Main Thread ו-Render Thread בנפרד. בעיות אופייניות:
-
InputSystem.QueueEvent>2ms — פיזיקה מורכבת -
Physics.FixedUpdateכל פריים — קריאות UI Dirty מיותרות -
Canvas.BuildBatch— הקצאת זיכרון בנתיב חם (בתוך Update)
-
- השתמש ב-ProfilerMarker ללוקליזציה:
using Unity.Profiling; static readonly ProfilerMarker k_PathfindMarker = new ProfilerMarker("Pathfinding.Calculate"); void UpdateAI() { using (k_PathfindMarker.Auto()) { // pathfinding code } } Memory Profiler (חבילה GC.Collect) מספק תמונות זיכרון: מוצא דליפות (אובייקטים שלא שוחררו לאחר מעבר סצנה), משווה שתי תמונות. הגורמים הנפוצים ביותר לבעיות במובייל: טקסטורות ללא פורמט נכון (ASTC ל-iOS, ETC2 לאנדרואיד), אודיו ב-WAV במקום Vorbis, אובייקטים ב-using Unity.Profiling; static readonly ProfilerMarker k_PathfindMarker = new ProfilerMarker("Pathfinding.Calculate"); void UpdateAI() { using (k_PathfindMarker.Auto()) { // pathfinding code } } שמצטברים.
Frame Debugger (Window → Analysis → Frame Debugger) מאפשר לעבור על כל קריאת Draw בפריים. לפרויקטי מובייל, הנורמה היא 50–150 קריאות Draw; אם יותר מ-300, ה-batching לא עובד או שהסצנה עמוסה. בדיקות ביצועים תוכנתיות מדגישות את חשיבות ה-profiling על חומרה אמיתית.
Profiling על מכשיר אמיתי הוא חובה — עורך Unity נותן תוצאות מעוותות בגלל התקורה שלו, אז תמיד השתמש ב-Development Build על מכשיר היעד.
| כלי | מטרה | מה הוא בודק |
|---|---|---|
| Unity Profiler | CPU/GPU | זמן ביצוע תהליכונים, הקצאות, GC |
| Memory Profiler | זיכרון | דליפות, פיזור לפי סוג |
| Frame Debugger | גרפיקה | קריאות Draw, batching, overdraw |
בדיקות פונקציונליות ורגרסיה
בדיקות פונקציונליות מבוססות על תוכניות בדיקה: לכל תכונה — תוצאה צפויה, שלבי שחזור, קריטריוני מעבר. אנו מכסים בדיקות smoke, sanity ו-acceptance. בדיקות רגרסיה — הרצת מקרים מצטברים לפני כל שחרור, לא רק לפני שחרורים גדולים.
כלי ניהול: TestRail, Qase, Zephyr. לצוותים קטנים — Notion או Google Sheets עם רשימות בדיקה מובנות.
בדיקות על מכשירים אמיתיים
אמולטורים לא משחזרים הגבלת תרמית, GPU אמיתי ומגבלות זיכרון. סט מינימלי — 20+ מכשירים מכל הפלחים:
| קטגוריה | דוגמאות | RAM |
|---|---|---|
| אנדרואיד נמוך | Snapdragon 662 (Samsung A12, Redmi Note 10) | 3 GB |
| אנדרואיד בינוני | Snapdragon 720G/765G | 6 GB |
| אנדרואיד דגל | Snapdragon 888+ | 8 GB |
| iOS נמוך | iPhone SE 2 | 3 GB |
| iOS בינוני | iPhone 13/14 | 4–6 GB |
| iPad | הדור האחרון | 6–8 GB |
לבדיקות בקנה מידה גדול — חוות ענן: Firebase Test Lab, BrowserStack App Automate, AWS Device Farm. הן מאפשרות הרצת מאות בדיקות מקבילות על מכשירים אמיתיים.
בדיקות עומס (Multiplayer)
מטרה — למצוא הידרדרות שרת לפני השחרור. כלים: k6 (WebSocket/HTTP API), Gatling (תרחישים מורכבים עם מצב). לפרוטוקולים ספציפיים, כתוב לקוח stress מותאם ב-Go או C#.
בדוק פרמטרים:
- התנהגות בשיא CCU (משתמשים מקבילים) — עד 1000+ CCU
- הידרדרות חביון תחת עומס (p95 latency)
- דליפות זיכרון בשרת מעל 72+ שעות פעילות
- הידרדרות אלגנטית כשצומת אחד נופל
דיווח קריסות וניטור
לאחר השחרור, ה-QA ממשיך דרך ניטור. Firebase Crashlytics הוא הסטנדרט למשחקי מובייל: איסוף קריסות אוטומטי עם symbolication של מחסנית הקריאה, התראות בזמן אמת. Sentry — לרכיבי שרת ו-WebGL. ANR (Application Not Responding) מוגדר בנפרד — Play Console מציג אותם בקטע נפרד. השקעה בבדיקות מחזירה את עצמה תוך 2–3 שחרורים, ומפחיתה עלויות תיקון באגים לאחר השחרור ב-60%.
מה העבודה שלנו כוללת
- תוכנית בדיקה מפורטת (רשימת בדיקה, תרחישים, עדיפויות)
- ערכת בדיקות אוטומטיות (כלכלה, שמירות, נתיבים קריטיים — כיסוי של 70%)
- Profiling CPU/GPU/זיכרון עם דוח לכל באג
- בדיקות ידניות על 20+ מכשירים אמיתיים (נמוך / בינוני / דגל)
- בדיקות עומס שרת (עד 1000+ CCU למשך 12 שעות)
- לוח מחוונים עם מדדים והיסטוריית ריצות
- הכשרת הצוות שלך ביסודות בדיקות אוטומטיות ו-profiling
קבל ייעוץ לפרויקט שלך — נעריך את ה-build הנוכחי שלך ונציע תוכנית אופטימיזציה.
תהליך העבודה
- ניתוח — לימוד הארכיטקטורה, איסוף מדדי build נוכחיים, הגדרת יעדי FPS ויציבות.
- תוכנית בדיקה — יצירת רשימת בדיקה, בחירת כלים, הסכמה על היקף.
- אוטומציה — כתיבת בדיקות לנתיבים קריטיים, הגדרת ריצות CI.
- בדיקות ידניות — הרצת תרחישים על מכשירים, רישום באגים בטרקר.
- דוח והמלצות — מתן מסמך עם בעיות שנמצאו, העדיפות שלהן ותיקונים ספציפיים (אופטימיזציית shader, הגדרות batching, דליפות).
המדדים שלנו
- 8+ שנות ניסיון בפיתוח משחקים (Unity, Unreal, מובייל/PC/קונסולות)
- 30+ משחקי מובייל שנבדקו
- עלייה ממוצעת ב-FPS לאחר אופטימיזציה — 30%
- הפחתה בזמן בדיקות רגרסיה — 40%
- אחריות: כל הבאגים הקריטיים/בעלי עדיפות גבוהה מתוקנים לפני השחרור
רשימת בדיקה לפני שחרור
- [ ] Profiling CPU/GPU על מכשיר נמוך (סשן משחק של 30 דקות)
- [ ] בדיקת דליפות זיכרון דרך Memory Profiler (השוואת תמונות לפני/אחרי סצנה)
- [ ] Frame Debugger — לא יותר מ-200 קריאות Draw, בדיקת static batching
- [ ] בדיקת עומס שרת: 500+ CCU, משך 12 שעות
- [ ] ניטור ANR באנדרואיד (נפרד מקריסות)
- [ ] בדיקות אוטומטיות פונקציונליות למערכת שמירה וכלכלה
טעויות אופייניות בתהליך QA
- בדיקות רק על מכשירי דגל — רוב השחקנים על מכשירים בינוניים ונמוכים.
- חוסר בבדיקות אוטומטיות לכלכלה ושמירות — הן נשברות בכל רפקטורינג.
- דילוג על בדיקות עומס שרת — המשחק מושק, צובר 10k DAU, והשרת קורס.
- רגרסיה רק לפני שחרורים גדולים — קריטי לפני כל עדכון ציבורי.
הזמן בדיקת משחקים סוהר. נעריך את הפרויקט שלך תוך 3 ימים ונציע תוכנית עם תוצאות מובטחות. כתוב לנו — ננתח את ה-build שלך.





