בדיקות
על מנת לבדוק את המערכת בצורה כוללנית, ביצענו עבור הרכיבים בדיקות יחידה. לאחר מכן, עבור רכיבים אשר מתקשרים זה עם זה ביצענו בדיקות אינטגרציה. כאשר נמצאה המערכת בשלבי המימוש הסופיים ביצענו בדיקות ביצועים ובדיקות UI.
בדיקות פונקציונליות ואינטגרציה
עיקרי בדיקות האינטגרציה
-
אינטגרציה בין ה-Mongo connection וה-Domain
-
הרשמת בעל מקום למערכת ושמירת פרטיו ב-DB.
-
עדכון שם המקום/סיסמה של בעל המקום אשר נרשם.
-
יצירת מסגרת פילטור חדשה.
-
עדכון מסגרת הפילטור החדשה כמסגרת פילטור הנוכחית של המקום.
-
יצירת משחק.
-
רישום לקוח למערכת.
-
חיבור לקוח למקום.
-
עדכון פרטי לקוח במערכת.
-
לקוח מצביע עבור שיר.
-
-
אינטגרציה בין Filter ו- Music provider
-
בדיקה אם שיר אשר עומד בתנאי מסגרת הפילטור הנוכחית עובר את בדיקת הפילטור.
-
בדיקה אם שיר אשר אינו עומד בתנאי מסגרת הפילטור הנוכחית אינו עובר את בדיקת הפילטור
-
-
Filter : עבור חבילה זו נעשו בדיקות יחידה הכוללות את הבדיקות הבאות:
-
יצירת/עדכון/מחיקת מסגרת פילטור.
-
עדכון מסגרת פילטור נוכחית.
-
-
Music provider interface : עבור חבילה זו נעשו בדיקות יחידה הכוללות את הבדיקות הבאות:
-
אתחול ספק המוזיקה.
-
חיפוש שיר.
-
הוספת שיר לרשימת ההשמעה של המערכת.
-
הסרת שיר מרשימת ההשמעה.
-
-
Mongo connection : עבור חבילה זו נעשו בדיקות יחידה הכוללות את הבדיקות הבאות:
-
אתחול מסד הנתונים.
-
אתחול ה-collections.
-
הכנסה/עדכון/מחיקה מ-collection Owners.
-
חיפוש רשומה שאינה קיימת ב-DB.
-
הכנסה/עדכון/מחיקה מ-collection שאינו קיים.
עיקרי בדיקות היחידה
בדיקות Performance, UI, Usability וכו'
בדיקות Portability
בדיקות Usability
-
ניתן יהיה לגשת לממשק המשתמש של המערכת דרך הדפדפן של מחשבים וטלפונים ניידים.
-
המערכת צריכה לתמוך בשפה האנגלית.
ניתן יהיה לחפש שירים בעברית ובאנגלית.
-
משתמש המערכת צריך להיות בעל ידע של משתמש ממוצע בדפדפן הנמצא בטלפון נייד / מחשב.
-
ממשק המשתמש צריך להיות נוח כך שמשתמש לא יהיה צריך הדרכה על מנת לתפעל את המערכת.
בדיקות UI
-
על מנת לבדוק את ממשק המשתמש השתמשנו בכלי Selenium. ביצענו הקלטות עבור פעולות שונות במערכת ובדקנו כי לא מתקבלות שגיאות לא צפויות.
הבדיקות הבאות אומתו באמצעות pilot שערכנו בסביבה ניסיונית - את תוצאותיו ניתן לראות תחת Pilot.
על מנת לבדוק אילוצי מימוש הקשורים לביצועי המערכת נרצה להשתמש בכלי לבדיקות עומס - JMeter. עיקר הטרנזקציות אותן רצינו לבדוק הן:
בדיקות Performance
בדיקות Relaiability & Stability
-
95% מהטרנזקציות אשר התקבלו מאורח במקום צריכות להסתיים תוך פחות מ-3 שניות. בדיקה - חילקנו את הטרנזקציות לשני סוגים. הסוג הראשון של אינו מערב את ה- streaming service ואילו הסוג השני כן מערב. עבור הסוג הראשון ביצענו 1000 טרנזקציות וראינו כי אכן 95% מהטרנזקציות מסתיימות תוך פחות מ-3 שניות. עם זאת, ראינו גם כי עבור טרנזקציות אשר מבצעות קריאות ל-Streaming service לא הצלחנו לעמוד בזמן הקצוב ועל כן מצאנו פיתרון לכך ומימושו נדחה לגרסה הבאה מפאת חוסר הזמן.
-
על המערכת לתמוך בכ-1000 משתמשים (מחוברים או אורחים) בו-זמנית. בדיקה - ביצענו בו זמנית 1000 טרנזקציות הרשמה וראינו כי המערכת אינה קורסת.
-
הקיבולת המקסימלית של מספר הטרנזקציות תהיה כ-1000 טרנזקציות. בדיקה - ביצענו בו זמנית 1000 טרנזקציות וראינו כי המערכת אינה קורסת.
-
על המערכת להיות עמידה/להתאושש בפני תרחישים לא רצויים של שירות ה-streaming וניתוק קשר עם מסד הנתונים. מדדים לכך יהיו היכולת לעקוב אחרי שגיאות שהתרחשו, וכן מידה ואיכות האינפורמציה השוטפת. בדיקה - ראינו כי כאשר קיבלנו שגיאה שמעידה על חציית ה-rate limit המערכת לא קרסה והשרת תפס את השגיאה. בנוסף, נבדק תרחיש עבור הכנסת מידע למסד הנתונים בצורה שגויה - השגיאה נתפסה על ידי השרת והמערכת איננה קרסה. בדיקה עבור ניתוק קשר עם מסד הנתונים נדחתה לגרסה הבאה.