LOGIN
התחברות או הרשמה
Avatar
להמשך הרשמה ידנית – לחץ על כפתור ההרשמה, להרשמה/כניסה מהירה בעזרת חשבון רשת חברתית – לחץ על הלוגו בכותרת

אפס סיסמה - שכחתי את שם המשתמש

שם משתמש
סיסמה
זכור אותי

he icon   en icon

בכדי להוסיף פוסט בבלוג יש להרשם או להתחבר - ההרשמה/כניסה מתבצעת מכותרת האתר.

תכונות הטסט: בידול

נכתב על ידי 
חמישי, 07 אוגוסט 2014 11:57
דרגו כתבה זו
(1 הצבעה)

בידול לא בא לבד. הוא דורש קבוצה של טסטים.

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

ה- Waterfall. לפני שנים רבות, כשלא הכרתי תהליך אחר, הייתי כותב מסמכי SDD. אלו מסמכי detailed design משוקצים שכתבנו לקומפוננטות ולפיצ'רים. כמובן שאף אחד לא אהב אותם, המינוח הפורמלי, האורך, ואפילו הריח. אבל היה להם יתרון: כדי לכתוב אותם, צריך לחשוב על הבעיה קודם (כמו TDD). כשקראנו את המסמכים, הם היוו נקודת פתיחה לשאלות "מה יקרה אם..." – מה יקרה אם הקשר יתנתק? מה אם הקומפוננט לא מאותחל בזמן?

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

ובחזרה לעתיד.

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

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

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

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

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

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

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

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

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

בפעם הבאה: תחזוקה.

חובה להיות משתמש רשום במערכת בכדי להגיב - ההרשמה/כניסה בכותרת האתר

חדשות מעולם הבדיקות

  • Five Blogs – 18 October 2018

    The (best) five blogs I read today. Check them out. What Is Data Democratization? A Super Simple Explanation And The Key Pros And Cons Written by: Bernard Marr What’s getting Agile down? Written by: Gary Watts Future of AI in Testing (Will You Be Replaced?) Written by: Joe Colantonio Jeff Hawkins Is Finally Ready to Explain His Brain Research Written by: Cade Metz Lower level Automation and testing? Be more precise! The Automation triangle revisited…again! Written by: Toyer Mamoojee Quote of the day: “When you’re young, being different is not cool. But when you’re older, it absolutely is.” -Lane Moore You can follow this page on Twitter

    17.10.2018 | 11:36 קרא עוד...
  • The Automated Regression Suite. Part 2 of 3. When to run the tests.

    Once you have your automated regression suite in place, you can create a scheduler to run them periodically, without any manual intervention. Mostly you will use Jenkins jobs (or some similar CI tool) to trigger them and have them running on an environment of your choice. Just because they are called “regression tests” it does not mean they are only meant to be run once before a release. They are in place to help validate your system, so you can run them as often as you want. But how often do you want to run them? That really depends on some factors like: how often are you releasing, how often are you committing, how many other services is your software dependent on, how often are those services also released, and so on. How often you are releasing determines the amount of new or changed code that needs to reach production. If you are releasing once a year, the amount of such code will be huge. If you release every two weeks you will have less such code, and in case a failure would occur in the software, it would be much easier to pinpoint the root of the problem (as compared to the one-year release cycle). If you are releasing rarely, with large amounts of time between releases, you really should run your tests at least once a week. From my experience, this test run frequency makes running these tests worth it, since you have a good amount of changed[…]

    17.10.2018 | 11:17 קרא עוד...
  • Let’s stop talking about testing, let’s start thinking about value

    Let’s stop talking about testing, let’s start thinking about value This year Alex Schladebeck and I did two keynotes titled “Let’s stop talking about testing, let’s start thinking about value” at QA Expo in Spain and TestNet in the Netherlands. This blogpost has the most important points we made in our talk. The keynote was inspired by some of our frustrations: “Testing is under appreciated” (Alex) and “Most testers are unable to explain what we do” (Huib). I wrote about my frustration back in 2016 already. This blogpost is about my frustration that most testers cannot come up with a decent definition of testing. And even worse: a big majority of the people who call themselves professional testers are not able to explain what testing is and how it works! They have trouble explaining what they are testing and why they are doing specifically the thing they are doing! How can anybody take a tester seriously who cannot explain what he is doing all day? Alex’s frustration is that testing is not valued by others. Developers are seen as the rockstars of the project because they create the software that adds value. But why are testers often not valued? Lowered expectations for testing expertise by stuff like ISO standards and ISTQB: I wrote about certification and standards before. ISTQB and standards put too much emphasis on process and documentation, rather than the real testing. By assuming there can be a standard, you say that there is one best way to organize and document your testing. But isn’t your test strategy[…]

    17.10.2018 | 5:05 קרא עוד...

טיפים

לרשימה המלאה >>