Pengertian Dan Tugas Software Tester
Pengertian Software Tester
Software tester adalah orang yang bertugas dan bertanggung jawab menguji kinerja perangkat lunak (software), apakah sudah sesuai dengan keinginan pengembangnya. Segala aspek di dalam software diuji, misalnya saja :
- Bug.
- Kesalahan dalam coding.
- Cacat dalam produk.
- Masalah lain yang bisa mempengaruhi fungsi dan kinerja software ke depannya.
Bisa dibilang, penguji perangkat lunak adalah bagian penting dari tim software development. Mereka harus menguji software secara menyeluruh untuk menemukan apakah ada cacat di dalamnya.
Jika semua oke dan tidak ada masalah, maka software tersebut bisa diluncurkan ke klien/konsumen. Namun jika ada masalah seperti bug, error dalam coding dan semacamnya, maka pihak developer akan memperbaikinya terlebih dahulu.
Selanjutnya tester akan kembali mengujinya apakah masih ada kesalahan atau sudah hilang sepenuhnya. Agar memiliki skill semacam itu, banyak hal yang harus dikuasai. Selain harus menguasai teknik software testing, mereka juga harus menguasai alat-alat yang digunakan untuk menguji software.
Tanggung Jawab Software Tester
Berikut daftar tugas dan tanggung jawab software tester selengkapnya :
- Menganalisis dan menyaring feedback dari customer yang dibutuhkan untuk mendapatkan validitas dan kelayakan.
- Berkolaborasi dan bersinergi dengan tim software development, quality control dan departemen-departemen lainnya.
- Menjadi pemimpin dalam seluruh tahap pengujian software, integrasi hingga regresi produk.
- Merancang dan mengembangkan skrip otomasi (jika dibutuhkan).
- Melakukan tracking untuk setiap kerusakan, kecacatan hingga inkonsistensi di dalam software.
- Melakukan testing produk di berbagai platform yang berbeda, misalnya di media sosial dan jaringan seluler lainnya.
- Mencatat dan melakukan analisis bug dan error yang ditemukan di software.
- Memberikan penilaian terhadap bahasa pemrograman yang digunakan oleh programmer/developer dalam proses software development.
- Merencanakan sumber daya yang dibutuhkan dalam proses software testing.
- Review dokumentasi software yang telah dibentuk oleh tim development.
- Menyelesaikan uji coba software sesuai dengan deadline yang ditentukan.
- Menjelaskan perbaikan sistem dan jaminan kualitas kepada tim development.
- Memberikan feedback yang objektif kepada tim software development.
- Menguji desain baru guna meminimalisir risiko bug dan kerusakan.
- Memberikan solusi yang tepat terhadap masalah-masalah yang ditemukan.
- Memberikan bantuan yang dibutuhkan kepada tim software development.
- Mendokumentasikan proses software testing dari awal hingga akhir.
- Menerapkan prinsip teknik berkualitas ke seluruh siklus hidup produk agile.
- Mempresentasikan hasil software testing ke tim produksi dan jajaran direksi.
- Memberikan penyuluhan tentang teknis software testing ke beberapa staf yang ada di perusahaan tersebut.
Skill Software Tester yang Harus Dipenuhi
Berikut skill minimal yang harus dimiliki, yaitu :
1. SQL
Software testing sangat berkaitan erat dengan data-data yang ada di dalam software, yang diatur dan disimpan di sebuah sistem database seperti MySQL, Oracle dan lain sebagainya. Karena itu, penting untuk mempelajari prinsip dasar SQL jika ingin menjadi penguji perangkat lunak yang mumpuni.
2. Skill Analisis
Untuk menjadi penguji software harus memiliki skill analisis yang baik, karena skill ini bisa memudahkan mereka untuk memecah tatanan software yang kompleks menjadi unit yang lebih sederhana. Setelah disederhanakan, mereka bisa menemukan kesalahan dalam software dengan mudah.
3. Sistem Linux
Linux adalah sistem operasi yang mendukung mayoritas alat yang digunakan untuk melakukan software testing, misalnya saja database, Web-Service dan lain sebagainya. Tanpa menguasai cara kerja sistem operasi Linux tidak bisa menguji software dengan baik.
4. Skill Organisasi dan Manajemen Waktu
Profesi ini juga harus memiliki skill untuk mengorganisasi banyak elemen dengan jobdesk yang berbeda-beda. Mereka juga harus pandai mengatur waktu, lebih-lebih mereka harus menyelesaikan proyek uji coba software sesuai deadline yang ditentukan.
5. Latar Belakang Pendidikan
Mempelajari software testing mungkin bisa dilakukan secara otodidak, namun akan lebih meyakinkan jika memiliki gelar dalam bidang IT, khususnya program studi ilmu komputer.
Metode yang digunakan Software Tester
Ada dua metode yang bisa dilakukan oleh software tester saat menguji perangkat lunak. Metode-metode tersebut adalah :
1. Manual testing
Seperti namanya, metode pengujian ini dilakukan secara manual. Penguji perangkat lunak akan berperan sebagai orang awam yang akan menggunakan perangkat lunak. Mereka akan melakukan beberapa pengujian untuk satu modul perangkat lunak yang diuji.
Metode ini bisa dianggap lebih dekat dengan kebutuhan klien karena profesi ini mengujinya dengan benar-benar menggunakan perangkat lunak tersebut. Selain itu, metode ini jauh lebih murah dibandingkan metode lainnya. Namun, rawan terjadi kesalahan dalam metode ini. Ketelitian mereka menjadi kunci utama keberhasilan pengujiannya.
- Manual testing memiliki kelebihan tersendiri, diantaranya :
- Lebih murah karena jika melakukan tes aplikasi sederhana tidak perlu menggunakan tools untuk mengetahui bug.
- Tidak perlu menggunakan tools dan script untuk membantu memberikan pendapat mengenai tampilan user interface.
- Mudah mendapatkan feedback dari pemiliknya langsung tentang apa yang disukai user dan yang tidak disukai.
- Manual testing memiliki beberapa kekurangan, diantaranya :
- Tidak teliti seperti automation testing, karena metode manual seperti ini tidak memerlukan script untuk mengetahui letak bugnya dimana.
- Pengecekannya dilakukan manual, misalnya menemukan banyak kesalahan maka dicek mulai dari awal lagi untuk memastikan perubahan baru tidak akan merusak aplikasi yang sudah jadi.
- Membuat tester merasa kelelahan, lagi-lagi karena pengecekan dilakukan manual maka tester akan lebih sering memeriksanya terus menerus untuk menghindari terjadinya suatu kesalahan.
2. Automatic testing
Metode berikutnya merupakan metode yang lebih modern. Mereka akan menggunakan bahasa pemrograman untuk menguji perangkat lunak. Cara ini memang lebih efektif dan mampu menemukan bug yang lebih banyak. Namun, ada juga kekurangan dari metode ini. Beberapa di antaranya adalah alurnya yang lebih rumit dan biaya yang lebih besar. Selain itu, software tester tidak akan mendapatkan data seputar user interface dan user experience.
- Automation testing memiliki beberapa kelebihan, diantaranya :
- Mudah menemukan bug, karena script bisa membantu menemukan kesalahan yang tester tidak temukan.
- Tidak seperti manual testing, jika mendapatkan perubahan pada masing-masing fitur, maka tidak perlu menulis ulang script karena dapat digunakan setiap saat.
- Estimasi waktu yang digunakan cukup cepat dibandingkan dengan manual testing.
- Automation testing memiliki beberapa kekurangan, diantaranya :
- Tidak memiliki feedback tentang user interface. Maka tidak akan dilakukan pengecekan terhadap UI, seperti warna, kontras, pemilihan font, dan button size.
- Biayanya cukup mahal dibandingkan dengan manual testing.
Alur Kerja Software Tester
Sebelum mengerjakan tanggung jawabnya, tugas sebelumnya dipegang oleh developer atau programmer. Mereka harus menyelesaikan modul perangkat lunak yang perlu diuji. Jika modulnya telah selesai, barulah software tester bisa menjalankan tugasnya. Beberapa profesi ini tergabung dalam tim agile yang alur pengerjaannya kurang lebih seperti ini :
- Pengembangan perangkat lunak oleh programmer. Baik back-end programmer maupun front-end programmer.
- Dilakukan pengujian pada perangkat lunak.
- Programmer membenarkan perangkat lunak sesuai hasil evaluasi yang diberikan.
- Dilakukan pengujian kembali atau langsung diserahkan pada klien.
Seluruh alur ini menjadi bagian dalam tim agile atau scrum. Semua alurnya dilakukan di bawah naungan kerangka kerja dengan pendekatan agile.