Apa perbedaan antara cacat dan bug?
Apa perbedaan antara cacat dan bug?
Jawaban:
Bug adalah hasil dari kesalahan pengkodean
Cacat adalah penyimpangan dari persyaratan
Yaitu: Kerusakan tidak selalu berarti ada bug dalam kode , bisa jadi fungsi yang tidak diterapkan tetapi didefinisikan dalam persyaratan perangkat lunak.
Dari halaman Wikipedia tentang pengujian perangkat lunak :
Tidak semua cacat perangkat lunak disebabkan oleh kesalahan pengkodean. Salah satu sumber cacat mahal yang umum disebabkan oleh kesenjangan persyaratan, misalnya, persyaratan yang tidak diakui, yang mengakibatkan kesalahan kelalaian oleh perancang program. [14] Sumber umum kesenjangan persyaratan adalah persyaratan non-fungsional seperti testabilitas, skalabilitas, rawatan, usabilitas, kinerja, dan keamanan.
Mengutip Ilene Burnstein dari buku Pengujian Perangkat Lunak Praktis (direkomendasikan) yang berpisah dari definisi dalam "Pengumpulan Standar IEEE untuk Rekayasa Perangkat Lunak" (1994) dan "Glosarium Standar IEEE dari Terminologi Rekayasa Perangkat Lunak" (standar 610.12, 1990):
Kesalahan adalah kesalahan, kesalahpahaman, atau kesalahpahaman dari pihak pengembang perangkat lunak
Dalam kategori pengembang, kami menyertakan insinyur perangkat lunak, programmer, analis, dan penguji. Misalnya, pengembang mungkin salah paham tentang notasi desain, atau pemrogram mungkin salah mengetikkan nama variabel.
Kesalahan (cacat) dimasukkan ke dalam perangkat lunak sebagai hasil dari kesalahan. Ini adalah anomali dalam perangkat lunak yang dapat menyebabkannya berperilaku tidak benar, dan tidak sesuai dengan spesifikasinya.
Kesalahan atau cacat kadang-kadang disebut "bug." Penggunaan istilah terakhir meremehkan kesalahan dampak pada kualitas perangkat lunak. Penggunaan istilah "cacat" juga dikaitkan dengan artefak perangkat lunak seperti persyaratan dan dokumen desain. Cacat yang terjadi pada artefak ini juga disebabkan oleh kesalahan dan biasanya terdeteksi dalam proses peninjauan.
Kegagalan adalah ketidakmampuan sistem perangkat lunak atau komponen untuk melakukan fungsi yang diperlukan dalam persyaratan kinerja yang ditentukan.
Selama eksekusi komponen atau sistem perangkat lunak, penguji, pengembang, atau pengguna mengamati bahwa itu tidak menghasilkan hasil yang diharapkan. Dalam beberapa kasus, jenis perilaku tertentu menunjukkan adanya jenis kesalahan tertentu. Kita dapat mengatakan bahwa jenis perilaku salah adalah gejala dari kesalahan. Pengembang / penguji yang berpengalaman akan memiliki basis pengetahuan tentang kasus kesalahan / gejala / kegagalan (model kesalahan seperti yang dijelaskan dalam Bab 3) yang tersimpan dalam memori. Perilaku yang salah dapat mencakup menghasilkan nilai yang salah untuk variabel output, respons yang salah di bagian perangkat, atau gambar yang salah di layar. Selama kegagalan pengembangan biasanya diamati oleh penguji, dan kesalahan ditemukan dan diperbaiki oleh pengembang.
Anda dapat membaca bab lengkap di Google Buku, di sini .
Ada beberapa istilah berbeda yang terkait dengan bug perangkat lunak. Kutipan dari kursus yang saya ambil:
Kesalahan : Tindakan atau kelalaian manusia yang menyebabkan kesalahan.
Kesalahan : Kesalahan adalah kerusakan perangkat lunak (langkah, proses, atau definisi data) yang salah yang menyebabkan kegagalan.
Bug : Sama seperti Kesalahan.
Kegagalan : Ketidakmampuan suatu perangkat lunak untuk melakukan fungsi yang diperlukan dalam persyaratan kinerja yang ditentukan.
Menurut ini, tidak ada perbedaan antara cacat dan bug. Namun, beberapa orang berpendapat bahwa bug adalah kesalahan yang ditemukan sebelum merilis perangkat lunak, sedangkan cacat adalah kesalahan yang ditemukan oleh pelanggan.
Saya tidak bisa menolak memposting "kasus aktual bug pertama yang terkenal" yang terkenal.
Oh sayang.
Dahulu kala - operasi komputer yang rusak disebabkan oleh segala hal - termasuk tikus yang mengunyah kabel dan bug nyata (makhluk) masuk ke dalam pekerjaan.
Istilah BUG telah macet sebagai istilah yang berarti sesuatu yang tidak berfungsi seperti yang diharapkan.
BUG harus dianggap sebagai istilah jargon yang berarti cacat.
Cacat adalah istilah yang secara teknis benar yang berarti bahwa hal itu tidak dilakukan sebagaimana mestinya.
Sedapat mungkin, menggunakan DEFECT sebagai ganti BUG sebenarnya membawa konotasi bahwa kita mengakui kegagalan kita (cacat kita, kurangnya pemahaman kita tentang kebutuhan pengguna atau hal-hal yang kita lupakan dalam implementasi) alih-alih mengenakannya sebagai bug "yang terdengar lebih sepele". ".
Gunakan CACAT.
Cobalah untuk tidak menggunakan istilah BUG. Konyol, tidak relevan, historis, dan remeh.
Dari Daftar Istilah Standar IEEE untuk Terminologi Rekayasa Perangkat Lunak, yang dikutip dalam Badan Rekayasa Perangkat Lunak Pengetahuan KA untuk Pengujian Perangkat Lunak dan Kualitas Perangkat Lunak:
bug. Lihat: kesalahan; kesalahan.
kesalahan. (1) Perbedaan antara nilai atau kondisi yang dihitung, diamati, atau diukur dan nilai atau kondisi yang benar, ditentukan, atau secara teoritis benar. Misalnya, perbedaan 30 meter antara hasil yang dihitung dan hasil yang benar. (2) Langkah, proses, atau definisi data yang salah. Misalnya, instruksi yang salah dalam program komputer. (3) Hasil yang salah. Misalnya, hasil perhitungan 12 ketika hasil yang benar adalah 10. (4) Tindakan manusia yang menghasilkan hasil yang salah. Misalnya, tindakan yang tidak benar dari programmer atau operator. Catatan: Walaupun keempat definisi tersebut umumnya digunakan, satu perbedaan memberikan definisi 1 pada kata "kesalahan," definisi 2 untuk kata "kesalahan," definisi 3 untuk kata "kegagalan," dan definisi 4 untuk kata "kesalahan." Lihat a2so: kesalahan dinamis; kesalahan fatal; kesalahan adat; kesalahan semantik; kesalahan sintaksis; kesalahan statis; kesalahan sementara.
kegagalan. Ketidakmampuan sistem atau komponen untuk melakukan fungsi yang diperlukan dalam persyaratan kinerja yang ditentukan. Catatan: Disiplin toleransi kesalahan membedakan antara tindakan manusia (kesalahan), manifestasinya (kesalahan perangkat keras atau perangkat lunak), hasil dari kesalahan (kegagalan), dan jumlah yang hasilnya salah (kesalahan). Lihat juga: crash; kegagalan bergantung; pengecualian; mode gagal; tingkat kegagalan; kegagalan berat; kegagalan baru jadi; kegagalan independen; kegagalan acak; kegagalan lunak; kegagalan macet.
kesalahan. (1) Kerusakan pada perangkat atau komponen perangkat keras; misalnya, korsleting atau kabel putus. (2) Langkah, proses, atau definisi data yang salah dalam program komputer. Catatan: Definisi ini digunakan terutama oleh disiplin toleransi kesalahan. Dalam penggunaan umum, istilah "kesalahan" dan "bug" digunakan untuk mengekspresikan arti ini. Lihat juga: kesalahan data sensitif; kesalahan sensitif program; kesalahan yang setara; masking kesalahan; kesalahan intermiten.
Saya pikir definisi kegagalan adalah yang paling relevan. Semuanya dimulai dengan kesalahan, apakah itu dalam persyaratan, desain, implementasi, atau uji kasus / prosedur. Jika kesalahan ini dimanifestasikan dalam perangkat lunak, itu menjadi kesalahan. Kegagalan disebabkan oleh adanya satu atau lebih kesalahan dalam perangkat lunak.
Saya tidak tertarik pada definisi formal kesalahan. Saya sangat suka definisi yang diberikan oleh dukeofgaming dalam jawabannya , namun, yang dalam jawaban ini adalah definisi standar kesalahan IEEE.
Jawaban Dan McGrath benar.
Mungkin sebuah contoh akan membuatnya lebih jelas.
Contoh: Klien ingin formulir web dapat menyimpan dan menutup jendela.
Skenario # 1: Formulir web memiliki tombol simpan, dan tombol tutup lainnya. Hasil: Cacat, karena klien ingin tombol 1 untuk menyimpan dan menutup jendela. Pengembang disalahpahami dan dibuat secara terpisah. Karena kedua tombol menjalankan persyaratannya, itu bukan bug, tetapi cacat karena tidak memenuhi persyaratan klien.
Skenario # 2: Formulir web memiliki tombol simpan & tutup, tetapi hanya menyimpan tetapi tidak menutup. Hasil: Bug. Karena tombolnya tidak berfungsi seperti yang disyaratkan / diharapkan. Pengembang tahu itu seharusnya menghasilkan hasil itu tetapi pada akhirnya tidak. (mungkin kesalahan pengkodean)
Tidak yakin apakah ini membuatnya lebih jelas.
p / s: dari sudut pandang pengembang (saya dulu), baik cacat maupun bug sama pentingnya. Kami masih akan memperbaikinya.
Kami bahkan menemukan anomali aneh, yang kami kategorikan dalam bug dan kami terus berusaha mencari tahu apa penyebabnya dan bagaimana cara memperbaikinya. Mengoreksi bug tidak membuatnya sepele dibandingkan dengan cacat.
Perbedaannya adalah bahwa istilah "bug" terdengar ajaib. Seolah-olah suatu program dapat secara acak memiliki bug di dalamnya setelah Anda selesai pemrograman. Jika memiliki bug acak maka itu berarti Anda tidak sesuai dengan spesifikasi dan program Anda salah.
Cacat berarti kesalahan ketika program tidak sesuai dengan spesifikasi. Ini lebih parah dan pada dasarnya mengatakan, setiap kesalahan adalah masalah besar dengan program ini dan ini berarti bahwa program tersebut tidak cocok untuk dirilis.
Perbedaannya terletak pada sikap para programmer yang menggunakan istilah tersebut. Ada jutaan program yang dirilis dengan bug dan orang-orang baik-baik saja dengan itu karena mereka menerima untuk beberapa alasan bahwa bug itu ajaib dan acak dan bahwa setiap program mengandung setidaknya satu bug. Namun, seorang programmer yang menggunakan istilah "cacat" mungkin menjadi tidak nyaman dengan merilis program dengan cacat karena istilah tersebut menyiratkan tingkat keparahan yang lebih besar.
Implikasi dari lebih memilih satu istilah daripada yang lain mempengaruhi kita setiap hari.
Menurut Dependability: konsep dan terminologi dasar :
Kegagalan sistem terjadi ketika layanan yang diberikan menyimpang dari memenuhi fungsi sistem, yang terakhir menjadi tujuan sistem. Sebuah kesalahan adalah bagian dari sistem negara yang bertanggung jawab untuk menyebabkan kegagalan berikutnya: kesalahan yang mempengaruhi layanan merupakan indikasi bahwa terjadi kegagalan atau telah terjadi. Penyebab kesalahan yang diputuskan atau dihipotesiskan adalah kesalahan .
Saya mengerti cacat hanya sebagai nama lain untuk kesalahan.
Bug membingungkan dan dapat mewakili kesalahan atau kegagalan tergantung pada konteksnya.
Perhatikan bahwa tidak ada spesifikasi yang disebutkan: bahkan spesifikasi dapat salah.
Ini adalah salah satu yang saya lakukan sebelumnya untuk majikan saya Q-LEAP berdasarkan kosa kata ISTQB dan saya juga memeriksa kosa kata IEEE. Nikmati.
Bug dan Cacat? Hal yang sama meskipun orang dapat memiliki diskusi tanpa akhir tentang ini. Kami benar-benar memiliki hal lain yang perlu dikhawatirkan, kehidupan sudah cukup rumit, dll.
Contoh tentang bagaimana istilah tersebut digunakan di alam bebas, dari "Bagaimana Google Menguji Perangkat Lunak" hal. 113. Buka artikel "Perangkat Lunak IEEE" dan digunakan dengan cara yang sama. Memang, seseorang jarang menemukan kata "cacat" dalam kehidupan nyata.
Life of a Bug
Bug dan laporan bug adalah satu-satunya artefak yang dipahami oleh setiap penguji. Menemukan bug, memperbaiki bug, memperbaiki bug, dan memperbaiki bug adalah detak jantung dan alur kerja untuk kualitas perangkat lunak. Ini adalah bagian dari pengujian yang paling konvensional di Google, tetapi masih ada beberapa penyimpangan yang menarik dari norma. Untuk bagian ini, kami mengabaikan bug yang diajukan untuk melacak item kerja dan menggunakan istilah tersebut untuk mengidentifikasi kode rusak yang sebenarnya. Dengan demikian, bug sering mewakili alur kerja sehari-hari dan sehari-hari untuk tim teknik.
Kutu lahir. Bug ditemukan dan diajukan oleh semua orang di Google. Manajer Produk mengajukan bug ketika mereka menemukan masalah di build awal yang berbeda dari spesifikasi / pemikiran mereka. Pengembang file bug ketika mereka menyadari mereka secara tidak sengaja memeriksa dalam suatu masalah, atau menemukan masalah di tempat lain dalam basis kode, atau saat dogfooding produk Google. Bug juga datang dari lapangan, dari penguji berbasis sumber daya, pengujian vendor eksternal, dan diajukan oleh Manajer Komunitas yang memantau Grup Google khusus produk. Banyak versi internal aplikasi juga memiliki cara satu klik cepat untuk mengajukan bug, seperti Google maps. Dan, kadang-kadang, program perangkat lunak membuat bug melalui API.
Di luar bug / tugas / tiket / cacat / masalah / contoh sistem penelusuran apa pun, kata-kata ini tidak memiliki makna yang pasti dan karenanya membahas perbedaan di antara mereka tidak ada artinya. Ketika Anda menyelesaikan alur kerja Anda, Anda harus menyelesaikan terminologi dan memberikan deskripsi.
Di lingkungan saya saat ini "cacat" adalah barang apa pun di Jira. Sepertinya Jira sendiri menggunakan istilah "masalah". Kami mungkin telah mewarisinya dari beberapa sistem sebelumnya. "Bug" adalah jenis masalah ketika sesuatu tidak berfungsi seperti yang diharapkan dan dijelaskan dalam dokumentasi. "Permintaan fitur" ketika sesuatu berfungsi seperti yang diharapkan tetapi perbaikan diinginkan (itu bisa jelas dan penting, tetapi jika perilaku saat ini dijelaskan itu masih permintaan fitur). Ada lebih banyak jenis tetapi 2 digunakan oleh orang-orang di luar tim pengembangan untuk meminta sesuatu darinya.
Jika Anda memilih nama untuk jenis masalah, "bug" dan "cacat" terdengar mirip dengan saya. Perbedaan di antara mereka adalah gaya. Karena bahasa Inggris bukan bahasa ibu saya, saya tidak dapat benar-benar melihatnya dan tidak yakin apakah yang saya lihat benar.