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