Definisi bug Perangkat Lunak. Blizzard Entertainment menegaskan bahwa "bug" saya bukan bug sama sekali. Apakah mereka benar [Tutup]

18

Menurut Wikipepdia,

Bug perangkat lunak adalah istilah umum yang digunakan untuk menggambarkan kesalahan, cacat, kesalahan, kegagalan, atau kesalahan dalam program atau sistem komputer yang menghasilkan hasil yang salah atau tidak terduga, atau menyebabkannya berperilaku dengan cara yang tidak disengaja.

Baru-baru ini saya menemukan "bug" di StarCraft 2 yang menghasilkan hasil yang tidak terduga: http://eu.battle.net/sc2/en/forum/topic/2868627470

Masalahnya adalah bahwa jika saya menjaga StarCraft 2 diminimalkan untuk waktu yang lama, permainan tidak memutuskan atau menghasilkan segala bentuk batas waktu. Namun tidak terputus setelah pertempuran pertama dan kadang-kadang juga kehilangan data game (statistik pertandingan).

Sayangnya, menurut Blizzard:

Gim ini tidak dirancang untuk diminimalkan selama periode waktu yang lama. (Blizzard) tidak dapat menganggap perilaku seperti itu salah karena StarCraft II tidak dimaksudkan untuk diminimalkan selama berjam-jam.

Jadi, apakah "bug" saya benar-benar bug?

TeleShoTTgun
sumber
31
Tentu, ini bug, tetapi mereka tidak akan memperbaikinya karena mereka tidak menganggap situasi ini sebagai yang didukung (yaitu karena itu tidak dirancang untuk bekerja dengan cara ini, jika Anda mencoba menggunakannya dengan cara itu, Anda ada pada Anda sendiri). Dan tentu saja, ada solusi sederhana - jangan lakukan itu.
Oded
17
Sebagai catatan, perwakilan Blizzard menangani situasi dengan sangat buruk. Mereka seharusnya mengatakan, "Terima kasih telah melaporkan bug ini. Kami akan memasukkannya ke sistem kami dan memperbaikinya segera setelah pengembang kami menganggapnya sebagai prioritas." Asumsi implisit adalah bahwa itu tidak akan pernah menjadi prioritas. Sangat buruk ditangani menurut saya.
riwalk
29
@ Stargazer712 Blizzard menangani ini dengan tepat. Mereka seharusnya tidak menetapkan harapan bahwa mereka akan memperbaiki bug yang tidak ingin mereka perbaiki.
MattBelanger
3
Agar adil bagi TeleShoTTgun, saya pikir Blizzard setidaknya harus mendefinisikan apa yang dianggap sebagai "periode waktu yang panjang". Saya mungkin meminimalkan permainan untuk pergi ke kamar mandi selama beberapa menit. Saya tidak berpikir itu waktu yang sangat lama tetapi apakah Blizzard? Saya akan menganggap> 30 menit sebagai "periode waktu yang panjang" dalam konteks ini, tetapi saya tidak tahu apakah Blizzard akan setuju.
FrustratedWithFormsDesigner
3
Tindakan Old Vaudeville - "Dokter, Dokter, sakit ketika saya melakukan ini" - "Jangan lakukan itu!"
Cyclops

Jawaban:

58

Bagi tim perangkat lunak, bug adalah masalah perangkat lunak yang perlu diperbaiki. Tidak semua masalah perangkat lunak perlu diperbaiki.

Memperbarui perangkat lunak itu mahal. Blizzard memberi tahu Anda bahwa masalah Anda adalah kasus tepi. Dengan kata lain, masalah tepi kasus yang Anda temukan belum tentu merupakan sesuatu yang mereka uji atau perhatikan. Memperbaiki masalah akan membantu Anda, tetapi kemungkinan besar itu tidak akan membantu banyak orang lain. Namun, biaya untuk memperbaiki bug bisa jadi tinggi. Sebaliknya, mereka dapat menginvestasikan sumber daya mereka ke fitur-fitur baru atau bahkan menyelesaikan Diablo III.

