Strategi dan kerangka Anda tergantung, secara non-sepele, pada jenis tes apa yang ingin Anda hasilkan, cakupan apa yang Anda cari, dan bahasa / lingkungan tempat Anda bekerja.
Cukup mudah untuk menulis generator tes yang, untuk bahasa seperti C atau Java, membaca tanda tangan kelas dan secara otomatis menghasilkan tes untuk kasus sudut standar (meneruskan 0, 2 nilai acak, MAX_INT, MIN_INT, ke argumen integer, nulls untuk nullables , dll ...). Anda kemudian dapat menjalankan tes yang dihasilkan, mencatat hasil untuk setiap tes, dan secara manual menyaringnya untuk menghapus yang tidak relevan, menyetujui hasil yang dapat diterima untuk tes yang lulus (sehingga mereka dapat secara otomatis lulus sejak saat itu), dan menandai sebagai yang tidak valid yang gagal .
Anda dapat menambah ini dengan memberi tag / komentar / refactoring kelas untuk membantu generator Anda dengan petunjuk tambahan. Anda mungkin memiliki tag yang mencantumkan semua perkecualian yang mungkin yang diajukan oleh pemanggilan metode, atau yang memberikan kisaran bilangan bulat yang valid untuk argumen bilangan bulat berkurang. Lihatlah ini sebagai tangan pendek karena harus menulis tes sendiri.
Jadi, berikut adalah beberapa komponen yang ingin Anda lihat:
- Komponen yang secara otomatis mem-parsing kode sumber / fungsi tanda tangan / anotasi manual, menghasilkan kasus uji standar, atau menguraikan / menandatangani untuk kasus uji yang menunggu input Anda selesai.
- Bahasa tag / anotasi / komentar yang terus tumbuh / berubah yang dapat mencapai tingkat granularitas (metode / kelas / tanda tangan / loop sementara / dll ...) mewakili petunjuk untuk pembuat tes otomatis. Idealnya Anda harus bisa bermain dengan bahasa ini tanpa harus mengubah kode kerangka kerja Anda atau potongan apa pun di dalamnya
- Pelari uji otomatis, dengan kemampuan untuk mengidentifikasi tes baru / lama dan mencatat / menguji terhadap jawaban yang "dapat diterima" untuk setiap tes. Idealnya pelari ini akan membangun database uji coba, hasil yang diterima / ditolak, dan hasil saat ini yang dapat diterima untuk setiap tes.
- "Pembuat objek" otomatis yang, diberi nama kelas dan peta nilai- nilai>, dapat menghasilkan objek yang meniru kelas, mengembalikan data yang dapat disesuaikan untuk panggilan fungsi, pengakses, slot data publik, dll ...
Ada banyak kerangka kerja pengujian di luar sana yang sudah menyertakan potongan fungsi ini untuk berbagai bahasa dan platform. Meskipun cukup mudah untuk mulai melakukan pekerjaan ini sendiri dan menumbuhkan kerangka kerja semacam ini secara in-house, ini juga merupakan proyek jangka panjang tanpa akhir yang mungkin akan meniru pekerjaan yang sudah ada. Saya akan merekomendasikan meluangkan waktu yang signifikan untuk melihat apa yang tersedia terlebih dahulu, dan kemudian memutuskan apakah layak untuk menyelam.