Cara terbaik untuk menguji kasus sederhana dalam gim

9

Ketika merancang dan memainkan-menguji permainan baru, sering kali, orang-orang yang mencoba fungsionalitas terbiasa dengan berbagai hal, dan tidak lagi mencoba "cara bodoh" lagi. Jadi, jika pengembangan merusak sesuatu, itu mungkin fitur yang hanya akan mengganggu pengguna baru. Apa saja cara terbaik untuk memastikan bahwa gim Anda memiliki "kasus bodoh" yang diuji saat akhirnya dirilis, atau setelah pembaruan besar? Metodologi, bantuan perangkat lunak, bahkan mungkin situs di mana orang akan bermain-tes untuk Anda, dan lain-lain.

eruciform
sumber

Jawaban:

9

Beberapa hal yang akan saya katakan penting:

Mendorong Pengujian Unit Programmer

Ini akan memastikan bahwa bug bodoh tertentu, jika ada tes unit untuk mereka, tidak akan terulang, karena tes unit akan gagal jika mereka melakukannya. Ini membutuhkan perubahan dalam metodologi pemrograman, tetapi menurut saya itu sangat berharga.

Mengotomatiskan Pengujian Apapun Yang Anda Bisa

Selain pengujian unit, buat satu set fungsi otomatis dan tes penerimaan yang dijalankan pada setiap build untuk memastikan build tertentu baik. Jika Anda memiliki kontrol skrip dan game Anda umumnya konsisten, Anda dapat menguji banyak bug secara otomatis.

Buat Rencana Tes Multi Level

Pastikan penguji Anda memiliki rencana pengujian yang menguji bug paling penting. Ini harus multi-level:

  • Uji Asap: Tes bahwa permainan tidak crash dalam kasus yang paling umum.
  • Tes Reguler: Tes kasus yang lebih jarang.
  • Soak Test: Berlarilah sedalam mungkin, mundur sebanyak mungkin bug umum. Tes juga bahwa permainan dapat bertahan untuk waktu yang sangat lama (hari) tanpa menabrak

Buat rencana tes ini dan ikuti setiap pembangunan.

Jeff
sumber
11

Semacam pendekatan cakupan kode untuk menguji kasus dapat dilakukan menggunakan flag sederhana yang tersandung begitu blok kode telah dieksekusi dalam game. Menampilkan bendera mana yang telah tersandung dan tidak terhapuskan pada layar dapat memungkinkan penguji untuk mengetahui kasus mana yang telah ditutup dan yang belum.

Sederhana seperti itu, itu masih efektif selama bendera memiliki nama yang bermakna sehingga penguji dapat mengetahui apa yang seharusnya dilakukan.

Teknik ini dikreditkan ke Matthew Jack yang mengimplementasikannya dalam Crysis.

David Young
sumber
3
konsep yang menarik, +1
falstro
Ini sebenarnya bisa otomatis. "Jalankan game dengan -debugFlags, ambil output, dan pastikan kita menekan xjumlah bendera." +1
ashes999
3

Beberapa jawaban bagus di sini di sisi pemrograman. Saya akan menambahkan satu yang lebih berorientasi pada desain.

Mintalah perancang sistem Anda menulis rencana uji kasus tepi untuk penguji

Jika mereka tahu apa yang mereka lakukan, orang di belakang mendesain sistem, atau membuat skrip urutan dalam game, sangat mungkin mengetahui kasus tepi dari sistem itu, dan di mana itu bisa rusak. Mereka juga harus memiliki gagasan tentang di mana sistem berinteraksi dengan orang lain. Meminta mereka menulis rencana pengujian, atau berdiskusi dengan penguji di mana hal-hal yang mungkin salah dapat menghemat waktu semua orang.

wkerslake
sumber
1

Anda harus menyelidiki apa yang disebut Pengujian Monyet. Itu dapat menangkap banyak bug dari jenis ini:

https://secure.wikimedia.org/wikipedia/en/wiki/Monkey_test

Anda juga perlu mengatur pengujian pengalaman pengguna dengan "penguji Kleenex", penguji yang melihat permainan Anda untuk pertama kalinya dan bahwa Anda tidak akan pernah menggunakannya lagi. Agak mahal dan rumit untuk diatur, tetapi sepadan dengan usaha. Jika ya, gambarkan setiap tes dengan 3 kamera: satu di layar, satu di kontrol dan satu di wajah penguji untuk mendeteksi frustrasi.

Stéphane Bura
sumber
1

Pertanyaan yang bagus, setiap respons di utas ini adalah respons yang sangat baik. Satu hal untuk ditambahkan:

Dalam pengalaman saya (30 tahun pengembangan perangkat lunak): aplikasi dan game lebih dapat diandalkan jika setidaknya satu anggota kelompok uji adalah penguji gorila yang terampil , ahli dalam pengujian ad-hoc, menyalahgunakan aplikasi dan sengaja menggunakan permainan dengan cara yang salah untuk menemukan bug dari jenis yang dijelaskan oleh poster aslinya. Penguji gorila memiliki keterampilan yang tidak biasa - ketika Anda menemukan yang baik, pertahankan mereka di tim Anda.

Untuk contoh pengujian gorila yang efektif, lihat: www.youtube.com/watch?v=8C-e96m4730;)

Singkatnya tanggapan di utas ini: strategi kualitas perangkat lunak yang efektif adalah multi-faceted , menggabungkan beberapa pendekatan untuk mencapai tingkat kepercayaan yang tinggi pada kualitas fungsional dan keandalan permainan Anda.

cheeeseburger
sumber
0

Trik menarik yang saya dengar dari seorang teman untuk menguji grafik; selama proses yang diketahui-baik melalui statistik kinerja catatan level dari GPU secara berkala (polys on screen misalnya). Anda kemudian dapat memutar ulang rute itu dan jika angka berubah di luar toleransi yang diberikan itu mungkin berarti ada sesuatu yang tidak ditampilkan dengan benar lagi.

pembuat kode
sumber
0

Satu hal mudah dan sederhana yang banyak membantu, terutama dengan pengujian stres, dan pengujian jaringan. Memungkinkan AI Anda untuk bermain melawan AI lainnya. Jika Anda dapat membiarkan permainan Anda sendiri bermain sendiri, atau sekelompok kecil AI melalui jaringan selama akhir pekan Anda dapat belajar banyak.

Tentu saja mencatat semuanya.

Kimau
sumber