Rumah > pembangunan bahagian belakang > tutorial php > Menguji ujian anda? Siapa yang menonton Watchmen?

Menguji ujian anda? Siapa yang menonton Watchmen?

Christopher Nolan
Lepaskan: 2025-02-14 09:41:10
asal
328 orang telah melayarinya

Testing Your Tests? Who Watches the Watchmen?

Sama ada anda bekerja untuk perusahaan yang besar, permulaan atau diri anda, ujian unit bukan sahaja berguna, tetapi sering kali diperlukan. Kami menggunakan ujian unit untuk menguji kod, tetapi bagaimana jika ujian kami salah atau tidak lengkap? Apa yang boleh kita gunakan untuk menguji ujian kami?

Siapa yang akan mengawasi pemeriksa? Testing Your Tests? Who Watches the Watchmen?

mata utama

Ujian variasi adalah teknik yang menilai kualitinya dengan sebilangan kecil ujian yang diubah suai dan boleh digunakan untuk menguji ujian itu sendiri. Ia melibatkan mewujudkan "varian" atau varian ujian asal dan memeriksa jika perubahan ini dikesan oleh ujian.
  • Humbug adalah rangka kerja ujian variasi untuk PHP yang boleh digunakan untuk menjana liputan kod. Walau bagaimanapun, ia adalah spesifik phpunit dan boleh menjadi masalah bagi pengguna menggunakan kerangka ujian yang berbeza.
  • Walaupun ujian variasi adalah berharga, ia juga mempunyai kelemahannya, terutamanya dicerminkan dalam prestasi. Ini adalah proses yang perlahan kerana ia bergantung kepada banyak faktor seperti interaksi antara baris kod, bilangan ujian, tahap liputan kod, dan prestasi kod dan ujian.
  • Sebagai kerumitan permohonan meningkat, kepentingan mengekalkan liputan kod 100% meningkat. Alat seperti Humbug adalah penting untuk mengekalkan liputan tersebut, terutamanya dalam ekosistem perusahaan.
Ujian mutasi

Tidak, itu bukan mutasi semacam itu. Ujian Variasi (atau Analisis Variasi

) adalah teknik yang digunakan untuk membuat dan menilai kualiti ujian perisian. Ia melibatkan mengubahsuai ujian dengan cara yang sangat kecil. Setiap versi yang diubahsuai dipanggil variasi, dan ujian mengesan dan menolak varian dengan menyebabkan versi asal berkelakuan berbeza dari varian. Mutasi adalah kesilapan dalam kod asal, dan pemeriksaan analisis sama ada ujian kami mengesan kesilapan ini. Singkatnya, jika ujian masih sah selepas mutasi, ia bukan ujian yang baik. Testing Your Tests? Who Watches the Watchmen? ujian mutasi menggunakan humbug

Humbug adalah rangka kerja ujian variasi untuk PHP. Agar Humbug menjana liputan kod, kita mesti memasang dan mengaktifkan XDEBUG pada mesin kami. Kita kemudian boleh memasangnya sebagai alat global.

Selepas

, jika kita menjalankan

composer global require 'humbug/humbug'
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Perintah

harus dapat melihat beberapa maklumat pemasangan humbug dan ralat yang menunjukkan bahawa kita tidak mempunyai fail humbug.json.

humbug
Salin selepas log masuk
Salin selepas log masuk

Program boot

Sebelum kita mengkonfigurasi dan menggunakan humbug, kita memerlukan projek yang boleh diuji. Kami akan membuat pakej kalkulator PHP kecil di mana kami menjalankan ujian unit dan ujian mutasi kami. Mari buat folder /kalkulator. Di dalamnya, mari kita buat folder /src dan /ujian kami. Dalam folder kami /SRC, kami akan mempunyai kod aplikasi kami; Kami juga perlu menggunakan PHPUnit dalam pakej kami. Cara terbaik ialah menggunakan komposer. Mari pasang phpunit menggunakan arahan berikut:

composer global require 'humbug/humbug'
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Mari buat kalkulator kami. Dalam folder /src, buat fail calculator.php dan tambahkan yang berikut:

humbug
Salin selepas log masuk
Salin selepas log masuk