P.Brian.Mackey
sumber
3
Saya pikir Anda telah menangkap definisi aktual yang digunakan dalam praktik. Saya akan menjawab bahwa bug adalah perilaku yang berbeda dari spesifikasi seperti yang dimiliki poster lainnya. Tetapi kenyataannya adalah bahwa jika perilaku yang salah berada dalam definisi spesifikasi tetapi memiliki dampak signifikan pada bisnis, perusahaan akan memperbaikinya. Dan seperti yang Anda katakan, bahkan jika spec mengatakan itu harus bekerja dan tidak, jika ROI rendah, perusahaan yang bersangkutan tidak akan memperbaikinya. Jawaban yang bagus
Matt Ryan
2
@MattRyan: Dan di dunia nyata (yang pernah saya lihat), jika spesifikasi mengakibatkan perilaku yang salah yang disebut Pengguna Bisnis sebagai "bug", tim pengembangan biasanya mengklasifikasi ulang solusi secara resmi sebagai "permintaan perubahan", bukan sebagai "perbaikan bug". ;)
FrustratedWithFormsDesigner
3
Dengan kata lain, "bug" atau "cacat" mewakili persyaratan yang tidak diterapkan dengan benar. Dalam hal ini, meninggalkan permainan diminimalkan bukanlah keharusan.
Ray
22

Jenis ini mengingatkan saya pada kucing di microwave , khususnya kasus Ny. Smith pada tahun 1983.

Intinya, Anda mengharapkan produk bekerja sedemikian rupa. Sebagian besar karena sejumlah produk serupa bekerja seperti itu, yaitu jika Anda meminimalkannya selama berjam-jam dan kemudian membukanya, mereka bekerja (walaupun yang sebaliknya tidak biasa seperti yang Anda bayangkan).

Ny. Smith tahu dari pengalamannya, bahwa mengeringkan kucing-kucingnya di oven tidak akan membahayakan mereka (tentu saja dengan sedikit hati-hati). Lebih tepatnya dari pengalaman yang dia miliki dengan semua oven yang dia coba. Dia kemudian berasumsi bahwa itu akan sama dengan oven microwave yang diberikan padanya. Anggapan ini salah. Gelombang mikro tidak dirancang untuk mengeringkan kucing. Tidak ada oven konvensional. Mereka kebetulan tidak membunuh kucing dalam proses sebagai efek samping dari proses fisik yang mereka lakukan untuk menghasilkan panas.

Sekarang sebagai penghasil gelombang mikro, Anda bisa menempatkan koil pemanas dan sejumlah sensor ke dalam microwave. Yang terakhir akan menentukan, apakah konten saat ini adalah kucing dan menggunakan gelung sebagai pengganti gelombang mikro.

Dengan cara yang sama, bahwa seseorang dapat menghasilkan microwave yang cocok untuk mengeringkan kucing, Blizzard dapat membuat versi SC2 yang cocok untuk tetap dalam keadaan diminimalkan untuk waktu yang lama.

Secara pribadi, saya akan bersedia membayar lebih banyak uang untuk microwave yang mengaktifkan pengeringan kucing hanya untuk bersenang-senang (dengan asumsi ada logo kesesuaian pengeringan kucing yang besar di depan yang bisa saya tunjukkan dengan bangga). Tapi saya tidak akan peduli dengan game yang bisa diminimalkan berjam-jam.

SC2 dirancang untuk memenuhi persyaratan tertentu. Harapan Anda bukan bagian dari itu. Anda bebas mengukur SC2 sehubungan dengan harapan Anda. Tetapi apakah Blizzard memasukkan mereka semua atau tidak dalam cakupan persyaratan mereka pada akhirnya adalah pilihan mereka.

