Pengujian Otomatis vs Manual: Pro, Kontra, dan Mana yang Lebih Baik
Diterbitkan: 2021-10-05Pengujian adalah bagian tak tergantikan dari pengembangan perangkat lunak. Pengujian kualitas membantu memerangi pelanggaran keamanan, yang saat ini merugikan perusahaan sekitar $25 per menit menurut RiskIQ.
Dalam metodologi Agile, pengujian adalah proses berkelanjutan yang dimulai tepat di awal pengembangan. Saat ini, pengujian dapat dilakukan secara manual atau otomatis. Mari kita lihat dilema pengujian manual vs pengujian otomatis . Anda akan mempelajari keuntungan pengujian otomatisasi dibandingkan pengujian manual dan sebaliknya, dan mendapatkan saran tentang di mana harus menggunakan pendekatan pengujian yang mana.
Isi:
- Perbedaan antara pengujian manual dan pengujian otomatisasi
- Manfaat pengujian otomatisasi
- Kekurangan pengujian otomatis
- Manfaat pengujian manual
- Kekurangan dari pengujian manual
- Pengujian manual vs pengujian otomatis
- Di mana Anda harus menggunakan pengujian manual?
- Di mana Anda harus menggunakan pengujian otomatis?
Apa perbedaan antara pengujian manual dan pengujian otomatisasi?
Pengujian manual dilakukan langsung oleh spesialis jaminan kualitas (QA) yang menjalankan perangkat lunak melalui skenario pengujian yang dibuat berdasarkan persyaratan. QA menguji satu skenario pada satu waktu.
Dalam pengujian otomatis, skenario pengujian dijalankan oleh perangkat lunak, yang seringkali memungkinkan beberapa skenario untuk diuji secara bersamaan. Namun, agar pengujian otomatis berfungsi, skenario pengujian perlu disiapkan oleh spesialis jaminan kualitas otomatisasi , sehingga pengujian otomatis tidak bebas dari keterlibatan manusia. Untuk mengaktifkan pengujian otomatis, QA menulis skrip dalam bahasa pemrograman pilihan mereka — umumnya Python, C#, atau Java . Skrip tersebut kemudian diluncurkan menggunakan alat seperti TestComplete, Selenium, atau Appium . Perangkat lunak menjalankan tes lebih cepat daripada manusia tetapi membutuhkan manusia untuk bekerja.
Akhirnya, tidak semua tes dapat dijalankan oleh perangkat lunak.
Manfaat pengujian otomatisasi

