אורקל בדיקות

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

שיטות ליצירת אורקל

ישנם דרכים רבות לניבוי התוצאות

אורקל אנושי - הזנה ידנית של התוצאות הצפויות לפי חישוב של אדם
שימוש בגרסאות קודמות של מוצר זה
שימוש באלגוריתמים אחרים ידועים שעושים אותה פעולה
ועוד

אסטרטגיה לבניית היוריסטיקה לבדיקת אורקל 

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

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

פשטות:
שימוש בטווחים, שימוש בקבוצות בעלות מאפיינים דומים\זהים

בדיקות אורקל אוטומטיות

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

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

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

קטגוריות של "אוטומציות לבדיקות אורקל" 

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

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

בדיקות מבוססות רשתות נוירונים - 
ניתן להתייחס אל רשתות נוירונים כאל אורקל אשר ישערך את נכונות הפתרון – "הפתרון נכון ב-70%" כלומר 70 אחוז מהקישורים ברשת אמרו "פתרון נכון".

בדיקות N-Version - 
שימוש בגרסאות קודמות כעזר לאבחון נכונות התשובה בגרסה הנוכחית

ראו גם 
בדיקות תוכנה ממוכנות
בדיקות תוכנה

קישורים חיצוניים
  Hoffman, Douglas; A Taxonomy for Test Oracles , Quality Week, 1998

בדיקות תוכנה