Ini adalah program yang agak mudah. Kalkulator mudah dengan operasi aritmetik, peratusan dan logaritma asas dan fungsi yang mengembalikan nilai π. Seterusnya, dalam folder kami /ujian, mari buat ujian unit untuk kalkulator kami. Jika anda memerlukan bantuan dengan ujian unit di PHP, lihat tutorial ini. Buat fail calculatortest.php dan tambahkan yang berikut:

composer global require phpunit/phpunit
Salin selepas log masuk

Ini akan menjadi timbunan ujian awal kami. Jika kita menjalankan perintah phpunit, kita akan melihatnya dengan jayanya dan 4 ujian dan 4 dakwaan akan lulus. Adalah penting bahawa semua ujian mesti diluluskan, jika tidak, humbug akan gagal.

konfigurasi humbug

Humbug boleh dikonfigurasi secara manual dengan membuat fail humbug.json.dist, atau secara automatik dengan menjalankan perintah berikut:

<?php
namespace package\Calculator;

class Calculator {

    /**
     * 基本运算
     */
    public function add($a1, $a2) {
        return $a1 + $a2;
    }

    public function subtract($a1, $a2) {
        return $a1 - $a2;
    }

    public function multiply($a1, $a2) {
        return $a1 * $a2;
    }

    public function divide($a1, $a2) {

        if ($a2 === 0) {
            return false;
        }

        return $a1 / $a2;
    }

    /*
     * 百分比
     */

    // 这将返回 a1 的 a2 百分比
    public function percentage($a1, $a2) {
        return ( $a1 / $a2 ) * 100;
    }

    /*
     * π
     */

    // 返回 π 的值
    public function pi() {
        return pi();
    }

    /*
     * 对数
     */

    // 返回以 10 为底的基本对数
    public function log($a) {
        return log10($a);
    }

}
Salin selepas log masuk

menjalankan arahan ini akan meminta kami menjawab beberapa soalan:

  • Direktori sumber apa yang anda mahu sertakan? di sini kita akan menggunakan SRC/, yang merupakan direktori kod sumber kami.
  • Direktori apa yang anda mahu tidak termasuk dari direktori sumber? boleh berguna dalam beberapa kes, seperti direktori vendor luaran yang kita tidak mahu menguji. Ia tidak berlaku untuk keadaan semasa kita.
  • Timeout Suite Ujian Tunggal (saat). mari kita gunakan ini selama 30 saat. Ini mungkin terlalu banyak, tetapi kami ingin memastikan semuanya mempunyai masa yang cukup untuk dijalankan.
  • di mana anda mahu menyimpan log teks? humblog.txt Sebagai nilai lalai, kami akan menyimpannya.
  • Di manakah anda mahu menyimpan log JSON (jika diperlukan)? Nilai lalai kosong, tetapi kami akan menyimpannya di humblogjson.json.
  • menghasilkan "humblog.json.dist"? Selepas fail ini dijana, ia akan mengandungi semua nilai konfigurasi yang kami sediakan. Jika kita mahu mengubah sesuatu, kita boleh mengeditnya secara manual.

Gunakan humbug

Sekarang kita telah menjalankan aplikasi dan mengujinya, dan kita telah dipasang humbug, mari kita jalankan humbug dan periksa hasilnya.

<?php
use package\Calculator\Calculator;

class CalculatorTest extends PHPUnit_Framework_TestCase {

    public function testAdd() {
        $calculator = new Calculator();
        $result = $calculator->add(2, 3);
        $this->assertEquals($result, 5);
    }

    public function testSubtract() {
        $calculator = new Calculator();
        $result = $calculator->subtract(6, 3);
        $this->assertEquals($result, 3);
    }

    public function testMultiply() {
        $calculator = new Calculator();
        $result = $calculator->multiply(6, 3);
        $this->assertEquals($result, 18);
    }

    public function testDivide() {
        $calculator = new Calculator();
        $result = $calculator->divide(6, 3);
        $this->assertEquals($result, 2);
    }

}
Salin selepas log masuk

Hasilnya harus dekat dengan ini: Testing Your Tests? Who Watches the Watchmen?

