Idiot-proofing melibatkan lebih dari sekadar validasi input sederhana. Saya bahkan tidak akan memasukkan hal seperti itu dalam definisinya.
Validasi input adalah proses di mana Anda membersihkan dan memvalidasi data pengguna untuk menghilangkan nilai ilegal / tidak masuk akal. Ini harus selalu dilakukan dengan informasi yang berasal dari luar program Anda sehingga dapat menghilangkan yang jelas serta melindungi diri Anda dari serangan (misalnya serangan injeksi sql).
Saya akan menganggap pembuktian idiot sebagai serangkaian logika untuk menjaga agar pengguna tidak sengaja menyebabkan kerusakan besar pada dirinya sendiri melalui cara lain yang legal.
Misalnya, membuat rm
tolak perintah rm -rf /
dan menutup varian tidak ada hubungannya dengan validasi atau kebenaran. Ini perintah yang benar-benar valid. Sayangnya, ini adalah perintah yang dapat dan dapat menghapus semua data Anda dari semua disk Anda di Unix / Linux. Membuktikan idiot ini akan menolak perintah ini dan akan menyarankanrm -rf --i-really-mean-this /
, atau jika dalam mode interaktif, minta pengguna mengetikkan tanggapan afirmatif setelah peringatan.
Apa pun yang merusak sistem harus dibuktikan dengan kebodohan. Apa pun yang dapat menyebabkan rasa malu mungkin juga menjadi kandidat (mis. "Anda yakin ingin mengirim email ini tanpa lampiran meskipun Anda menyebutkan satu di teks Anda?", Dan "Anda yakin ingin mengirim email ini ke seluruh perusahaan? ")
Idiot-proofing adalah kolaborasi antara QA (berusaha menjadi idiot terbaik) dan Pengembangan (mencoba mengantisipasi semua skenario ini dan mendesain di sekitarnya).
Adapun sinonim yang lebih ramah , mungkin saya sarankan "analisis jalur kode destruktif" atau "aktifkan umpan balik pengguna untuk operasi kritis". Apa pun Anda menyebutnya, Anda harus benar-benar memulainya sedini mungkin dalam proses desain.