โฮมเพจ » Toolkit » 9 กรอบการทดสอบอัตโนมัติที่ดีที่สุดสำหรับ PHP

    9 กรอบการทดสอบอัตโนมัติที่ดีที่สุดสำหรับ PHP

    คุณเคยใช้เวลานานหลายชั่วโมงในการดีบักโค้ด PHP หรือไม่? สำหรับโปรแกรมเมอร์ส่วนใหญ่อาจไม่ใช่ความท้าทายที่น่าสนใจที่สุด แต่ก็มีวิธีแก้ปัญหาที่สามารถช่วยเราลดภาระงานที่น่าเบื่อนี้. การทดสอบอัตโนมัติ อย่างมีนัยสำคัญสามารถปรับปรุงกระบวนการทำงานของการพัฒนา PHP โดย อนุญาตให้ทดสอบก่อนเขียนเพื่อขับเคลื่อนกระบวนการพัฒนา.

    ในบทความนี้เราจะพยายามทำความเข้าใจ เหตุใดการทดสอบอัตโนมัติจึงยอดเยี่ยม, มันทำงานอย่างไรและมีอะไรบ้าง กรอบการทดสอบที่ดีที่สุด คุณสามารถเริ่มต้นด้วย.

    ทำไมการทดสอบจึงสำคัญ

    นักพัฒนา PHP มือใหม่มักจะไม่เขียนโค้ดทดสอบ ส่วนใหญ่ของเราเริ่มอาชีพของเราโดยการทดสอบคุณสมบัติและฟังก์ชั่นใหม่ที่เราเพิ่งเขียนในหน้าต่างเบราว์เซอร์ทีละคนและเมื่อมีสิ่งผิดปกติเรา clueless เกี่ยวกับสิ่งที่ต้องทำ.

    การทดสอบการเขียนรหัสของเราสามารถสำรองเวลาการดีบักและเวลาอันปวดหัวได้อย่างมีค่า. เมื่อรหัสที่ยังไม่ได้ทดสอบเข้าสู่การผลิตความเห็นที่เราจะได้รับอาจจะไม่ดีนัก แล้วเราจะทำอย่างไร?

    อาจเป็นความคิดที่ดีที่สุดคือ สร้างเวิร์กโฟลว์การทดสอบที่มีประสิทธิผล เราจำเป็นต้องเขียนรหัสทดสอบของเราเองเพื่อตรวจสอบว่ารหัสแอปพลิเคชันของเราทำงานอย่างถูกต้องหรือไม่.

    เคล็ดลับก็คือ รหัสการทดสอบจะต้องเขียนก่อนรหัสแอปพลิเคชัน. วิธีนี้เราสามารถมั่นใจได้ตั้งแต่เริ่มต้นว่ารหัสที่เราเขียนนั้นทำงานได้อย่างถูกต้อง รหัสการทดสอบจะแบ่งเป็นไฟล์ต่าง ๆ หากภายหลังเราชนกับข้อผิดพลาดใด ๆ ในแอป PHP ของเราเราไม่จำเป็นต้องทำอะไรอย่างอื่นเพียงแค่ทำการทดสอบที่หวังว่าจะ ให้คำแนะนำที่ถูกต้องเกี่ยวกับปัญหา.

    นอกเหนือจากการประหยัดเวลาและการเตรียมแอปของเราอย่างเหมาะสมสำหรับการผลิตการทดสอบก็มีข้อดีอื่น ๆ อีกมากมายเช่น:

    • รหัสบำรุงรักษามากขึ้น
    • อำนวยความสะดวกในการ refactoring
    • ปัญหาด้านความปลอดภัยน้อยลง
    • ฐานรหัสป่องน้อยลง (การปรับรหัสแอปพลิเคชันให้เป็นรหัสทดสอบที่เขียนล่วงหน้าจะทำให้เราไม่ใช้ส่วนที่เกินความจำเป็น)
    • ประสิทธิภาพที่ดีขึ้น

    การทดสอบอัตโนมัติคืออะไร?

    แน่นอนว่าเราสามารถเขียนการทดสอบของเราได้ด้วยตนเอง แต่หลังจากนั้นไม่นานมันอาจจะน่าเบื่อและใช้เวลากับงานซ้ำ ๆ มากมาย การทดสอบด้วยตนเองสามารถถูกแทนที่ด้วยการทดสอบอัตโนมัติซึ่งเราใช้ซอฟต์แวร์เฉพาะที่จะทำงานหนักสำหรับเราและเราสามารถใช้เวลามากขึ้นในการสร้างตรรกะของรหัสทดสอบ.

    PHP เป็นภาษาการเขียนโปรแกรมที่ได้รับความนิยมอย่างมากดังนั้นจึงมีกรอบการทดสอบอัตโนมัติมากมายที่เราสามารถเลือกได้.

    การทดสอบที่ขับเคลื่อนด้วยการพัฒนา (TDD) กับการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม (BDD)

    วิธีการหลักสองวิธีที่กรอบการทดสอบอัตโนมัติใช้คือการพัฒนาแบบทดสอบด้วยขับเคลื่อน (TDD) และการพัฒนาแบบพฤติกรรมขับเคลื่อน (BDD) ในทั้งสองกระบวนการพัฒนานั้นมาจากการทดสอบซึ่งหมายความว่าการทดสอบจะถูกเขียนก่อนรหัสแอปพลิเคชัน.

    ความแตกต่างที่สำคัญระหว่างการทดสอบที่ขับเคลื่อนด้วยการทดสอบและการทดสอบที่ขับเคลื่อนด้วยพฤติกรรมนั้นอยู่ในรูปแบบของรหัสการทดสอบ: TDD ใช้รหัส PHP ที่เหมาะสมในไฟล์ทดสอบ, ในขณะที่ BDD ใช้ประโยคที่มนุษย์อ่านได้ ที่อธิบายพฤติกรรมของแต่ละคุณสมบัติและผู้ที่ไม่เกี่ยวข้องด้านเทคนิคสามารถเข้าใจได้เช่นกัน.

    การทดสอบ TDD มีลักษณะเช่นนี้ในโปรแกรมแก้ไขโค้ดซึ่งเป็นเพียงโค้ด PHP เชิงวัตถุปกติ:

    ภาพ: Codeception.com

    การทดสอบ BDD คล้ายกับสิ่งนี้ผู้ที่ไม่ใช่โปรแกรมเมอร์สามารถเข้าใจได้:

    ภาพ: Behat.org

    10 กรอบการทดสอบอัตโนมัติของ PHP

    โดยที่ในใจเรามาดู 10 กรอบการทดสอบอัตโนมัติที่ทรงพลังสำหรับ PHP ที่คุณสามารถใช้ได้.

    1. PHPUnit

    PHPUnit เป็นกรอบการทดสอบที่รู้จักกันดีที่สุดสำหรับการเขียน Unit Tests สำหรับแอพ PHP การทดสอบหน่วยใช้ส่วนของโค้ดขนาดเล็กที่เรียกว่าหน่วยและทดสอบทีละตัว ด้วยความช่วยเหลือของ PHPUnit เราสามารถดำเนินการพัฒนาโดยอาศัยการทดสอบ.

    มันสามารถใช้งานผ่านทาง บรรทัดคำสั่ง, และมันทำให้เรามี คลาส TestCase ที่มีประโยชน์ ที่เราสามารถขยายตามความต้องการของเรา PHPUnit ยังอนุญาตให้นักพัฒนาใช้ วิธีการยืนยันก่อนเขียนเพื่อยืนยันว่าแอปทำงานในลักษณะที่แน่นอน.

    2. การรับรหัส

    Codeception ไม่เพียง แต่ช่วยให้เราสามารถเขียนการทดสอบหน่วยเท่านั้น แต่ยังสามารถทดสอบการใช้งานและการตอบรับได้อีกด้วย สองหลังนี้ทดสอบแอป PHP โดยรวมกับฟีเจอร์ทั้งหมดที่เชื่อมโยงเข้าด้วยกันไม่ใช่เป็นหน่วย Codeception ช่วยให้เราสามารถเปิดใช้งานและกำหนดค่าโมดูลต่าง ๆ ตามความต้องการในการพัฒนาของเรา.

    มันรวมเข้ากับกรอบการพัฒนา PHP หลายอย่างเช่น Symfony2, Laravel4, Yii, Phalcon และ Zend Framework. ซึ่งหมายความว่าเราสามารถใช้กรอบการทดสอบอัตโนมัติของ PHP และกรอบการพัฒนา PHP ร่วมกันเพื่อสร้างเวิร์กโฟลว์การพัฒนาที่มีประสิทธิภาพสูงสุด.

    3. เกิดอะไรขึ้น

    Behat เป็นกรอบการทดสอบ PHP ที่ได้รับความนิยมจากพฤติกรรม การทดสอบเราสามารถเขียนด้วย Behat ดูค่อนข้าง ชอบเรื่องมากกว่ารหัส. Behat ใช้ประเภทย่อย StoryBDD ของการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม (ประเภทย่อยอื่นคือ SpecBDD).

    เฟรมเวิร์กได้รับแรงบันดาลใจจากโครงการ Cucumber ซึ่งเป็นกรอบการทดสอบสำหรับภาษาการเขียนโปรแกรม Ruby.

    4. PHPSpec

    PHPSpec ยังปฏิบัติตามแนวทางการทดสอบที่ขับเคลื่อนด้วยพฤติกรรม แต่ประเภทย่อยอื่น ๆ ที่เรียกว่า SpecBDD ด้วย PHPSpec เราจำเป็นต้อง เขียนข้อมูลจำเพาะก่อนที่จะอธิบายวิธีการทำงานของรหัสแอปพลิเคชัน. มันยังได้รับแรงบันดาลใจจากกรอบการทดสอบทับทิมที่เรียกว่า RSpec.

    5. Storyplayer

    Storyplayer เป็นกรอบการทดสอบแบบเต็มสแต็กที่ทำให้เป็นไปได้ เขียนการทดสอบแบบครบวงจรสำหรับแพลตฟอร์มทั้งหมด. Storyplayer ได้รับการสนับสนุน การสร้างและทำลายสภาพแวดล้อมการทดสอบตามความต้องการ. มันเป็นไปตามวิธีการทดสอบ TDD และช่วยให้เราสามารถเขียนการทดสอบการทำงานที่สามารถตรวจสอบใบสมัครโดยรวม.

    6. Peridot

    Peridot เป็นเฟรมเวิร์กการทดสอบที่มีน้ำหนักเบาและขยายได้สำหรับ PHP มันคุณสมบัติ สถาปัตยกรรมเชิงเหตุการณ์ ที่ช่วยให้ผู้ทดสอบได้อย่างง่ายดาย กำหนดกรอบงานผ่านปลั๊กอินและผู้รายงาน.

    เพริดอตใช้ อธิบายมัน ไวยากรณ์เพื่อสร้างภาษาทดสอบที่ชัดเจนและอ่านได้ซึ่งอธิบายวิธีการทำงานของรหัสแอปพลิเคชันของเราอย่างชัดเจน.

    7. Atoum

    Atoum เป็นกรอบการทดสอบ PHP ที่ใช้งานง่ายและทันสมัยที่ช่วยให้เราสามารถทำการทดสอบหน่วย มันลดความซับซ้อนของการพัฒนาการทดสอบและเนื่องจากเป็นกรอบการทำงานที่เล็กทำให้สามารถใช้ความสามารถที่ใหม่กว่าซึ่งถูกนำมาใช้ใน PHP 5.3 (สามารถไม่สามารถใช้กับ PHP เวอร์ชันเก่าได้) เพื่อให้เรามีกระบวนการทดสอบที่รวดเร็วและง่ายต่อการเข้าใจ.

    Atoum รับประกัน ความปลอดภัยระดับสูงในระหว่างการดำเนินการทดสอบ, เนื่องจากมันแยกแต่ละวิธีทดสอบในกระบวนการ PHP ของตัวเอง.

    8. Kahlan

    Kahlan เป็นกรอบการทดสอบแบบเต็มรูปแบบที่ทำให้สามารถเขียนการทดสอบหน่วยโดยใช้ อธิบายมัน วากยสัมพันธ์. มันรวบรวมหลักการออกแบบของ KISS (Keep It Simple, Stupid) คาห์ลาน ต้องการอย่างน้อย PHP 5.5.

    มันมีฐานรหัสขนาดเล็กกล่าวกันว่ามีขนาดเล็กกว่า PHPUnit ประมาณ 10 เท่าและมีคุณสมบัติมากมายที่ช่วยให้เรามีขั้นตอนการทดสอบที่ขยายได้และปรับแต่งได้.

    9. ซีลีเนียม

    ซีลีเนียมเป็นเฟรมเวิร์กการทดสอบที่ซับซ้อนซึ่งดำเนินการกับเบราว์เซอร์โดยอัตโนมัติ ซึ่งหมายความว่าเป็นไปได้ที่จะเขียนการทดสอบการยอมรับของผู้ใช้ ตรวจสอบแอปทั้งหมดโดยรวม.

    ซีลีเนียมเป็นเครื่องมือที่แข็งแกร่งที่มี WebDriver API ของตัวเองที่สามารถขับเบราว์เซอร์ได้ แม้ว่าผู้ใช้จริงจะใช้ภายในหรือบนเครื่องระยะไกล. ซีลีเนียมเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการทดสอบเว็บแอปพลิเคชันที่เป็นผู้ใหญ่มากขึ้น.

    ความคิดสุดท้าย

    กรอบการทดสอบอัตโนมัติช่วยให้เราสามารถเขียนโค้ด PHP ที่มีคุณภาพสูงขึ้นและเนื่องจากความนิยมของภาษาที่เรามีให้เลือกมากมายดังนั้นเราจึงสามารถเลือกภาษาที่ตรงกับการพัฒนาของเราได้ดีที่สุด.

    มีสิ่งสำคัญที่เราต้องจำไว้เสมอ การทดสอบอัตโนมัติอาจมีประสิทธิภาพ แต่สามารถ ไม่เคยทดแทนการทดสอบเบต้า - การทดสอบที่ทำโดยคนจริงซึ่งจะเป็นผู้ใช้แอปพลิเคชันในอนาคต.