SOFTWARE TESTING FUNCTIONAL TESTING NON FUNCTIONAL TESTING FUNCTIONAL TESTING “ Black Box Testing atau yang sering dikenal dengan sebutan Functional Testing adalah metode software testing yang digunakan untuk menguji perangkat lunak tanpa mengetahui struktur internal kode atau Program. “ PENGUJIAN FUNGSIONAL ADALAH JENIS PENGUJIAN YANG TUGASNYA ADALAH MELAKUKAN VERIFIKASI BAHWA SELURUH FUNGSI APLIKASI PADA PERANGKAT LUNAK SUDAH BEROPERASI SESUAI DENGAN APA YANG PERANCANG DIHARAPKAN. ” “ MESKIPUN PENGUJIAN DENGAN FUNCTIONAL TESTING INI BIASANYA DILAKUKAN DI BAGIAN AKHIR DARI SIKLUS PENGEMBANGAN, TIAP-TIAP KOMPONEN DAN PROSES SEBENARNYA JUGA DAPAT DIUJI PADA AWAL PENGEMBANGAN, BAHKAN DAPAT DIUJI SEBELUM SISTEM DINYATAKAN BERFUNGSI, TESTING INI PUN BISA DILAKUKAN UNTUK SELURUH SISTEM. PENGUJIAN INI MEMERLUKAN PEMIKIRAN MENGENAI KEMUNGKINAN TERJADINYA FUNGSI YANG HILANG. PENGUJI BAHKAN DIMINTA MEMBUAT DAFTAR FUNGSIONAL TAMBAHAN YANG BISA DIKEMBANGKAN OLEH SUATU PRODUK SELAMA PROSES PENGUJIAN FUNGSIONAL. ” “ FUNCTIONAL TESTING MEMILIKI INTI YAITU PENGUJI MELAKUKAN UJI BERDASARKAN FUNGSI-FUNGSI PADA APLIKASI YANG AKAN DIBANGUN. MISALNYA, FUNGSI BUTTON SAVE, EDIT, DELETE. PENGUJI HARUS DAPAT MEMBUKTIKAN BAHWA CATATAN TERSEBUT BENARBENAR TER-SAVE, EDIT ATAU DELETE. ” Jenis-Jenis Functional Testing 1. Unit Testing, yaitu pengujian yang memiliki tujuan untuk mengisolasi tiap-tiap bagian program dan mengecek setiap bagian tersebut apakah sudah sesuai dengan apa yang dibutuhkan. 2. Integration Testing, merupakan pengujian yang bertujuan untuk membuat kombinasi dari bagian-bagian aplikasi demi menentukan apakah bagian tersebut bisa berjalan benar secara bersamaan. 3. System Testing, adalah pengujian yang dilakukan setelah sukses pada integration testing. Pengujian ini dilakukanlah secara keseluruhan hingga ditentukan apakah sistem secara menyeluruh sudah sesuai dengan standar kualitas ataukah belum. 4. Regresion Testing, merupakan testing yang tujuannya untuk mengatasi revisi sehingga tidak ada masalah baru yang ditimbulkan dari pengujian software sebelum- sebelumnya. 5. Acceptance Testing, yaitu pengujian yang memiliki hubungan dengan quality assurance. 6 α / β testing, sebelum perangkat lunak rilis, kadang-kadang diberikan kepada sekelompok pengguna potensial yang dipilih untuk uji coba (alpha testing) dan / atau kumpulan perwakilan pengguna yang lebih besar (beta testing). Pengguna ini melaporkan masalah pada produk. Pengujian alfa dan beta seringkali tidak terkontrol dan tidak selalu disebut dalam rencana uji. Alpha (small groups), itu dilakukan oleh tim uji dalam organisasi yang mengembangkan perangkat lunak. Beta (larger groups), hal ini dilakukan oleh sekelompok pelanggan yang loyal terhadap perangkat lunak yang akan diujikan. “ PENGUJIAN FUNGSIONAL BIASANYA MELIBATKAN ENAM LANGKAH 1. IDENTIFIKASI FUNGSI YANG DIHARAPKAN DILAKUKAN PERANGKAT LUNAK 2. PEMBUATAN DATA INPUT BERDASARKAN SPESIFIKASI FUNGSI 3. PENENTUAN KELUARAN BERDASARKAN SPESIFIKASI FUNGSI 4. EKSEKUSI KASUS UJI 5. PERBANDINGAN KELUARAN AKTUAL DAN YANG DIHARAPKAN 6. UNTUK MEMERIKSA APAKAH APLIKASI BERFUNGSI SESUAI KEBUTUHAN PELANGGAN ” ALPHA DAN BETA TESTING “ Pengujian alfa adalah pengujian operasional simulasi atau aktual oleh calon pengguna / pelanggan atau tim pengujian independen di situs pengembang. Pengujian alfa sering digunakan untuk perangkat lunak off-the-shelf sebagai bentuk pengujian penerimaan internal sebelum perangkat lunak masuk ke pengujian beta “ Pengujian beta Pengujian beta dilakukan setelah pengujian alfa dan dapat dianggap sebagai bentuk pengujian penerimaan pengguna eksternal. Versi perangkat lunak, yang dikenal sebagai versi beta , dirilis untuk audiens terbatas di luar tim pemrograman yang dikenal sebagai penguji beta. Perangkat lunak dirilis ke sekelompok orang sehingga pengujian lebih lanjut dapat memastikan produk memiliki sedikit kesalahan atau bug . Versi beta dapat dibuat tersedia untuk publik terbuka untuk meningkatkan bidang umpan balik ke jumlah maksimal pengguna di masa mendatang dan untuk memberikan nilai lebih awal, untuk jangka waktu yang diperpanjang atau bahkan tidak terbatas ( beta abadi ). “ Bagaimana Program di uji? “ Pengujian program meliputi menjalankan berbagai pengujian kemudian menjalankan data yang sebenarnya untuk memastikan program bekerja. Dua aktivitas utama adalah desk-checking dan debugging. Langkah tersebut dinamakan pengujian alfa. Melakukan desk-checking. Desk-checking hanya membaca hingga tuntas atau memeriksa program untuk memastikan bahwa program bebas kesalahan dan bahwa logikanya bisa bekerja dengan baik. dengan kata lain, desk-checking sama seperti proofreading. “ Debug program. Setelah program melewati desk-checking, kesalahan lain atau bug masih tetap bisa muncul. Debug berarti mendeteksi, menempatkan, dan memindahkan semua kesalahan pada sebuah program komputer. Kesalahan bisa berupa kesalahan sintaks atau logika. Kesalah sintaks disebabkan oleh kesalahan tipografi dan penggunaan bahasa pemograman yang tidak benar. Kesalahan logika disebabkan penggunaan struktur kontrol yang salah. Program yang disebut diagnostic,dapat digunakan untuk memeriksa sintaks program dan menampilkan pesan kesalhn sintaks. program diagnostic selanjutnya mebantu mengidentifikasi dan memechakan masalah. “ Menjalankan data yang sebenarnya. Setelah desk-checking dan debugging program akan berjalan dengan baik. Akan tetapi, program masih perlu diuji dengan dat riil, dan ini disebut pengujian beta. sebenarnya sangat disarankan untuk menguji program dengan data yang rusak , tidak lengkap atau melebihi kuantitas utuk melihat apakah akan membuat sistem akan mengalami crash. Tim pemograman dapat melakukan percobaan-percobaan dengan menggunakan data yang diuji berbeda-beda, sebelum mereka yakin program dapat dirilis. Namun demikian, sesudah rilis pun masih terjadi bug mengingat pencarian kesalahan secara lengkap dipandang tidak ekonomis. “ CONTOH KASUS PENGUJIAN SECARA BETA “ Uji coba Microsoft Office 365 Beta di 13 Negara Dengan Microsoft Office 365, pengguna dapat bekerjasama dengan lebih mudah dari berbagai lokasi di hampir semua perangkat. Kolaborasi baik di dalam dan di luar organisasi menjadi lebih mudah dan sederhana. Microsoft mengeluarkan versi beta secara terbatas untuk Microsoft Office 365 di 13 negara dan wilayah. Penggunaan komputasi awan tidak memerlukan perubahan cara bekerja, karena Microsoft Office 365 bekerja dengan browser yang berfungsi di platform mobile maupun aplikasi desktop. Microsoft Office 365 akan tersedia pada tahun depan di seluruh dunia. Mulai hari ini, pengujian Microsoft Office 365 di beberapa organisasi di 13 negara di seluruh dunia, dan versi beta akan diperluas ke lebih banyak organisasi dari waktu ke waktu. Microsoft Office 365 akan tersedia secara umum di 40 negara pada tahun depan. Non-Functional Testing “ Non-functional testing merupakan pengujian yang melakukan verifikasi pada kebutuhan non-fungsional seperti performa dan kegunaan sebuah aplikasi. Non-functional testing lebih kepada meningkatkan kualitas sebuah aplikasi. Kualitas yang dimaksud yaitu bergantung pada Waktu, Akurasi, Stabilitas, Kebenaran dan Durability di berbagai macam keadaan. Non-functional testing sulit untuk dilakukan secara manual namun dapat dilakukan dengan bantuan aplikasi automated testing. Nonfunctional testing menggunakan teknik white-box testing. “ Beberapa Tipe Non-Functional Testing 1 Performance Testing Pada performance testing akan melakukan pengujian pada beberapa aspek performa aplikasi di bawah beban kerja yang diharapkan. Aspek-aspeknya yaitu: - Speed : Kecepatan aplikasi cepat atau lambat - Scalability : Jumlah banyaknya pengguna yang dapat aplikasi tangani - Stability : Apakah aplikasi stabil pada berbagai jumlah pengguna - Reability : Cara aplikasi menangani jika melebihi beban kerja (overload) 2 Load Testing Load Testing adalah pengujian yang merusak aplikasi. Maksudnya yaitu suatu aplikasi akan diberikan beban kerja dengan jangka waktu yang telah ditentukan dan diharapkan mampu menangani beban tersebut. Pada load testing, beban kerja yang diberikan yaitu beban kerja dari batas kerja yang telah ditentukan. 3 Security Testing Security Testing ini sangat penting karena untuk menghindari kerugian yang diakibatkan data yang tercuri oleh kejahatan hacking. Fokus dari pengujian ini yaitu menemukan semua celah keamanan dan kelemahan aplikasi yang dapat mengakibatkan data hilang. 4 Security Testing Security Testing ini sangat penting karena untuk menghindari kerugian yang diakibatkan data yang tercuri oleh kejahatan hacking. Fokus dari pengujian ini yaitu menemukan semua celah keamanan dan kelemahan aplikasi yang dapat mengakibatkan data hilang. 5 Recovery Testing ( pengujian pemulihan ) pengujian pemulihan adalah kegiatan pengujian seberapa baik sebuah aplikasi yang mampu pulih dari crash, kegagalan hardware dan masalah serupa lainnya. Pengujian pemulihan kegagalan paksa perangkat lunak dalam berbagai cara untuk memverifikasi pemulihan yang dilakukan dengan benar. Pengujian pemulihan tidak harus bingung dengan uji reliabilitas, yang mencoba untuk menemukan titik tertentu di mana kegagalan pengujian occurs.