AI Dapat Menggantikan Pengembang tetapi Bukan Penguji


AI akan menggantikan banyak pekerjaan. Kami menunjukkan bahwa AI bukanlah perancang pengujian yang baik dan membuat kasus pengujian yang salah serta mengabaikan kasus pengujian yang diperlukan. Namun, kesenjangan antara penguji manual dan AI kecil, sehingga penguji harus mengetahui desain pengujian dengan lebih baik atau bahkan lebih baik lagi untuk menerapkan teknik desain pengujian yang baru dan efisien.

ree

Ada kepercayaan umum bahwa pengujian lebih mudah daripada menerapkan kode. Seorang musisi, polisi, atau guru bisa menjadi penguji dalam waktu yang sangat singkat. Perusahaan meresepkan ujian tingkat dasar ISTQB dan itu saja. Jika Anda tahu cara lulus ujian, setelah beberapa minggu Anda akan menjadi penguji dan bisa mendapatkan pekerjaan. Selain itu, penguji harus mengetahui alat manajemen pengujian dengan beberapa fitur pelacakan bug. Itu bisa dipelajari maksimal dua minggu. Terakhir, beberapa soft skill juga diperlukan, namun sebagian besar pekerjaan memerlukan soft skill juga.

Pengembang membutuhkan banyak pekerjaan untuk mengetahui hal-hal berikut:

  • Bahasa pemrograman dengan kerangka kerja dan alat pengembang

  • Struktur Data dan Algoritma

  • Kontrol Sumber (Git)

  • IDE (IntelliJIIDEA atau VSCode)

  • Basis Data dan SQL

  • Dasar-Dasar Jaringan

Dibutuhkan lima tahun untuk menjadi pengembang senior yang baik.

Hal ini menyiratkan bahwa pekerjaan pengembang perangkat lunak lebih sulit daripada pekerjaan penguji. Jika demikian, Anda mungkin berpikir bahwa penguji lebih mudah digantikan oleh AI. Namun, itu salah. AI adalah pengembang yang sangat baik. Jika Anda menambahkan prompt yang bagus, AI dapat menghasilkan kode yang sangat bagus. Saya hanya mencoba tugas yang lebih kecil, namun kode AI lebih elegan dan bebas bug.

Namun menariknya, AI tidak bagus dalam pengujian perangkat lunak. Jika saya menambahkan persyaratan, terkadang AI salah memahaminya. Mungkin persyaratannya tidak lengkap atau salah dipahami tetapi penguji memahami persyaratan yang sama tanpa kesulitan. AI biasanya membuat satu kasus uji untuk satu persyaratan. Sayangnya, jika satu kasus uji dapat mencakup lebih banyak persyaratan, AI akan membuat kasus uji terpisah. Masalah terbesarnya adalah AI sangat buruk dalam desain pengujian dan kasus pengujian penting akan terlewatkan.

Persyaratan untuk libur ekstra

R1 Seorang karyawan dapat melakukan kerja lembur (overtime++).

R2 Melakukan lembur sebanyak tiga kali menghasilkan satu hari bebas (lembur = 0, hari bebas++).

R3 Seorang karyawan dapat mengambil hari bebas dengan menekan – (hari bebas–).

R4 Jika ada pegawai yang terlambat maka ditarik satu kali kerja lembur (lembur–, jika lembur = 0 → hari bebas–, lembur = 2).

R5 Jika seorang karyawan mengambil tiga hari bebas tanpa penundaan, maka untuk satu kali keterlambatan berikutnya, waktu lembur yang diterimanya tetap tidak berubah.

R6 Apabila pegawai terlambat dan lembur ≤ 0 dan hari bebas ≤ 0 maka dua kali kerja lembur dibatalkan (lembur = -2, hari bebas = 0 → lembur = -1, hari bebas = -1).

R7 Jika jumlah hari bebas dikurangi menjadi minus tiga, maka GAME OVER

AI (di sini Copilot) menghasilkan 8 kasus uji berikut:

Kasus Uji 1: Akumulasi Lembur (R1)

  • Prasyarat: Karyawan mempunyai 0 waktu lembur.

  • Tindakan: Karyawan melakukan lembur.

  • Hasil yang Diharapkan: Waktu lembur karyawan bertambah 1.

Kasus Uji 2: Penghargaan Hari Bebas (R2)

  • Prasyarat: Karyawan telah melakukan lembur sebanyak dua kali (lembur = 2).

  • Tindakan: Karyawan melakukan lembur lagi.

  • Hasil yang Diharapkan: Waktu lembur karyawan direset ke 0, dan hari bebas bertambah 1.

Test Case 3: Mengambil Hari Bebas (R3)

  • Prasyarat: Karyawan mempunyai minimal 1 hari bebas.

  • Tindakan: Karyawan mengambil hari bebas.

  • Hasil yang Diharapkan: Hari bebas karyawan berkurang 1.

