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

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

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

he icon   en icon

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

יום בחיי בודק – מהו בעצם מקצוע הבדיקות, בפן הפרקטי - יום-יומי?

נכתב על ידי 
שבת, 21 דצמבר 2013 18:46
דרגו כתבה זו
(2 הצבעות)

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

(פוסט זה נסמך בין השאר על דיונים רבים שנכתבו ע"י חברי פורום  " בקרת איכות תוכנה – QA" במהלך השנים)

 

מה זה בכלל בדיקות?

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

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

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

 

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

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

תאורטית - נדרש מעין סרטון תדמית למקצוע – אך מכיוון שלא הצלחתי לארגן הכנתו (עדיין? cool) נתחיל מתאור כתוב:

 

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

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

 

תפקיד הבודק מתחלק למספר פעילויות:

לרוב ישנן תקופות (מימים עד שבועות) בהן מתמקדים יותר בפעולה אחת מתוך אלו, אח"כ עוברים לשלב הבא וכד'.

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

2. ניתוח המידע המהווה בסיס לבדיקות,

3. Review - בחינה של מסמכי הגדרה בכדי להקדים ולמצוא בעיות בהגדרה, בחינת מסמכי בדיקות שכתבו חברים לקבוצה וכד'.

   לרוב מתבצע בשני שלבים:

      א. החזרת משוב מקדים על הגדרות המערכת בקריאה עצמית.

      ב. השתלבות בישיבה עם משתתפים מתפקידים שונים.

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

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

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

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

לרוב חלק זה תופס זמן ניכר מעבודתנו.

תוך כדי ריצה - לרוב נעדכן מסמך תוצאות והתקדמות.

7. פיתוח בדיקות אוטומטיות,

8. הרצת בדיקות אוטומטיות וניתוח תוצאותיהן,

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

10. דיווח באגים - במערכות דיווח / תוכנה לניהול באגים,

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

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

 

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

וכך חוזר חלילה...

 

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

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

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

 

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

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

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

(כמו שנאמר – "למה האחרונים תמיד בסוף" laugh )

 

זוהי כתבה ראשונה בנושא הבדיקות - כיצד נכנסים למקצוע הבדיקות - ומהן התכונות הנדרשות מבודק - לטובת אנשים המעוניינים להכנס למקצוע.

אתם מוזמנים לקרוא עוד בנושא הדרכות לבודקים חדשים בתת-הפורום המיועד לכך:

http://itcb.org.il/index.php?option=com_kunena&view=category&catid=8&Itemid=632

 

קובי הלפרין - halperinko@

שונה לאחרונה ב ראשון, 22 דצמבר 2013 17:01

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

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

  • ATA Meetup #22 - Bangalore - Amazing experience

    ATA Meetup #22 - Bangalore - Amazing experience Reached super earlyThe session was supposed to start at 9 AM and I reached by 7.45 AM. I did not want to be late. Due to weekend's minimalistic traffic and super driver, I surprised myself and I thought I can just enter and wait in the hall. The security asked me the contact person name and I told him that there is a meetup by Agile Testing Alliance - did not help. I called up Aditya Garg and somehow the security got convinced that I can at least pass the main barricade and sit on the makeshift park seats.It was nice to experience fresh air, have fruits and dive into an interesting book called "The Practicing Mind" by Thomas M. Sterner. The Practicing Mind I remembered the discussions with Shrini Kulkarni about consciousness, mind, awareness as I read the book. Around 8.40 AM, Thrivikram and Venkata P from HCL welcomed and escorted me to the induction hall where we had the meetup. The conversation between them and the security folks was an interesting one making me think of the process adherence vs value addition. Learning for me: Know the contact person in advance and keep them informed about surprises in plan. HCL ServicesThe first session was by HCL management represented by Prashantha M who highlighted the various services offered by HCL, the case studies and the learning. There were few really good questions by the audience who wanted to know more details about the insights shared to them.My tip: Knowing[…]

    25.05.2019 | 11:55 קרא עוד...
  • Performance testing (benchmarking) Java code with JMH

    Performance testing (benchmarking) Java code with JMH Contents:1) Introduction2) Is it easy?3) Common pitfalls4) Setup5) How to configure JMH?6) Configuration options7) Configuration - predefining state8) Demo9) Results10) Further reading1. IntroductionAs test engineers when we approach performance testing we usually only think about final end-to-end application verification with tools such as JMeter, Locust or Gatling. We know that such tests should run on a separate environment with conditions resembling production as close as possible. Unfortunately in some cases (especially with monolithic architecture) dedicated performance testing environment is hard to get. What to do in such cases? Should we test on common test environment? Or should we test on production? Or maybe we should change our approach to performance testing?  Each option has advantages and disadvantages.Today I'd like to describe low-level performance testing (often called benchmarking) of Java code. It does not require a separate environment. It can be executed directly from your IDE (although that's not recommended) or from the command line. Measuring the performance of critical pieces of code is essential for everyone who creates applications, frameworks, and tools. Testers are co-creators so it's also our responsibility. 2) Is it easy?Benchmarking correctly is hard. There are multiple optimizations implemented on the JVM/OS/hardware side which make it challenging. In order to measure right, you need to understand how to avoid those optimizations because they may not happen in the real production system. Thankfully, there is a tool which helps you mitigate those issues called JMH (Java Microbenchmark Harness). It was created for building, running, and analyzing nano/micro/milli/macro benchmarks written in Java[…]

    25.05.2019 | 8:10 קרא עוד...
  • Looking at Observability

    Looking at Observability The Test team book club is reading Guide: Achieving Observability from Honeycomb, a high-level white paper outlining what observability of a system means, why you might want it, and factors relevant to achieving and getting value from it.It's not a particularly technical piece but it's sketched out to sufficient depth that our conversations have compared the content of the guide to the approaches taken in some of our internal projects, the problems they present, and our current solutions to them.While I enjoy that practical stuff a great deal, I also enjoy chewing over the semantics of the terminology and making connections between domains. Here's a couple of first thoughts in that area.The guide distinguishes between monitoring and observability. monitoring: "Monitoring .. will tell you when something you know about but haven't fixed yet happens again" and "... you are unable to answer any questions you didn’t predict in advance. Monitoring ... discard[s] all the context of your events". observability: "Observability is all about answering questions about your system using data", "rapidly iterate through hypothesis after hypothesis" and "strengthen the human element, the curiosity element, the ability to make connections." I don't find that there's a particularly bright line between monitoring and observability: both record data for subsequent analysis and whether the system is (appropriately) observable depends on whether the data recorded is sufficient to answer the questions that need to be asked of it. I think this maps interestingly to conversations around checking and testing and the intent of the data[…]

    25.05.2019 | 4:48 קרא עוד...

טיפים

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