Yang benar-benar bisa Anda perdebatkan adalah, bahwa itu adalah kegagalan desain. Akal sehat menyatakan bahwa kecuali sebagian besar pengguna bingung oleh desain atau tidak senang dengan itu, itu cukup baik. Saya yakin jika cukup banyak pengguna yang menyatakan bahwa mereka berbagi harapan Anda, Blizzard akan menghasilkan dan memasukkannya ke dalam desain. Ini akan membuat masalah Anda sebagai bug aktual dan Blizzard akan memperbaikinya.

back2dos
sumber
Jawaban yang bagus, metafora yang mengerikan. Saya SANGAT bahagia bahwa seseorang sebenarnya tidak cukup bodoh untuk melakukan itu!
Drew
11

Saya pikir ini adalah kasus perangkat lunak yang tidak digunakan sebagaimana ditentukan oleh spesifikasi. Mereka bilang

Gim ini tidak dirancang untuk diminimalkan selama periode waktu yang lama.

Yang berarti bahwa mereka memiliki beberapa definisi di suatu tempat tentang apa yang dianggap sebagai "periode waktu yang panjang". Jika Anda meminimalkan program selama lebih dari "periode waktu yang lama", itu melampaui spesifikasi mereka dan melampaui apa yang mereka uji (dengan asumsi mereka secara resmi menguji ini) dan mereka tidak menjamin apa yang akan terjadi. Tentu saja, alangkah baiknya jika manual di suatu tempat mengatakan "kami hanya menguji program ini untuk diminimalkan untuk jangka waktu tidak melebihi 10 menit. Minimalkan lebih lama dari ini dengan risiko Anda sendiri!".

Jadi tidak, saya tidak berpikir ini benar-benar bug. Di kantor saya, ini akan disebut "masalah pelatihan pengguna" (yang saya katakan adalah bentuk masalah komunikasi , karena dalam kasus ini karena tidak ada periode maksimum untuk meminimalkan waktu dikomunikasikan kepada pengguna) karena pengguna tidak menggunakan program dengan benar. Bukan berarti itu banyak membantu Blizzard, kecuali mereka memasukkannya ke dalam manual ...

FrustratedWithFormsDesigner
sumber
3
Untuk sistem mission-critical, kami memiliki persyaratan yang mengatakan "sistem ini harus tetap operasional selama n jam" dan kami menguji dan mendokumentasikan secara eksternal bahwa sistem beroperasi selama n jam. Kami mungkin juga secara internal mendokumentasikan bahwa kami melakukan tes selama m> n jam dan sistem masih berfungsi. Untuk gim, yang bukan misi penting, Anda tidak perlu ini ditangkap secara formal, karena kebanyakan orang mungkin tidak akan pernah mengalami masalah ini.
Thomas Owens
8

Bukan bug. Bug adalah perilaku yang tidak sesuai dengan spesifikasi. Jika spec mengatakan bahwa use case tidak mendukung perilaku maka perilaku apa pun - yang dianggap valid atau tidak - dalam use case adalah 'oleh desain'.

Dalam skenario ini, game yang bekerja sama sekali dapat dianggap sebagai perilaku yang tidak terdefinisi.

Steven Evers
sumber
Ini adalah penghindaran besar-besaran. Saya membenci itu setiap kali saya mendengarnya. Karena itu hanya keluar ketika "spec" tidak lengkap.
Sean McMillan
2
@SeanMcMillan: Tanpa hal-hal seperti ini, fitur creep akan membunuh kita semua. Either way, itu bukan menghindar, karena ini adalah skenario yang secara khusus dinyatakan tidak didukung.
Steven Evers
1
@SnOrfus: Telah ditunjukkan. Setelah fakta. Apakah Anda benar-benar percaya bahwa ada spesifikasi yang menyatakan secara eksplisit bahwa "Meminimalkan aplikasi selama lebih dari x menit tidak didukung"? Jelas, ini adalah bug.
ThomasX
Masalahnya adalah tidak ada spesifikasi yang cukup lengkap untuk menggambarkan perangkat lunak yang sebenarnya. Sasaran "cocok dengan spek" tidak menghasilkan perangkat lunak yang baik, itu hanya alasan bahwa itu "bukan salahku" ketika sesuatu dalam perangkat lunak itu buruk. Mungkin itu tidak layak diperbaiki, tetapi "spek" bukan alasan mengapa.
Sean McMillan
@ThomasX Menimbang bahwa proyek saya aktif, memiliki spesifikasi 200-400 halaman, dan memang memiliki batas yang ditentukan untuk runtime. Ya saya lakukan.
Steven Evers
5

