Pengembangan analisis kode statis dan perjuangan untuk kualitas proyek open-source selama lebih dari enam tahun tidak bisa tidak mempengaruhi interaksi saya dengan program setelah jam. Sayangnya, saya terus-menerus menemukan berbagai bug dan, bahkan lebih sayangnya, hampir tidak mungkin untuk mempengaruhi ini. Saya memutuskan untuk mengumpulkan beberapa cerita tentang bug menarik dan perbaikan atau abaikan. Saya menyajikan kepada Anda format alternatif untuk artikel tentang menemukan kesalahan dalam program yang biasanya mengisi blog PVS-Studio.
Pendahuluan
Dalam kehidupan sehari-hari, kami sudah lebih sering menggunakan situs web dan aplikasi seluler daripada aplikasi komputer. Ada beberapa proyek open source di bidang ini. Sebagian besar proyek adalah produk dari perusahaan besar dengan beberapa jalur dukungan. Melaporkan bug melalui baris dukungan pertama adalah aktivitas yang hampir tidak berguna. Masalahnya sangat akut dengan aplikasi perbankan. Bagaimana dengan situs? Pemilik situs seringkali tidak memiliki tim pengembangan sama sekali. Dan jika suatu layanan disediakan melalui situs, maka komunikasi dengan para manajer dari layanan ini menjadi lebih buruk daripada dengan dukungan lini pertama. Kisah yang paling menarik adalah di bawah ini. Saya harap mereka membantu perusahaan memperhatikan kualitas produk perangkat lunak mereka.
Bug di situs
Saluran TV 2x2
Mungkin
2x2 adalah satu-satunya saluran TV yang saya tonton. Saya belum menghubungkan televisi apa pun, dan saya sangat senang ketika siaran langsung muncul di situs. Memiliki TV dengan akses Internet, itu adalah solusi ideal bagi saya untuk menonton saluran TV online. Tetapi pada kenyataannya itu ternyata jauh lebih rumit.
Hidup melalui browser di TV tidak berfungsi. Karena melaporkan bug ke pengembang adalah bagian dari karier saya, saya segera menemukan kontak di situs web resmi dan mencoba melaporkan masalah. Kenapa kamu mencoba? Selama 2 bulan tidak mungkin menerima jawaban dari dua alamat surat. Dan grup VK tidak menjawab apa pun yang masuk akal (pemasar, mempromosikan grup di jejaring sosial, jelas tidak menurut saya dengan situs yang tidak berfungsi).
Tapi saya tidak putus asa. Masalahnya jelas di siaran dan saya bisa melacaknya. Dia berasal dari server Rutube. Butuh sekitar satu bulan untuk mencoba menghubungi spesialis mereka. Komunikasi paling sukses terjadi dengan administrator grup Rutube di VK. Saya diberi kontak dengan administrator sistem. Rekannya segera menanggapi surat itu, dan kami sepakat untuk terhubung untuk mencatat log. Ternyata server tidak dikonfigurasi untuk klien yang terhubung (TV dengan Tizen).
Butuh 2 jam untuk menyelesaikan masalah. Terima kasih kepada Alexei Lebedev dari Rutube dan admin grup di VK, yang merupakan satu-satunya yang secara bertanggung jawab bereaksi terhadap pekerjaan mereka di seluruh "kontak" rantai ini.
Restoran MaMa Mia
Di situs web
MaMa Mia , Anda tidak dapat membayar pesanan secara online. Setidaknya itu tidak berhasil untukku. Dan alasannya, ternyata kemudian, adalah kualitas kode yang buruk. Tapi mari kita selesaikan.
Ketika keranjang itu sepenuhnya terbentuk, tombol "Tempatkan pesanan" tidak menunjukkan tanda-tanda kehidupan. Dan kemudian dalam surat saya menemukan ini:
Setiap klik pada tombol "idle" membentuk orde baru. Seperti yang Anda lihat, saya tidak menyangkal diri saya dengan senang hati menguji bug ini: D
Tidak ada formulir umpan balik di situs dan kontak lain selain telepon. Tentu saja ada manajer yang jauh dari masalah seperti itu. Dengan kelompok VK restoran ini situasi yang sama. Saya tidak bisa mendapatkan kontak yang kurang lebih relevan.
Bahkan, ini adalah masalah serius bagi bisnis, ketika beberapa kekurangan, terutama dengan keuangan (saya ingin membayar pesanan, tetapi tidak bisa), tetap tidak terlihat oleh manajemen. Selain itu, bahkan kami sendiri baru-baru ini berhasil masuk ke situasi yang
sama ketika formulir permintaan kunci percobaan pecah selama lima hari. Kami sangat menyesal untuk pengguna yang hilang :( Dan di restoran, tampaknya tidak.
Setelah tidak menerima umpan balik dari berkomunikasi dengan manajer, saya membuka konsol browser dan mulai mencari (omong-omong, saya hampir tidak mengerti pengembangan web):
Ya, ini adalah pengecualian yang tidak tertangkap! Kecantikan sekali. Di sinilah analisa statis dapat membantu.
Menggunakan beberapa pertanyaan, mesin pencari berhasil mengetahui bahwa ini adalah penghitung untuk Yandex.Metrica. Penafsiran halaman hanya berhenti setelah kegagalan komponen eksternal. Seperti yang mereka katakan, banyak rubel dialokasikan untuk pengembangan ... Jadi mengapa pengecualian dilemparkan? Perpanjangan Kaspersky Protect telah diinstal di browser saya. Menonaktifkan semua jenis suar dan penghitung, tampaknya, dilindungi dari pelacakan, diaktifkan secara default. Ini adalah penyebab masalahnya. Saya kemudian memesan makanan di situs lain yang lebih maju secara teknis.
Sayangnya, masalah ini cukup umum. Hanya setelah kejadian ini, saya menyadari perilaku yang tidak dapat dipahami dari situs lain yang saya temui. Saya berharap bahwa pengembang web yang datang ke artikel ini akan memiliki lebih banyak pengalaman.
LK Rostelecom
Mungkin, setiap orang Rusia memiliki sejarah komunikasi yang "menarik" dengan perwakilan dari Rostelecom. Tapi milikku akan tentang bug kecil. Untuk mendukung mereka menjawab bahwa mereka tidak berpikir begitu, tetapi para programmer akan mengerti lelucon itu.
Tangkapan layar dari akun pribadi saya:
Apa "n" dalam inisial? Itu benar,
NULL ! .. Karena tidak semua orang memiliki nama tengah, Anda tidak dapat menentukannya:
Database menyimpan nilai
NULL , perwakilan dari Rostelecom menganggapnya normal untuk menampilkan nilai ini di layar. Menurut pendapat saya, ini sama sekali tidak normal. Mungkin saya hanya berpikir sebagai programmer C ++, dan nilai ini membuat saya khawatir: D
Aplikasi seluler
Penumpang Kereta Api Rusia
Kesalahan menarik ditemukan di aplikasi seluler Russian Railways.
Layar dari aplikasi seluler:
Saya membaca jawaban untuk pertanyaan dan tidak mengerti apa-apa. Teks-teks itu benar-benar tidak koheren. Tapi setelah satu halaman semuanya menjadi jelas:
Paragraf dokumentasi disimpan dalam larik dan ditampilkan dalam
urutan terbalik . Pengembang mengacaukan sesuatu dengan menyortir atau menghitung konter dalam kode. Di versi terbaru aplikasi, bug ini diperbaiki.
VTB-Online
Itu adalah bank yang luar biasa dengan aplikasi yang mudah digunakan. Tetapi pada musim panas 2019, tampaknya, manajer "efektif" datang ke tim, dan lamarannya memburuk. Keuntungan terbesar bagi saya adalah dukungan yang mudah dan cepat. Tetapi pada musim panas 2019, percobaan dimulai dengan bot dalam obrolan dukungan. Bot ini sangat bermasalah. Setidaknya selama 3 bulan, ada desync yang sulit di chat dukungan. Tidak ada yang menjawab pesan, obrolan kosong, dan setelah restart aplikasi ternyata obrolan itu penuh dengan pesan bot, tetapi mereka ditampilkan hanya setelah reboot. Tapi kemudian sesi sudah ditutup, dan dengan pesan berikutnya bug yang sama diulang. Melalui email, dukungan VTB selalu merespons dengan cepat, tetapi pada dasarnya tidak melakukan apa pun.
Sedotan terakhir bagi saya adalah bug lain di chat dukungan, yang belum diperbaiki:
Aplikasi itu dengan bodohnya tidak mengunduh tangkapan layar dari ponsel tempat aplikasi itu berjalan. Ini adalah Kegagalan Epik. Saya menolak kartu bank dan menjaga aktivitas yang tersisa di bank seminimal mungkin.
Sberbank Online
Mungkin bank yang paling dibelokkan di Rusia. Waktu rata-rata untuk memperbaiki bug yang dikonfirmasi dalam praktik bertahun-tahun saya adalah
1 tahun .
Inilah kasus yang paling mengerikan, menurut saya.
Saat mengirimkan pembacaan perangkat pengukuran untuk pembayaran perumahan dan layanan komunal (selanjutnya disebut ZhKU), kejutan yang tidak menyenangkan menunggu Anda:
Pertanyaan segera muncul mengapa data saya tidak diterima, tetapi melihat screenshot berikut menjelaskan semuanya:
Saya juga akan menjelaskan:
bacaan PU diambil dengan titik, dan untuk input pada keyboard hanya ada simbol "koma".Bug ini terus terang mengganggu penggunaan aplikasi, dan saya sering menghubungi dukungan untuk memperbaikinya. Sejak ditemukan, bug berlangsung
6 bulan (Februari-Juni). Kemudian, dalam pembaruan Juli, itu diperbaiki dengan menyalakan keyboard standar. Tapi ini bukan akhir dari cerita! Bulan berikutnya (Agustus), dalam pembaruan aplikasi berikutnya, keyboard dikembalikan tanpa karakter yang diinginkan! Saya tidak tahu apa yang bisa terjadi dalam tim pengembangan, bahwa saya harus membuat perubahan besar seperti itu, tetapi saya berhenti menggunakan bank. Ini adalah salah satu dari banyak bug, dan mereka praktis tidak diperbaiki.
Koneksi dengan pencarian kesalahan dalam kode
Munculnya masalah dan kesalahan yang dijelaskan memiliki alasan tertentu. Ini adalah kelemahan dalam proses pengembangan program, serta dalam mengatur pekerjaan karyawan secara keseluruhan. Dari menulis kode hingga mengirimkan aplikasi kepada pengguna, ada beberapa langkah.
Masalah yang diidentifikasi adalah, pertama dan terutama, persetujuan dari departemen pengujian. Di perusahaan besar, ini biasanya tim pengujian besar. Tetapi efektivitas mereka dapat menderita dari berbagai faktor.
Salah satu faktor penting yang memperburuk pekerjaan penguji adalah kesalahan yang dapat diperbaiki bahkan pada tahap penulisan kode. Memproses bug yang ditemukan membutuhkan waktu beberapa orang. Tetapi beberapa dari mereka mungkin tidak mencapai penguji, yang, pada gilirannya, menghemat waktu penguji. Mereka akan menghabiskannya untuk pengujian yang lebih produktif dan tingkat yang lebih tinggi.
Jadi, tim pengembang kami dari penganalisa kode
PVS-Studio mempromosikan metodologi analisis statis. Ini adalah fase pengembangan perangkat lunak yang menghadapi pemindahan aplikasi ke departemen pengujian. Dalam pengalaman kami, sebagian besar kesalahan adalah cacat pada fase pengembangan. Dan mereka dapat diperbaiki pada tahap awal, menghemat waktu dan uang.
Sayangnya, tidak seperti program open source, di sini saya tidak memiliki cara untuk memeriksa kode secara independen untuk kesalahan. Tetapi jika kode ditulis dalam C, C ++, C # atau Java, maka akan berguna jika perintah-perintah ini pergi ke
situs dan menjalankan analisa pada kode Anda. Untuk program open source, alat ini memberikan
kontribusi yang sangat besar.
Kesimpulan
Saya tidak akan berhenti memperhatikan bug dalam perangkat lunak yang digunakan. Ini mungkin bukan hal terburuk yang bisa terjadi. Saya punya teman yang bekerja di bioskop (animasi). Jadi mereka melihat bug ketika menonton kartun, dan ini merepotkan. Menurut pendapat saya, ini bahkan lebih buruk. Setidaknya program dapat dimodifikasi, tidak seperti rekaman.
Seperti yang Anda perhatikan, dengan dukungan pengguna, semuanya benar-benar buruk. Apalagi ini tipikal untuk perusahaan besar. Hampir tidak mungkin bagi mereka untuk mengkomunikasikan sesuatu dan membagikan pengalaman mereka. Saya mencapai beberapa kesuksesan ketika menghadiri
konferensi pengembang. Perusahaan besar sering hadir di sana, dan beberapa masalah dapat benar-benar dibahas dan diselesaikan.
Jika Anda menyukai format baru untuk meninjau bug dan cerita dengannya, maka saya akan melanjutkan dengan nada yang sama.