Apa yang dimaksud dengan Pengujian perangkat lunak atau Software Testing?

Pengujian perangkat lunak atau Software Testing adalah aktivitas-aktivitas yang bertujuan untuk mengevaluasi atribut-atribut atau kemampuan sebuah program atau sistem dan penentuan apakah sesuai dengan hasil yang diharapkan.

  • Hal ini juga dapat dinyatakan sebagai proses validasi dan verifikasi bahwa program perangkat lunak atau aplikasi atau produk:
  • Memenuhi bisnis dan persyaratan teknis yang dipandu itu desain dan pengembangan
  • Bekerja seperti yang diharapkan
  • Dapat diimplementasikan dengan karakteristik yang sama.

Pengujian perangkat lunak memiliki tujuan yang berbeda. Tujuan utama dari pengujian perangkat lunak adalah sebagai berikut:

  • Menemukan cacat yang mungkin bisa dibuat oleh programmer ketika mengembangkan perangkat lunak.
  • Mendapatkan kepercayaan dan memberikan informasi tentang tingkat kualitas.
  • Untuk mencegah cacat.
  • Untuk memastikan bahwa hasil akhir memenuhi bisnis dan kebutuhan pengguna.
  • Untuk memastikan bahwa itu memenuhi BRS yang Spesifikasi Kebutuhan Bisnis dan SRS yang Kebutuhan Sistem Spesifikasi.
  • Untuk mendapatkan kepercayaan dari pelanggan dengan menyediakan produk yang berkualitas.

Apa yang dimaksud dengan Pengujian perangkat lunak atau Software Testing ?

Software Testing atau Pengujian perangkat lunak merupakan suatu proses investigasi yang dilakukan untuk mendapatkan informasi mengenai kualitas dari suatu produk atau layanan yang sedang diuji, atau lebih spesifiknya software testing adalah proses mengeksekusi suatu program untuk menemukan bug (kesalahan atau cacat lainnya) dari perangkat lunak.

Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak secara obyektif dan independen, yang bermanfaat untuk memahami tingkat resiko pada implementasinya.
Hal ini juga dapat dinyatakan sebagai proses validasi dan verifikasi bahwa sebuah program:

  • Memenuhi persyaratan dan kebutuhan teknis yang mendasari perancangan dan pengembangan perangkat lunak tersebut.

  • Bekerja seperti yang diharapkan.

  • Dapat diterapkan menggunakan karakteristik yang sama.

Testing Levels


Beberapa tahapan testing yang umum dilalui oleh aplikasi adalah sebagai berikut :

1. Unit/Component Testing

Terbagi atas testing terhadapt unit dan component:

  • Unit testing merupakan proses testing dimana pengujian dilakukan pada bagian basic dari kode program, contohnya pada pengujian kode program pada event, procedure dan function. Dengan Unit testing meyakinkan bahwa masing-masing unit bekerja sebagaimana mestinya.

  • Component testing merupakan, pengujian dilakukan pada bagian kode program secara terpisah dari bagian yang lain, component testing dapat dilakukan setiap kali sebuah kdoe unit selesai dibuat, pengujian kode unit pun dijalankan baris per baris untuk memastikan proses berjalan seperti yang diinginkan.

2. Integrating Testing

Setelah Unit/Component testing dijalankan, langkah selanjutnya adalah memerika bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi (bekerja secara bersamaan), bukan lagi sebagai unit individu. Jika pada tahapat unit testing ada dua function yang berjalan baik secara individu, maka pada tahap Integration Testing, pengujian akan dilakukan dari hasil interaksi kedua function tersebut, apakah bekerja sesuai hasil yang di harapkan, pengujian juga harus dilakukan di seluruh kondisi yang mungkin terjadi dari hasil antar unit tersebut.

3. System Testing

Menceakup testing aplikasi yang telah selesai didevelop. Karena itu, aplikasi harus terlihat dan berfungsi sebagaimana mestinya terhadap end-user atau pengguna akhir. Untuk itu, pengujian dilakukan menggunakan data yang menggambarkan pengguna sesungguhnya terhadap aplikasi.

4. Acceptance Testing

