Beranda Topics Pengujian Perangkat Lunak Apa yang dimaksud dengan pengujian perangkat lunak?
Uji perangkat lunak Anda dengan IBM Berlangganan pembaruan cloud
Ilustrasi dengan kolase piktogram monitor komputer, server, awan, titik-titik
Apa yang dimaksud dengan pengujian perangkat lunak?

Pengujian perangkat lunak adalah proses mengevaluasi dan memverifikasi bahwa produk perangkat lunak atau aplikasi melakukan apa yang seharusnya dilakukan. Manfaat pengujian yang baik termasuk mencegah bug dan meningkatkan kinerja.

Verifikasi dan validasi kualitas aplikasi untuk memastikannya memenuhi persyaratan pengguna

Pengujian perangkat lunak saat ini paling efektif jika dilakukan secara berkesinambungan, yang mengindikasikan bahwa pengujian dimulai saat perancangan, berlanjut saat perangkat lunak dibangun, dan bahkan terjadi saat diterapkan dalam produksi. Pengujian berkelanjutan berarti bahwa organisasi tidak perlu menunggu semua bagian diterapkan sebelum pengujian dapat dimulai. Shift-left, yang memindahkan pengujian lebih dekat ke desain, dan shift-right, di mana pengguna akhir melakukan validasi, juga merupakan filosofi pengujian yang baru-baru ini mendapatkan daya tarik dalam komunitas perangkat lunak. Ketika strategi pengujian dan rencana manajemen Anda dipahami, otomatisasi semua aspek pengujian menjadi penting untuk mendukung kecepatan pengiriman yang diperlukan.

Modernisasi aplikasi strategis mendorong transformasi digital

Modernisasi aplikasi strategis adalah salah satu kunci keberhasilan transformasi yang dapat meningkatkan pendapatan tahunan serta menurunkan biaya pemeliharaan dan biaya operasional.

Konten terkait

Daftar untuk panduan di DaaS

jenis pengujian perangkat lunak

Ada banyak jenis pengujian perangkat lunak, masing-masing dengan tujuan dan strategi tertentu:

  • Pengujian penerimaan: Memverifikasi apakah seluruh sistem berfungsi sebagaimana mestinya.
  • Tinjauan kode: Memastikan bahwa perangkat lunak baru dan yang dimodifikasi mengikuti standar pengkodean organisasi dan mematuhi praktik terbaiknya.
  • Pengujian integrasi: Memastikan bahwa komponen atau fungsi perangkat lunak beroperasi bersama.
  • Pengujian unit: Memvalidasi bahwa setiap unit perangkat lunak berjalan seperti yang diharapkan. Unit adalah komponen terkecil yang dapat diuji dari suatu aplikasi.
  • Pengujian fungsional: Memeriksa fungsi dengan meniru skenario bisnis, berdasarkan persyaratan fungsional. Pengujian kotak hitam adalah cara umum untuk memverifikasi fungsi.
  • Pengujian kinerja: Menguji bagaimana perangkat lunak berjalan pada beban kerja yang berbeda. Pengujian beban, misalnya, digunakan untuk mengevaluasi kinerja dalam kondisi beban kehidupan nyata.
  • Pengujian regresi: Memeriksa apakah fitur baru merusak atau menurunkan fungsionalitas. Pengujian sanity dapat digunakan untuk memverifikasi menu, fungsi, dan perintah pada tingkat permukaan, ketika tidak ada waktu untuk melakukan pengujian regresi penuh.
  • Pengujian keamanan: Memvalidasi bahwa perangkat lunak Anda tidak terbuka bagi peretas atau jenis kerentanan berbahaya lainnya yang mungkin dieksploitasi untuk menolak akses ke layanan Anda atau menyebabkan tidak berfungsi dengan benar.
  • Pengujian stress: Menguji seberapa besar tekanan yang dapat diterima sistem sebelum gagal. Pengujian stress dianggap sebagai jenis pengujian non-fungsional.
  • Pengujian kegunaan: Memvalidasi seberapa baik pelanggan dapat menggunakan sistem atau aplikasi web untuk menyelesaikan tugas.

Dalam setiap kasus, memvalidasi persyaratan dasar adalah penilaian penting. Sama pentingnya, pengujian eksploratori membantu penguji atau tim penguji menemukan skenario dan situasi yang sulit diprediksi yang dapat menyebabkan kesalahan perangkat lunak.

Bahkan aplikasi sederhana dapat tunduk pada sejumlah besar dan beragam tes. Rencana manajemen pengujian membantu memprioritaskan jenis pengujian mana yang memberikan nilai terbaik dari waktu dan sumber daya yang tersedia. Efektivitas pengujian dioptimalkan dengan menjalankan jumlah pengujian yang paling sedikit untuk menemukan jumlah cacat yang paling banyak.

Rencana manajemen pengujian
Sejarah pengujian perangkat lunak

