Pengenalan Artificial Inteligence di dalam Testing Perangkat Lunak (Part 2)
Halo semuanya!
Kembali lagi dan tidak bosan-bosannya dengan Author yaa :). Ini adalah lanjutan dari postingan mengenai pengenalan A.I sebelumnya, atau yang bisa di cek juga di sini ya. Sebelumnya, mungkin bahasan kali ini akan lebih banyak teori, ya karena pengenalan A.I. membutuhkan kita berpikir secara logis dari sisi mesin, dan bagaimana caranya kita membuat sesuatu yang sulit, untuk dipermudah oleh mesin.
Dari postingan sebelumnya, kita sudah membahas apa itu A.I, apa itu M.L dan D.L, tapi yang kita bahas lebih secara umum. Selanjutnya kita akan membahas bagaimana sih penggunaan A.I ini didalam software testing, atau testing perangkat lunak?
Seiring dengan semakin berkembangnya kompleksitas dan kesulitan, berkembangnya kebutuhan-kebutuhan khusus dalam koding, serta adanya permintaan bahwa proses / siklus pengiriman produk yang cepat seiring dengan metodologi Agile, maka orang-orang yang melakukan testing diminta untuk dapat segera memberikan hasil test serta feedback kepada developer. Maka di jaman serba digital dan modern inipun, proses test diminta untuk dapat dilakukan secara cerdas dan efisien, bukan dengan cara manual yang menguras sumber daya maupun sulit seperti dulu. Caranya adalah dengan meng-implementasikan penggunaan A.I, untuk mengolah testing tersebut.
Ok, kita tau solusi nya adalah A.I. Tapi seperti apa sih contoh kasusnya?
Misalkan, kita punya sebuah Apps e-commerce yang memiliki fitur cart atau keranjang belanja dan proses pengisian data pembayaran / checkout form.
Pada konsep manual testing atau tradisional testing, tester akan membuka halaman keranjang belanja, memastikan apakah cart tersebut ada isiannya atau tidak, lalu lanjut ke halaman checkout, dan mengisi data-data yang diperlukan sebelum lanjut ke pilihan pembayaran. Setiap kali ada perubahan, tester akan melakukan ulang proses tersebut. Proses diatas memerlukan banyak sumber daya dan waktu, termasuk ketersediaan waktu yang melakukan test.
Dengan A.I, kita bisa melakukan implementasi Dynamic Locators dan Auto Fill Form. Kita bisa mengatur A.I untuk dapat memeriksa element HTML khusus yang berisikan tag keranjang, atau spesifik element yang kemudian dapat dijadikan acuan untuk A.I. untuk mengolah dan mengecek data. Di halaman checkout, A.I. dapat mengecek tag input text yang memiliki nama dan deskripsi yang sudah kita atur, sehingga ketika A.I. menemukan tag element tersebut, A.I. dapat meng-generate isian yang diperlukan beserta contoh-contoh kasus test nya, mau itu kasus positif atau negatif. Jadi, setiap ada perubahan apapun, maka A.I. akan langsung mengeceknya tanpa perlu ketersediaan dari si tester.
Wow... O-kay.. bagi Author yang masih melakukan koding sampai saat ini pun, ketika mempelajari A.I. ini, masih geleng-geleng kepala. Memang sekarang sudah ada yang namanya automation test, tapi semua kasus dan kriteria test masih ditentukan dan dibuat langsung oleh programmer / QA tester. Seandainya implementasi diatas bisa dilakukan, kebayang dong proses apa saja yg kepotong?
Contoh Nyata lainnya dalam hal produk sesuai penggunaan Agile, adalah misalkan kita mempunyai sebuah User Story / Backlog Product dengan kriteria-kriteria yang sudah ditentukan. Biasanya kriteria-kriteria ini akan memiliki kesamaan dengan yang sebelumnya jika kita sudah pernah buat. Kita bisa membuat skrip A.I. untuk otomatis membuat kriteria test / pseudocode / algoritma pengetesan untuk kriteria-kriteria yang memiliki kesamaan berikut. Selanjutnya tinggal bagaimana kita memoles, menambahkan atau merevisi nya saja. Kita tidak perlu lagi terlibat dalam proses mengolah kriteria, membahas kriteria yang sebetulnya sudah pernah ada di produk sebelumnya, karena semua sudah di proses dengan cerdas oleh A.I.
...
...
...
HA! ^^
Kitaa sudah sampai di akhir postingan pengenalan A.I part 2, jadi, kesimpulan apa saja yang membuat kita harus menggunakan A.I. di testing perangkat lunak adalah:
1. Kita menghemat proses dimana dibutuhkan programmer / tester untuk melakukan testing secara manual, termasuk kita menghemat waktu, karena tidak setiap programmer maupun tester bisa melakukan test untuk data-data lama yang sudah ada. Ingat, kebutuhan baru akan selalu ada, dan pekerjaan lain akan selalu ada, tapi bukan berarti produk / data lama kita biarkan saja.
2. Codeless Test Automation, otomatisasi testing yang tanpa perlu pengalaman / pemahaman koding oleh siapapun yang menjalankan A.I. ini dikemudian hari. Memang awal-awalnya tentu saja tetap perlu dikoding skrip A.I. oleh programmer nya ya
3. A.I, bisa digunakan untuk langsung meng-otomatisasi dan membuat pseudocode atau kriteria test hanya dengan bermodalkan User story / backlog (waw, author yang saat ini berprofesi sebagai product owner, seandainya ini bisa terjadi, pasti akan teriak, hahahaha, mana kalian backlog-backlog dan user story, Get Over Here~... ups. Serasa main Mortal Kombat ^^)
4. Sudah ada standar untuk pengetesan, membuat less effort dan membuat hasil test lebih konsisten
Tapi bukannya kalau ada A.I., terus QA kerjaannya apa nanti? Bukannya akan seperti di film-film, semua digantikan robot? Jangan khawatir ya teman-teman. Ingat, sepintar apapun robot / A.I., tetap butuh orang yang menambahkan / membuat skrip dan memprogram mereka. Dan juga, untuk pemeriksaan secara visual atau tampilan, A.I. tetap membutuhkan manusia untuk mengeceknya. A.I. adalah kecerdasan buatan, sementara manusia memiliki indera-indera yang dibutuhkan yang tidak dimiliki oleh A.I. seperti penglihatan, maupun pendengaran. Malahan dengan adanya A.I., tester bisa lebih memikirkan bagaimana cara meningkatkan kualitas produk yang sudah di test dan lebih memaksimalkan nilai dari sebuah produk.
A.I. ataupun tools automation lainnya, dibuat untuk memudahkan, bukan untuk menggantikan.
Sekian itu saja postingan kali ini. Tentu saja, kegunaan dan implementasi A.I. itu bisa tidak terbatas tergantung dari kasus yang ada, dan tergantung dari pembuat skrip A.I. nya, Steve Jobs terkenal karena inovasi-inovasinya. Jadi kalian pun juga bisa mengembangkan A.I. sesuai inovasi kalian!
Sampai ketemu lagi di postingan mengenai A.I berikutnya ya! Saya pun baru belajar, jadi saya sangat menerima saran dan pesan untuk pengembangan lainnya. Terima kasih!
Sumber: Udemy, Sujal Patel. (Introduction to A.I in software testing)
Comments
Post a Comment