Unit test או feature test כיצד נכון יותר לבדוק?

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

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

אשמח להכוונה.

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

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

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

3 לייקים