Pengujian perangkat lunak tiba bersamaan dengan pengembangan perangkat lunak, yang dimulai tepat setelah Perang Dunia II. Ilmuwan komputer Tom Kilburn dikreditkan untuk penulisan perangkat lunak pertama, yang didebutkan pada 21 Juni 1948 di Universitas Manchester di Inggris. Ini melakukan perhitungan matematis dengan menggunakan instruksi kode mesin.

Debugging adalah metode pengujian utama pada saat itu dan tetap demikian selama dua dekade berikutnya. Pada tahun 1980-an, tim pengembangan melihat lebih dari sekadar mengisolasi dan memperbaiki bug perangkat lunak, tetapi juga menguji aplikasi di dunia nyata. Hal ini menjadi dasar bagi pandangan yang lebih luas mengenai pengujian, yang mencakup proses jaminan kualitas yang merupakan bagian dari siklus pengembangan perangkat lunak.

pengembangan perangkat lunak
Mengapa pengujian perangkat lunak itu penting

Hanya sedikit yang dapat membantah perlunya kontrol kualitas saat mengembangkan perangkat lunak. Pengiriman yang terlambat atau cacat perangkat lunak dapat merusak reputasi merek, yang menyebabkan pelanggan frustrasi dan kehilangan. Dalam kasus ekstrim, bug atau cacat dapat menurunkan sistem yang saling berhubungan atau menyebabkan kegagalan fungsi yang serius.

Pertimbangkan Nissan yang harus menarik kembali lebih dari 1 juta mobil karena cacat perangkat lunak pada detektor sensor kantung udara, atau bug perangkat lunak yang menyebabkan kegagalan peluncuran satelit militer senilai USD 1,2 miliar.1 Angka-angkanya berbicara sendiri. Kegagalan perangkat lunak di Amerika Serikat menyebabkan kerugian aset sebesar USD 1,1 triliun pada tahun 2016. Terlebih lagi, hal tersebut berdampak pada 4,4 miliar pelanggan.2

Meskipun pengujian itu sendiri membutuhkan biaya, perusahaan dapat menghemat jutaan per tahun dalam pengembangan dan dukungan jika mereka memiliki teknik pengujian dan proses QA yang baik. Pengujian perangkat lunak awal mengungkap masalah sebelum produk masuk ke pasar. Semakin cepat tim pengembangan menerima masukan pengujian, semakin cepat mereka dapat mengatasi masalah seperti:

  • Kelemahan arsitektur
  • Keputusan desain yang buruk
  • Fungsionalitas tidak valid atau salah
  • Kerentanan keamanan
  • Masalah skalabilitas

Ketika pengembangan menyisakan ruang yang cukup untuk pengujian, hal ini meningkatkan keandalan perangkat lunak dan aplikasi berkualitas tinggi dikirimkan dengan sedikit kesalahan. Sebuah sistem yang memenuhi atau bahkan melampaui ekspektasi pelanggan berpotensi menghasilkan lebih banyak penjualan dan pangsa pasar yang lebih besar.

Praktik terbaik pengujian perangkat lunak

Pengujian perangkat lunak mengikuti proses umum. Tugas atau langkah-langkahnya meliputi mendefinisikan lingkungan pengujian, mengembangkan kasus pengujian, menulis skrip, menganalisis hasil pengujian, dan mengirimkan laporan cacat.

Pengujian bisa memakan waktu. Pengujian manual atau pengujian ad hoc mungkin cukup untuk pengembangan kecil. Namun, untuk sistem yang lebih besar, alat sering digunakan untuk mengotomatiskan tugas. Pengujian otomatis membantu tim mengimplementasikan berbagai skenario, menguji pembeda (seperti memindahkan komponen ke lingkungan cloud), dan dengan cepat mendapatkan masukan tentang apa yang berhasil dan yang tidak.

Pendekatan pengujian yang baik mencakup antarmuka pemrograman aplikasi (API), antarmuka pengguna dan tingkat sistem. Semakin banyak pengujian yang otomatis, dan dijalankan lebih awal, semakin baik. Beberapa tim membangun alat otomatisasi pengujian internal. Namun, solusi vendor menawarkan fitur yang dapat merampingkan tugas manajemen pengujian utama seperti:

Pengujian berkelanjutan

Tim proyek menguji setiap build saat tersedia. Jenis pengujian perangkat lunak ini bergantung pada otomatisasi pengujian yang terintegrasi dengan proses penerapan. Hal ini memungkinkan perangkat lunak divalidasi dalam lingkungan pengujian yang realistis di awal proses, yang meningkatkan desain dan mengurangi risiko.

Manajemen konfigurasi

Organisasi secara terpusat memelihara aset pengujian dan melacak perangkat lunak apa yang dibangun untuk diuji. Tim mendapatkan akses ke aset seperti kode, persyaratan, dokumen desain, model, skrip pengujian, dan hasil pengujian. Sistem yang baik mencakup autentikasi pengguna dan jejak audit untuk membantu tim memenuhi persyaratan kepatuhan dengan upaya administratif yang minimal.

Virtualisasi layanan

