// ini lebih dari daftar todo lebih dari apapun sekarang
Intro
Input teks
Input lain (kotak centang, sakelar, kontrol yang saling eksklusif)
Manajemen Kesalahan (Pengecualian, Kecelakaan, Peringatan, Menampilkan Kesalahan)
Navigasi (Push, Pop, Tab, Modal, Rotasi Layar)
Latar Belakang (Status Tersimpan, Kartu Puncak)
Konektivitas (WiFi, tepi lambat, 2G, 3G, 4G, intermiten, nol-byte, offline, mode pesawat) dan konektivitas perangkat keras (USB, NFC, Bluetooth, WiFi)
Lokalisasi (teks & gambar, dalam berbagai pengaturan pada bahasa telepon vs bahasa aplikasi vs wilayah saat ini)
Gangguan (panggilan yang diterima, penurunan panggilan, mengirim/menerima SMS, siklus daya, restart, mengirim/menerima pemberitahuan, peringatan, memori rendah, layar beranda, beralih aplikasi, mode pesawat, keluar dari penyimpanan): harus berarti aplikasi dapat berhenti, diam, dan memulihkan pada layar yang benar dan dalam keadaan yang benar kapan pun yang masuk ke latar belakang atau diinterupsi dengan cara apa pun. Menjawab aplikasi dari pemberitahuan .
Penyimpanan (semuanya disimpan dengan benar, tanpa risiko, di tempat yang tepat)
Keamanan (apakah aplikasi Anda menyimpan informasi pembayaran atau rincian kartu kredit? Apakah aplikasi Anda menggunakan protokol jaringan yang aman? Bisakah mereka dialihkan ke yang tidak aman? Apakah aplikasi meminta lebih banyak izin daripada yang dibutuhkan? Apakah aplikasi Anda menggunakan sertifikat? Apakah aplikasi Anda menggunakan ID perangkat sebagai pengidentifikasi? Keamanan untuk Menjalankan Aplikasi Pelanggaran dalam Pelaporan Keamanan dan Kesalahan Aplikasi Mengotentikasi Sertifikat Aplikasi dan Izin Aplikasi Otomatis terkunci setelah terus masuk tidak valid)
Aksesibilitas (tombol perangkat lunak, zooming, ukuran font, teks untuk berbicara, ...)
Kinerja (penggunaan baterai, penggunaan CPU, penggunaan memori (dan kebocoran), manajemen penyimpanan (disk vs kartu), responsif, ukuran layar, waktu untuk meluncurkan aplikasi, waktu pada layar peluncuran, layar beban berat / YouS harus menyebarkan beban, tekan tombol kontinu) Apa pun yang terjadi harus ditangani dengan lancar dengan reaksi cepat dan jelas yang bagus.
Pekerjaan latar belakang (melakukan pekerjaan di luar utas utama untuk tidak memblokir UI, tetapi juga tidak memiliki pekerjaan besar ketika aplikasi "menganggur" atau di latar belakang, menguras baterai/data/dll)
Integrasi (apakah kamera, GPS, Bluetooth berfungsi dengan baik dengan aplikasi)
Kompatibilitas Mundur, Kompatibilitas Perangkat Keras: Periksa semua versi semua perangkat jika memungkinkan. Aplikasi harus dapat diinstal dan sepenuhnya dapat digunakan (kecuali fitur tidak tersedia di perangkat itu)
Gambar: Ukuran & berat yang benar pada semua perangkat dan orientasi. Tidak diregangkan, tidak pixelated, tidak terlalu HD, dll.
Sosial: Kebijakan keamanan & privasi tersedia, pengguna dapat keluar atau memilih keluar. Pengguna didorong dari apa yang bisa/akan terjadi ketika mereka memberikan hak dan ketika mengatakan hal (posting/saham/suka) terjadi.
Iklan (ditampilkan/disembunyikan jika seharusnya, menampilkan konten yang sesuai)
TimeZones: Panggilan jarak jauh/waktu vs waktu telepon vs waktu wilayah saat ini => Gunakan UTC di mana -mana, berubah menjadi waktu setempat dalam tampilan
Toko: Aplikasi hanya terlihat di toko yang Anda inginkan/butuhkan (iOS appstore, PlayStore, Android Market, dll.), Dan hanya terlihat pada perangkat yang kompatibel. Aplikasi tablet tidak boleh terlihat di toko ponsel pintar. Halaman toko mutakhir dengan pembaruan versi, deskripsi, nama/nomor, penguji yang diberitahu sebelum rilis,
Pemeriksaan pra-rilis / pemeriksaan pra toko (sehingga ulasan toko harus lulus)
Ikon aplikasi tersedia dalam semua format yang diperlukan; Ikon toko tersedia; Semua gambar aplikasi tersedia dalam semua format (1x, 2x, 3x, dll.)
Kompatibilitas OS, kompatibilitas crossplatform (apakah ini berfungsi pada iOS / Android / windows phone bagaimana seharusnya?)
Kompatibilitas Versi: Apakah itu berfungsi di iOS 9, 10, 11, 12? Uji target Anda dan semua versi yang seharusnya Anda dukung
Apakah itu bekerja pada semua perangkat di semua versi? : iPhone, iPad, iPhone X, iPhone #S, dan juga Android (Omegalul)
Orientasi (pesan kesalahan, video, layar splash, navigasi dan layar reguler di semua orientasi, pada semua ukuran perangkat)
Suara (berhenti saat pergi ke latar belakang? Terus berjalan? Menampilkan pemberitahuan? Apakah dapat dikendalikan di pusat kontrol / pemain jarak jauh)
Pemberitahuan (dikirimkan jika seharusnya, apakah kaya? Depan dalam? Modifikasi lencana? Lencana memperbarui dirinya sendiri saat aplikasi dibaca? Geofenced? Platform spesifik / fitur spesifik. Lebih banyak untuk mencari @pushwoosh untuk contoh)
Gerakan
// daftar hal yang sebenarnya yang tidak ingin saya lupakan
Tentang apa ini? Ini tentang menguji aplikasi Anda secara menyeluruh dan sepenuhnya. Daftar ini akan menyertakan elemen sebanyak mungkin yang harus Anda uji. Banyak dari yang mungkin sudah Anda uji, beberapa yang mungkin belum Anda pikirkan. Ini adalah tentang memeriksa semua kotak dan memvalidasi fakta bahwa Anda memang menguji x & y, tetapi Anda juga memutuskan untuk mengabaikan Z. Banyak elemen dari daftar periksa mungkin tidak berlaku untuk Anda, karena aplikasi Anda tidak memiliki fitur spesifik atau tidak menggunakan teknologi tertentu. Anda mungkin juga hanya ingin melewatkan beberapa pengujian karena alasan apa pun, dan itu baik -baik saja. Terserah Anda untuk mencari tahu dan memutuskan; Selama Anda membuat keputusan, itu berarti Anda telah membaca daftar, menerima harga & konsekuensi dari pengujian (bukan) dan baik untuk digunakan!
Jika Anda memikirkan proyek Anda, Anda mungkin memiliki penutup mata. Programmer atau penglihatan pemilik adalah yang terburuk, karena Anda tahu apa yang seharusnya dilakukan aplikasi dan, mau tidak mau, Anda akan menguji di dalam batas -batas itu. Pengguna mungkin menggunakan aplikasi Anda bukan seperti yang Anda pikirkan, dan ini akan menjadi masalah UX. Kami di sini hanya tentang pengujian, memastikan bahwa aplikasi Anda bekerja secara offline, atau dengan baterai rendah, atau ketika ditolak hak akses yang sebenarnya Anda butuhkan. Beberapa hal yang mungkin dilakukan pengguna yang Anda terima selama semua minggu pengujian ini. Ini sebagian besar tentang "berpikir di luar kotak" atau, apa yang saya suka menyebutnya: melakukan pekerjaan terbaik sebagai penguji.
Inilah tweet yang agak terkenal yang menggambarkan apa yang saya maksud.
Insinyur QA berjalan ke bar. Memesan bir. Pesanan 0 bir. Pesanan 99999999 Bir. Memesan kadal. Pesanan -1 bir. Memesan sfdeljknesv.
- Bill SEMPF (@sempf) 23 September 2014
Ini lucu (atau setidaknya saya suka berpikir itu) dan itu benar. Contoh sederhana ini menggambarkan banyak hal untuk memeriksa aplikasi Anda.
Seluruh daftar terlihat sangat luar biasa dan itu normal. Saya ingin itu selengkap mungkin. Seperti yang saya katakan sebelumnya, intinya adalah memberi tahu Anda tentang banyak kemungkinan. Terserah Anda untuk memutuskan apakah suatu elemen layak diuji untuk kasus spesifik Anda. Apakah itu adalah keputusan Anda, selama Anda membuat keputusan dan menyadarinya. Itulah inti dari daftar ini.
Anda dapat menggunakan daftar ini sesuka Anda, karena selama Anda menggunakannya, Anda akan meningkatkan kualitas perangkat lunak yang Anda kirim. Fakta bahwa Anda menggunakan daftar itu jauh lebih penting daripada cara Anda menggunakan daftar itu. Ini bisa menjadi walkthrough yang menyeluruh dan teratur, daftar periksa pra-rilis, atau bahkan sesederhana bacaan cepat sebelum tidur. Selama Anda membacanya dan tahu itu ada di sana, itu akan berguna.
Sebagai catatan yang cepat namun sangat penting, ingatlah bahwa banyak pengujian ini dapat dilakukan dengan menggunakan tes unit klasik, dan tes UI. Itu seharusnya sudah mencakup sebagian besar elemen penting untuk diuji. Sisanya dapat diuji secara manual jika perlu. Itu berarti Anda dapat menulis suite tes dan menggunakannya di berbagai tempat di aplikasi Anda untuk memastikan stabilitas jangka panjang. Menguji semua ini secara manual akan menjadi mimpi buruk ; Jika Anda tidak tahu cara menulis tes unit atau tes UI, lihatlah. Ada banyak hal yang harus dipelajari di sana yang akan menghemat banyak waktu, uang, dan menghindari cobaan bahwa pengujian manual.
Saya kebanyakan menulis ini sendirian, satu -satunya bantuan/inspirasi yang saya dapatkan adalah dari menjelajah internet (lihat bab berikutnya, ID) pada berbagai subjek. Sayangnya, saya dibatasi oleh pengetahuan dan pengalaman saya sendiri, yang berarti pasti ada banyak konten yang hilang di bidang yang Anda, pembaca yang budiman, memiliki banyak pengalaman. Di situlah GitHub berada di tempatnya; Anda dapat dengan bebas meminta permintaan tarik, memodifikasi konten saya atau menambahkan sendiri. Saya akan memeriksanya dan memvalidasi sebaik mungkin, mungkin dengan bantuan masyarakat. Hal -hal seperti keamanan, enkripsi, jaringan, itu adalah area di mana saya kurang. Mengingat saya seorang Joe biasa, di situlah kebanyakan orang tidak memiliki keterampilan, dan di mana aplikasi Anda akan paling rentan/kurang. Ini berarti itu adalah area (yang Anda lemah) harus diperiksa tiga dan Anda harus menghabiskan perhatian ekstra untuk itu!
Cara lain untuk berkontribusi / mengucapkan terima kasih akan sebagai berikut:
Lagipula, saya menghabiskan banyak waktu untuk menghemat waktu Anda juga, itu pasti bernilai sesuatu di atas: D
Dan akhirnya, saya ingin mengucapkan terima kasih kepada Michael Hunter atas daftar periksa yang luar biasa, yang menginspirasi saya untuk memulai daftar periksa saya sendiri secara khusus seputar pengembangan seluler (iOS, Android, Windows Phone). Itu memang terlihat seperti banyak waktu dan upaya dimasukkan ke dalam versi daftar itu, yang saya tahu bahkan bukan versi pertama. Itu pekerjaan yang bagus dan jika Anda berada di luar ponsel, saya sangat menyarankan Anda memeriksanya. Satu -satunya harapan saya adalah, suatu hari nanti, mencapai daftar periksa dengan kualitas yang sama. Dari sana, saya menemukan beberapa daftar periksa di internet, kebanyakan dari mereka sangat tidak lengkap, tetapi yang menonjol adalah daftar periksa front-end David Dias, yang juga menginspirasi saya dalam banyak cara untuk meningkatkan sendiri. Tolong, periksa dia juga, itu pekerjaan yang layak disebarkan!
Input teks hadir dalam banyak rasa, ukuran dan kasus penggunaan. Jelas Anda tidak memperlakukan bidang password dengan cara yang sama seperti Anda memperlakukan bidang lain, dan ada banyak bidang dengan banyak tujuan berbeda. Daftar ini harus mencakup semuanya, atau setidaknya sebagian besar dari mereka. Menguji input Anda akan dilakukan melalui beberapa aspek. Anda perlu memastikan validasi berfungsi dalam logika dan UI, bahwa TextField menangani semua jenis stres dan input, dan bahwa, jika ada, pemformatan berfungsi dengan baik. Semua itu bersama -sama pada akhirnya harus memberi Anda Textfield yang berfungsi.
Anda belum selesai jika Anda belum berurusan dengan semua input dan situasi berikut, saat memvalidasi input teks. Perhatikan bahwa ini juga berlaku untuk sebagian besar jenis input lain (kata sandi, email, angka, dll.). Jika Anda berurusan dengan semua jenis input string, pertimbangkan daftar berikut serta daftar yang relevan.
aBCd 1234 #@ !? ;) $= § :grinning: atau :-) atau? atau U+1F60A 123 t , " , ... string.Empty nullAnda belum selesai jika Anda belum mencoba memasukkan data dengan cara berikut:
Dan itu hanya untuk satu input teks di satu layar aplikasi Anda. Anda harus memvalidasi setiap bidang input teks secara menyeluruh, di seluruh aplikasi. Dan ini bahkan tidak menyebutkan pemformatan input, seperti menambahkan spasi secara otomatis antara input, atau memaksa beberapa karakter untuk diwarnai atau diubah menjadi huruf besar.
Anda belum selesai jika Anda belum secara menyeluruh menguji semua input nomor Anda
0 13.37 atau 13,37 (Pikirkan pemisah tergantung pada lokal!) -1337 10^20 "124" 12.23 vs 12,23 10.234,96 vs 10,234.96 13.37 € vs € 13.37 13.34 bukannya 13.3389 13.00 atau hanya 13 , atau sesuatu yang lain sama sekali? 4000 tetapi tidak 3999.99 , atau dapatkah saya mengetik 4000.56 ? 12345 menjadi 0,12345 atau ,12345 atau yang lainnya? Apakah ini diformat ulang menjadi 0,12 ? -1 , 0 , -1000 , 234940 ) Anda belum selesai jika Anda belum secara menyeluruh menguji semua input email Anda
@ @ . karakter . , - , _ , dll.) ù , à , dll. Anda belum selesai jika
Anda belum selesai jika belum
Anda belum selesai jika
Anda belum selesai jika
Anda belum selesai jika
Input tidak selalu teks dalam bentuk, ada cara lain yang dapat diberikan orang ... input mereka. Dan karena itu ada cara lain untuk melupakan hal -hal!
Anda belum selesai jika
Anda belum selesai jika
Anda belum selesai jika
Anda belum selesai jika
Manajemen kesalahan adalah pilar aplikasi dalam kesehatan yang baik. Ini akan membantu Anda melacak masalah (alat lain juga akan membantu) dan karenanya memperbaiki bug. Tetapi Anda tidak ingin itu menjadi hambatan bagi pengguna Anda dan pengalaman mereka terhadap aplikasi Anda. Ada keseimbangan yang baik untuk dicapai antara UX yang baik, pelacakan bug, dan memberi tahu pengguna masalah yang telah muncul.
Anda belum selesai jika
Anda belum selesai jika
Anda belum selesai jika
Anda belum selesai jika