Pengujian sistem (system testing) adalah pengujian perangkat lunak menyeluruh berbasis kinerja dari seluruh sistem. Pengujian menyeluruh ini mencakup aspek pengujian fungsional, pengujian non-fungsional, pengujian antarmuka, pengujian stres, dan pengujian pemulihan.
Bayangkan Anda melihat sistem perangkat lunak di bawah mikroskop, mulai dari tingkat pembesaran paling ekstrem, dengan unit. Ini adalah blok bangunan dasar dari sistem perangkat lunak. Kemudian tampilan meluas ke luar untuk menyertakan tingkat pembesaran berikutnya, modul yang dibuat oleh unit individu tersebut. Akhirnya, dengan memperkecil sepenuhnya, Anda tiba di tingkat sistem. Pada tingkat pembesaran ini, Anda dapat melihat segala sesuatu di dalam sistem dan bagaimana semua komponen yang dibuat oleh modul tersebut bekerja bersama.
Dalam beberapa hal, pengujian sistem mirip dengan pandangan mikroskopis tersebut, tetapi dengan perbedaan utama. Pengujian sistem adalah bentuk pengujian kotak hitam, yang berarti bahwa penguji kurang tertarik pada tampilan komponen yang terlibat dalam perakitannya daripada fungsionalitas keseluruhan sistem. Dari perspektif “lulus/gagal” semacam ini, perilaku sistem hanya perlu diperhatikan dalam konteks ini sejauh berkaitan dengan kinerja sistem. (Pengujian kotak putih memungkinkan visibilitas lebih ke dalam sifat komponen dalam sistem.)
Pengujian sistem sering melibatkan analisis beberapa sistem perangkat lunak terpisah yang mungkin bekerja secara serempak dalam sistem perangkat lunak tertentu dengan baik atau tidak.
Buletin industri
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.
Pertimbangkan hitungan mundur yang mendahului peluncuran luar angkasa. Sementara semua orang mengingat hitungan mundur 10 langkah yang dramatis sebelum api penyalaan dan lepas landas, hanya sedikit yang mengingat banyak pemeriksaan departemen yang ditanyakan oleh kepala penerbangan dan dijawab dengan tegas sebagai “siap”. Dalam peluncuran ruang angkasa umumnya, para kepala departemen dimintai pendapat tentang rencana operasi, keselamatan misi, sistem kendaraan, dan kondisi cuaca yang diharapkan, di antara banyak hal lainnya. Setiap departemen ditanya, dan setiap kepala departemen memberikan jawab secara bergiliran.
Demikian pula, pengujian sistem dapat dianggap sebagai daftar periksa akhir yang mendahului peluncuran sistem perangkat lunak baru. Putaran terakhir pembersihan semua bug perangkat lunak yang dideteksi telah selesai. Dan sama seperti daftar check-off bersejarah yang berasal dari perintis ruang angkasa awal, semuanya bermuara pada langkah terakhir dari setiap “departemen” yang termasuk dalam pengujian sistem.
Setiap pertanyaan dikaji berdasarkan fungsionalitas sistem:
Saat membahas pengujian sistem, kita secara alami akan menemukan topik dependensi, yang merupakan hubungan yang ada dalam kasus uji. Dalam situasi seperti itu, hasil dari satu kasus uji dapat bergantung sebagian atau seluruhnya pada hasil kasus uji lain. Dependensi juga dapat melibatkan fungsionalitas, lingkungan pengujian atau kebijakan keamanan dan bahkan dapat memengaruhi seluruh proses pengujian yang dikelola organisasi.
Metodologi pengujian sistem tidak memberikan pandangan mendalam ke dalam cara kerja mereka (ingat, ini adalah bentuk pengujian kotak hitam), tetapi memberi tahu Anda jika aplikasi tertentu berfungsi. Tujuan pengujian sistem adalah untuk membantu menemukan celah, kesalahan, atau persyaratan yang hilang karena hal tersebut menentukan fungsionalitas keseluruhan aplikasi perangkat lunak.
Pengujian sistem biasanya dilakukan setelah pengujian integrasi tetapi sebelum pengujian penerimaan, sehingga memastikan semua komponen berfungsi bersama dengan baik. Seperti yang akan kita lihat, ini sering mencakup aspek fungsional dan non-fungsional dari sistem. Karena didasarkan pada area fungsional yang ketat dan non-fungsional secara luas, pengujian ini masuk ke aspek-aspek yang jauh seperti kegunaan, keamanan, dan kinerja.
Salah satu tujuan utama pengujian sistem adalah memungkinkan Anda untuk memverifikasi bahwa pengodean perangkat lunak dapat diterjemahkan ke dalam program yang dapat digunakan. Namun, tujuan menyeluruh dari pengujian sistem adalah untuk memastikan bahwa perangkat lunak yang dievaluasi mampu mendukung persyaratan bisnis pengguna yang akan mengandalkannya.
Proses pengujian dimaksudkan untuk mencerminkan lingkungan produksi yang sama yang akan digunakan, untuk memastikan fungsi perangkat lunak sesuai kebutuhan meskipun kondisi dunia nyata berubah. Demikian pula, data uji dibuat untuk meniru data dan situasi dunia nyata. Setelah kasus uji dilakukan, cacat pada perangkat lunak dapat ditemukan dan diperbaiki.
Pengujian sistem dapat diklasifikasikan menurut salah satu dari tiga kelompok utama. Yang pertama, pengujian fungsional, berkaitan dengan kinerja, tetapi tidak mencari jawaban yang lebih dalam selain melihat apakah perangkat lunak berfungsi seperti yang dijanjikan. Berikut adalah beberapa jenis utama pengujian fungsional:
Sementara pengujian fungsional memberikan informasi yang sangat penting, data itu pada dasarnya terbatas pada suara naik atau turun berdasarkan secara ketat pada apakah sistem bekerja sebagaimana mestinya. Itu menghilangkan sejumlah besar variabel terkait, seperti keamanan sistem, UX, dan aspek kinerja.
Pengujian sistem non-fungsional menyediakan sarana untuk menilai bagaimana sistem beroperasi. Perbedaan penting antara pengujian fungsional dan non-fungsional dapat diringkas menjadi perbandingan sederhana berikut:
Dengan mengingat hal itu, berikut adalah beberapa bentuk utama non-pengujian sistem non-fungsional:
Jenis pengujian sistem lainnya berguna meskipun tidak termasuk dalam kategori pengujian fungsional atau non-fungsional. Berikut adalah beberapa metodologi yang paling penting di antaranya:
Meskipun proses pengujian sistem menyediakan pengujian kinerja kotak hitam yang paling komprehensif, itu bukannya tanpa potensi masalah:
Banyak persyaratan yang harus dipenuhi pengujian sistem, baik itu persyaratan bisnis yang endemik untuk organisasi itu, persyaratan fungsional yang unik untuk perangkat lunak itu, atau persyaratan tertentu yang mungkin berlaku untuk operasi. Memang, tampaknya tidak pernah ada kekurangan persyaratan sistem yang perlu dimiliki oleh sistem operasi. Persyaratan yang sering berubah dapat mengganggu sistem dan meninggalkannya dengan kumpulan kasus uji yang tidak lengkap.
Kita semua paham bahwa tenggat waktu dapat mendatangkan malapetaka dalam lingkungan bisnis. Tenggat waktu merupakan hal yang legendaris karena menimbulkan dampak yang keras saat jadwal kerja bertabrakan dengan ekspektasi waktu yang terjadwal. Dampak tekanan tenggat waktu ini termanifestasikan dalam pengembangan perangkat lunak. Pengujian sistem yang sesuai dan memadai sering kali sering kali tidak dilakukan secara lengkap atau diabaikan sama sekali. Hal ini biasanya mengakibatkan kebutuhan pengujian ulang dalam siklus pengembangan perangkat lunak nantinya.
Pengujian sistem tidak terjadi begitu saja atau tanpa usaha. Ini membutuhkan kerja terampil dari tim pengujian, alat pengujian untuk membantu tenaga kerja itu, dan anggaran yang memadai untuk memulainya. Tanpa komponen-komponen ini, akan sangat mudah untuk menerapkan jalan pintas sebagai gantinya, yang menyebabkan pengujian yang tidak lengkap. Dan jika ada bagian dari persamaan itu diubah atau dihilangkan, itu mungkin akan memberikan dampak negatif pada cakupan pengujian yang dihasilkan dari pengujian sistem terhadap aplikasi atau produk perangkat lunak tersebut.
Banyak potensi kerentanan dapat dinilai selama proses pengujian, tetapi staf rekayasa perangkat lunak hanya dapat membuat penilaian tersebut jika didukung dan mengendalikan lingkungan pengujian tempat mereka bekerja. Ketika penguji tidak bekerja di lingkungan yang stabil, menjadi lebih mudah bagi mereka untuk melewatkan potensi cacat perangkat lunak. Dan jika penguji di lingkungan yang tidak stabil menemukan bug perangkat lunak yang perlu diperbaiki, mereka sering kali lebih sulit mereproduksi bug tersebut nantinya.
Ketika tugas Anda melibatkan jaminan kualitas perangkat lunak, meninjau baris kode komputer adalah pekerjaan yang melelahkan yang dapat jadi membosankan dan memakan waktu. Apa yang dapat membuat pekerjaan seperti itu semakin tidak menyenangkan adalah ketika kesenjangan komunikasi terjadi antara penguji, pengembang, dan pemangku kepentingan lainnya. Seperti halnya usaha bisnis apa pun, masalah komunikasi menimbulkan kesalahpahaman dan menciptakan lingkungan produksi di mana cacat dapat lolos dari deteksi dan berakar dalam sistem operasi.
Teknik pengujian bervariasi, dan hasil pengujian muncul dalam berbagai bentuk, dari data uji yang mudah dipahami hingga kumpulan data yang luas dan kompleks yang memerlukan pengelolaan yang lebih serius selama dan setelah fase pengujian. Tingkat kompleksitas proyek meningkat lebih jauh ketika lingkungan pengujian tidak sepenuhnya mencerminkan lingkungan produksi mereka. Strategi pengujian yang diterapkan selama proses pengembangan perangkat lunak perlu mempertimbangkan cara terbaik untuk menavigasi masalah ini.
Layanan penyewa tunggal yang dikelola sepenuhnya untuk mengembangkan dan menyediakan aplikasi Java.
Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.
Pengembangan aplikasi cloud berarti membangun sekali, mengulangi dengan cepat, dan menerapkan di mana saja.