Apa itu Pengujian Tertanam dalam Pengujian Perangkat Lunak?
Apa itu sistem tertanam?
Sistem tertanam adalah perangkat yang dikontrol secara elektronik dimana perangkat lunak dan perangkat keras digabungkan secara erat. Sistem tertanam mungkin berisi berbagai perangkat komputasi. Ini adalah PC yang tergabung dalam perangkat lain untuk mengoperasikan fungsi spesifik aplikasi. Pengguna akhir biasanya bahkan tidak menyadari keberadaannya.
Pengujian Tertanam
Pengujian Tertanam adalah proses pengujian untuk memeriksa atribut fungsional dan non-fungsional perangkat lunak dan perangkat keras dalam sistem tertanam dan memastikan bahwa produk akhir bebas cacat. Tujuan utama pengujian Tertanam adalah untuk memverifikasi dan memvalidasi apakah produk akhir perangkat keras dan perangkat lunak yang tertanam memenuhi persyaratan klien atau tidak.
Pengujian Perangkat Lunak Tertanam memeriksa dan memastikan perangkat lunak yang bersangkutan memiliki kualitas yang baik dan mematuhi semua persyaratan yang harus dipenuhi. Pengujian perangkat lunak tertanam adalah pendekatan terbaik untuk menjamin keamanan dalam aplikasi penting seperti peralatan medis, kereta api, penerbangan, industri kendaraan, dll. Pengujian yang ketat dan hati-hati sangat penting untuk memberikan sertifikasi perangkat lunak.
Cara melakukan Pengujian Perangkat Lunak Tertanam
Secara umum, Anda menguji karena empat alasan:
- Untuk menemukan bug pada perangkat lunak
- Membantu mengurangi risiko bagi pengguna dan perusahaan
- Mengurangi biaya pengembangan dan pemeliharaan
- Untuk meningkatkan kinerja
Dalam Pengujian Tertanam, aktivitas berikut dilakukan:
1. Perangkat lunak ini dilengkapi dengan beberapa masukan.
2. Sepotong perangkat lunak dijalankan.
3. Status perangkat lunak diamati, dan keluarannya diperiksa untuk mengetahui sifat-sifat yang diharapkan seperti apakah keluaran sesuai dengan hasil yang diharapkan, kesesuaian dengan persyaratan dan tidak adanya kerusakan sistem.
Jenis Pengujian Perangkat Lunak Tertanam
Pada dasarnya, ada lima tingkat pengujian yang dapat diterapkan pada perangkat lunak tertanam
Pengujian Unit Perangkat Lunak
Modul unit dapat berupa fungsi atau kelas. Pengujian Unit dilakukan oleh tim pengembangan, terutama pengembang dan biasanya dilakukan dalam model tinjauan sejawat. Berdasarkan spesifikasi modul, kasus uji dikembangkan.
Tes integrasi
Pengujian integrasi dapat diklasifikasikan menjadi dua segmen:
- Pengujian integrasi perangkat lunak
- Pengujian integrasi perangkat lunak/perangkat keras.
Pada akhirnya, interaksi domain perangkat keras dan komponen perangkat lunak diuji. Hal ini dapat mencakup pemeriksaan interaksi antara perangkat periferal dan perangkat lunak bawaan.
Pengembangan perangkat lunak tertanam memiliki karakteristik unik yang berfokus pada lingkungan aktual, di mana perangkat lunak dijalankan, umumnya dibuat secara paralel dengan perangkat lunak. Hal ini menyebabkan ketidaknyamanan dalam pengujian karena pengujian komprehensif tidak dapat dilakukan dalam kondisi simulasi.
Pengujian Unit Sistem
Sekarang modul yang akan diuji adalah full framework yang terdiri dari kode software lengkap ditambah semuanya sistem operasi waktu nyata (RTOS) dan bagian-bagian yang berhubungan dengan platform seperti interupsi, mekanisme penugasan, komunikasi, dan sebagainya. Protokol Point of Control bukan lagi panggilan ke fungsi atau pemanggilan metode, melainkan pesan yang dikirim/didapat menggunakan antrian pesan RTOS.
Sumber daya sistem diamati untuk mengevaluasi kemampuan sistem dalam mendukung eksekusi sistem tertanam. Untuk aspek ini, pengujian kotak abu-abu adalah metode pengujian yang disukai. Tergantung pada organisasinya, pengujian unit sistem merupakan tugas pengembang atau tim integrasi sistem khusus.
Pengujian Integrasi Sistem
Modul yang akan diuji dimulai dari sekumpulan komponen dalam satu node. Titik Kontrol dan Observasi (PCO) merupakan campuran protokol komunikasi terkait jaringan dan RTOS, seperti pesan jaringan dan peristiwa RTOS. Selain komponen, Penguji Virtual juga dapat berperan sebagai node.
Pengujian Validasi Sistem
Modul yang akan diuji merupakan subsistem dengan implementasi lengkap atau sistem tertanam yang lengkap. Tujuan dari pengujian akhir ini adalah untuk memenuhi persyaratan fungsional entitas eksternal. Perlu diperhatikan bahwa entitas eksternal bisa berupa orang, atau perangkat dalam jaringan telekomunikasi, atau keduanya.
Perbedaan: Pengujian tertanam dan Pengujian Perangkat Lunak
Pengujian Perangkat Lunak | Pengujian Tertanam |
---|---|
Pengujian perangkat lunak hanya terkait dengan perangkat lunak saja. | Pengujian tertanam terkait dengan perangkat lunak dan perangkat keras. |
Rata-rata 90% pengujian yang dilakukan di dunia adalah pengujian kotak hitam manual murni. | Pengujian tertanam dilakukan pada sistem atau chip tertanam, dapat berupa pengujian kotak hitam atau kotak putih. |
Area pengujian utama adalah pemeriksaan GUI, fungsionalitas, validasi, dan beberapa tingkat pengujian database. | Area pengujian utama adalah perilaku perangkat keras untuk no. dari masukan yang diberikan padanya. |
Pengujian perangkat lunak sebagian besar dilakukan pada aplikasi berbasis klien-server, web, dan seluler. | Pengujian tertanam umumnya dilakukan pada Perangkat Keras. |
misalnya, Google Mail, Yahoo Mail, Android aplikasi. | misalnya, Mesin domain kesehatan, Mikrokontroler yang digunakan di komputer. |
Tantangan: Pengujian Perangkat Lunak Tertanam
Beberapa tantangan yang dapat dihadapi selama pengujian perangkat lunak tertanam:
Ketergantungan Perangkat Keras
Ketergantungan perangkat keras adalah salah satu kesulitan utama yang dihadapi selama pengujian perangkat lunak tertanam karena terbatasnya akses ke perangkat keras. Namun, Emulator dan Simulator mungkin tidak secara tepat mewakili perilaku perangkat sebenarnya dan dapat memberikan gambaran yang salah tentang kinerja sistem dan kegunaan aplikasi.
Perangkat Lunak Open Source
Mayoritas komponen perangkat lunak yang tertanam bersifat open source, tidak dibuat sendiri dan tidak tersedia pengujian lengkap untuk komponen tersebut. Ada beragam kombinasi pengujian dan skenario yang dihasilkan.
Cacat Perangkat Lunak vs. Perangkat Keras
Aspek lainnya adalah ketika perangkat lunak sedang dikembangkan untuk perangkat keras yang baru dibuat, selama proses ini rasio cacat perangkat keras yang tinggi dapat diidentifikasi. Cacat yang ditemukan tidak hanya terbatas pada perangkat lunak saja. Ini mungkin terkait dengan perangkat keras juga.
Cacat yang Dapat Direproduksi
Cacat lebih sulit direproduksi/diciptakan kembali dalam kasus sistem tertanam. Hal itu memaksa prosedur pengujian tertanam untuk menilai setiap kejadian cacat secara substansial lebih tinggi daripada dalam kasus standar, selain untuk mengumpulkan data sebanyak yang mungkin diperlukan untuk mengubah sistem guna menemukan dasar cacat.
Pembaruan Perangkat Lunak Berkelanjutan
Sistem tertanam memerlukan pembaruan perangkat lunak rutin seperti pemutakhiran kernel, perbaikan keamanan, driver perangkat yang berbeda, dll. Kendala yang diidentifikasi dengan pengaruh pembaruan perangkat lunak membuat identifikasi bug menjadi sulit. Selain itu, hal ini meningkatkan pentingnya prosedur pembangunan dan penerapan.
Kesimpulan
Ada beberapa kesulitan dalam pengujian perangkat lunak tertanam yang membuatnya lebih sulit daripada pengujian perangkat lunak biasa. Masalah yang paling mendasar adalah ketergantungan yang ketat pada lingkungan perangkat keras yang disiapkan secara bersamaan dengan perangkat lunak, dan yang secara teratur diperlukan untuk melakukan pengujian perangkat lunak yang andal. Terkadang bahkan sulit untuk menguji perangkat lunak tanpa alat khusus, yang dengan mudah membuat konsentrasi pada pengujian di tahap akhir menjadi sangat menarik.
Salah satu hal terpenting yang harus Anda pikirkan adalah kenyataan bahwa Anda harus sering memilih pengujian perangkat lunak otomatis. Pengujian otomatis tertanam adalah proses yang lebih cepat yang memerlukan waktu beberapa jam untuk diselesaikan, dan dengan cara ini, masalah perangkat lunak Anda teratasi.