tafsiran hasil humbug

Bilangan mutasi yang dibuat adalah bilangan perubahan kecil yang diperkenalkan oleh Humbug untuk menguji ujian kami. Mutasi yang terbunuh (.) Adalah mutasi yang menyebabkan ujian gagal. Jangan keliru, ini adalah hasil yang positif! Mutasi melarikan diri (M) adalah mutasi yang masih lulus ujian. Ini bukan hasil yang positif, kita harus kembali ke ujian kita dan periksa apa yang hilang. Mutasi yang ditemui adalah mutasi yang berlaku dalam baris yang tidak dilindungi oleh ujian unit. Kesilapan maut (e) dan tamat masa (t) adalah mutasi yang menghasilkan ralat maut dan membuat gelung tak terhingga, masing -masing.

bagaimana dengan petunjuk?

Metrik skor variasi mewakili peratusan mutasi yang dikesan. Matlamat kami adalah 100%. Perlindungan kod variasi mewakili peratusan ujian yang dilindungi oleh mutasi. Metrik skor variasi boleh memberi anda idea tentang keberkesanan ujian sedia ada. Menganalisis balak humbug kita, kita dapat melihat bahawa kita mempunyai 9 mutasi yang tidak dijumpai, serta beberapa metrik yang sangat buruk. Lihat fail Humblogjson.json. Fail ini dihasilkan secara automatik seperti fail Humblog.txt dan mengandungi maklumat yang lebih terperinci mengenai sebab -sebab, lokasi, dan alasan kegagalan. Kami tidak menguji peratusan kami, π, dan fungsi logaritma. Di samping itu, kita perlu menampung kes di mana nombor dibahagikan dengan 0. Mari tambahkan lebih banyak ujian untuk menampung situasi yang hilang:

composer global require 'humbug/humbug'
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kali ini, 100% bermakna semua mutasi dibunuh dan kami mempunyai liputan kod penuh.

Kekurangan

Kelemahan terbesar ujian mutasi dan humbug adalah prestasi. Ujian variasi adalah proses perlahan kerana ia bergantung kepada banyak faktor seperti interaksi antara garis kod, bilangan ujian, tahap liputan kod, dan prestasi kod dan ujian. Humbug juga melakukan ujian awal, pembalakan, dan liputan kod, yang meningkatkan tempoh keseluruhan. Di samping itu, Humbug adalah spesifik phpunit dan boleh menjadi masalah bagi pengguna menggunakan kerangka ujian lain. Iaitu, Humbug berada di bawah pembangunan aktif dan akan terus bertambah baik.

Kesimpulan

Humbug boleh menjadi alat penting untuk mengekalkan kehidupan permohonan anda. Memandangkan kerumitan aplikasi meningkat, begitu pula menguji kerumitan -dan menjadi sangat penting untuk sentiasa menyimpan ujian 100%, terutamanya apabila berurusan dengan ekosistem perusahaan. Kod yang digunakan dalam tutorial ini boleh diklon di sini. Adakah anda pernah menggunakan Humbug? Adakah anda melakukan ujian mutasi dengan cara lain? Tolong beritahu kami semua pemikiran anda mengenai perkara ini!

Soalan -soalan yang sering ditanya mengenai "Siapa yang akan mengawasi pemeriksa?" Apakah asal -usul ayat ini "Siapa yang akan mengawasi pemeriksa?"

"Siapa yang akan mengawasi pemeriksa?" Kalimat ini sering digunakan dalam perbincangan yang mempersoalkan integriti dan akauntabiliti mereka yang berkuasa. Ia pada dasarnya bertanya, "Siapa yang akan menjaga pengawal?" Watchman ".

Dalam konteks ujian perisian, bagaimanakah ayat "Siapa yang akan mengawasi pemeriksa?"

Dalam konteks ujian perisian, "Siapa yang akan mengawasi pemeriksa?" Ia mempersoalkan siapa atau apa yang memantau ujian untuk memastikan ia dapat berfungsi dengan baik dan menghasilkan hasil yang tepat. Ini adalah aspek utama pembangunan perisian kerana ia memastikan kualiti dan kebolehpercayaan perisian yang sedang dibangunkan.

