Jadual Kandungan
tafsiran hasil humbug
bagaimana dengan petunjuk?
Kekurangan
"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?"
Apakah kepentingan ujian dan ujian dalam pembangunan perisian?
Bagaimana saya memastikan ujian saya boleh dipercayai dan tepat?
Apakah perangkap biasa dalam ujian perisian?
Apakah hubungan antara novel grafik "Watchman" dan ujian perisian?
Apakah peranan penguji perisian?
Bagaimana saya meningkatkan kemahiran ujian perisian saya?
Apakah sumber yang baik untuk mengetahui lebih lanjut mengenai ujian perisian?
Apakah masa depan ujian perisian?
Rumah pembangunan bahagian belakang tutorial php Menguji ujian anda? Siapa yang menonton Watchmen?

Menguji ujian anda? Siapa yang menonton Watchmen?

Feb 14, 2025 am 09:41 AM

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Apr 06, 2025 am 12:02 AM

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Apakah penghitungan (enums) dalam Php 8.1? Apakah penghitungan (enums) dalam Php 8.1? Apr 03, 2025 am 12:05 AM

Fungsi penghitungan dalam Php8.1 meningkatkan kejelasan dan jenis keselamatan kod dengan menentukan pemalar yang dinamakan. 1) Penghitungan boleh menjadi bilangan bulat, rentetan atau objek, meningkatkan kebolehbacaan kod dan keselamatan jenis. 2) Penghitungan adalah berdasarkan kelas dan menyokong ciri-ciri berorientasikan objek seperti traversal dan refleksi. 3) Penghitungan boleh digunakan untuk perbandingan dan tugasan untuk memastikan keselamatan jenis. 4) Penghitungan menyokong penambahan kaedah untuk melaksanakan logik kompleks. 5) Pemeriksaan jenis dan pengendalian ralat yang ketat boleh mengelakkan kesilapan biasa. 6) Penghitungan mengurangkan nilai sihir dan meningkatkan keupayaan, tetapi memberi perhatian kepada pengoptimuman prestasi.

Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Apr 03, 2025 am 12:04 AM

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana cara debug mod CLI dalam phpstorm? Bagaimana cara debug mod CLI dalam phpstorm? Apr 01, 2025 pm 02:57 PM

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Bagaimana cara menghantar permintaan pos yang mengandungi data JSON menggunakan perpustakaan php curl? Bagaimana cara menghantar permintaan pos yang mengandungi data JSON menggunakan perpustakaan php curl? Apr 01, 2025 pm 03:12 PM

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

See all articles