Seperti Integration Testing, Acceptance Testing juga meliputi testing keseluruhan aplikasi. Perbedaannya terletak pada siapa yang melakukan testing. Pada tahap ini, end-user yang terpilih melakukan testing terhadap fungsi-fungsi aplikasi dan melaporkan permasalahan yang ditemukan. Testing yang dilakukan merupakan simulasi penggunaan nyata dari aplikasi pada lingkungan yang sebenarnya. Proses ini merupakan salah satu tahap final sebelum pengguna menyetujui dan menerima penerapan sistem aplikasi yang baru. Karena itu pada tahap ini sudah tidak difokuskan untuk mengangkat permasalahan kecil seperti kesalahan pengetikan, ataupun desain aplikasi. Hal-hal minor seperti di atas sudah seharusnya ditangani selama Unit/Component Testing dan Integration Testing.

5. Regression Testing

Regression Testing mencakup pengujian ulang terhadap unit, component, proses, atau keseluruhan aplikasi setelah perbaikan suatu kesalahan dilakukan.Regression Testing memastikan permasalahan yang terjadi telah ditanggulangi, dan tidak terdapat permasalahan baru yang timbul sebagai efek perbaikan tersebut. Selain itu, tahap ini tidak hanya berguna untuk melakukan pengujian aplikasi, tetapi dapat juga digunakan untuk melakukan pemantauan kualitas dari output yang dihasilkan. Sebagai contoh, Regression Testing memantau ukuran file, waktu yang dibutuhkan untuk melakukan suatu tes, waktu yang dibutuhkan untuk melakukan kompilasi,dan lain sebagainya.

Testing Methods


1. White Box
White box testing adalah pengujian yang didasarkan pada pengecekan terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara procedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%.

Pengujian white box:

  • Untuk mengetahui cara kerja suatu perangkat lunak secara internal.

  • Untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang dirancang.

Pelaksanaan pengujian white box:

  • Menjamim seluruh independent path dieksekusi paling sedikit satu kali. Independent path adalah jalur dalam program yang menunjukkan paling sedikit satu kumpulan proses ataupun kondisi baru.

  • Menjalani logical decision pada sisi dan false.

  • Mengeksekusi pengulangan (looping) dalam batas-batas yang ditentukan.

  • Menguji struktur data internal.

Berdasarkan konsep pengujian;
White box (structural) testing / glass box testing : memeriksa kalkulasi internal path untuk mengidentifikasi kesalahan.

Langkah-langkah white box:

  • Mendefinisikan semua alur logika

  • Membangun kasus untuk digunakan dalam pengujian

  • Melakukan pengujian.

Kelebihan White Box Testing

  • Kesalahan logika. Digunakan pada sintaks β€˜if’ dan pengulangan. Dimana White Box Testing akan mendeteksi kondisi-kondisi yang tidak sesuai dan mendeteksi kapan proses pengulangan akan berhenti.

  • Ketidaksesuaian asumsi. Menampilkan asumsi yang tidak sesuai dengan kenyataan, untuk di analisa dan diperbaiki.

  • Kesalahan ketik. Mendeteksi bahasa pemrograman yang bersifat case sensitive.

Kelemahan White Box Testing

  • Untuk perangkat lunak yang tergolong besar, White Box Testing dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumber daya yang besar untuk` melakukannya.

2. Black Box
Black box testing adalah pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi dianalogikan seperti kita melihat suatu koatak hitam, kit hanya bisa melihat penampilan luarnya saja, tanpa tau ada apa dibalik bungkus hitam nya. Sama seperti pengujian black box, mengevaluasi hanya dari tampilan luarnya(interface nya) , fungsionalitasnya.tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detilnya (hanya mengetahui input dan output).

Kelebihan Black Box

  • Dapat memilih subset test secara efektif dan efisien

  • Dapat menemukan cacat

  • Memaksimalkan testing investmen

Kelemahan Black Box

  • Tester tidak pernah yakin apakah PL tersebut benar – benar lulus uji.
Referensi

Software testing - Wikipedia
What is Software Testing? Basics, Tutorial, Importance, Interview Questions
Software Testing Tutorial

1 Like