Mengapa kita berusaha untuk mengotomatisasi segala sesuatu di tempat pertama? Karena (a) membebaskan waktu kita untuk melakukan hal-hal yang lebih menyenangkan dan lebih penting dan (b) memungkinkan kita mencapai tujuan lebih cepat. Ini berlaku untuk pengembangan perangkat lunak juga. Namun, ada lebih banyak untuk otomatisasi pengujian perangkat lunak.
Otomatisasi menghemat waktu untuk tugas yang memakan waktu
Menguji perangkat lunak dapat memakan banyak waktu dan seringkali berulang — misalnya, saat memeriksa apakah aplikasi bertindak seperti yang seharusnya setelah pembaruan pada aplikasi itu sendiri atau sistem operasi. Baik iOS dan Android sering diperbarui, dan terkadang pembaruan tersebut memengaruhi fitur dalam aplikasi. Jika pembaruan memengaruhi fitur yang digunakan aplikasi, Anda perlu menguji fitur tersebut untuk memastikan aplikasi berfungsi dengan baik dengan sistem operasi versi terbaru.
Tugas berulang seperti itu dapat dilakukan secara manual, tentu saja, tetapi membutuhkan banyak waktu dari QA. Sebagai gantinya, QA dapat membuat algoritme untuk menjalankan pengujian berulang ini secara otomatis saat QA bekerja pada pengujian fitur baru. Sebuah skrip dapat menjalankan pengujian hingga lima kali lebih cepat daripada seseorang — dan QA akan menyelesaikan beberapa tugas yang tidak otomatis atau menulis lebih banyak skrip pada saat yang bersamaan.
Selain itu, pengujian otomatis dapat berjalan 24/7 , sedangkan spesialis pengujian manual umumnya bekerja delapan jam sehari lima hari seminggu.
Contoh: Pengujian regresi diulang setelah setiap pembaruan ke fitur, aplikasi, atau sistem operasi. Tes ini memeriksa apakah pembaruan membuat bug atau konflik antar fitur. Dibutuhkan banyak waktu bagi QA untuk menjalankan dan menjalankan kembali pengujian ini secara manual setelah setiap pembaruan.
Spesialis otomatisasi QA dapat menulis skrip pengujian satu kali dan menjalankan pengujian sebanyak yang diperlukan. Saat pengujian ini berjalan, QA manual dan otomatisasi Anda mungkin sibuk menguji fitur lainnya.
Otomatisasi dapat membantu memerangi kesalahan manusia
Orang membuat kesalahan dan mungkin melewatkan banyak hal. Mesin, ketika diprogram dengan benar, tidak membuat kesalahan. Dan ketika ada kesalahan dalam kode pengujian atau eksekusinya, Anda akan langsung mengetahuinya karena pengujian akan gagal . Dengan pengujian otomatis, tidak ada "tampaknya berfungsi seperti yang diharapkan" — ini berfungsi atau tidak.
Contoh: Karena kurangnya waktu atau spesialis, QA manual dapat kehilangan tanda-tanda kecil bug dalam fitur . Bug semacam itu dapat menyebabkan kegagalan yang benar-benar epik, dan memperbaikinya pada tahap pengembangan selanjutnya akan menghabiskan lebih banyak waktu (dan uang) daripada memperbaikinya sejak awal.
Skenario ini tidak dapat terjadi saat komputer menjalankan pengujian karena komputer (a) menjalankan pengujian lebih cepat daripada orang dan (b) tidak terganggu, lelah, atau terlalu terbiasa dengan kode.
Otomatisasi dapat menghemat uang (jika diterapkan dengan benar)
Yang ini tampaknya sederhana — ketika QA menghabiskan lebih sedikit waktu untuk suatu tugas, biayanya lebih murah. Dalam perdebatan tentang pengujian manual vs otomatis, fakta ini sering muncul. Dan itu benar sampai batas tertentu: dalam jangka panjang, mengotomatisasi apa yang dapat diotomatisasi kemungkinan besar akan menghemat banyak jam kerja QA dan, karenanya, banyak uang.
Namun, ada sisi lain dari koin, karena perangkat lunak pengujian otomatis juga membutuhkan biaya. Untuk alasan ini, otomatisasi pengujian sering digunakan pada proyek-proyek besar daripada proyek jangka pendek di mana ada sedikit keuntungan dengan itu.
Beberapa tes hanya dapat dilakukan dengan pengujian otomatis
Ketika datang untuk menguji aplikasi besar yang seharusnya digunakan oleh banyak orang pada saat yang sama — konferensi video atau perangkat lunak streaming, alat pendidikan online, atau game populer — menguji kinerjanya secara manual di bawah tekanan praktis tidak mungkin. Pengujian yang memeriksa apakah suatu aplikasi dapat menahan beban beberapa ratus pengguna secara bersamaan tanpa gangguan akan membutuhkan ratusan penguji. Tidak terlihat seperti solusi yang logis atau ekonomis, bukan?
Namun, skrip dapat meniru beban seperti itu dengan mudah. Pengujian otomatis diperlukan untuk pengujian beban, tegangan, dan kinerja. Namun, tes ini tidak diperlukan untuk setiap aplikasi yang Anda kembangkan. Anda harus memutuskan apakah akan melakukannya untuk setiap produk secara terpisah.
Kekurangan pengujian otomatis

