9 הטוב ביותר בדיקות אוטומטיות מסגרות עבור PHP
האם אי פעם בילה שעות ארוכות באגים קוד PHP שלך? ובכן, עבור רוב המתכנתים זה כנראה לא האתגר המרתק ביותר, אבל יש פתרון שיכול לעזור לנו לקצר את המשימה המייגעת הזו. בדיקות אוטומטיות יכול לשפר באופן משמעותי את זרימת העבודה של פיתוח PHP על ידי המאפשר מראש בכתב בדיקות כדי להניע את תהליך הפיתוח.
במאמר זה ננסה להבין מדוע בדיקות אוטומטיות הוא כל כך מגניב, איך זה עובד, ומה הם את מסגרות הבדיקה הטובה ביותר אתה יכול להתחיל עם.
למה בדיקה חשובה
מתחילים מפתחי PHP נוטים לא לכתוב בדיקות עבור הקוד שלהם. רובנו התחלנו את הקריירה שלנו על ידי בדיקת תכונות חדשות ופונקציות שכתבנו בחלון הדפדפן בזה אחר זה, וכשמשהו השתבש, היינו מודעים למה לעשות.
כתיבת בדיקות עבור הקוד שלנו יכול לחסוך זמן באגים יקר שעות של כאב ראש. כאשר קוד לא נבדק נכנס הייצור, הביקורות נקבל כנראה לא יהיה כל כך נחמד. אז מה אנו יכולים לעשות?
כנראה הרעיון הטוב ביותר הוא להקים עבודה בדיקות פרודוקטיבי שבו אנחנו צריכים לכתוב קוד הבדיקה שלנו, כי בודק אם קוד היישום שלנו פועל כראוי.
הטריק הוא זה קוד הבדיקה צריך להיות כתוב לפני קוד היישום. בדרך זו אנו יכולים להבטיח מההתחלה כי הקוד שאנחנו כותבים עובד כראוי. קוד הבדיקה יעבור לקבצים נפרדים. אם מאוחר יותר נתקלים בשגיאות כלשהן ביישום PHP שלנו, אנחנו לא צריכים לעשות שום דבר אחר, רק להפעיל את הבדיקות שלנו, כי אני מקווה תן לנו רמזים נכונים על הבעיות.
מלבד חיסכון בזמן כראוי להכין את היישום שלנו לייצור, בדיקות יש יתרונות רבים אחרים מדי, כגון:
- קוד תחזוקה יותר
- הקלה
- פחות בעיות אבטחה
- בסיס קוד נפוח פחות (התאמת קוד היישום לקוד הבדיקה שנכתב מראש יגרום לנו להשמיט חלקים מיותרים)
- הופעה יותר טובה
מה היא בדיקה אוטומטית?
כמובן, אנחנו יכולים לכתוב את הבדיקות שלנו באופן ידני, אבל אחרי כמה זמן זה יכול להיות מייגע זמן רב עם משימות חוזרות ונשנות רבות. בדיקה ידנית יכולה להיות מוחלפת על ידי בדיקות אוטומטיות שבהן אנו משתמשים בתוכנות ספציפיות אשר יעשו את העבודה מייגע לנו, ואנחנו יכולים לבלות יותר זמן עם יצירת ההיגיון של קוד הבדיקה.
PHP היא למרבה המזל שפת תכנות די פופולרי, ולכן יש מסגרות בדיקות אוטומטיות רבות שאנחנו יכולים לבחור.
פיתוח מונחה-בדיקות (TDD) לעומת פיתוח מונע התנהגות (BDD)
שתי הגישות העיקריות המשמשות את מסגרות הבדיקה האוטומטיות הן Test-Driven Development (TDD) והתנהגות מונעת התנהגות (BDD). בשניהם, תהליך הפיתוח מונע על ידי בדיקה, כלומר, בדיקות נכתבות לפני קוד היישום.
ההבדל העיקרי בין בדיקות מונעות בדיקה לבין בדיקות מונעות התנהגות הוא בתחביר של קוד הבדיקה: TDD משתמש בקוד PHP תקין בקבצי הבדיקה, בזמן BDD משתמש במשפטים קריאיים המתארים את ההתנהגות של כל תכונה ויכולים להיות מובנים על ידי בעלי עניין שאינם טכניים.
מבחן TDD נראה כך בעורך הקוד, זה פשוט רגיל מונחה עצמים קוד PHP:
מבחן BDD דומה לזה, לא מתכנתים יכולים גם להבין את זה:
10 בדיקות אוטומטיות PHP מסגרות
עם זה בחשבון, בואו נסתכל על 10 מסגרות בדיקות אוטומטיות עוצמה עבור PHP אתה יכול להשתמש.
1. PHPUnit
PHPUnit היא מסגרת הבדיקה הידועים ביותר לכתיבת בדיקות יחידה עבור יישומי PHP. בדיקות יחידה לקחת חלקים קטנים של קוד שנקרא יחידות ולבדוק אותם אחד אחד. בעזרת PHPUnit אנו יכולים לנהל בדיקה מונחה בדיקה.
ניתן להשתמש בו דרך שורת הפקודה, והוא מספק לנו בכיתה שימושית TestCase כי אנו יכולים להרחיב בהתאם לצרכים שלנו. PHPUnit גם מאפשר למפתחים להשתמש מראש בכתב טענות שיטות לטעון כי היישום מתנהג בצורה מסוימת.
2. קוד
Codeception לא רק מאפשר לנו לכתוב בדיקות יחידה, אלא גם בדיקות פונקציונליות וקבלה. אלה שני האחרונים בודק את היישום PHP כמכלול עם כל התכונות קשורות יחד, לא כמו יחידות. Codeception מאפשר לנו לאפשר ולהגדיר מודולים שונים בהתאם לצרכי הפיתוח שלנו.
זה משולב עם מסגרות פיתוח PHP רבים כגון Symfony2, Laravel4, Yii, Phalcon ו- Zend Framework. משמעות הדבר היא כי אנו יכולים להשתמש ב PHP אוטומציה בדיקות מסגרת מסגרת פיתוח PHP יחד כדי ליצור זרימת עבודה פיתוח יעיל.
3. Behat
Behat הוא פופולרי התנהגות מונחה PHP בדיקות מסגרת. הבדיקות שאנחנו יכולים לכתוב עם Behat נראה למדי כמו סיפורים מאשר קוד. Behat משתמשת בתת-סוג StoryBDD של התפתחות מונעת התנהגות (תת-הסוג השני הוא SpecBDD).
המסגרת קיבלה השראה מפרויקט מלפפון, שהיא מסגרת בדיקה לשפת התכנות של רובי.
4. PHPSpec
PHPSpec גם בעקבות הגישה בדיקות מונחה התנהגות, אבל סוג אחר שלה בשם SpecBDD. עם PHPSpec אנחנו צריכים כתוב תחילה את המפרטים המתארים כיצד יפעל קוד היישום. זה היה גם בהשראת מסגרת בדיקה רובי בשם RSPec.
5. סיפור
Storyplayer הוא מסגרת בדיקות מחסנית מלאה המאפשר את זה לכתוב בדיקות מקצה לקצה עבור פלטפורמה שלמה. הסיפור יש תמיכה ליצור ולהרוס סביבות בדיקה על פי דרישה. זה עוקב אחר הגישה בדיקות TDD, ומאפשר לנו לכתוב בדיקות תפקודית שיכולה לבדוק את היישום בכללותו.
6. פרידות
פרידוט היא מסגרת בדיקה קלה, ניתנת להרחבה עבור PHP. הוא כולל ארכיטקטורה מונעת אירועים המאפשר בודקי בקלות להתאים אישית את המסגרת באמצעות plugins וכתבים.
פרידוט משתמש תאר את זה תחביר כדי ליצור שפת בדיקה ברורה וקריאה המתארת בבירור כיצד קוד היישום שלנו צריך להתנהג.
7. Atoum
Atoum הוא אינטואיטיבי ומודרני בדיקות PHP במסגרת המאפשרת לנו להפעיל בדיקות יחידה. זה מפשט את פיתוח הבדיקה, וכמו שזה מסגרת צעירה זה עושה שימוש בכמה יכולות חדשות יותר שהוכנסו PHP 5.3 (זה יכול'לא להשתמש עם גרסאות PHP ישנות יותר) כדי לספק לנו תהליך בדיקה מהיר וקל להבנה.
Atoum מבטיח רמה גבוהה של אבטחה במהלך ביצוע הבדיקה, כפי שהיא מבודדת כל שיטת הבדיקה בתהליך PHP משלה.
8. קהלן
קהלאן היא מסגרת בדיקות BDD הכוללת את כל המאפיינים המאפשרים לכתוב בדיקות יחידה באמצעות תאר את זה תחביר. זה חובק את KISS (לשמור על זה פשוט, טיפש) עקרון העיצוב. קהלן דורש לפחות 5.5 PHP.
יש לו בסיס קוד קטן, הוא אמר להיות בערך 10 פעמים קטן יותר מאשר PHPUnit, ויש לו המון תכונות המספקות לנו זרימת עבודה ניתנת להרחבה להתאמה אישית.
9. סלניום
סלניום הוא מסגרת בדיקה מתוחכמת הממיינת דפדפנים. משמעות הדבר היא כי ניתן לכתוב בדיקות קבלה של המשתמש כי לבחון את האפליקציה כולה כמכלול.
סלניום הוא כלי חזק בעל ממשק API של WebDriver שיכול להסיע דפדפן באופן מקורי אם כי משתמש אמיתי ישתמש בו באופן מקומי או על מחשב מרוחק. סלניום הוא כלי מצוין לבדיקת יישומי אינטרנט מבוגרים יותר.
סופי מחשבות
מסגרות בדיקות אוטומטיות להעצים אותנו לכתוב קוד PHP באיכות גבוהה יותר, בשל הפופולריות של השפה יש לנו אפשרויות רבות, אז אנחנו יכולים לבחור אחד העונה על הצרכים שלנו הפיתוח הטוב ביותר.
יש דבר חשוב אם כי אנחנו תמיד צריכים לזכור. בדיקות אוטומטיות עשויות להיות חזקות, אבל זה יכול אף פעם לא תחליף בדיקות ביתא - בדיקות שנעשו על ידי בני אדם אמיתיים אשר יהיו המשתמשים העתידיים של היישום.