9 أفضل أطر اختبار الآلي ل PHP
هل قضيت ساعات طويلة في تصحيح شفرة PHP الخاصة بك؟ حسنًا ، بالنسبة لمعظم المبرمجين ، ربما لا يمثل هذا التحدي الأكثر روعة ، ولكن هناك حلًا يمكن أن يساعدنا في تقصير هذه المهمة الشاقة. الاختبار الآلي يمكن أن تحسن كثيرا من سير العمل في تطوير PHP من قبل السماح للاختبارات المكتوبة مسبقًا لدفع عملية التطوير.
في هذا المنصب سنحاول فهم لماذا الاختبار الآلي هو بارد جدا, كيف يعمل ، وما هي أفضل أطر الاختبار يمكنك أن تبدأ مع.
لماذا الاختبار مهم
يميل مطورو PHP المبتدئين إلى عدم كتابة اختبارات لرمزهم. بدأ معظمنا وظائفنا من خلال اختبار الميزات والوظائف الجديدة التي كتبناها للتو في نافذة المتصفح واحدة تلو الأخرى ، وعندما حدث خطأ ما كنا جاهلين بشأن ما يجب القيام به.
يمكن أن تؤدي اختبارات الكتابة الخاصة بالرمز إلى توفير وقت تصحيح ثمين وساعات من الصداع. عندما يتم إدخال رمز لم يتم اختباره في الإنتاج ، فإن المراجعات التي سنحصل عليها ربما لن تكون رائعة. فماذا يمكننا أن نفعل?
ربما أفضل فكرة هي إنشاء اختبار سير العمل المنتجة التي نحتاج فيها إلى كتابة رمز الاختبار الخاص بنا والذي يتحقق مما إذا كان رمز التطبيق لدينا يعمل بشكل صحيح.
الحيلة هي ذلك يجب اختبار رمز الاختبار قبل رمز التطبيق. بهذه الطريقة يمكننا أن نضمن من البداية أن الشفرة التي نكتبها تعمل بشكل صحيح. سوف يذهب رمز الاختبار إلى ملفات منفصلة. إذا واجهنا لاحقًا أي أخطاء في تطبيق PHP الخاص بنا ، فلن نحتاج إلى القيام بأي شيء آخر ، فقط قم بإجراء اختباراتنا التي نأمل أن تعطينا تلميحات المناسبة حول المشاكل.
بخلاف توفير الوقت وإعداد التطبيق لدينا بشكل صحيح للإنتاج ، يتمتع الاختبار بالعديد من المزايا الأخرى أيضًا ، مثل:
- رمز أكثر للصيانة
- تسهيل إعادة بيع المساكن
- مشاكل أمنية أقل
- قاعدة رمز أقل انتفاخًا (سيؤدي تكييف رمز التطبيق إلى رمز الاختبار المكتوب مسبقًا إلى حذف الأجزاء الزائدة عن الحاجة)
- أداء أفضل
ما هو الاختبار الآلي?
بالطبع ، يمكننا كتابة اختباراتنا يدويًا ، لكن بعد فترة من الوقت قد تكون مملة وتستغرق وقتًا طويلاً مع العديد من المهام المتكررة. يمكن الاستعاضة عن الاختبار اليدوي عن طريق الاختبار الآلي الذي نستخدم فيه برامج محددة من شأنها أن تؤدي العمل الشاق بالنسبة لنا ، ويمكننا قضاء المزيد من الوقت في إنشاء منطق رمز الاختبار.
لحسن الحظ ، تعد لغة PHP لغة برمجة شائعة جدًا ، لذلك هناك العديد من أطر الاختبار الآلية التي يمكننا الاختيار من بينها.
التطوير القائم على الاختبار (TDD) مقابل التطوير القائم على السلوك (BDD)
الطريقتان الرئيسيتان اللتان تستخدمهما أطر الاختبار الآلي هي التطوير القائم على الاختبار (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 هو إطار اختبار PHP يحركه السلوك. الاختبارات التي يمكن أن نكتب مع بهات تبدو إلى حد ما مثل القصص من رمز. يستخدم Behat النوع الفرعي StoryBDD للتطوير القائم على السلوك (النوع الفرعي الآخر هو SpecBDD).
تم استلهام الإطار من مشروع Cucumber وهو إطار اختبار للغة برمجة روبي.
4. PHPSpec
يتبع PHPSpec أيضًا نهج الاختبار القائم على السلوك ، ولكن نوعه الفرعي الآخر يسمى SpecBDD. مع PHPSpec نحتاج إلى اكتب المواصفات أولاً التي تصف كيفية سلوك رمز التطبيق. تم استلهامها أيضًا من إطار اختبار Ruby يسمى RSpec.
5. Storyplayer
Storyplayer هو إطار اختبار مكدس كامل يجعل من الممكن اكتب اختبارات نهاية إلى نهاية لمنصة كاملة. Storyplayer لديه دعم ل إنشاء وتدمير بيئات الاختبار عند الطلب. يتبع نهج اختبار TDD ، ويسمح لنا بكتابة اختبارات وظيفية يمكنها التحقق من التطبيق ككل.
6. الزبرجد
الزبرجد هو إطار اختبار خفيف الوزن وقابل للامتداد لـ PHP. ومن ميزات الحدث يحركها العمارة الذي يسمح لاختبار بسهولة تخصيص الإطار عبر الإضافات والمراسلين.
الزبرجد يستخدم صفه بناء جملة لإنشاء لغة اختبار واضحة وقابلة للقراءة تصف بوضوح كيف يجب أن يتصرف رمز التطبيق لدينا.
7. عتوم
Atoum هو إطار اختبار PHP حدسي وحديث والذي يسمح لنا بإجراء اختبارات وحدة. إنه يبسط عملية تطوير الاختبار ، ولأنه إطار شبابي فإنه يستخدم بعض القدرات الأحدث التي تم تقديمها في PHP 5.3 (يمكنيمكن استخدامها مع إصدارات PHP الأقدم) لتزويدنا بعملية اختبار سريعة وسهلة الفهم.
عتوم يضمن مستوى عال من الأمن أثناء تنفيذ الاختبار, لأنه يعزل كل طريقة اختبار في عملية PHP الخاصة به.
8. كحلان
Kahlan هو إطار اختبار BDD كامل المواصفات يجعل من الممكن كتابة اختبارات الوحدة باستخدام صفه بناء الجملة. إنه يحتضن مبدأ التصميم KISS (Keep It Simple، Stupid). كهلان يتطلب على الأقل PHP 5.5.
يحتوي على قاعدة رمز صغيرة ، ويقال أنه أصغر بحوالي 10 أضعاف من PHPUnit ، ولديه الكثير من الميزات التي توفر لنا سير عمل اختبار الموسعة وقابلة للتخصيص.
9. السيلينيوم
السيلينيوم هو إطار اختبار متطور يقوم بأتمتة المتصفحات. هذا يعني أنه من الممكن كتابة اختبارات قبول المستخدم فحص التطبيق بأكمله ككل.
السيلينيوم هو أداة قوية لها واجهة برمجة تطبيقات WebDriver الخاصة بها والتي يمكنها قيادة المتصفح أصليًا على الرغم من أن المستخدم الحقيقي سيستخدمه إما محليًا أو على جهاز بعيد. السيلينيوم أداة ممتازة لاختبار تطبيقات الويب الأكثر نضجًا.
افكار اخيرة
تمكننا أطر الاختبار الآلية من كتابة كود PHP عالي الجودة ، وبسبب شعبية اللغة لدينا العديد من الخيارات ، حتى نتمكن من اختيار ما يلبي احتياجات التطوير لدينا الأفضل.
هناك شيء مهم رغم أننا نحتاج دائمًا إلى وضعه في الاعتبار. قد يكون الاختبار الآلي قويًا ، ولكنه يمكن أن يكون كذلك أبدا اختبار بيتا الاختبار - الاختبارات التي أجراها أناس حقيقيون الذين سيكونون المستخدمين في المستقبل للتطبيق.