Jika saya adalah pemimpin tim pengembangan pada proyek itu, saya akan menyebutnya bug tetapi bug kecil karena itu jauh di luar ekspektasi operasi normal dari perangkat lunak. Jika itu akan dikerjakan sama sekali saya mungkin akan menugaskannya ke programmer junior atau menyewa baru lebih sebagai latihan pembelajaran bagi mereka daripada apa pun.

Merupakan ide yang bagus untuk melacak bug minor ini karena mereka dapat mengindikasikan potensi masalah yang jauh jangkauannya. Misalnya, data save bug yang Anda temui. Tampaknya kecil karena bagaimana hal itu terjadi tetapi mungkin ada kasus lain di mana data hilang. Dengan menggunakan sistem pelaporan bug Anda dapat menemukan semua kasus di mana masalah serupa muncul dan melihat apakah ada elemen umum. Dalam sistem yang kompleks, mendokumentasikan hal semacam ini dapat membantu Anda menemukan bug yang lebih serius dan lebih halus.

jfrankcarr
sumber
5

Saya akan tidak setuju dengan kebanyakan orang di sini.

Sebagai mantan pemain Starcraft (asli), saya dapat membuktikan bahwa ini adalah (atau setidaknya,) perilaku yang sangat umum. Pengguna meninggalkan game pada 24/7 untuk memegang posisi mereka di chat room, dan bergabung dengan game ketika mereka kembali lagi. Saya yakin Battle.net yang diperbarui memiliki beberapa peningkatan yang dapat mengurangi kebutuhan akan hal ini, tetapi masih sering terjadi.

Akan jauh lebih masuk akal bahwa itu tidak memungkinkan Anda bergabung dengan permainan tanpa menghubungkan kembali jika sesi Anda, entah bagaimana, bentuk atau bentuk, kedaluwarsa. Fakta bahwa ini memungkinkan Anda untuk bergabung dengan game setelah sesi Anda berakhir adalah bug bagi saya. Hal yang mengganggu di sini, dan sesuatu yang belum benar-benar diangkat, adalah bahwa pengembang perlu memahami pengguna mereka. Ini mungkin merupakan casing tepi, tetapi casing tepi untuk gamer yang sangat berdedikasi yang harus mereka atur untuk menyenangkan.

Secara teknis, mereka dapat berpendapat bahwa itu adalah desain, dan itu bukan sesuatu yang ingin mereka perbaiki. Ini masih merupakan kesalahan di mata saya, yang pada akhirnya terserah mereka apakah mereka mengklasifikasikannya sebagai bug atau tidak. Itu tidak berarti para pemain setuju.

Bagaimanapun, saya pikir saya akan mengajukan jawaban yang sedikit berbeda dari apa yang telah diposting sejauh ini.

Adrian Schneider
sumber
1
Saya sebenarnya akan meminimalkan layar untuk jangka waktu yang lama jika saya benar-benar memainkan Starcraft. Saya pikir pertanyaan apakah bug itu tidak relevan, tetapi sepertinya sesuatu yang harus ditangani dan itu benar-benar akan menggangguku jika tidak.
psr
Setuju - ini harus digolongkan sebagai bug, semua itu merupakan prioritas yang sangat rendah. Sementara mereka mungkin mengatakan bahwa "meninggalkan permainan diminimalkan untuk jangka waktu yang lama tidak didukung", apa sebenarnya yang dimaksud dengan periode waktu yang lama? Bagaimana mereka tahu masalah yang sama tidak akan terjadi jika diminimalkan selama 10 menit? Paling tidak, batas waktu permainan harus dirancang dan diterapkan yang memutus hubungan pengguna jika dibiarkan diminimalkan selama lebih dari x menit jika mereka tidak bermaksud mendukung tindakan tersebut.
Gavin Coates
4