Lingkungan pengujian mungkin tidak tersedia, terutama di awal pengembangan kode. Virtualisasi layanan mensimulasikan layanan dan sistem yang hilang atau belum selesai, memungkinkan tim untuk mengurangi ketergantungan dan menguji lebih cepat. Mereka dapat menggunakan kembali, menerapkan, dan mengubah konfigurasi untuk menguji skenario yang berbeda tanpa harus memodifikasi lingkungan asli.

Pelacakan cacat atau bug

Pemantauan cacat penting bagi tim pengujian dan pengembangan untuk mengukur dan meningkatkan kualitas. Alat otomatis memungkinkan tim melacak cacat, mengukur ruang lingkup dan dampaknya, dan mengungkap masalah terkait.

Metrik dan pelaporan

Pelaporan dan analitik memungkinkan anggota tim untuk berbagi status, tujuan, dan hasil pengujian. Alat canggih mengintegrasikan metrik proyek dan menyajikan hasil di dasbor. Tim dengan cepat melihat kesehatan proyek secara keseluruhan dan dapat memantau hubungan antara pengujian, pengembangan, dan elemen proyek lainnya.

Studi kasus

Sebuah bank terkemuka di Eropa memanfaatkan virtualisasi layanan selama pengujian aplikasinya untuk menghilangkan biaya koneksi eksternal. Baca studi kasus
Solusi terkait IBM® Engineering Workflow Management

IBM Engineering Workflow Management bertindak sebagai penghubung penting antara pekerjaan yang diperlukan dan yang dikirimkan dengan memungkinkan tim mengelola rencana, tugas, dan status proyek.

IBM Engineering Test Management

IBM Engineering Test Management adalah solusi manajemen kualitas kolaboratif yang menawarkan perencanaan pengujian ujung ke ujung dan manajemen aset pengujian, mulai dari persyaratan hingga cacat.

IBM DevOps Test

Platform pengujian dan virtualisasi yang komprehensif untuk membantu memastikan kualitas aplikasi di seluruh siklus hidup perangkat lunak.

Meje Kerja Pengujian IBM DevOps

IBM DevOps Test Workbench menyediakan alat pengujian perangkat lunak untuk mendukung pengujian API, pengujian UI fungsional, pengujian kinerja, dan virtualisasi layanan.

Virtualisasi IBM DevOps Test

IBM DevOps Test Virtualization memungkinkan pengujian lebih awal dan lebih sering dalam siklus pengembangan.

IBM DevOps Automation

IBM DevOps Automation membantu meningkatkan produktivitas, mengurangi risiko bisnis, dan menghadirkan aplikasi dengan lebih cepat menggunakan AI generatif dan otomatisasi.

IBM DevOps Deploy

IBM DevOps Deploy adalah solusi rilis aplikasi yang menanamkan otomatisasi ke dalam proses pengiriman berkelanjutan dan penyebaran berkelanjutan serta memberikan kemampuan visibilitas, penelusuran, dan audit yang kuat.

IBM DevOps Velocity

Velocity mengotomatiskan proses dalam siklus rilis Anda dan mengumpulkan insight tentang proses DevOps Anda.

Sumber daya pengujian perangkat lunak Apa itu pengujian berkelanjutan?

Pengujian berkelanjutan memainkan peran penting dalam mempercepat pengembangan perangkat lunak, meningkatkan kualitas kode, dan menghindari kemacetan yang merugikan.

Apa itu pengembangan perangkat lunak?

Pengembangan perangkat lunak mengacu pada serangkaian aktivitas ilmu komputer khusus untuk proses pembuatan, perancangan, penerapan, dan dukungan perangkat lunak.

Pengujian Berkelanjutan untuk Dummies

Buku elektronik ini membahas mengapa pengujian lebih awal dan lebih sering sangat penting untuk mencapai tujuan IBM DevOps yaitu pengiriman perangkat lunak yang lebih cepat.

Pengembang IBM (DevSecOps)

Sumber daya lebih mendalam yang berpusat pada pengembang untuk membantu meningkatkan pengalaman siklus hidup perangkat lunak Anda.

Komunitas IBM DevOps Automation

Platform tempat Anda dapat tetap mendapat informasi melalui webinar, blog, dan konten hebat lainnya. Diskusikan pengujian perangkat lunak dan DevOps dengan rekan-rekan Anda dari seluruh dunia.

Ambil langkah selanjutnya

Apakah Anda siap untuk DevOps? Untuk menghadirkan perangkat lunak dan layanan dengan kecepatan yang diminta pasar, tim harus mengulang dan bereksperimen dengan cepat, menerapkan versi baru sesering mungkin, dan didorong oleh masukan dan data. Tim pengembangan cloud yang paling sukses mengadopsi budaya dan praktik DevOps modern, merangkul arsitektur cloud-native, dan merakit rantai alat dari alat terbaik di kelasnya untuk meningkatkan produktivitas mereka.

Jelajahi solusi DevOps Coba gratis
Sumber

1 What is Software Testing?” (tautan berada di luar ibm.com), Thomas Hamilton, guru99.com, diperbarui 3 Januari 2024

2The glitch economy: Counting the cost of software failures” (tautan berada di luar ibm.com), Dalibor Siroky, 30 Oktober 2017