Sekarang ke kontra.
Pengujian otomatis lebih kompleks daripada pengujian manual
Script tidak menulis sendiri. QA menulisnya secara manual untuk setiap tugas, dan ini berarti seorang insinyur otomasi QA membutuhkan keterampilan pemrograman dan pengetahuan tentang setidaknya satu bahasa pemrograman (yang paling populer untuk pengujian otomatis adalah Python, Java, dan C#). Untuk menyiapkan pengujian otomatis, QA mengkompilasi skenario pengujian untuk menjalankan skrip. Setiap skenario ditulis tangan, yang membutuhkan waktu dari QA.
Namun, dengan tugas berulang dan tugas yang dapat diotomatisasi , dalam jangka panjang, otomatisasi adalah pilihan yang lebih baik.
Tes otomatis bukanlah jawaban untuk semua masalah
Ada hal-hal yang tidak dapat dilakukan oleh pengujian otomatis dengan teknologi saat ini. Misalnya, mereka tidak dapat menggantikan pengujian manual dalam hal desain pengujian atau keramahan pengguna — hal-hal ini memerlukan wawasan manusia. Namun, pengujian desain aplikasi dan keramahan pengguna tidak selalu dilakukan oleh QA: umpan balik pengguna dapat diperoleh dari grup pengujian pengguna selain karyawan perusahaan. Grup tes ini mungkin dibayar atau tidak.
Kasus lain di mana pengujian otomatis gagal adalah pengujian fungsionalitas yang sama sekali baru. Agar spesialis QA mengetahui cara memprogram skrip pengujian, mereka perlu mengetahui hasil yang diharapkan .
Sebagian besar pengujian perangkat lunak dapat dilakukan secara otomatis. Tapi tidak semua. Masih ada kasus di mana pengujian manual adalah metode yang disukai. Mari kita bicara sedikit tentang keuntungan pengujian manual dibandingkan pengujian otomatis .
Manfaat pengujian manual

Realitas pengembangan perangkat lunak modern adalah sebagian besar pengujian masih dilakukan secara manual. Alasannya bervariasi dari satu perusahaan ke perusahaan lain. Kami akan menyoroti beberapa di antaranya di sini.
Pengujian manual lebih mudah diterapkan
Cukup mudah untuk melengkapi perusahaan Anda dengan spesialis QA manual yang memenuhi syarat sebagai lawan dari ahli otomatisasi. Banyak tugas pengujian manual dapat dilakukan tanpa akses ke kode dan tanpa pengetahuan tentang pengkodean. Itulah mengapa pengujian terkadang dianggap sebagai pintu masuk ke pengembangan perangkat lunak — Anda dapat memulai dengan pengetahuan minimal dan memperoleh keterampilan di sepanjang jalan . Ini berarti ada lebih banyak QA manual yang bagus di pasaran daripada spesialis otomasi.

Pengujian manual adalah pilihan yang tepat untuk tugas yang sangat kompleks
Saat menguji fitur yang sangat kompleks, waktu untuk menjalankan pengujian manual dan biaya untuk melakukannya terkadang bisa lebih sedikit daripada waktu dan uang yang diperlukan untuk menulis skrip otomatisasi. Selain itu, tugas-tugas semacam ini biasanya hanya diselesaikan sekali karena kekhususannya. Hal ini membuat biaya otomatisasi menjadi tidak efisien .
Namun, ini juga akan bergantung setidaknya sebagian pada keterampilan QA Anda, karena spesialis otomasi berkualifikasi tinggi mampu membuat skenario kompleks lebih cepat dan lebih presisi daripada QA junior. Anda juga harus menghitung kegunaan pembuatan setiap skrip otomatisasi .
Pengujian manual lebih cocok untuk tugas-tugas tertentu
Desain antarmuka, pengalaman pengguna, dan kegunaan masih belum dapat diuji oleh skrip. Pengujian ini memerlukan umpan balik manusia — terkadang dari spesialis penjaminan kualitas, di lain waktu dari kelompok pengguna pengujian.
Kasus lain adalah ketika perhatian ekstra harus diberikan pada bagian-bagian tertentu dari sebuah tes — menulis skrip untuk tes semacam itu terlalu rumit dan biasanya tidak dapat diandalkan seperti menggunakan seorang spesialis yang tahu apa yang harus dicari.
Terkadang, QA juga melakukan tes secara spontan, dengan cara yang tidak biasa, dan tanpa persiapan. Ini disebut pengujian ad-hoc . Pengujian ad-hoc dapat membantu Anda menemukan kekurangan yang tidak terduga. Untuk tes semacam itu, menulis skrip tidak mungkin karena Anda tidak tahu hasil apa yang diharapkan. Selain itu, skrip semacam itu mungkin hanya akan digunakan sekali .
Contoh: Salah satu jenis pengujian ad-hoc, yang disebut pengujian monyet , bertujuan untuk mengetahui apa yang perlu dilakukan untuk merusak sistem. Tindakan acak dilakukan untuk melihat apakah ada yang memicu sistem mogok.
Kekurangan dari pengujian manual

Inilah mengapa pengujian otomatisasi sekarang sering lebih disukai daripada pengujian manual.
Pengujian manual secara inheren lebih lambat
Tugas yang sama yang mungkin membutuhkan QA manusia beberapa jam atau bahkan berhari-hari untuk menyelesaikannya akan memakan waktu hanya beberapa menit atau bahkan detik untuk sebuah mesin. Sistem dan skrip terkomputerisasi menganalisis data lebih cepat daripada manusia. Pengujian manual membosankan dan memakan waktu, terutama dengan tugas yang berulang, sementara otomatisasi pengujian yang dilakukan dengan persiapan yang tepat dapat dilakukan dengan cepat dan sederhana.
Pengujian manual rentan terhadap kesalahan
Orang-orang dapat melewatkan detail ketika datang ke tugas yang dijalankan berulang-ulang, seperti menguji ulang fitur setelah setiap pembaruan.
Mendistribusikan perhatian ke beberapa titik dalam satu tugas juga dapat menyebabkan masalah untuk QA, membuat hasil tes kurang dapat diandalkan . Dengan fitur kompleks, Anda harus memutuskan antara pengujian manual dan otomatis berdasarkan kasus per kasus. Terkadang, otomatisasi dapat memakan biaya dan waktu yang tidak rasional karena kerumitan skrip, terutama jika pengujian hanya dijalankan sekali.
Dalam jangka panjang, hanya memiliki pengujian manual bisa lebih mahal
Memang benar bahwa dengan pengujian otomatis, perusahaan perlu menginvestasikan jumlah yang terkadang cukup besar sejak awal, baik untuk perangkat lunak maupun untuk merekrut personel yang memenuhi syarat (QA otomatisasi lebih mahal daripada spesialis manual).
Namun, tergantung pada jenis dan jumlah pengujian yang diperlukan untuk proyek tersebut, pengujian manual juga dapat menjadi beban keuangan. Ketika sebuah proyek besar dan pengujian membutuhkan banyak waktu untuk diselesaikan atau diulang beberapa kali, biayanya meroket . Masalah ini harus ditangani pada awal perencanaan proyek untuk mengevaluasi biaya dari kedua opsi dan mencari tahu mana yang paling layak secara ekonomi. Biasanya, keputusan terbaik adalah menggabungkan pengujian manual dan otomatis.
Pengujian manual vs pengujian otomatis — pertarungan
Sekarang mari kita lihat perbandingan berdampingan antara pengujian manual vs pengujian otomatis.
| Pengujian manual | Pengujian otomatis |
|---|---|
Membutuhkan banyak waktu untuk menyelesaikannya | Membutuhkan waktu lebih sedikit untuk menyelesaikannya |
Tidak memerlukan keterampilan pemrograman | Membutuhkan keterampilan pemrograman |
Biaya awal yang lebih rendah tetapi semakin lama pengujian dijalankan, semakin tinggi biayanya | Membutuhkan investasi awal yang lebih tinggi tetapi lebih menguntungkan untuk proyek jangka panjang dengan banyak pengujian berulang |
Kemungkinan kesalahan yang lebih tinggi karena faktor manusia | Lebih tepat dan andal jika pengujian dibuat dengan baik |
Tugas kompleks membutuhkan spesialis tambahan | Tugas kompleks membutuhkan waktu persiapan tambahan |
Tidak cocok untuk pengujian kinerja, beban, atau stres | Tidak cocok untuk kegunaan, antarmuka pengguna, atau pengujian pengalaman pengguna |
Di mana Anda harus menggunakan pengujian manual?

Berikut adalah beberapa tes yang lebih baik dijalankan secara manual:
- pengujian eksplorasi. Ini adalah pengujian awal dari fitur yang benar-benar baru. Karena fungsionalitas yang terlibat masih baru dan tidak ada kasus uji siap pakai yang tersedia, mengotomatiskan pengujian semacam ini tidak mungkin dilakukan.
- GUI visual dan pengujian kegunaan. Pengujian antarmuka pengguna dan pengalaman pengguna mencakup evaluasi visual dan memerlukan pengamatan manusia.
- Pengujian ad-hoc. Ini adalah tes spontan yang dilakukan tanpa mengikuti persyaratan atau dokumentasi dan ditujukan untuk mengungkap bug yang tidak terduga.
Di mana Anda harus menggunakan pengujian otomatis?

Otomatisasi pengujian semakin banyak digunakan saat ini, dan kasus baru muncul yang dapat ditangani oleh pengujian otomatis. Berikut adalah beberapa contoh di mana pengujian otomatis direkomendasikan:
- Pengujian asap memeriksa fungsionalitas inti. Biasanya agak standar dan dapat digunakan kembali.
- Pengujian regresi menguji ulang fungsionalitas yang ada setelah pembaruan ke aplikasi itu sendiri atau sistem operasi dan dirancang untuk mengetahui apakah ada konflik yang terjadi.
- Pengujian kinerja/beban digunakan untuk menguji aplikasi yang ditujukan untuk penggunaan berat oleh banyak pengguna secara bersamaan. Pengujian beban mensimulasikan beban tinggi untuk melihat apakah aplikasi mogok.
- Pengujian stres mirip dengan pengujian beban dan memerlukan pembuatan beban virtual pada aplikasi. Namun, sementara pengujian beban dilakukan untuk melihat apakah aplikasi mampu menahan beban tertentu, pengujian tegangan bertujuan untuk mengetahui di mana letak batas beban. Dengan kata lain, itu membuat aplikasi mencapai titik puncaknya.
- Eksekusi berulang. Beberapa tes dijalankan berulang kali pada titik pengembangan tertentu atau tes standar dapat digunakan kembali untuk aplikasi yang berbeda.
Jadi apa putusannya?
Setelah membandingkan pengujian manual dan otomatis, kami tidak dapat mengatakan dengan pasti apakah pengujian otomatis lebih baik daripada pengujian manual.
Pengujian perangkat lunak adalah proses yang kompleks dan sangat bervariasi. Tergantung pada apa yang diuji, pada tahap apa, dan untuk tujuan apa, berbagai tes akan dilakukan. Dan ini, tentu saja, memengaruhi pilihan antara pengujian manual dan otomatis. Beberapa tes lebih baik otomatis dan yang lain masih harus dilakukan secara manual .
Cara terbaik bagi perusahaan pengembangan perangkat lunak untuk meningkatkan keterampilan mereka adalah dengan menggabungkan spesialis pengujian manual dan otomatis , membagi tugas pengujian di antara mereka dengan bijak, dan memanfaatkan kedua metode tersebut dengan sebaik-baiknya. Setiap proyek dapat menggabungkan pengujian manual dan otomatis dalam proporsi yang berbeda, dan yang terbaik adalah membuat strategi pengujian proyek dari awal.