Bug dapat secara wajar didefinisikan sebagai "penyimpangan dari perilaku perangkat lunak yang dimaksudkan".

Jelas mereka (dan itu adalah perangkat lunak mereka sehingga mereka bisa menentukan bagaimana seharusnya berperilaku) tidak pernah bermaksud perangkat lunak untuk menangani skenario ini sehingga tidak memenuhi definisi bug ini.

Namun apa yang akan saya katakan adalah, paling tidak, suboptimal adalah cara penanganan kondisi ini.

Sampah masuk, buang keluar (yaitu pengguna melakukan sesuatu yang bodoh atau buruk atau tidak terduga dan sesuatu yang buruk terjadi sebagai akibatnya) telah dianggap sebagai standar perilaku yang buruk. Saya akan mengatakan setidaknya harus lebih elegan dalam menangani kondisi ini.

Jadi bukan hanya bug, tetapi penanganan tepi case yang buruk.

Yang mengatakan jika saya adalah mereka, itu bukan sesuatu yang saya akan pertimbangkan untuk diperbaiki (terlalu mahal untuk keuntungan yang terlalu sedikit), meskipun saya mungkin menyebutkannya kepada tim untuk referensi di masa depan bahwa itu adalah sesuatu yang mungkin mereka tangani dengan lebih baik.

Jon Hopkins
sumber
1

Definisi bug tidak ada hubungannya dengan perilaku perangkat lunak. Bug ditentukan berdasarkan apakah perilaku perangkat lunak cocok dengan niatnya. Dan siapa yang mengatakan apa tujuannya? (Karena saya sedang berurusan dengan programmer di sini, saya akan mengklarifikasi kalimat pertama - tidak ada perilaku perangkat lunak yang mungkin, dalam dan dari dirinya sendiri, merupakan bug).

Ingatlah bahwa umumnya bug adalah sesuatu yang harus diperbaiki oleh pengembang perangkat lunak. Jadi definisi bug didasarkan pada apa yang ingin mereka perbaiki. Misalnya, "bekerja dengan benar lebih dari 50% dari waktu adalah fitur yang kami rencanakan untuk rilis di versi mendatang". Apa pun dapat didefinisikan sebagai bukan bug dengan berpura-pura perangkat lunak tidak pernah dimaksudkan untuk mengatasi masalah tertentu. Jadi, dalam praktiknya, apa yang merupakan bug itu murni pertimbangan politis.

(Sebagai tambahan, ini memotong kedua cara. Untuk klien yang tidak harus membayar untuk perbaikan bug tetapi harus membayar untuk pengembangan baru "itu tidak melakukan beberapa fitur yang saya hanya memikirkan tetapi yang sekarang saya miliki memutuskan adalah 100% tersirat oleh hal-hal yang saya sebutkan "jelas bug.)

psr
sumber
Bukankah OpenBSD yang menyatakan sesuatu yang tidak didokumentasikan dengan benar sebagai bug, tidak peduli apa itu?
Canageek
1

Saya tidak akan mempertimbangkan untuk tidak memutuskan bug. Ini hanya bug jika itu seharusnya (dengan desain, niat) lepaskan dan tidak. Saya akan menelepon apa yang Anda kirimkan permintaan fitur.

Konon, kehilangan data setelah pertempuran - itu mungkin bug. Saya tidak tahu banyak tentang Starcraft, tapi saya kira itu bukan karena desain.

GrandmasterB
sumber