(Saya membayangkan ini akan menjadi pertanyaan wawancara yang bagus , tetapi dalam kasus saya ini lebih pragmatis dari itu.)
Kami memiliki aplikasi besar & kompleks yang memodelkan proses reaksi kimia yang sangat panjang dan canggih antara puluhan komponen kimia. Kami berada pada tahap merancang Tes Penerimaan untuk aplikasi, tetapi kami agak gentar dengan jumlah jalur yang mungkin sulit untuk diuji. Terpikir oleh saya bahwa situasi kami sangat mirip dengan apa yang harus dihadapi oleh tim pengembang Google Maps ketika tiba saatnya untuk menguji algoritma perencanaan rute dalam fitur "Dapatkan Arahan" mereka. Jelas mereka tidak dapat menguji (memverifikasi dan memvalidasi) setiap rute yang memungkinkan. Jadi, bagaimana mereka mendapatkan kepercayaan bahwa aplikasi mereka akan bekerja dalam setiap situasi?
Dan karena saya tidak berharap untuk mengetahui bagaimana mereka melakukannya, izinkan saya bertanya kepada Anda: Bagaimana Anda mendesain test suite dengan cakupan kode yang memadai, untuk memuaskan diri Anda bahwa aplikasi yang diberikan kuat - ketika itu benar-benar mustahil untuk menyelidiki setiap jalur potensial melalui sistem?
Apa yang saya cari adalah prinsip-prinsip yang akan Anda gunakan untuk memecah masalah yang tak terselesaikan menjadi bagian-bagian yang lebih kecil, dapat ditelusuri, jumlah yang memberikan perkiraan yang memuaskan dari keseluruhan: "Saya tidak bisa menguji semuanya, tapi saya bisa menguji ini , ini dan ini - dan itu sudah cukup. " Saya tidak mencari pendekatan yang "terbukti benar", melainkan pendekatan yang bijaksana , mengingat keterbatasan waktu / anggaran dunia nyata.
(Saya menggunakan contoh peta Google sebagai sesuatu dari kertas untuk mengumpulkan jawaban yang sespesifik mungkin.)