Download presentation
Presentation is loading. Please wait.
1
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 כלים שימושיים 1 אליהו חלסצ'י תכנות מתקדם 89-210 תכנות מתקדם 89-210 תרגול מספר 7 תשע"א 2010-2011
2
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 הקדמה
3
Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 בדיקות תוכנה לא ניתן לבנות תוכנה שתקבל תוכנה כקלט, ובאופן אוטומטי תכריע לגבי נכונותה כלומר תבצע אימות תוכנה. (הבעיה אינה ניתנת להכרעה – תלמדו על זה בחישוביות) ביצע אימות ידני בא במחיר יקר מידי לרוב המערכות. לכן מבצעים בדיקות (testing), שמטרתן להגביר את הביטחון שלנו בנכונות התוכנה ע"י סדרה של הרצות ומציאת פגמים. הבדיקות לא מוכיחות נכונות, אבל מועילות באופן מעשי להקטנת הפגמים.
4
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 בדיקות תוכנה בעבר היו בדיקות התוכנה תחום חובבני שבוצע על ידי התוכניתנים עצמם. היום זהו נדבך עיקרי בתהליך הפיתוח. שיטה נפוצה היא "פיתוח מונחה בדיקות", אפילו פעם היה טרנד ה Extreme Programming”" של קנט בק המבוססת על פיתוח מונחה הבדיקות. פיתוח מונחה בדיקות - (Test driven development ובקיצור TDD) זו מתודולוגית פיתוח בה בדיקת היחידה נכתבת עוד לפני הקוד אותו היא בודקת.
5
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 בדיקות תוכנה סוגי הבדיקות: –בדיקות יחידה (Unit)- בדיקות ברמת יחידת תוכנה (מודול). לרוב מבוצעות על ידי מפתח התוכנה. –בדיקות אינטגרציה (Integration) – מבוצע לאחר בדיקות היחידה, נבדקים מס' מודולים יחד או התוכנית כולה. לרוב מבוצע ע"י צוות QA. –בדיקות מערכת (System) - בדיקות המערכת בכללותה, בדרך כלל בראיית המשתמש. –בדיקות קבלה (Acceptance) – בדיקות שנעשות ע"י הלקוח, או צוות שמדמה אותו. היום נלמד על כלי שעוזר לנו ברמת בדיקת היחידה.
6
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 JUnit JUnit הוא כלי חופשי שיוצר תשתית פשוטה לכתיבה ולהרצה של בדיקות חוזרות ב java. רק באמצעות תשתית ראויה ניתן לקיים את שיטת פיתוח מונחה הבדיקות, ו JUnit מספק אותה. ניתן להורדה מהאתר http://junit.org/ אך הקוד כבר מובנה ב eclipse, באתר גם דוקומנטציה מלאה. http://junit.org/
7
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 public class IntCalc { public int pls(int x,int y){ return x+y; } public int sub(int x,int y){ return y-x; } public int mul(int x,int y){ return x*y; }
8
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 import junit.framework.TestCase; public class IntCalcTest extends TestCase { public void testPls() { fail("Not yet implemented"); } public void testSub() { fail("Not yet implemented"); } public void testMul() { fail("Not yet implemented"); }
9
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 import junit.framework.TestCase; public class IntCalcTest extends TestCase { private IntCalc ic; protected void setUp(){ ic=new IntCalc(); } public void testPls() { assertEquals(5, ic.pls(3, 2)); } public void testSub() { assertEquals(8, ic.sub(16, 8)); assertEquals(-8, ic.sub(8, 16)); } public void testMul() { assertEquals(2147483644, ic.mul(1073741822, 2)); }
10
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 ANT ANT זה כלי לביצוע build לפרויקט ה java שלנו. מתוך דברי המחבר: In theory, it is kind of like make, without make's wrinkles. all those tools have limitations that Ant's original author couldn't live with when developing software across multiple platforms. Makefiles are inherently evil as well. Anybody who has worked on them for any time has run into the dreaded tab problem. "Is my command not executing because I have a space in front of my tab?!!" said the original author of Ant way too many times.
11
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 ANT ANT שונה מ builders אחרים בכך שלצורך הבנייה לא מממשים סקריפטים שתלויים במערכת ההפעלה, אלא מממשים מסמכי XML שבאמצעותם בונים את הפרויקט. את ANT ניתן להוריד מהאתר http://ant.apache.org/ http://ant.apache.org/ כדאי גם להיכנס ל Manual כדי ללמוד עוד, התכנים מוסברים שם היטב.
12
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 ANT התקנה על חלונות לא כזו פשוטה, בצעו את הדברים הבאים: –הורידו את קובץ ה zip מהאתר, ותפתחו אותו לתוך תיקייה כגון “c:\ant”. –קליק ימני על המחשב שלי מאפיינים מתקדם משתני סביבה. –הוסיפו את המשתנים הבאים: PATH c:\ant\bin ANT_HOME c:\ant JAVA_HOME תיקיית ה JDK שלכם, לדוגמא C:\Program Files\Java\jdk1.6.0_05 (תוודאו שיש שם קובץ בשם tools.jar) אשרו הכל. –כנסו ל Shell (התחל הפעלה cmd) –גשו ל c:\ant\bin ורשמו ant, הפקודה תפעיל את ant.bat בדיקה: אם קיבלתם Buildfile: build.xml does not exist! Build failed זה בסדר גמור. בדיקה שנייה גשו לתיקייה אחרת ותכתבו ant –version, אתם אמורים לקבל את הגרסא הנוכחית של ant
13
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 build.xml hello.java public class hello { public static void main( String[] args ){ System.out.println( "Hello World" ); } דוגמא לבנייה רגילה
14
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 build.xml <target name="jar“ depends="compile"> <jar destfile="hello.jar“ basedir=".“ includes="**/*.class" /> hello.java public class hello { public static void main( String[] args ){ System.out.println( "Hello World" ); } דוגמא לבניית Jar
15
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 build.xml <target name="jar“ depends="compile"> <jar destfile="hello.jar“ basedir=".“ includes="**/*.class" /> דוגמא לבניית Jar והרצתו ללימוד נוסף, כגון שילוב JUnit ב ANT תבקרו באתר http://ideoplex.com/focus/java ממנו נלקחו הדוגמאות.http://ideoplex.com/focus/java
16
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 ניהול גרסאות version control משמש לניהול פיתוח מתמשך של מסמכים דיגיטליים שעובדים עליהם צוות של מפתחים. השינויים מזוהים כמספר גרסא. כלים לניהול גרסאות מאפשרים: –יכולת לחזור לכל מצב קודם כשהקוד נפגם. –בקרה על השינויים שבקוד. –ניהול תוכנה בכמה גרסאות. (תיקון באגים וכו') מערכת ריכוזית: כולם עובדים על אותו מאגר משותף מערכת ביזורית: כל אחד עובד על מאגר משלו ואח"כ משתף במאגר הכללי.
17
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 ניהול גרסאות version control נעילה של קובץ: –כאשר 2 מתכנתים עובדים על אותו הקובץ הם עלולים לדרוס אחד את עבודתו של השני... –שיטה אחת למנוע זאת היא ע"י נעילה של הקובץ רק למשתמש אחד. –שיטה שנייה, היא לאפשר לשניהם לעבוד ולמזג אח"כ.
18
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 ניהול גרסאות version control אוצר מילים: –Repository : מאגר, המקום בו מאוחסנים הקבצים. –Working copy : עותק מקומי של הקבצים מה repository עליו מתבצעת העבודה. –Check-out : פעולת חילוץ הקבצים מה repository. –Commit : כאשר השינויים ב working copy נכתבים ל repository. –Conflict / Resolve : קונפליקט קיים כשיש סתירה באותו הקובץ, והאדם מתערב כדי לתקן (resolve)
19
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 SVN תוכנה בקוד פתוח לניהול גירסאות. עובדת על מס' רב של פלטפורמות, במס' רב של גרסאות. נפוצה מאד בתעשייה. אנו נראה דוגמא ל subclipse שהוא plug-in של SVN לתוך סביבת ה eclipse.
20
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 הוספת plug-in ל eclipse Help Software Updates Find and inatall… Search for new features ולחיצה על next אפשר לבחור מתוך הרשימה הקיימת, או להוסיף ע"י add remote site. לחצו עליו. תקלידו את שם האתר – במקרה שלנו Subclipse 1.4.5 תקלידו את כתובתו – במקרה שלנו http://subclipse.tigris.org/update_1.4.x http://subclipse.tigris.org/update_1.4.x אשרו, סמנו את חבילת ההתקה ברשימה, והמשיכו ללחוץ next עד לסיום.
21
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 הוספת plug-in ל eclipse אחרי ההתקנה נוכל להוסיף view של SVN. מצד שמאל למעלה אנו שולטים על ה view הנוכחי.
22
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 יצירת repository לצורך הדוגמא אנו נשתמש בשירות של Google המאפשר ליצור שרת SVN לכל מי שרשום. וודאו שאתם מחוברים, למשל ל gmail, וכנסו לאתר http://code.google.com/hosting/ http://code.google.com/hosting/ תבחרו create new project ומלאו את הטופס. למעשה יצרתם שרת SVN משלכם כששם המשתמש הוא שם המשתמש הרגיל שלכם. את הסיסמא תוציאו מ http://code.google.com/hosting/settings http://code.google.com/hosting/settings
23
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 יצירת repository נבחר את ה view של SVN בלשונית של SVN repositories ניצור חדש ניתן הכתובת הבאה: https://[YOUR_PROJECT_NAME].googlecode.com/svn אשרו הכל, וחיזרו ל view של java. כעת נוכל לבחור פרויקט ולהוסיפו למאגר. קליק ימני על שם הפרויקט team share project בחרו SVN, לחצו על next ובחרו repository קיים. התוצאה: בלשונית ה SVN יופיעו קבצי הפרויקט. דרך התפריט team תוכלו לבצע בקלות את כל הפעולות הקשורות ב repository.
24
הקדמה Junit ANT SVN הטמעה 89-210 תכנות מתקדם - תרגול 7 הטמעה למה צריך להשתמש ב Junit? מהם היתרונות של ANT? למה משמש SVN? בדקו את מעגל הכיוונים של הרובוט Aibo באמצעות JUnit. תבצעו בנייה לחלק א' של התרגיל באמצעות ANT צרו repository ב Google ו SVN ב eclipse העתיקו לשם פרויקטים, צרו שינויים והתעדכנו מהם אח"כ, דרך התפריט team שחקו עם: –Synchronize –Commit –update
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.