בחלק השני של המאמר דנו בבדיקות של מוצר פשוט עם תלויות. בחלק זה - השלישי והאחרון למאמר, נעסוק בבדיקות של מוצר מולטי-מודולורי.
ראשית, נסביר על מה מדובר. מוצר מולטי-מודולרי הינו לכל הפחות מוצר בעל ממשקים שונים ובהכרח עם תלויות שונות.
דוגמאות נפוצות: מכונת חטיפים או משקאות, מכונה להשכרת קלטות וידאו / DVD, כספומט וכו'.
איך ניגשים למשימה כזו ? מתחילים בלפרק את המוצר למודולים שלו ולהתייחס לכל אחד מהם בנפרד, כמובן בהקשר של קבוצות הטסטים המוכרות (Functionality, Load, Negative וכו') ולא פחות חשוב - לאינטראקציה של המודולים.
בחלק הזה נתמקד בהקשר המולטי-מודולרי ולא נתייחס למה שעסקנו בחלקים הקודמים כמו התייחסות למוצר כולו או לתלויות שלו.
מספר המודולים ותיאורם חייב להיות זמין בשאלה, אחרת יש להעלות שאלות לבוחן או להציב הנחות.
תנאים מוקדמים:
כדאי להפריד את החלק המכני של המוצר, אם קיים, לחלק הלוגי הרלוונטי יותר לראיון. בדיקות מכניות כמו האם כל קלטת / פחית מצליחה ליפול מכל נקודה במכונה אל פתח השירות או באיזה שיפוע יש להניח את המכונה כדי שהפחיות לא יתקעו בה - לדעתי לא רלוונטי לראיון בחברת תוכנה. כדאי לציין את חוסר ההתייחסות בפירוט הבדיקות כדי שהמראיין יבין שאתם מודעים לנושאים אלה ובחרתם שלא להתייחס אליהם בכוונה.
לרוב המוצרים בקטגוריה זו יש לפחות Input פיזי, Input לוגי, Output פיזי, Output לוגי ויש לפחות תלות עיקרית בנוסף לרשת החשמל כמו רשת חיצונית של מידע.
Input פיזי - יכול להיות פתח הטענה לקלטות, פתח הכנסת מטבעות, פתח להפקדת כסף וכדו'.
Input לוגי - סט מקשים להקשת הקוד הסודי, מקשי פונקציות בצד המסך, צג מגע וכדו'.
Output פיזי - פתח יציאה לפחית, פתח יציאה לשטרות, פתח לניר הדפסה וכו'
Output לוגי - מסך LCD, רמקול, נורות LED וכו'
תלות חיצונית - רשת פנימית של כספומטים, אינטרנט, רשת P2P לחברת האשראי וכדו'
התייחסות לכל אחד מהמודולים הנ"ל יכול להוות בסיס טוב למערך טסטים, גם כאשר שאר הפרטים בתיאור המקרה אינם ברורים מספיק.
את התלות החיצונית (מלבד החשמל) אני מציע לייצג באמצעות סימולטור תוכנה שידמה את כל התשובות האפשריות מהרשת, לאו דווקא בתנאים אידאלים או קבועים.
לצורך הפשטות, נתייחס לדוגמת הכספומט החביבה על המראיינים (כולל עלי).
Functionality -
הקשת קוד תקין - בדיקת אישור.
הקשת קוד שגוי - בדיקת דחייה.
הקשת קוד שגוי ואח"כ קוד תקין - בדיקת אישור.
הקשת קוד שגוי מספר חוזר של פעמים - בדיקת חסימת משתמש (בליעת כרטיס, או לפי המוגדר ב-spec)
משיכת סכום חוקי [מתחת למגבלת משיכה] בכרטיס תקין עם אשראי מספיק - בדיקה שיש אישור.
משיכת סכום לא חוקי [מעל למגבלת משיכה] בכרטיס תקין עם אשראי מספיק - בדיקה שיש דחיה.
משיכת סכום חוקי בכרטיס תקין ללא אשראי מספיק - בדיקה שיש דחיה.
משיכת סכום חוקי בכרטיס תקין עם אשראי אך מעל לרזרבת המזומן בכספומט - בדיקה שיש דחיה.
בקשת פירוט מצב חשבון בנק - בדיקה שהפרטים שהתקבלו דרך הרשת החיצונית מוצגים נכון.
פתח כניסה לכרטיס מגנטי:
טעינת כרטיס חוקי (כרטיס שהנפיק בנק או חברת אשראי) תקין - בדיקת זיהוי תקין.
טעינת כרטיס חוקי מוכנס הפוך - בדיקת דחייה.
טעינת כרטיס חוקי פגום (שבור / שחוק) - בדיקת דחייה.
טעינת כרטיס לא חוקי (כרטיס מועדון מגנטי) - בדיקת דחייה.
מקשים עם ספרות להקשת הקוד / מקשים לצד המסך - לבחירת אפשרות:
בדיקת תגובה מכל המקשים - הפעלת לחץ משתנה על כל מקש.
רזרבת הכסף:
בדיקה שהסכום שהוכנס לרזרבה, זהה לזו המדווחת במערכת.
משיכת סכומים שונים של כסף ובדיקה שהסכום שנשאר ברזרבה מתעדכן נכון.
הפעלת המכשיר ללא רזרבה - בדיקה שאין זמינות / אין אפשרות משיכה.
ביצוע משיכה חוקית שמרוקנת את הרזרבה - בדיקה שאין זמינות / אין אפשרות משיכה.
Performance -
בדיקת זמני עליה מרגע הדלקת המערכת.
בדיקת הזמן הנדרש מרגע בחירת אפשרות (כמו משיכה) ועד הביצוע שלה.
Compatibility -
בדיקת התוכנה על מספר רב של דגמי חומרה.
Interoperability -
בדיקה עם כרטיסים מגנטים שונים של חברות אשראי / בנקים שונים.
בדיקה עם שטרות שונים ברזרבה, כולל מקומיים / זרים.
Stability -
חזרה על: מילוי הרזרבה וביצוע משיכות חוזרות עד לריקון הרזרבה, מספר רב של פעמים.
חזרה על: ביצוע פעולות בירור יתרה והדפסה עד לריקון מלאי הנייר, מספר רב של פעמים.
הפעלת המערכת ממצב כיבוי עד למצב תפקוד וכיבוי חוזר, מספר רב של פעמים.
הפעלת התוכנה תחת אוטומציה שתדמה ביצוע פעולות משיכה מאושרות ודחויות באופן רנדומלי מספר רב של פעמים.
Negative -
ניתוק המערכת מהחשמל בכל שלב מהפעולות והחזרת החשמל - בדיקה שהמערכת יודעת להמשיך מהנקודה שהוגדרה לה.
ניתוק הרשת החיצונית בכל שלב וביצוע פעולות משתמש שונות כגון משיכה, בירור מצב חשבון וכו'
ניתוק חשמלי או ביצוע קלקול יזום של כל אחד מהמודולים (סורק כרטיסים, פתח הוצאת מזומן) ובדיקת אי זמינות המערכת.
לחיצה מהירה על מספר רב של מקשים בו זמנית - וידוא שאין קריסה או תגובה לא רצויה.
Usability -
אפשרות ביטול פעולה זמינה מכל נקודה והכרטיס חוזר למשתמש ללא ביצוע הפעולה.
בדיקת הדפסת הודעת שגיאה מתאימה למשתמש (לא קוד טכנאי) בכל ביצוע שגיאה או תקלה במערכת.
בדיקת הלחץ הנדרש להפעלה על המקשים, כך שכל משתמש יוכל לתפעל אותם בנוחות.
בדיקת visibility למסך בתנאי תאורה קשים כמו אור שמש ישיר.
בדיקה שההודעות המוצגות משתהות זמן מספק לקריאה לרוב המשתמשים.
בדיקת timeouts מספקים לתגובה עבור רוב המשתמשים.
לוח מקשים:
מעבר מהיר בין מקשים ולחיצה מהירה על אותו מקש ובדיקת תגובתיות המערכת לרצף ההקלדות.
Stress -
חומרה:
בדיקת תפקוד המערכת תחת מתחי חשמל שונים בגבולות ה-spec.
בדיקת תפקוד המערכת תחת טמפרטורות משתנות.
הפעלת לחץ גבוה מעל הממוצע על הכפתורים הנלחצים מספר רב של פעמים.
תוכנה:
הפעלה וכיבוי מרובות של התוכנה בתזמונים שונים.
העלאה והורדה של הקישור לרשת החיצונית בזמנים רנדומליים מספר רב של פעמים.
GUI -
בדיקה שכל הפונטים של כלל ההודעות מופיעים כראוי על המסך, אינם חתוכים ובמרווחים הקבועים.
בדיקת גודל הפונטים המוצגים על המסך כך שיהיו נוחים לקריאה עבור רוב המשתמשים.
בדיקת שמסגרות ההודעה המוצגות על המסך אינם חתוכות או צמודות מדי לשוליים.
בדיקה שהצבעים שנבחרו קונטרסטיים וניתנים לקריאה בנוחות.
זהו. אני חושב שיש כאן מספיק חומר כדי למלא ראיון עבודה או מבחן.
בזה סיימנו את שלשת החלקים למאמר שעסק בנושא: "משימות בדיקה מראיונות עבודה"
משימה Type C - מוצר מולטי-מודולרי
ראשית, נסביר על מה מדובר. מוצר מולטי-מודולרי הינו לכל הפחות מוצר בעל ממשקים שונים ובהכרח עם תלויות שונות.
דוגמאות נפוצות: מכונת חטיפים או משקאות, מכונה להשכרת קלטות וידאו / DVD, כספומט וכו'.
איך ניגשים למשימה כזו ? מתחילים בלפרק את המוצר למודולים שלו ולהתייחס לכל אחד מהם בנפרד, כמובן בהקשר של קבוצות הטסטים המוכרות (Functionality, Load, Negative וכו') ולא פחות חשוב - לאינטראקציה של המודולים.
בחלק הזה נתמקד בהקשר המולטי-מודולרי ולא נתייחס למה שעסקנו בחלקים הקודמים כמו התייחסות למוצר כולו או לתלויות שלו.
מספר המודולים ותיאורם חייב להיות זמין בשאלה, אחרת יש להעלות שאלות לבוחן או להציב הנחות.
תנאים מוקדמים:
כדאי להפריד את החלק המכני של המוצר, אם קיים, לחלק הלוגי הרלוונטי יותר לראיון. בדיקות מכניות כמו האם כל קלטת / פחית מצליחה ליפול מכל נקודה במכונה אל פתח השירות או באיזה שיפוע יש להניח את המכונה כדי שהפחיות לא יתקעו בה - לדעתי לא רלוונטי לראיון בחברת תוכנה. כדאי לציין את חוסר ההתייחסות בפירוט הבדיקות כדי שהמראיין יבין שאתם מודעים לנושאים אלה ובחרתם שלא להתייחס אליהם בכוונה.
לרוב המוצרים בקטגוריה זו יש לפחות Input פיזי, Input לוגי, Output פיזי, Output לוגי ויש לפחות תלות עיקרית בנוסף לרשת החשמל כמו רשת חיצונית של מידע.
Input פיזי - יכול להיות פתח הטענה לקלטות, פתח הכנסת מטבעות, פתח להפקדת כסף וכדו'.
Input לוגי - סט מקשים להקשת הקוד הסודי, מקשי פונקציות בצד המסך, צג מגע וכדו'.
Output פיזי - פתח יציאה לפחית, פתח יציאה לשטרות, פתח לניר הדפסה וכו'
Output לוגי - מסך LCD, רמקול, נורות LED וכו'
תלות חיצונית - רשת פנימית של כספומטים, אינטרנט, רשת P2P לחברת האשראי וכדו'
התייחסות לכל אחד מהמודולים הנ"ל יכול להוות בסיס טוב למערך טסטים, גם כאשר שאר הפרטים בתיאור המקרה אינם ברורים מספיק.
את התלות החיצונית (מלבד החשמל) אני מציע לייצג באמצעות סימולטור תוכנה שידמה את כל התשובות האפשריות מהרשת, לאו דווקא בתנאים אידאלים או קבועים.
לצורך הפשטות, נתייחס לדוגמת הכספומט החביבה על המראיינים (כולל עלי).
Functionality -
הקשת קוד תקין - בדיקת אישור.
הקשת קוד שגוי - בדיקת דחייה.
הקשת קוד שגוי ואח"כ קוד תקין - בדיקת אישור.
הקשת קוד שגוי מספר חוזר של פעמים - בדיקת חסימת משתמש (בליעת כרטיס, או לפי המוגדר ב-spec)
משיכת סכום חוקי [מתחת למגבלת משיכה] בכרטיס תקין עם אשראי מספיק - בדיקה שיש אישור.
משיכת סכום לא חוקי [מעל למגבלת משיכה] בכרטיס תקין עם אשראי מספיק - בדיקה שיש דחיה.
משיכת סכום חוקי בכרטיס תקין ללא אשראי מספיק - בדיקה שיש דחיה.
משיכת סכום חוקי בכרטיס תקין עם אשראי אך מעל לרזרבת המזומן בכספומט - בדיקה שיש דחיה.
בקשת פירוט מצב חשבון בנק - בדיקה שהפרטים שהתקבלו דרך הרשת החיצונית מוצגים נכון.
פתח כניסה לכרטיס מגנטי:
טעינת כרטיס חוקי (כרטיס שהנפיק בנק או חברת אשראי) תקין - בדיקת זיהוי תקין.
טעינת כרטיס חוקי מוכנס הפוך - בדיקת דחייה.
טעינת כרטיס חוקי פגום (שבור / שחוק) - בדיקת דחייה.
טעינת כרטיס לא חוקי (כרטיס מועדון מגנטי) - בדיקת דחייה.
מקשים עם ספרות להקשת הקוד / מקשים לצד המסך - לבחירת אפשרות:
בדיקת תגובה מכל המקשים - הפעלת לחץ משתנה על כל מקש.
רזרבת הכסף:
בדיקה שהסכום שהוכנס לרזרבה, זהה לזו המדווחת במערכת.
משיכת סכומים שונים של כסף ובדיקה שהסכום שנשאר ברזרבה מתעדכן נכון.
הפעלת המכשיר ללא רזרבה - בדיקה שאין זמינות / אין אפשרות משיכה.
ביצוע משיכה חוקית שמרוקנת את הרזרבה - בדיקה שאין זמינות / אין אפשרות משיכה.
Performance -
בדיקת זמני עליה מרגע הדלקת המערכת.
בדיקת הזמן הנדרש מרגע בחירת אפשרות (כמו משיכה) ועד הביצוע שלה.
Compatibility -
בדיקת התוכנה על מספר רב של דגמי חומרה.
Interoperability -
בדיקה עם כרטיסים מגנטים שונים של חברות אשראי / בנקים שונים.
בדיקה עם שטרות שונים ברזרבה, כולל מקומיים / זרים.
Stability -
חזרה על: מילוי הרזרבה וביצוע משיכות חוזרות עד לריקון הרזרבה, מספר רב של פעמים.
חזרה על: ביצוע פעולות בירור יתרה והדפסה עד לריקון מלאי הנייר, מספר רב של פעמים.
הפעלת המערכת ממצב כיבוי עד למצב תפקוד וכיבוי חוזר, מספר רב של פעמים.
הפעלת התוכנה תחת אוטומציה שתדמה ביצוע פעולות משיכה מאושרות ודחויות באופן רנדומלי מספר רב של פעמים.
Negative -
ניתוק המערכת מהחשמל בכל שלב מהפעולות והחזרת החשמל - בדיקה שהמערכת יודעת להמשיך מהנקודה שהוגדרה לה.
ניתוק הרשת החיצונית בכל שלב וביצוע פעולות משתמש שונות כגון משיכה, בירור מצב חשבון וכו'
ניתוק חשמלי או ביצוע קלקול יזום של כל אחד מהמודולים (סורק כרטיסים, פתח הוצאת מזומן) ובדיקת אי זמינות המערכת.
לחיצה מהירה על מספר רב של מקשים בו זמנית - וידוא שאין קריסה או תגובה לא רצויה.
Usability -
אפשרות ביטול פעולה זמינה מכל נקודה והכרטיס חוזר למשתמש ללא ביצוע הפעולה.
בדיקת הדפסת הודעת שגיאה מתאימה למשתמש (לא קוד טכנאי) בכל ביצוע שגיאה או תקלה במערכת.
בדיקת הלחץ הנדרש להפעלה על המקשים, כך שכל משתמש יוכל לתפעל אותם בנוחות.
בדיקת visibility למסך בתנאי תאורה קשים כמו אור שמש ישיר.
בדיקה שההודעות המוצגות משתהות זמן מספק לקריאה לרוב המשתמשים.
בדיקת timeouts מספקים לתגובה עבור רוב המשתמשים.
לוח מקשים:
מעבר מהיר בין מקשים ולחיצה מהירה על אותו מקש ובדיקת תגובתיות המערכת לרצף ההקלדות.
Stress -
חומרה:
בדיקת תפקוד המערכת תחת מתחי חשמל שונים בגבולות ה-spec.
בדיקת תפקוד המערכת תחת טמפרטורות משתנות.
הפעלת לחץ גבוה מעל הממוצע על הכפתורים הנלחצים מספר רב של פעמים.
תוכנה:
הפעלה וכיבוי מרובות של התוכנה בתזמונים שונים.
העלאה והורדה של הקישור לרשת החיצונית בזמנים רנדומליים מספר רב של פעמים.
GUI -
בדיקה שכל הפונטים של כלל ההודעות מופיעים כראוי על המסך, אינם חתוכים ובמרווחים הקבועים.
בדיקת גודל הפונטים המוצגים על המסך כך שיהיו נוחים לקריאה עבור רוב המשתמשים.
בדיקת שמסגרות ההודעה המוצגות על המסך אינם חתוכות או צמודות מדי לשוליים.
בדיקה שהצבעים שנבחרו קונטרסטיים וניתנים לקריאה בנוחות.
זהו. אני חושב שיש כאן מספיק חומר כדי למלא ראיון עבודה או מבחן.
בזה סיימנו את שלשת החלקים למאמר שעסק בנושא: "משימות בדיקה מראיונות עבודה"
מעולה, תודה!
השבמחק