Software Testing
Software testing merupakan salah satu bagian penting dan sering digunakan dalam pengembangan dari suatu software. Dengan adanya software testing, software engineer mampu mengenali error atau kecacatan yang ada dari suatu software.Fitur-fitur utama pada software testing adalah verifikasi dan validasi. Software testing digunakan untuk menjawab pernyataan sebagai : Apakah software dapat berjalan atau berperilaku sebagaimana yang sudah ditentukan.
Strategi software testing dapat dilakukan secara manual atau otomatis. Menurut strategi pengujian manual, pendekatan yang lebih tradisional, penguji menyiapkan suite tes yang menurut mereka akan lebih baik menjalankan program. Alat pengujian perangkat lunak otomasi membantu dalam menghasilkan kasus uji dari spesifikasi program atau dari data teks aslinya. Pengujian manual adalah teknik pengujian di mana insinyur penguji menyiapkan test case secara manual dan mengeksekusinya untuk mengidentifikasi cacat pada perangkat lunak. Mengotomatiskan pengujian perangkat lunak menggunakan bahasa scripting seperti Python, JavaScript atau Tool Command Language karena kasus uji dapat dengan mudah dieksekusi oleh mesin dengan sedikit intervensi manusia dan perhatian.
Secara umum, sifat-sifat ini digunakan untuk menunjukkan sejauh mana komponen atau spesifikasi sistem sedang diuji:
- Awalnya mengumpulkan persyaratan yang dapat digunakan untuk memandu desainnya untuk pengembangan.
- Harus merespon dengan benar untuk semua variasi data input.
- Harus melakukan tugasnya di bawah batas waktu.
- Setelah instalasi, dapat dengan mudah dijalankan di lingkungan yang dimaksud.
- Dapat mencapai hasil yang diinginkan yang dibutuhkan oleh stakeholder.
Fase-fase pada Software Testing:
- Requirement analysis : Analisis persyaratan adalah langkah pertama dimana pengujian siklus dimulai dengan tinjauan umum persyaratan user. Tujuan dari requirement analysis adalah untuk memahami persyaratan yang penting untuk pengujian sebuah produk.
- Test Case Design and Development : Langkah ini digunakan untuk menemukan apa saja persyaratan komponen yang diperlukan. Spesifikasi desain diuji dan diperiksa dan membuat tinjauan atau review dari test spesifikasi.
- Test Execution : Pada tahap ini, melakukan peninjauan pada kode atau program yang ada. Melakukan eksekusi program, evaluasi tes dan memberikan hasil dari simulasi yang dilakukan.
- Test Closure : Tahap ini menghasilkan ringkasan dari testing yang telah dilakukan dan menyiapkan dokumentasi dari suatu proyek atau software.
- Test Process Analysis : Ringkasan akan dianalisis untuk meningkatkan kinerja dari suatu aplikasi dengan menggunakan teknologi baru atau menambahkan fitur-fitur tambahan yang diperlukan.
Level pada Software Testing :
- Unit Testing : Unit Testing adalah bagian terkecil yang dapat diuji dari seluruh aplikasi. Tujuannya untuk memberikan sepotong kode yang harus memenuhi persyaratan.
- Integration Testing : Dalam integration testing, kode akan dibagi menjadi beberapa segmen dan diuji sebagai kelompok. Tugas utama integration testing adalah untuk menganalisis parameter seperti persyaratan fungsional, persyaratan kinerja dan persyaratan keandalan yang ditempatkan pada item desain utama.
- Function Testing : Function Testing dapat disebut sebagai black-box testing. Dalam function testing, pengujian dilakukan dengan memberikan input yang valid, dan hasilnya dari diamati.
- System Testing : Ini dianggap sebagai jenis pengujian yang lebih terbatas, system testing berusaha mendeteksi segala cacat dalam unit perangkat lunak yang terintegrasi bersama.
- Acceptance testing: dikenal juga sebagai pengujian penerimaan operasional atau pengujian penerimaan lapangan karena dijalankan dengan mengikuti prosedur tes penerimaan yang telah ditentukan untuk mengarahkan pengguna tentang data mana yang akan digunakan setelah mengikuti prosedur langkah demi langkah.
- Regression testing: pada regression testing, aplikasi yang dikembangkan akan diuji dan menganalisis error atau penyimpangan yang ada ketika perubahan dibuat di program baru.
Manual Testing adalah tipe testing dari Software Testing, dimana tester melakukan testing terhadap software secara manual tanpa alat/tools, cara ini adalah cara traditional dalam menemukan bug pada software. Setiap software baru harus terlebih dahulu melalui proses Manual Testing sebelum bisa dilakukan Automation Testing, walaupun effort yang dikeluarkan sangatlah besar tetapi Manual Testing sangatlah berguna karena mampu mendeteksi bug yang tidak dilihat oleh Automated Testing.
Langkah-langkah Manual Testing:
- Menganalisa Requirement
- Membuat test plan
- Membuat test case
- Eksekusi dari test case
- Mencari kecacatan
- Memperbaiki kecacatan
Automation Testing adalah Teknik Software Testing, dengan membandingkan hasil yang diinginkan dengan hasil yang sebenarnya, dan biasanya dilakukan dengan menggunakan script atau testing tool, dalam Automation Testing pekerjaan dilakukan secara berulang-ulang sehingga tidak mungkin untuk dikerjakan secara manual.
Langkah-langkah Automation Testing
- Menilai dan mengevaluasi tool yang dipakai
- Merancang design
- Melakukan Implementasi
- Membuat Report
- Melakukan pengecekan
Testing Method
Static Testing atau Verification. Adalah proses testing saat program belum dijalankan atau kode program belum dieksekusi, tujuannya adalah untuk melakukan checking pada kode program, document, dan file. Static Testing biasanya berlangsung pada tahap pengembangan/development oleh karena dikenal juga sebagai Verification Testing.
4 Static Test Technique
- Inspection: tujuan utamanya adalah untuk menemukan kecacatan/defects, dilakukan oleh moderator dengan list pengecekan yang sudah disiapkan
- Walkthrough: Teknik testing dengan melakukan meeting sehingga participant dapat memberikan masukan/saran
- Technical Reviews: Teknik testing untuk memastikan pembuatan source code telah memenuhi teknikal spesifikasi dan standard yang ditentukan.
- Informal Reviews: document direview secara informal dan tidak berdasarkan prosedur, tujuannya adalah untuk meningkatkan kualitas document.
Dynamic Testing dilakukan saat program sedang berjalan/kode program sudah dieksekusi. Dengan memasukan input terhadap program kita dapat membandingkan output yang diinginkan, dengan begini kita bisa melihat perilaku dari software, performance, serta memonitor memori dari system.
Testing Approach
White Box Testing adalah proses testing yang fokus pada struktur code (source code) pada aplikasi yang akan dites, apakah fungsi-fungsi internal telah berjalan dengan baik dan benar sesuai dengan spesifikasi atau belum. Test ini biasanya dilakukan saat proses testing unit level.
Black Box Testing testing ini biasa dikenal dengan Behavioral/Input-Output testing, karena sebuah tester tidak perlu memahami logika yang terjadi didalam struktur kodenya (source code).
Referensi
https://www.researchgate.net/publication/312484469_Software_Testing_Techniques_A_Literature_Review
http://www.rroij.com/open-access/descriptive-study-of-software-testing–testing-tools-.pdf
Author :Teodorus Nathaniel Kurniawan, Javin Djapri, Frandi Rianto, Michael Guston, Daniel Davit
Supervised by : Irma Kartika Wairooy, S.Kom., M.T.I