Berikut adalah berbagai jenis atau istilah-istilah pengujian yang sering dengar di dunia pengembangan perangkat lunak.

 

 

Black-box testing

Pada pengujian ini, perangkat lunak secara sederhana diibaratkan sebagai suatu kotak hitam (black box). Ini adalah salah satu bentuk pengujian yang paling umum. Saat Anda melakukan black-box testing, Anda hanya peduli dengan input dan output. Anda tidak peduli bagaimana hasil aktual dihasilkan. Anda juga tidak tahu apa-apa tentang kode atau cara kerjanya. Ada suatu set input tertentu yang masuk ke dalam perangkat lunak yang kemudian menghasilkan serangkaian output. Kebanyakan pengujian dilakukan dengan cara ini karena sebagian besar hasil pengujian ini tidak menyimpang. Dari pengujian ini juga diketahui bahwa perangkat lunak tersebut berfungsi atau tidak. Ada berbagai kelebihan dari black-box testing. Pengujian ini menyederhanakan pengujian yang dilakukan karena hanya input & output yang dilihat. Dalam pengujian ini, tidak harus melibatkan orang yang dekat dengan teknologi sebagai penguji. Dari pengujian ini didapatkan hasil pengujian dari perspektif pengguna. Meskipun demikian, ada berbagai kekurangan dari black-box testing, yaitu alasan kesalahan tidak terlihat, sulit untuk merancang kasus uji, dan penguji memiliki pengetahuan aplikasi yang terbatas.

 

 

White-box testing

Pengujian white-box yang sesungguhnya adalah ketika Anda memahami beberapa internal sistem dan Anda memiliki akses ke source code yang digunakan dalam pengujian Anda yang menghasilkan informasi dari pengujian yang dilakukan serta target yang diharapkan dari pengujian tersebut. White-box testing berkebalikan dengan black-box testing. Dengan pengujian white-box, Anda setidaknya memiliki beberapa gagasan tentang apa yang terjadi di dalam perangkat lunak.

Kelebihan dari white-box testing adalah sebagai berikut. Pengujian ini dapat menemukan bug tersembunyi lebih efisien. Kemudian, masalah dan bug dapat ditandai dengan cepat sehingga kode program akan dioptimalkan. Kekurangan white-box testing adalah sebagai berikut. Tester pada pengujian ini harus memiliki pengetahuan mengenai source code yang diuji. Dalam pengujian ini, diperlukan akses ke source code yang diuji. Selain itu, pengujian ini  berfokus pada perangkat lunak yang ada sehingga ada kemungkinan bahwa tidak ditemukannya fungsionalitas yang hilang.

 

Acceptance testing

Ide dasar pengujian penerimaan adalah bahwa Anda memiliki beberapa tes yang menguji actual requirement atau harapan pelanggan, dan tes lain yang dilakukan terhadap sistem secara keseluruhan. Kadang pengujian ini disebut User Acceptance Testing (UAT), kadang juga disebut pengujian sistem (system testing). Pengujian semacam ini bisa menguji fungsionalitas sistem atau bisa juga menguji kegunaan atau keduanya. Idenya dari pengujian ini adalah menguji apa yang diharapkan yang dibandingkan dengan apa yang sebenarnya terjadi. Kelebihan pengujian ini adalah pengujian ini menunjukkan usabilitas sistem yang diuji sehingga masalah usabilitas dapat segera ditemukan tahap awal dan diperbaiki serta umpan balik dapat diimplementasikan sejak awal dalam proses pengembangan. Kekurangan pengujian ini adalah pengujian ini membutuhkan tester dengan kriteria tertentu dan perlu waktu yang cukup lama untuk menyiapkan tahap awal dari pengujian ini. Selain itu, pengujian ini perlu diterapkan di lingkungan yang berbeda dari lingkungan pengujian.

 

Automated testing