Kasus Uji 4: Penalti Keterlambatan (R4)

  • Prasyarat: Karyawan mempunyai 1 kali lembur dan tidak ada hari libur.

  • Tindakan: Karyawan terlambat.

  • Hasil yang Diharapkan: Waktu lembur karyawan berkurang 1.

Kasus Uji 5: Keterlambatan dengan Waktu Lembur yang Cukup (R4)

  • Prasyarat: Karyawan mempunyai 3 kali lembur dan tidak ada hari bebas.

  • Tindakan: Karyawan terlambat.

  • Hasil yang Diharapkan: Jam lembur karyawan berkurang 1 (lembur = 2).

Kasus Uji 6: Lembur Tidak Berubah Setelah Hari Bebas (R5)

  • Prasyarat: Karyawan mengambil waktu luang 3 hari tanpa terlambat, maka terlambat satu kali.

  • Tindakan: Karyawan terlambat.

  • Hasil yang Diharapkan: Perpanjangan waktu tetap tidak berubah.

Kasus Uji 7: Penalti Ganda atas Keterlambatan (R6)

  • Prasyarat: Karyawan memiliki -1 lembur dan tidak ada hari bebas.

  • Tindakan: Karyawan terlambat.

  • Hasil yang Diharapkan: Jam lembur karyawan berkurang 2 (lembur = -3).

Kasus Uji 8: Skenario Game Over (R7)

  • Prasyarat: Karyawan memiliki -2 hari bebas.

  • Tindakan: Karyawan mengambil satu hari bebas lagi.

  • Hasil yang Diharapkan: PERMAINAN BERAKHIR!

Beberapa kasus uji salah. Dalam uji kasus 5 prasyarat 'Karyawan mempunyai 3 kali lembur dan tidak ada hari bebas.' Tidak mungkin karena 3 kali perpanjangan waktu akan diubah menjadi hari bebas. Dalam kasus uji 6, prasyaratnya mencakup satu keterlambatan, dan tindakan (input) lagi-lagi terlambat satu. Hasil yang diharapkan salah karena waktu lembur dikurangi. Kasus uji 8 memiliki tindakan 'Karyawan mengambil satu hari bebas lagi'. Tidak mungkin hanya menambahkan yang terlambat.

Untuk test case yang salah kami mengikuti prasyarat dan tindakan, misalnya pada test case 5, kami menambahkan 3 kali perpanjangan.

AI hanya mendeteksi 65% potensi kesalahan. Untuk memasukkan kesalahan, kami memiliki a kerangka mutasi dengan mutan cerdas.

Masalah terbesar dengan AI adalah desain pengujian. AI menguji persyaratan, namun harus menguji kasus ketika pernyataan dalam persyaratan tidak berlaku. Jika ada sesuatu yang tidak secara eksplisit ada dalam persyaratan, penguji mengetahuinya dan mengujinya, tetapi AI tidak. Berikut beberapa contohnya:

Uji R5, sebaiknya diuji bila kita menambahkan keterlambatan sebelum kita mengambil ketiga hari bebas tersebut. Tes terkait adalah:

Kasus uji 9: Tambahkan 9 lembur, lalu ambil satu hari bebas, tambahkan keterlambatan, lalu tambahkan satu lembur, lalu ambil 2 hari bebas, dan terakhir tambahkan keterlambatan lagi. Kesimpulan: keterlambatan kedua mengurangi jumlah hari lembur atau hari bebas.

Dengan ini, pengujian kami memakan waktu 3 hari, namun keterlambatan terjadi sementara itu.

R5 harus diuji dengan 3 kasus uji. Kita harus menguji bahwa mengambil 3 hari bebas tanpa keterlambatan akan menghasilkan satu hari bebas keterlambatan tanpa hukuman. Namun, kita juga harus menguji bahwa keterlambatan kedua melibatkan hukuman pada hari lembur/bebas. Karena Test case 6 salah, kami tidak tahu test case mana yang dibuat, namun kami tahu hanya satu yang dibuat.

Sudah jelas namun tidak disebutkan bahwa hari bebas bisa diambil jika kita mempunyai hari bebas. Ini harus diuji dengan test case ini:

Kasus uji 10: Ambil satu hari bebas. Keluaran: Jumlah hari bebas tetap 0.

Penguji yang baik akan menambahkan kasus uji ini. Berikut adalah tabel untuk 3 aplikasi. Hasilnya adalah penguji manual lebih baik atau sama dengan penguji AI. Di sini DDP adalah Persentase Deteksi Cacat, dan kami juga melibatkan desain pengujian status tindakan metode profesional kami.

Kesimpulannya adalah meskipun pekerjaan penguji tampak lebih sederhana, kami, para penguji, tidak perlu khawatir akan digantikan oleh AI. Namun, kita perlu mengetahui desain tes dengan lebih baik, dan menerapkan teknik desain tes yang lebih efisien. Untuk melakukannya, kami menyarankan untuk membaca dua buku berikut:



AI Dapat Menggantikan Pengembang tetapi Bukan Penguji


Leave a Reply

Your email address will not be published. Required fields are marked *