מחפש Framework

Bary15

New member
מחפש Framework

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

יש מקום שאוכל לראות משהו שעובד? סרטון שמישהו כתב ומראה?
 

עמית ו

New member
ועכשיו - מה אתה באמת רוצה?

Framework זו מילה רחבה להחריד שיכולה לכלול כל דבר החל מסביבת הפיתוח בה אתה כותב ועד לספריות הספציפיות בהן אתה משתמש.
נסה להגדיר קצת יותר טוב את הצרכים שלך - כתבת "סלניום", "אקסל" ו"DB" ומכאן אני יכול לנחש שיש לך אתר שאתה רוצה לבדוק, הוא כותב וקורא מתוך מסד נתונים וחלק מנתוני הבדיקות שלך (או חלק מהקלטים שהאתר קורא) כתובים באקסל.
&nbsp
כל אחד מהדברים האלה הוא פשוט למדי, אבל את משימת התפירה והחיבור אתה תצטרך לעשות בתוך הפרוייקט שלך.
לכן, נתחיל עם כמה שאלות פשוטות -
1) מה אתה יודע? האם אתה יודע ג'אווה או שאתה רק לומד? האם עבדת בעבר עם סלניום? האם עבדת פעם עם JDBC או עם ORM?
2) מה כבר יש לך? האם אתה מקים משהו מאפס? האם יש מסגרת בדיקות כלשהי שאתה רוצה להרחיב?
&nbsp
בהינתן תשובות לשאלות האלה, נוכל לעזור קצת יותר, אני מקווה.
בינתיים, הנה וידיאו שמציג עבודה מול קבצי אקסל בג'אווה בעזרת ספריה בשם apache POI.
https://www.youtube.com/watch?v=RsrF2Ku7ad4
&nbsp
 

Bary15

New member
תודה על התגובות הזריזות!

אז ככה עמית...

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

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

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

Bary15

New member
עוד דבר שהוא חשוב...

אני רוצה לבנות את הכל בצורה חכמה ומסודרת - גנרי

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

עמית ו

New member
אוקי.

את ההמלצה הראשונה שלי אתה כנראה לא תאהב, כי מה שהיא אומרת זה "מצא מישהו שמבין קצת יותר ממך ושב לבנות את זה יחד איתו".
בגדול, כמו שזה נשמע לי, אתה צריך להרים את כל תשתית הבדיקות שלך מאפס, ואם לא בנית אף פעם מערכת כזו, או לפחות עבדת עם אחת כזו, זו עשוייה להיות משימה שגדולה עליך בכמה מידות.
&nbsp
לכן, השאלה הראשונה שאני רוצה לשאול עכשיו היא - האם יש לך תמיכה, או שזה משהו שאתה עושה בזמנך הפנוי?
שאלה שנייה - האם המטרה שלך היא לבנות פרוייקט שיחזיק מעמד לאורך זמן, או שאתה רוצה לכתוב הדגמת יכולות כדי לקבל אחר כך זמן לכתוב דברים כמו שצריך?
&nbsp
אחרי שאמרתי את זה, כמה כותרות לדברים שתצטרך לעשות כדי לבנות משהו בסיסי שעובד:
1. למצוא מסגרת שתריץ את הבדיקות שלך. כלומר, הרכיב שאחראי על להגדיר "אילו בדיקות רצות עם אילו פרמטרים ואיך מכשילים בדיקה". אתה יכול לעבוד ישירות עם Junit, או שאתה יכול לעבוד עם מסגרת שעוטפת את זה ותחסוך לך עבודה (אני מכיר את TestNG ואת Jsystem, אפשר לדבר על ההבדלים ביניהן, אבל אני מעדיף לא לעשות זאת כרגע). המסגרת גם קובעת איך אתה יכול לעשות דברים לפני ואחרי כל בדיקה (או סט בדיקות) ואיך נראה דו"ח ריצה (אלא אם אתה מחליט לשנות את זה, מה שעשוי להיות מומלץ).
2. להחליט על ארכיטקטורה בסיסית של הפרוייקט -איפה שמים איזה סוג של קובץ, שימוש הולם באובייקטים וירושה. עוד דברים שאתה צריך להחליט הוא איך תיראנה הבדיקות שאתה כותב. אתה יכול להחליט שמתאים לך להשתמש בפורמט של המלפפון (Given-When-Then) ואז שווה לך לבדוק ספריות שמותאמות לזה כמו Jbehave ולראות איך הן משפיעות.
3. אם טרם עשית זאת, דאג להכיר ספרייה לניהול תלויות. שני השמות הראשונים שקופצים לי לראש הם maven וgradle, יש עוד כמה וחשוב להכיר לפחות אחד מהם.
4. לכתוב את הבדיקה הראשונה שלך. שיהיה משהו פשוט שמצליח לרוץ בתוך המסגרת הזו בלי לעשות שום דבר.
5. לכתוב את התשתיות שאתה צריך - חיבור למסד הנתונים, יצירה של webdriver, וכו'.
6. להשתמש בתשתיות האלה כדי להפוך את הבדיקה הראשונה שכתבת למשהו בעל משמעות.
&nbsp
אם תחליט שאתה מתחיל לנסות משהו בכל זאת, שלח לי מסר ואנסה לעזור לך עם מידע ודוגמאות יותר ספציפיות (שהפורום הוא פשוט לא המדיום הכי נוח לעבוד איתו בהקשר זה).
ושוב, אני רוצה לחזור על ההמלצה שלי - לכתוב משהו מאפס זו עבודת תכנות לא פשוטה, ועל טעויות שנעשות בשלב הזה משלמים בהמשך ביוקר. אם זה אפשרי, שב עם מישהו שמבין בתחום קצת כדי להקים את הבסיס.
 

