370 likes | 649 Views
Functional testing of Java applications. David Mar o shi Technical Sales Eng. תוכן. בעיות במצב הקיים, או למה צריך בדיקות רגרסיה ? איך להצליח בבדיקות אוטומטיות ומה הצעד הבא ? סכום, שאלות ותשובות. fix. The importance of complete testing: Hidden bugs. Design. Build 1. Build 2.
E N D
Functional testing of Java applications David Maroshi Technical Sales Eng
תוכן • בעיות במצב הקיים, • או למה צריך בדיקות רגרסיה ? • איך להצליח בבדיקות אוטומטיות • ומה הצעד הבא ? • סכום, שאלות ותשובות
fix The importance of complete testing: Hidden bugs Design Build 1 Build 2 Build 3 Build 4 A Ö Fail Results B x Ö Pass Fail change C Ö Test Total: 7 0 Ö D change E x Ö Ö F change Ö G
fix The importance of complete testing: Hidden bugs Design Build 2 Build 3 Build 4 Build 1 A Ö Results fix B x Ö Ö But it used to work... Pass Fail change C Ö Ö Perception 7 0 Ö D Reality 5 2 change E x Ö Ö Ö F change Ö G
The challenge of manual testing with short test cycles Manual testing Tests Rerun the first tests and... Time Build 1
...the new tests... The challenge of manual testing with short test cycles Manual testing Tests Manual testing can’t keep pace! ...take more time Time Build 1 Build 2 Build 3, 4, 5, 6, 7, 8 Build 9 Build 10
מה הבעיות מהמצב ? • הבדיקות אינן מכסות את המערכת הנבדקת. • דחיית שחרור מוצר או צמצום היקף הבדיקות. • אמינות המוצר והחברה נפגעים,לעיתים עד כדי כשלון מסחרי.
תוכן • בעיות במצב הקיים, • או למה צריך בדיקות רגרסיה ? • איך להצליח בבדיקות אוטומטיות • ומה הצעד הבא ? • סכום, שאלות ותשובות
שלושה קריטריונים להצלחהבאוטומציה Test automation with IBM Rational XDE Tester • סביבת פיתוח עשירה פתוחה ונוחה • תסריטים גמישים ועמידים לשינויים ביישום • שפת תכנות חזקה
Powerful script development environment • סביבה משותפת ומשאבים משותפים • ע"י שמוש ב Eclipse IDEהבודקים משתמשים באותה הסביבה בה משתמשים המפתחים • הסביבה המשותפת יוצרת תקשורת טובה יותר בין הקבוצות • הסביבה המשותפת מאפשרת שיתוף משאבים • בודקים יכולים להריץ סקריפטים שנכתבו ע"י המפתחים ב- JUnit • מפתחים יכולים להשתמש בסקריפטים של הבודקים לבדיקות יחידה • שתי הקבוצות יכולות לנצל קוד משותף • XDE Tester מותקן לתוך: • Eclipse shell • IBM WebSphere Studio shell • IBM Rational XDE Developer shell
Integrations: XDE Developer/WebSphere Studio/Eclipse Code Assist Technology Multiple Views totrack all test assets PowerfulDebugging ClearCaseSource ControlIntegration
` Eclipse Community More then 300 Plug-Ins 20 Test related Some Testing related Plug-Ins Junit (installed by default) Test Metrics Hyades Extensible development
הצלחה בבדיקות אוטומטיות מותנית בתחזוקה נמוכה של סקריפטים שינויים בזיהוי אובייקטים ביטול הצורך בקידוד עבור נתונים דינמיים השקעת זמן בתחזוקה מצמצמת את זמן הבדיקות ניהול שינויים בסקריפט, אחרי שינויים ביישום Addressing script maintenance
ScriptAssure ensures resilient scripts • Script AssureTM מפחית את התחזוקה • חוסך שינויי קוד כאשר האוביקט משתנה • מסתמך על מספר מאפיינים • שינוי מאפיין יחיד אינו מונע המשך תפעול • Object Name • Object Location • Any object identifier • בודק נתונים דינמיים ללא צורך בקידוד • עושה שימוש בתבניות לבדיקת נתונים דינמיים • הבודקים לא נדרשים לעדכן את קוד התסריטים
TesterSees XDETesterSees Determines Match ScriptAssure: Lowers script maintenance Version 1.0 Version 2.0 No User Intervention Required
ScriptAssure: Dynamic data testing Test Passes when comparing pattern baseline to dynamic data Test Fails when comparing static baseline to dynamic data Order ID changes with each order placed • Dynamic data/content matching • Use pattern matching technique to verify dynamic data • Instead of validating “Order ID 230”, validate “Order ID ###” • This allows for a wide variety of acceptable responses and pattern matching when validating the application’s behavior
ClearCase Integration - Version History • Show History View • מציג את פרטי האובייקט : סוג, שם, תאריך השינוי ושם המשנה Right click on a test script then select Team Show History
ClearCase Compare • ניהול גרסאות של תסריטים – בדיקת השינויים בין גירסה נוכחית לגירסה כלשהיא (סקריפט או אובייקט) • To access: • From Show History view, select elements to compare, then right click and select Compare Selected Versions or • Right click test script in Datastore Explorer then select Team Compare with Previous
Object Map • מפות פרטיות ו\או מפות משותפות • ניתן לאחד מפות אובייקטים • ותסריטים קיימים למפה אחת משותפת • איתור תסריטים הקשורים לאובייקט מסוים • עדכון והוספה של "זיהוי מאפייני אובייקט" בקלות • באמצעות אשף.
Object Map – find associated scripts איתור כל התסריטים בהם נמצא אובייקט מסוים Open map and select Test Object Associated Scripts User will see list of all script associated with the map
Object Map Merging Select File New Test Object Map then enter new map name and click Next Click Select Test Object Maps….. to create new map from existing scripts and maps Select scripts and maps to merge Click Connect selected XDE Tester scripts… to update script sources to use new merged map • יצירת מפה חדשה ואיחוד מפות • To merge into an existing map • Right click on the shared map in the Datastore Explorer that you would like to merge into. The above dialog will then display and you can select the scripts and other shared maps that you would like to merge into the selected map
Updating Recognition Properties Click on object to update (Object map will open with object highlighted) Start AUT from Application menu and navigate to window with object to update Select Test Object Update Recognition Properties Object will automatically be highlighted and the wizard on the next slide will display עדכון המאפיינים המזהים אובייקט במפת האובייקטים 2 1 3 4
Updating Recognition Properties • האשף מציג 3 תבניות של מאפיינים – המקורי, כל הפעילים והמעודכן • Can add additional recognition properties from the “All Active Properties” panel (double-click or right click on recognition property then select Add to….) • Select Finish to accept properties in the Updated Test Object Properties panel 5 6
Regular Expression Evaluator • בדיקה אם התבנית שנכתבה ב-RE אכן תואמת את הערך שהתקבל בהקלטה • Convert value to a regular expression as normal • Right click on the regular expression in a VP or in an object map property value and select Evaluate Regular Expression • Enter pattern to match in Match Against Value field and click Evaluate • Examples are available through the Examples button • Right click to access common insertion sequences for expressions
שפת Java מאפשרת פיתוח תסריטי בדיקה מתקדמים • תקן תעשייתי לפיתוח מבדקים אוטומטיים • סקריפטים נוצרים בהקלטה (לא בקידוד) הנם קלים להבנה וגם מתחילים יכולים לערוך ולשנות אותם • השפה התקנית מהווה מנוף להרחבות : קיימים ספרים, קורסים, מקורות ידע באינטרנט, דוגמאות קוד, קבוצות דיון ועוד. • חיזוק הקשר בין קבוצות המפתחים והבודקים שכן שניהם עובדים באותה שפה פיתוח. • הזדמנות לבודקים להתעדכן בטכנולוגיה
Java language enables powerful test scripting • התסריטים ב-Rational XDE Tester הינם: • קלים לקריאה והבנה • ניתנים להרחבה בקלות ע"י קידוד Java
Rational XDE Tester can test against the Java JDK database utility Enable complete database testing Leveraging existing Java assets
תוכן • בעיות במצב הקיים, • או למה צריך בדיקות רגרסיה ? • איך להצליח בבדיקות אוטומטיות • ומה הצעד הבא ? • סכום, שאלות ותשובות
Moving forward • דנו בצורך לקיים בדיקות רגרסיהאוטומטיות • דנו במרכיבים החיוניים להצלחה בבדיקות אוטומטיות • ראיתם כיצד XDE-Tester עונה בצורה מצוינת לקריטריונים • ומה עתה ?
The evaluation process • פנה לאיש מכירות וקבל עותק של המוצר • התקן והתאם לסביבה • Help Welcome…Rational XDE Tester • Help Getting Started with XDE Tester • התחל בבדיקות Help XDE Tester Quick Tour • חומר רקע וחומר מקצועי נוסף DeveloperWroks Rational XDE Tester http://www.ibm.com/developerWorks
הדרכה והשתלמויות שלוש רמות התקדמות Web-based • Getting Started With Java and Web-Based Testing Web-based and on-site • Essentials of IBM Rational XDE Tester On-site • Principles of Test Automation for GUI Testing • Principles of Software Testing for Testers
תוכן • בעיות במצב הקיים, • או למה צריך בדיקות רגרסיה ? • איך להצליח בבדיקות אוטומטיות • ומה הצעד הבא ? • סכום, שאלות ותשובות
סביבת פיתוח עשירה ונוחה Test automation with IBM Rational XDE Tester • שלושה קריטריונים להצלחה בבדיקות אוטומטיות Eclipse • שפת תכנות חזקה Java • תסריטים גמישים ועמידים לשינויים ביישום Script Assure
Thank You David Maroshi Maroshi@il.ibm.com