Photo by Somchai Kongkamsri from Pexels

Kiat memilih bahasa pemrograman untuk automation test

Saya mau belajar automation testing, tapi saya sedikit bingung pilih bahasa pemrograman mana yang paling bagus untuk dipelajari?

Satu hal yang harus dipahami, tidak ada yang namanya bahasa pemrograman paling bagus, lebih baik mencari yang "cocok" berdasarkan situasi dan lingkungan kita dan tim. Pilihan bahasa pemrograman itu tergantung pada kebutuhan dan selera aja sih kalo kata saya mah.

Photo by rawpixel.com from Pexels

Lingkungan

Misalkan dilingkungan tim yang mengerjakan program website dengan rails, tentu akan sangat cocok membuat automation dengan bahasa pemrograman ruby, atau ternyata tim menggunakan Spring untuk membuat aplikasi, tentu pilihan coding java/kotlin/atau jvm lain sangat cocok, kenapa begitu?

Karena dengan mengikuti bahasa yang sama dengan program yang menjadi target automation. kita bisa memiliki beberapa kelebihan, diantaranya: automation script bisa hidup berdampingan, satu tempat dengan repository code target aplikasi (application under test) jadi bisa dengan mudah masuk kedalam pipeline build program tersebut, lalu juga dengan bahasa pemrograman yang sama kita akan mendapatkan dukungan teknikal dari developer yang tak sungkan membantu kita ketika menemukan kendala dalam membuat coding automation, misalkan kita bisa bertanya cara menyusun kode menjadi lebih DRY (jangan mengulangi kodemu), konsultasi OOP ataupun library yang bisa membantu

Selera

Saya adalah termasuk yang senang menggunakan bahasa pemrograman yang dinamis seperti PHP, ruby, python ataupun javascript ketimbang menggunakan Java atau C#, karena menurut saya bahasa java/C# terlalu ribet cara koding nya, lebih banyak code ceremony style dalam penulisan sysntax nya, yang mengintimidasi saya bahwa kode yang dituliskan menjadi ribet dan panjang, ditambah lagi waktu compile kode yang bisa sekitar 5 detik cuma untuk menunggu kodenya menjadi executable, dan ini membuat saya merasa diperlambat sih :P



Berdasarkan pengalaman saya mempelajari automation ini (dalam konteks selenium) adalah dengan mencoba beberapa bahasa pemrograman langsung, misalkan saya pernah mencoba ruby, java, PHP, dan javaScript untuk membuat kerangka automation suatu website yang sama, banyak loh framework mature dan banyak dukungan dari komunitasnya seperti capybara di ruby, serenity di java, codeception di PHP, robotframework di python dan makin banyak lagi pilihan di javascript, bahkan yang sering menjadi topik hangat di komunitas ISQA adalah Katalon Studio dengan bahasa groovy nya.

Sehingga kita bisa mempelajari ekosistem darisemua bahasa pemrograman dan framework tadi, pada akhirnya akan membuat kita menjadi lebih paham kekurangan kelebihan masing-masing dan menjadikan generalist yang lebih baik lagi.

Jika ingin langsung terjun mempelajari automation, mungkin saran saya adalah:

  • Pilih tools atau library yang mudah dipelajari, bisa dari dokumentasi resminya, komunitas, ataupun banyak bertebaran artikel ketika di gugling
  • Lihat apakah tools tersebut ada rutin rilis feature, jangan gunakan tools yang sudah ditinggalkan dan tidak ada rilis lagi kedepannya, contohnya seperti calabash
  • Hal-hal teknis yang perlu diperhatikan juga seperti:
    • Library sudah stabil dan aktif dikembangkan, bisa mengikuti rilis selenium misalkan
    • Kemampuan unique test runner nya seperti junit, testNG, rspec
    • Bagaimana scalable test nya nanti, bisa mudah di buat parallel
    • Penulisan kode yang elegan
    • Mudah dan fleksibel saat dijalankan lewat command line 
  • Pelajari yang paling mudah dan pahami konsep automation nya, bisa mulai dari Katalon Studio (tapi untuk jangka panjang, saran saya jangan gunakan recordernya)
  • Jika sudah paham katalon studio dengan kemudahan graphical user interface nya, dan paham bagaimana automation bekerja (selector, interaction, expectation/assertion) coba pelajari automation dengan code langsung
  • Jika automation website saya akan memilih ruby dengan capybara nya (bisa pakai cucumber juga)
  • Jika automation mobile apps saya akan memilih java-appium karena tutorialnya banyak dan bisa multiplatform (tapi lebih cepat espresso dan xcuitest sih)
  • Jika autoamtion API saya akan memilih postman/newman dengan javascript nya

This article was updated on 17 Mei 2019

Comments