Bary15

New member
תשובות

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

2. המטרה שלי לבנות פרוייקט שיקיף בדיקות קריטיות - לפחות בהתחלה וגם על הדרך שאלמד מזה להבא...

לפני חצי שנה כתבתי בדיקות BDD ואני מכיר את הפורמט, פחות רלוונטי לבדיקות שאני מתכנן

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

אהיה איתכם בקשר פה, תודה!
 

halperin

New member
מנהל
האם אכן עדיף TestNG / Jsys או Robot / RedwoodHQ ?

בהתחשב בכך שהוא מתחיל פעילות חדשה - וללא הרבה ניסיון,
האם אכן עדיף TestNG / Jsystem או דווקא משהו בסגנון Robot Framework / RedwoodHQ ? (שייתכן וכוללים כבר לא מעט תשתיות מול DB וכד')
או אולי http://oxygenhq.org
&nbsp
קצת רקע ניתן למצא:
https://www.facebook.com/groups/IL.Testing.QA/permalink/1076732249059368/
https://www.facebook.com/groups/IL.Testing.QA/permalink/1070599086339351/
https://www.facebook.com/groups/IL.Testing.QA/permalink/1062273340505259/
http://blog.xebia.com/robot-framewo...iven-approach-to-test-automation-part-1-of-3/
&nbsp
 

עמית ו

New member
לדעתי כן.

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

halperin

New member
מנהל
אם כבר לזרוק - אז לא משהו שהשקעת עליו...

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

עמית ו

New member
לא.

מה שאתה צריך להתחיל איתו הוא דף ועט, או עדיף - דף ועיפרון.
נסה לענות על השאלות הבאות:
1. מה הדבר הראשון שאני רוצה לעשות (נדמה לי שענית על זה כבר בפורום) ?
2. מה אני רוצה לעשות בטווח הקצר?
3. מה הם הדברים שהכי חשובים לי במערכת?
&nbsp
תשובות לדוגמה לשאלה 2 -
* להריץ סט בדיקות קבוע בכל פעם שאני רוצה.
* להריץ בדיקה יחידה (או מספר קטן של בדיקות) עם פרמטרים שונים.
* לכתוב בדיקות שטחיות שיכסו חלקים גדולים מהאפליקציה.
* לכתוב מעט בדיקות שיכסו פיצ'רים חדשים בצורה יסודית
&nbsp
תשובות לדוגמה לשאלה 3 -
* ממשק נגיש למי שאינו מתכנת
* דו"ח ריצה ברור לקריאה אנושית
* דו"ח ריצה קל לעיבוד מכונה (נניח, ג'נקינס יודע לקרוא דו"חות של Xunit).
* יכולת שליטה בהרבה מאוד פרמטרים
* הרצה במקביל של בדיקות (זה כנראה לא יעד ראשון, אבל לפעמים שווה לחשוב על זה קצת).
* תמיכה בסדר הספריות הקיים \ בכל מבנה קוד שארצה (יש מסגרות שכופות עליך שימוש במבנה ספריות מסויים כדי לפעול, או דורשות שהבדיקות שלך יירשו ממחלקה מסויימת).
&nbsp
&nbsp
אחרי שיש לך תשובות לשאלות האלה, אתה יכול ללכת ולחפש מסגרת שתתאים לך. המלפפון, לצורך העניין, מוכוון לבדיקות Given-When-Then, ויכול להיות שהוא מספק תמיכה רוחבית בעוד כל מיני דברים. יכול להיות שהוא הכלי המושלם עבורך.
יכול להיות שלצורכי התחלה, עדיף לך לעבוד עם Junit בצורה ישירה - בלי מנגנון ניהול מורכב, בלי דו"חות מתחכמים. פשוט להתחיל ולכתוב בדיקות כדי לראות מה חסר לך (שים לב - חיסרון בתשתיות יוצר עיוורון, לפעמים אתה לא שם לב שמשהו חסר כי התשתית שלך פשוט מתעלמת ממנו), יכול להיות שתרצה להסתכל על Jsystem שיש לה ממשק גרפי שבערך נוח לעבוד איתו, יכול להיות שתרצה לעבוד עם TestNG שמאפשרת סט יכולות מרשים למדי (את כולם, למיטב ידיעתי, אפשר ליצור גם בעזרת שימוש ישיר בJUnit). יכול להיות שתגיע למסקנה שדווקא הרובוט או Jbehave מתאימים לך. מה שחשוב הוא שתוכל לומר "את זה אני צריך כדי להתחיל, ואלו הפרמטרים שחשובים לי כרגע".
&nbsp
&nbsp
 

halperin

New member
מנהל
ואז הגדר דירוג של "עד כמה חשוב" לכל אייטם ב#3.

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

עמית ו

New member
ההשקעה היא המטרה

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