Selama pembuatan perangkat lunak tentunya kita sering menemukan bug atau error. Sehingga, untuk mengurangi atau menghindari banyaknya bug maka diperlukan pengujian perangkat lunak/software testing. Software testing adalah cara menilai produk perangkat lunak untuk membedakan antara informasi yang diberikan dan hasil yang diharapkan. Selain itu, untuk mengevaluasi karakteristik suatu produk. Pada dasarnya software testing penting dilakukan untuk menjaga kualitas perangkat lunak tersebut. Tetapi, apakah kalian sudah mengetahui jenis-jenis software testing?
Jenis-jenis software testing tergantung pada berbagai faktor seperti project requirements, anggaran, timeline, keahlian, dan kesesuaian. Terdapat dua jenis pengujian yang dilakukan oleh QA atau Software Tester yaitu functional testing dan non-functional testing. Pada artikel ini akan dibahas tentang jenis-jenis software testing pada functional testing.
Functional Testing adalah jenis pengujian yang memverifikasi bahwa setiap fungsi aplikasi telah beroperasi sesuai dengan requirement specification. Functional testing berfokus pada manual dan automation testing.
Jenis-jenis functional testing, antara lain :
- Unit Testing
- Integration Testing
- System Testing
- Interface Testing
- Regression Testing
- User Acceptance Testing
Unit Testing
Unit testing adalah salah satu tingkat dari software testing di mana masing-masing unit/komponen perangkat lunak diuji. Tujuannya adalah untuk memvalidasi bahwa setiap unit perangkat lunak telah berfungsi sesuai dengan rancangannya. Unit adalah bagian terkecil yang dapat diuji dari perangkat lunak. Biasanya mempunyai satu atau beberapa input dan biasanya mempunyai satu output.
Integration Testing
Integration testing adalah salah satu tingkat dari software testing di mana masing-masing unit digabungkan dan diuji sebagai kelompok. Tujuan dari tingkat pengujian ini adalah untuk mengekspos kesalahan dalam interaksi antara unit yang terintegrasi.
Terdapat beberapa pendekatan dalam integration testing, antara lain :
- Big Bang → Semua atau sebagian besar unit digabungkan dan diuji sekaligus. Pendekatan ini diambil ketika tim tester menerima seluruh perangkat lunak dalam satu bundel.
- Top Down → Unit tingkat atas diuji terlebih dahulu.
- Bottom Up → Unit level bawah diuji terlebih dahulu.
- Sandwich / Hybrid → Kombinasi dari pendekatan Top Down dan Bottom Up.
System Testing
System testing adalah salah satu tingkat dari software testing di mana perangkat lunak yang lengkap dan terintegrasi diuji. Tujuan dari pengujian ini adalah untuk mengevaluasi kepatuhan sistem dengan persyaratan yang ditentukan.
Task yang dilakukan dengan menggunakan system testing, yaitu :
- System Test Plan → Prepare, Review, Rework, Baseline
- System Test Cases → Prepare, Review, Rework, Baseline
- System Test → Perform
Interface Testing
Ketika aplikasi dikembangkan, maka ada beberapa komponen seperti server, database, dll. Koneksi yang mengintegrasikan dan memfasilitasi komunikasi antara komponen-komponen ini disebut sebagai Interface. Fungsi dari interface adalah memverifikasi bahwa komunikasi antara sistem dilakukan dengan benar.
Berikut ini tiga fase dalam interface testing :
- Configuration & development → Ketika interface dikonfigurasi, dan begitu pengembangan dimulai, konfigurasi perlu diverifikasi sesuai kebutuhan.
- Validation → Ketika pengembangan selesai, interface perlu divalidasi dan diverifikasi, ini dapat dilakukan sebagai bagian dari pengujian unit juga.
- Maintenance → Ketika kita mulai mengembangkan interface, kita perlu memastikan bahwa tidak ada bug apapun dalam kode yang dibuat sehingga diperlukan sebuah pengujian yang harus dijalankan pada interface.
Regression Testing
Regression testing adalah tahap penting & sangat berguna bagi pengembang untuk mengidentifikasi stabilitas produk dengan perubahan requirements. Regression testing adalah pengujian yang dilakukan untuk memverifikasi bahwa perubahan kode pada perangkat lunak tidak memengaruhi fungsionalitas produk yang ada.
Terdapat beberapa teknik dalam regression testing, antara lain :
- Retest all → Seluruh test case di test suite dieksekusi kembali untuk memastikan bahwa tidak ada bug yang terjadi karena perubahan kode.
- Regression Test Selection → Dalam metode ini, test case dipilih dari test suite untuk dieksekusi kembali. Tidak seluruh suite dieksekusi ulang. Pemilihan test case dilakukan atas dasar perubahan kode dalam modul.
- Test Case Prioritization → Test case dengan prioritas tinggi dieksekusi terlebih dahulu daripada prioritas menengah dan rendah. Prioritas test case tergantung pada kekritisan dan dampaknya pada produk.
- Hybrid → Teknik hybrid adalah kombinasi dari pemilihan regression testing dan priotitas test case. Teknik ini memilih test case yang dieksekusi kembali dengan bergantung pada prioritasnya.
User Acceptance Testing
Acceptance testing adalah salah satu tingkat dari software testing di mana suatu sistem diuji untuk dapat diterima. Tujuan dari pengujian ini adalah untuk mengevaluasi kesesuaian sistem dengan business requirements dan menilai apakah sudah layak untuk delivery.
Terdapat beberapa jenis user acceptance testing, antara lain :
- Business Acceptance Testing (BAT) → Ini untuk menilai apakah produk memenuhi tujuan bisnis atau tidak. Ini terutama berfokus pada manfaat bisnis karena kemungkinan kondisi pasar yang dapat berubah.
- Contract Acceptance Testing (CAT) → Ini adalah kontrak yang menentukan bahwa setelah produk ditayangkan, dalam periode yang telah ditentukan, accepteance test harus dilakukan dan harus melewati semua acceptance use cases.
- Operational Acceptance Testing (OAT) → Ini untuk menilai kesiapan operasional produk dan merupakan pengujian non-fungsional. Ini terutama mencakup pengujian-pengujian seperti recovery, compatibility, maintainability, technical support availability, reliability, fail-over, localization, dll.
- Alpha Testing → Ini untuk menilai produk dalam lingkungan pengembangan/pengujian oleh tim tester khusus yang biasa disebut alpha tester.
- Beta Testing → Ini untuk menilai produk dengan menunjukkan kepada end-user yang sebenarnya, biasanya disebut beta testers/beta users, di lingkungan mereka. Umpan balik terus menerus dari pengguna dikumpulkan dan dilakukan perbaikan.
Subscribe by Email
Follow Updates Articles from This Blog via Email
No Comments