**בדיקות לתוכנה בענן** היא פרדיגמה בתחום בדיקות תוכנה שנוצרה בעקבות השימוש הגובר במחשוב ענן, פיתוח אפליקציות חדשות לענן, והצורך לבדוק את תקינותן.

הקדמה
-----

בעקבות העלייה הגוברת בשימוש במחשוב ענן בתחום התוכנה על ידי שימוש  בתוכנה כשירות (SaaS)  ופלטפורמה כשירות (PaaS),
נוצר צורך לבצע התאמות לבדיקות התוכנה הרגילות כך שיתאימו למאפיינים המיוחדים של תוכנות בענן.
בדיקות התוכנה המסורתיות אינן מספיקות על מנת לוודא תקינות של תוכנה בסביבת הענן ומאחר והענן הוא סביבה משותפת למספר תוכנות במקביל והעבודה מולו מתבצעת ב-HTTP ישנה חשיבות רבה לזמינות השירות.

סוגי בדיקות תוכנה בסביבת הענן
-----------------------------

נקודות מבט שונות לבדיקה של תוכנה בענן
קיימים ארבעה סוגי בדיקות תוכנה עיקריות בתחום מחשוב הענן:

* בדיקות של תוכנה בענן: בדיקה המשמשת על מנת לוודא את איכות התוכנה של תוכנה כשירות בהתבסס על הדרישות הפונקציונליות והלא-פונקציונליות שהוגדרו במסמך הדרישות של השירות.
* בדיקה של הענן: בדיקה המשמשת על מנת לוודא את איכות שירות הענן מנקודת מבט חיצונית בהתבסס על פירוט היכולות ועל התכונות של הענן.
* בדיקה בתוך הענן: בדיקה המשמשת על מנת לבדוק את איכות שירות הענן מנקודת מבט פנימית. בדיקה זו מתבצעת על ידי ספק הענן ומתבססת על התשתית הפיזית של הענן.
* בדיקה בין עננים: הבדיקה משמשת על מנת לבדוק אפליקציות מבוססות ענן על פני שירותי ענן שונים. כולל בדיקה של שירותי ענן פרטיים, ציבוריים או משולבים.

נושאים ייחודיים למחשוב ענן
--------------------------

הסכם רמת שירות (SLA)במחשוב ענן, כל העננים, תוכנות כשירות ותוכנות אחרות, מספקים בדרך כלל שירותים שונים למשתמשי הקצה והלקוחות שלהם באמצעות הסכם רמת שרות מוגדר היטב הקובע זאת.
מודל תמחור ושרותי חשבוןמאחר שתשלום לפי שימוש הוא אחד מהעקרונות היסודיים של מחשוב ענן, מודל התמחור והחשבון הופכים להיות חלק מנושא בדיקות התוכנה.
כמות נתונים גדולה ותנועה רבהיישום והדמיה של כמויות גדולות של גישות משתמשים למערכת ובדיקה של עומסים בחיבור חשובים מאוד בבדיקות תוכנה על מנת לבצע בדיקות תקינות ובדיקות ביצועים.
ריבוי דיירים (Multi-Tenants)אחת התכונות העיקריות של מחשוב ענן היא האפשרות של תוכנות שונות על אותו השרת לשתף משאבים בניהן. בדיקות התוכנה נדרשות לוודא כי התוכנה לא נפגעת ולא פוגעת בתוכנות אחרות כתוצאה משיתוף המשאבים.
סילומיותרוב שרותי הענן מאפשרים להגדיל או להקטין באופן אוטומטי את כמות השרתים המשמשים את האפליקציה בהתאם לעומס על האפליקציה בנקודת זמן.

בעיות ואתגרים
-------------

### אבטחת מידע

 ערך מורחב – **בדיקות אבטחת תוכנה**  

מחשוב ענן מציב מספר אתגרים בתחום אבטחת מידע עליהם יש לתת את הדעת בבדיקות התוכנה:

* כיצד ניתן לוודא שהתוכנה מאובטחת בתוך תשתית ענן של שירות צד שלישי?
* אילו מודלי-בדיקות, בדיקות-התאמה וטכניקות-בדיקה אחרות קיימם על מנת לוודא אבטחה מלאה לאורך כל הדרך בין האפליקציה, שירות הענן והלקוח?
* כיצד אנחנו יכולים לוודא פרטיות בתשתית מבוססת ענן?

### בדיקות נסיגה

 ערך מורחב – **בדיקות נסיגה**  

בתוכנה רגילה בדיקות נסיגה מתבצעות בדרך כלל לאחר ביצוע שינוי בקוד התוכנה או בסביבת ההרצה על מנת לוודא כי התוכנה ממשיכה לפעול באופן תקין.
אולם, במחשוב ענן קיימת יכולת של ריבוי דיירים המאפשרת לשתף משאבים בין התוכנות בסביבת הענן. כתוצאה מכך, ייתכן כי שינוי בתוכנה מסוימת שנמצאת בענן ישפיע על תוכנה אחרת בענן.
בנוסף האחריות לביצוע עדכוני תוכנה מוטלת על ספק הענן, ולכן לא תמיד ידוע לנו מתי מתעדכנת גרסה של תוכנה תשתיתית בענן.
בעקבות זאת קיים קושי להגדיר מתי בדיוק יש להריץ את בדיקות הנסיגה, ולכן על בודקי התוכנה להחליט על דרך פעולה בנושא.

דרישות מבדיקות תוכנה בענן
-------------------------

מודל בדיקהנדרשים מודלים גמישים שיוכלו לבדוק את התוכנה כאשר יש שינויים בעומס על התוכנה. המודלים צריכים להתחשב בעלות ביצוע הבדיקה.
מודל אינטגרציהבדיקות אינטגרציה צריכות לכלול בדיקת זמינות של השרת ובדיקה של ה-API בין השרתים השונים. בנוסף צריך לבדוק את האינטראקציה של תוכנה כשירות עם תוכנות ישנות.
בדיקות ופתרונות חדשנייםבדיקות תקינות מתמשכות ובדיקות נסיגה, פיתוח של בדיקות אוטומטיות בין שירותי ענן.
שימוש בטכנולוגיות חדשות על מנת לבדוק את ההתאמה של שירות הענן לתוכנה.

מקורות
------

* Jerry Gao, Xiaoying Bai, W. T. Tsai, Cloud Testing- Issues, Challenges, Needs and Practice, ‏ספטמבר 2011 (באנגלית) (ארכיון)
* AppLabs, Approach to Cloud Testing, ‏מאי 2009 (באנגלית)(הקישור אינו פעיל)

ראו גם
------

* בדיקת תוכנה כשירות