Pengujian otomatis adalah pengujian apa pun di mana pelaksanaan pengujian dan verifikasi hasil dilakukan secara otomatis. Jadi, Anda dapat mengotomatiskan pengujian aplikasi web dengan menjalankan skrip yang membuka halaman web, memasukkan beberapa data, menekan beberapa tombol dan kemudian memeriksa beberapa hasil pada halaman.

Anda juga dapat mengotomatiskan pengujian suatu API dengan menulis skrip yang memanggil API dengan berbagai data dan kemudian memeriksa hasil yang dikembalikan. Hari-hari ini semakin banyak pengujian yang mengarah ke pengujian otomatis. jika kasus pengujian yang dijalankan berulang-ulang secara manual dapat menimbulkan membosankan, rawan kesalahan dan memerlukan biaya yang mahal.

 

Regression testing

Pada dasarnya regression testing dilakukan untuk memverifikasi bahwa sistem masih berfungsi seperti sebelumnya. Tujuan pengujian regresi adalah untuk memastikan perangkat lunak tidak mengalami kemunduran secara fungsionalitasnya. Pengujian ini menjadi sangat penting terutama dalam metodologi pengembangan Agile yang melakukan pengembangan perangkat lunak secara bertahap. Suatu fitur baru yang ditambahkan dapat berpotensi merusak fitur yang sudah ada. Sebagian besar automated testing adalah regression testing karena seluruh tujuan mengotomatisasi tes adalah agar dapat dijalankan beberapa kali.

 

Functional testing

Pengujian fungsional adalah istilah lain yang digunakan dalam dunia testing untuk merujuk pada aktivitas pengujian dimana yang sedang diuji adalah fungsionalitas aktual dari sistem. Hal ini tampak jelas dari istilah tersebut. Namun, ternyata Anda bisa menguji semua hal yang tidak terkait dengan fungsi, seperti kinerja, usabilitas, ketahanan, keamanan, skalabilitas. Jadi, functional testing adalah jenis pengujian di mana Anda benar-benar peduli dengan semua yang seharusnya dilakukan oleh sistem dari perspektif fungsional. Jika saya memasukkan input ini dan menekan tombol ini, apakah saya mendapatkan output yang diharapkan? Tidak peduli berapa lama, tidak peduli jika layar berkedip merah terang dan komputer mulai berasap, apakah saya mendapatkan hasil yang saya harapkan?

 

Exploratory testing

Gagasan di balik exploratory testing adalah bahwa Anda memiliki beberapa pedoman, ide, rencana awal, serta cara pengujian yang akan dilakukan pada area aplikasi Anda. Kemudian, Anda melakukan pengujian tanpa adanya kasus uji, menjelajahi aplikasi, dan mencari hal-hal yang berpotensi salah atau perilaku aplikasi yang tidak terduga. Seringkali, sesi exploratory testing dicatat, sehingga jika kesalahan ditemukan, masalah dapat ditelusuri kembali sesuai dengan langkah-langkah yang dilakukan oleh tester pengujian ini. Pengujian eksplorasi sering dapat mengungkap bug yang tidak akan pernah ditemukan dengan kasus uji sebagai skenario pengujian.

 

Selain pengujian-pengujian yang telah disebutkan di atas, masih ada bentuk-bentuk pengujian lainnya. Load testing merupakan pengujian yang menitiberatkan pada bagaimana kinerja suatu aplikasi di bawah beban berat. Performance testing merupakan pengujian yang menguji kinerja aplikasi berdasarkan skenario tertentu. Recovery testing merupakan pengujian yang berfokus pada pemulihan dari kondisi kesalahan atau masalah hardware. Security testing merupakan pengujian yang terkait keamanan sistem. Selain itu, juga ada stress testing, usability testing, accessibility testing, dan bentuk pengujian yang lainnya.

 

 

Sumber=

https://usersnap.com/blog/software-testing-basics/

https://ds6br8f5qp1u2.cloudfront.net/blog/wp-content/uploads/2017/07/software-testing-basics-7-common-types.jpg?x12781