Rumah >pembangunan bahagian belakang >tutorial php >Menguji ujian anda? Siapa yang menonton Watchmen?
Siapa yang akan mengawasi pemeriksa?
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.
Tidak, itu bukan mutasi semacam itu. Ujian Variasi (atau
) 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.
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
<code class="language-bash">composer global require 'humbug/humbug'</code>Perintah
harus dapat melihat beberapa maklumat pemasangan humbug dan ralat yang menunjukkan bahawa kita tidak mempunyai fail humbug.json.
<code class="language-bash">humbug</code>
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:
<code class="language-bash">composer global require 'humbug/humbug'</code>
Mari buat kalkulator kami. Dalam folder /src, buat fail calculator.php dan tambahkan yang berikut:
<code class="language-bash">humbug</code>
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:
<code class="language-bash">composer global require phpunit/phpunit</code>
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:
<code class="language-php"><?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); } }</code>
menjalankan arahan ini akan meminta kami menjawab beberapa soalan:
Gunakan humbug
Sekarang kita telah menjalankan aplikasi dan mengujinya, dan kita telah dipasang humbug, mari kita jalankan humbug dan periksa hasilnya.
<code class="language-php"><?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); } }</code>
Hasilnya harus dekat dengan ini:
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.
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:
<code class="language-bash">composer global require 'humbug/humbug'</code>
Kali ini, 100% bermakna semua mutasi dibunuh dan kami mempunyai liputan kod penuh.
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?"
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.
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.
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.
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.
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.
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.
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.
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.
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!