Apakah kepentingan ujian dan ujian dalam pembangunan perisian?

Ujian ujian, juga dikenali sebagai pengesahan ujian, adalah bahagian utama pembangunan perisian. Ia memastikan bahawa ujian dengan tepat mengukur fungsi dan prestasi perisian. Sekiranya tiada pengesahan ujian, terdapat risiko bahawa ujian boleh menghasilkan positif palsu atau laporan yang tidak dijawab, mengakibatkan penilaian yang tidak tepat terhadap kualiti perisian dan kebolehpercayaan.

Bagaimana saya memastikan ujian saya boleh dipercayai dan tepat?

Pastikan kebolehpercayaan dan ketepatan ujian melibatkan beberapa langkah. Pertama, anda harus menyemak ujian anda dengan teliti untuk memastikan ia direka dan dilaksanakan dengan betul. Kedua, anda harus mengesahkan ujian anda dengan kerap dengan membandingkan hasil ujian dengan hasil yang diketahui. Akhirnya, anda harus terus memantau dan mengemas kini ujian anda untuk memastikan mereka tetap tepat apabila perisian berkembang.

Apakah perangkap biasa dalam ujian perisian?

Beberapa perangkap biasa dalam ujian perisian termasuk ujian yang tidak mencukupi, ujian yang salah, dan tidak memahami tujuan ujian. Perangkap lain termasuk terlalu bergantung pada ujian automatik tanpa memahami batasan mereka, dan semakan berkala dan kemas kini ujian.

Apakah hubungan antara novel grafik "Watchman" dan ujian perisian?

novel grafik "Watchman" menggunakan ayat "yang mengawasi pemeriksa?" Dalam konteks ujian perisian, ayat ini boleh digunakan untuk mempersoalkan kebolehpercayaan dan ketepatan ujian itu sendiri. Sama seperti pemerhati harus melindungi masyarakat, ujian harus melindungi kualiti dan kebolehpercayaan perisian. Tetapi sama seperti pemerhati perlu dipantau, ujian perlu dipantau.

Apakah peranan penguji perisian?

Peranan penguji perisian adalah untuk memastikan kualiti dan kebolehpercayaan perisian dengan merancang dan melaksanakan ujian. Ujian ini digunakan untuk mengenal pasti dan memperbaiki kesilapan, mengesahkan fungsi, dan menilai prestasi. Penguji perisian juga mesti memantau dan mengemas kini ujian ini untuk memastikan mereka tetap tepat semasa proses pembangunan perisian.

Bagaimana saya meningkatkan kemahiran ujian perisian saya?

Meningkatkan kemahiran ujian perisian anda memerlukan pembelajaran dan amalan yang berterusan. Anda harus mengetahui kaedah dan alat ujian terkini dan amalan merancang dan melaksanakan ujian secara teratur. Anda juga harus mendapatkan maklum balas mengenai ujian anda dan gembira dapat belajar dari kesilapan anda.

Apakah sumber yang baik untuk mengetahui lebih lanjut mengenai ujian perisian?

Terdapat banyak sumber yang tersedia untuk mengetahui lebih lanjut mengenai ujian perisian. Ini termasuk kursus dalam talian, buku, blog dan forum. Beberapa buku yang disyorkan termasuk "The Art of of Software Testing" oleh Glenford J. Myers, "Ujian Perisian: Kaedah Pengrajin" oleh Paul C. Jorgensen, dan Seim Karnar dan Jack Falke "Menguji Perisian Komputer" oleh Huang Q. Ruan.

Apakah masa depan ujian perisian?

Masa depan ujian perisian mungkin dipengaruhi oleh kemajuan teknologi. Ini termasuk peningkatan penggunaan automasi dan kecerdasan buatan dalam ujian, serta pembangunan kaedah ujian baru untuk menyesuaikan diri dengan teknologi baru seperti realiti maya dan blockchain. Walau bagaimanapun, prinsip asas ujian perisian -untuk memastikan kualiti dan kebolehpercayaan perisian -tetap sama.

Atas ialah kandungan terperinci Menguji ujian anda? Siapa yang menonton Watchmen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan