DASAR-DASAR UJI PERANGKAT LUNAK
Pengujian bertujuan untuk mencari kesalahan. Pengujian yang baik adalah pengujian yang memiliki kemungkinan besar dalam menemukan kesalahan.
Karakteristik pengujian menurut Kaner, Falk, dan Nguyen [Kan93] menggambarkan atribut-atribut sebagai berikut untuk pengujian yang "baik" :
- Pengujian yang baik memiliki probabilitas tinggi untuk menemukan kesalahan. Tujuan pengujian ini harus memahami perangkat lunak dan mencoba untuk mengembangkan sebuah gambaran bagaimana perangkat lunak bisa gagal;
- Pengujian yang baik tidak berulang-ulang. Tidak ada manfaatnya jika melakukan pengujian yang memiliki tujuan yang sama dengan pengujian yang lain;
- Pengujian yang baik harus menjadi "bibit terbaik". Keterbatasan waktu dan sumber daya dapat mengurangi pelaksanaan bahkan hanya sebagian kecil dari pengujian ini;
- Pengujian yang baik harus tidak terlalu sederhana atau terlalu rumit. Meskipun memungkinkan untuk menggabungkan serangkaian pengujian menjadi satu kasus pengujian saja, akan mengakibatkan terjadinya banyak kesalahan yang harus ditutupi. Secara umum, pengujian harus dilaksanakan secara terpisah.
Pengujian perangkat lunak (software testing) adalah suatu teknik yang digunakan untuk menentukan bahwa perangkat lunak yang dihasilkan telah memecahkan masalah.
Tiga konsep yang harus diperhatikan dalam Pengujian Perangkat Lunak:
- Demonstrasi validitas perangkat lunak pada setiap tahapan pembangunan sistem;
- Penentuan validitas sistem akhir terhadap pemakai dan kebutuhan;
- Pemeriksaan implementasi sistem dengan menjalankan sistem pada suatu contoh data uji.
Dua kelas imput yang disediakan untuk proses uji perangkat lunak:
- Konfigurasi software termasuk software requiment specification, design specification, dan source code;
- Konfigurasi uji termasuk test plan & procedure, perangkat testing yang akan digunakan, test case dan hasil yang diharapkan.
Kemampuan sebuah perangkat lunak untuk bisa diuji:
- Kemampuan untuk bisa dioperasikan (Operability). Jika dirancang dan diimplementasikan dengan kualitas, relative sedikit kesalahan yang akan menghambat pelaksanaan penguji yang memungkinkan penguji berlanjut tanpa penyesuaian dan mulai dari awal;
- Kemampuan untuk bisa diobservasi (Observability). Input tersedia sebagai bagian dari pengujian yang menghasilkan output berbeda. Bagian dan variabel sistem terlihat atau dapat dipertanyakan selama eksekusi output yang salah bisa dengan mudah diidentifikasi;
- Kemampuan untuk dapat dikontrol (Controllability). Semua output yang mungkin dapat dihasilkan melalui beberapa kombinasi dari input, dan format I/O konsisten dan terstrukur. State dan variabel dari perangkat lunak dan perangkat keras dapat dikontrol langsung oleh penguji;
- Kemampuan untuk dapat disusun (Decomposability). Sistem perangkat lunak dibangun dari modul independen yang dapat diuji secara independen pula;
- Kesederhanaan (Simplicity). Program ini harus menunjukan kesederhanaan fungsionalitas, kesederhanaan structural, kesederhanaan kode;
- Stabilitas (Stability). Perubahan pada perangkat lunak jarang dikontrol ketika perubahan itu terjadi dan tidak membatalkan pengujian-pengujian yang telah ada. Perangkat lunak ini pulih melalui kegagalan;
- Kemampuan untuk bisa dipahami (Understandability). Perancangan arsitektur dan ketergantungan antara komponen-komponen internal, eksternal, dan yang dipakai bersama dipahami dengan baik. Dokumentasi teknis dapat langsung diakses, terorganisasi dengan baik, spesifik dan terperinci, dan akurat. Perubahan rancangan perlu dikomunikasikan dengan penguji.
TYPE TESTING
Di dalam suatu perusahaan IT atau website production yang memproduksi software atau website, pastinya memiliki 1 atau bahkan 3 orang software tester yang bertugas melakukan testing software atau website, seorang quality assurance atau tester bertugas mempersiapkan kasus pengujian untuk setiap case dan skenarionya menyelesaikan aktivitas persyaratan suatu sistem.
Dua jenis acceptance testing biasa dilakukan oleh perusahaan pengembang perangkat lunak, yakni:
- Alpha Test ⇒ Pengujian yang dilakukan pada perangkat lunak oleh end-user dengan adanya supervisi dan kontrol dari pengembang perangkat lunak;
- Beta Test ⇒ Pengujian yang dilakukan pada perangkat lunak oleh end-user tanpa adanya supervisi dan kontrol dari pengembang perangkat lunak. Jika ditemukan masalah, maka konsumen pemakai akan melaporkannya kepada pengembang perangkat lunak tersebut.
Sembilan jenis-jenis pengujian yang perlu diketahui oleh seorang quality assurance pada software, yaitu:
- System Testing ⇒ Pengujian untuk memastikan bahwa keseluruhan sistem tidak berfungsi dan bahwa sistem telah memenuhi persyaratan pengguna (user requirement). System testing biasanya dilakukan di akhir setiap iterasi untuk mengidentifikasi isu-isu penting, seperti masalah performance dari software. Biasanya test ini harus dilakukan sesering mungkin;
- Unit Testing ⇒ Pengujian software di mana QA menguji suatu unit program layak untuk tidaknya dipakai. Unit testing ini fokusnya pada pengujian unit yang terkecil pada desain perangkat lunak (komponen atau modul perangkat lunak). Karena dalam sebuah software banyak memiliki unit-unit kecil maka untuk mengujinya biasanya dibuat program kecil atau main program untuk menguji unit-unit software. Unit-unit kecil ini dapat berupa fitur atau fungsi dan pengujian unit biasanya dilakukan saat kode program dibuat;
- Integration Testing ⇒ Berbeda dengan unit testing, integration testing adalah pengujian dari hasil pengabungan unit-unit yang ada di dalam software. Biasanya QA menguji bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individual. Integration testing sebaiknya dilakukan secara bertahap untuk menghindari kesulitan penelusuran jika terjadi kesalahan error / bug;
- Usability Testing ⇒ Usability test adalah pengujian yang dilakukan untuk memastikan apakah software sudah sesuai dengan persyaratan dari pengguna. Umumnya usability test mengevaluasi persyaratan fungsional program dan kualitas dari user interface. User berinteraksi dengan sistem untuk menentukan apakah fungsi telah seperti yang diharapkan dan apakah user interface membuat sistem dapat mudah digunakan. Pengujian ini sering dilakukan untuk mendapatkan feedback yang cepat dalam meningkatkan interface dan mengkoreksi kesalahan dalam komponen perangkat lunak;
- Performance Testing ⇒ Integration dan usability test yang menentukan apakah system dapat memenuhi kriteria kinerja berbasis waktu seperti response time atau throughput. Response time menentukan batas waktu maksimum yang diijinkan dari respon software;
- Smoke Testing ⇒ Pengujian yang akan dilakukan setelah software yang di dibuat untuk memastikan bahwa fungsi-fungsi penting dari program tersebut bekerja dengan baik. Smoke test biasanya dilakukan setiap hari atau beberapa kali per minggu;
- Stress Testing ⇒ Stress Testing adalah pengujian yang biasanya dilakukan dalam membuat sebuah website, dimana stress testing dilakukan untuk mengetahui sekuat apa server website kita menampung visitor dalam website tersebut, dengan cara melakukan hit dummy ke website menggunakan tools;
- Sanity Testing ⇒ Software testing yang akan dilakukan setelah software yang dibuat sudah hampir jadi sekaligus dengan fungsi-fungsi lengkapnya yang sudah jadi, dengan catatan bug-bug yang ditemukan pada saat smoke testing sudah berhasil di perbaiki. Tujuan dari sanity testing ini tentunya untuk memastikan bahwa bug-bug yang telah di perbaiki pada saat smoke testing sudah selesai diperbaiki dan tidak ada masalah lebih lanjut serta untuk menentukan bahwa fungsi yang diinginkan bekerja seperti yang diharapkan.
- Regression Testing ⇒ Jenis pengujian yang dilakukan saat mengembangkan software untuk mengetahui apakah fungsional sistem berjalan dengan baik. Singkatnya, tujuan utamanya yaitu untuk meminimalisir bug yang mungkin akan muncul setelah adanya pembaharuan fitur pada software.
APLIKASI YANG AKAN DI UJI COBA
Kami
akan melakukan sebuah tester aplikasi yaitu aplikasi e-voting berbasis website.
Dimana program tersebut kami buat dalam rangka memenuhi tugas akhir semester 4
dengan mata kuliah Rekayasa Perangkat Lunak, oleh sebab itu dikarenakan belum
melakukan sebuah testing yang benar maka kami memutuskan untuk melakukan
pengujian pada program yang kami buat dahulu. Untuk memenuhi tugas mata kuliah
Standar Uji Perangkat Lunak. Aplikasi ini terdapat 3 tampilan, yang pertama tampilan login, tampilan visi dan misi dan tampilan voting.
Tampilan Login
Semoga artikel ini dapat membantu dalam menjawab pertanyaan-pertanyaan mengenai dasar dan tipe uji perangkat lunak. Mohon maaf bila ada kesalahan dalam penulisan. Karena kesalahan hanya milik manusia dan kebenaran hanya milik Allah swt. Terima kasih☺️
---------------------------------------------------------------------------------------------------------------------------------
Daftar Pustaka :
---------------------------------------------------------------------------------------------------------------------------------
Daftar Pustaka :
Noniisphalisa.wordpress.com. Testing dan Implementasi Perangkat Lunak https://noniisphalisa.wordpress.com/2014/12/07/testing-dan-implementasi-perangkat-lunak/
Cybermatika.blogspot.com. Dasar-dasar Pengujian Perangkat Lunak diakses melalui https://cybermatika.blogspot.com/2016/01/dasar-dasar-pengujian-perangakat-lunak.html?m=1
-----------------------------------------------------------------------------------------------------------------------------
Create by :
Farhan Muhammad Naufal
Nabila Nur Fransiska R
Dwi Suci Anggraeni
Tidak ada komentar:
Posting Komentar