תפריט

מקרי בדיקה עבור טופס כתובת בקופה ששווה לשמור

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

פורסם

  • נתוני בדיקה
  • כתובת
  • טפסים

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

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

הטפסים הם אלה שמשתמשים פוגשים בפועל

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

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

מקרי בדיקה לשדות חובה ורשות

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

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

יש לבדוק גם מקצה לקצה מדינה בלי מיקוד. אמורה להיות אפשרות להשלים את ההזמנה, ואישור ההזמנה לא אמור להציג שורת מיקוד ריקה.

מה קורה כשהמדינה משתנה?

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

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

מקרה קשור: לבחור את המדינה אחרונה. יש אנשים שממלאים את הכתובת קודם וקובעים את המדינה אחר כך. אם האימות רץ בכל הקלדה, הם יראו שגיאות על תבנית שהיתה נכונה עבור מדינה שטרם נבחרה.

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

האם הדבקה ומילוי אוטומטי עדיין עובדים?

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

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

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

בדיקה במכשיר נייד ובחיבור איטי

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

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

למפתחים: על מה לאמת ומה לזרוע

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

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

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

צעדים הבאים

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

המשך קריאה

מדריכים בנושא מחולל כתובות לבדיקה