Apa itu Pengujian Berbasis Model?
⚡ Ringkasan Cerdas
Pengujian Berbasis Model memeriksa perilaku runtime perangkat lunak terhadap prediksi yang dibuat oleh model absolut.tracmodel sistem, menghasilkan kasus uji secara otomatis dari mesin keadaan terbatas, diagram keadaan, atau notasi UML, bukan secara manual.
Apa itu Pengujian Berbasis Model?
Pengujian Berbasis Model Pengujian perangkat lunak adalah teknik pengujian di mana perilaku perangkat lunak yang diuji saat dijalankan diperiksa terhadap prediksi yang dibuat oleh sebuah model. Model adalah deskripsi perilaku suatu sistem, yang dinyatakan dalam hal urutan input, tindakan, kondisi, output, dan aliran data dari input ke output. Model yang dapat digunakan harus mudah dipahami secara praktis, dapat digunakan kembali dan dibagikan, dan harus menggambarkan sistem yang diuji secara tepat.
Terdapat banyak model yang tersedia, dan masing-masing menggambarkan aspek perilaku sistem yang berbeda. Contoh umum meliputi:
- Aliran data
- Mengontrol aliran
- Grafik ketergantungan
- Tabel keputusan
- Mesin transisi negara
Pengujian Berbasis Model menjelaskan bagaimana suatu sistem berperilaku sebagai respons terhadap tindakan yang ditentukan oleh model. Berikan tindakan tersebut, lalu periksa apakah sistem merespons seperti yang diprediksi oleh model. Setiap perbedaan antara keduanya merupakan cacat pada perangkat lunak atau kesalahan pada model, dan keduanya layak untuk ditemukan.
Ini adalah metode formal yang ringan untuk memvalidasi suatu sistem, dan dapat diterapkan pada pengujian perangkat keras maupun perangkat lunak. Karena pengujian berasal dari spesifikasi perilaku dan bukan dari kode, teknik ini termasuk dalam kategori yang mudah dipahami. pengujian kotak hitam keluarga dari teknik pengujian perangkat lunak.
Contoh Pengujian Berbasis Model
Cara paling sederhana untuk membaca model perilaku adalah dengan mengikuti alurnya. Diagram di bawah ini memodelkan tugas pengeditan teks sederhana, dengan setiap kotak mewakili keadaan yang dapat dialami aplikasi dan setiap panah mewakili tindakan yang dapat dilakukan pengguna.
Model ini menjelaskan pendekatan sederhana untuk menulis puisi di Notepad dan tindakan yang mungkin terkait dengan setiap langkah. Untuk setiap tindakan, seperti memulai aplikasi, memasukkan puisi, atau menyimpan file, sebuah Kasus cobaan dapat dihasilkan dan hasilnya diverifikasi. Menempuh jalur berbeda melalui diagram yang sama, misalnya memulai dan menutup tanpa menyimpan, menghasilkan kasus uji yang berbeda tanpa biaya desain tambahan, yang merupakan argumen ekonomis untuk keseluruhan teknik ini.
Jenis MBT
Ada dua jenis kerangka kerja Pengujian Berbasis Model, dan perbedaan di antara keduanya hanyalah pada waktu pembuatan langkah-langkah pengujian:
- Offline / a priori: Pembuatan rangkaian pengujian sebelum mengeksekusinya. Rangkaian pengujian adalah kumpulan kasus uji, dan dalam mode ini rangkaian tersebut disimpan, ditinjau, dan dijalankan kembali seperti halnya pengujian lainnya. pengujian otomasi aset.
- Online / secara langsung: Pembuatan rangkaian pengujian selama eksekusi pengujian, di mana langkah selanjutnya dipilih berdasarkan bagaimana sistem benar-benar merespons langkah sebelumnya.
Generasi offline cocok untuk lingkungan yang teregulasi yang membutuhkan rangkaian yang dapat ditinjau dan diulang. Generasi online cocok untuk sesi eksplorasi jangka panjang terhadap sistem yang memiliki status, karena generator dapat bereaksi terhadap respons nyata daripada respons yang diprediksi.
Bagaimana Pengujian Berbasis Model Bekerja
Terlepas dari kerangka kerja yang digunakan, teknik ini mengikuti lima tahapan yang sama. Setiap tahapan menghasilkan artefak yang digunakan oleh tahapan berikutnya, itulah sebabnya model, dan bukan skrip pengujian, menjadi hal yang dipelihara oleh tim.
- Langkah 1: Buat modelnya. Terjemahkan persyaratan atau spesifikasi ke dalam bentuk abstrak.tracModel perilaku yang diharapkan, yang mendefinisikan keadaan, transisi antar keadaan, dan masukan yang memicu setiap transisi.
- Langkah 2: Pilih kriteria pemilihan tes. Kriteria memberi tahu generator kapan harus berhenti. Kriteria umum meliputi cakupan semua keadaan, yang mengunjungi setiap keadaan setidaknya sekali; cakupan semua transisi, yang menjalankan setiap panah setidaknya sekali; dan cakupan jalur atau aliran data untuk eksplorasi yang lebih mendalam.
- Langkah 3: Hasilkan otot peruttrackasus uji t. Alat tersebut menelusuri model dan memancarkan rangkaian abs.tract langkah yang memenuhi kriteria yang dipilih, beserta hasil yang diharapkan pada setiap langkah.
- Langkah 4: Wujudkan latihan perut secara konkrettracTes t. Lapisan adaptor memetakan setiap abstracuntuk melakukan tindakan nyata terhadap sistem, seperti interaksi UI, dan API panggilan atau pesan protokol. Peta iniping Ditulis sekali dan digunakan kembali oleh setiap pengujian yang dihasilkan.
- Langkah 5: Eksekusi dan berikan putusan. Pengujian konkret dilakukan terhadap sistem yang sedang diuji, setiap respons yang diamati dibandingkan dengan prediksi model, dan hasil lulus atau gagal dicatat. trackembali ke elemen model yang menghasilkannya.
The tracKeandalan yang diciptakan pada langkah 5 adalah manfaat praktisnya. Ketika suatu persyaratan berubah, model pun berubah, dan pengujian yang terpengaruh akan dibuat ulang daripada ditulis ulang, itulah sebabnya tim yang sering melakukan pengujian ulang dapat melakukannya. pengujian regresi terhadap spesifikasi yang stabil, manfaatnya paling besar.
Model Berbeda dalam Pengujian
Untuk memahami MBT, perlu memahami beberapa model yang dijelaskan di bawah ini. Masing-masing model mengorbankan kekuatan ekspresif demi usaha, sehingga pilihannya bergantung pada seberapa kompleks perilaku yang sedang diuji.
Mesin Negara Terbatas
Model ini membantu penguji menilai hasil berdasarkan input yang dipilih. Berbagai kombinasi input dapat menghasilkan keadaan sistem yang sesuai.
Sistem tersebut akan memiliki keadaan spesifik dan keadaan saat ini, yang diatur oleh serangkaian masukan yang diberikan oleh para penguji.
Perhatikan contoh di bawah ini. Sebuah sistem memungkinkan karyawan untuk masuk ke dalam aplikasi. Status karyawan saat ini adalah "Keluar", dan akan berubah menjadi "Masuk" setelah karyawan masuk ke dalam sistem. Dalam status "Masuk", karyawan dapat melihat, mencetak, dan memindai dokumen di dalam sistem.
Mesin keadaan untuk contoh tersebut ditunjukkan di sini, dengan setiap panah diberi label sesuai dengan input yang menyebabkan transisi.
Bagan Negara
Statechart adalah perluasan dari mesin keadaan terbatas dan dapat digunakan untuk sistem kompleks dan waktu nyata. Statechart menggambarkan berbagai perilaku sistem, memiliki sejumlah keadaan tertentu, dan perilaku sistem dianalisis dan direpresentasikan dalam bentuk peristiwa untuk setiap keadaan. Perluasan yang penting dalam praktiknya adalah hierarki: statechart memungkinkan keadaan bersarang dan paralel, sehingga mesin yang membutuhkan puluhan keadaan datar dapat digambarkan secara ringkas.
Sebagai contoh, cacat dilaporkan dalam alat manajemen cacat dengan status Baru. Setelah cacat diperbaiki oleh pengembang, status harus diubah menjadi Diperbaiki. Jika cacat tidak diperbaiki, status berubah menjadi Dibuka Kembali. Diagram status harus dirancang sedemikian rupa sehingga suatu kejadian dipanggil untuk setiap status.
Siklus hidup cacat tersebut digambarkan di bawah ini, dengan setiap status ditunjukkan sebagai sebuah keadaan dan setiap tindakan alur kerja sebagai peristiwa yang memindahkan cacat di antara keadaan tersebut.
Bahasa Pemodelan Terpadu (UML)
Bahasa Pemodelan Terpadu (UML) UML adalah bahasa pemodelan umum terstandarisasi. UML mencakup serangkaian teknik notasi grafis yang digunakan untuk membuat model visual yang dapat menggambarkan perilaku sistem yang sangat kompleks.
UML memiliki notasi seperti:
- Kegiatan
- Aktor
- Proses bisnis
- Komponen
- Bahasa pemrograman
Diagram aktivitas dan mesin keadaan adalah diagram yang paling sering dibaca oleh pembuat tes, seperti yang diilustrasikan oleh contoh model UML di bawah ini.
Alat Pengujian Berbasis Model
Sebuah model di atas kertas tidak menghasilkan apa pun dengan sendirinya. Diperlukan generator untuk menjalankan model dan menghasilkan jalur pengujian, dan pasar perangkat lunak terbagi menjadi generator sumber terbuka dan platform desain pengujian komersial.
- GraphWalker — sebuah alat sumber terbuka yang membaca model berbentuk grafik berarah dan menghasilkan jalur uji darinya, dengan generator dan kondisi berhenti yang dapat dipilih.
- fMBT — seperangkat alat pengujian berbasis model sumber terbuka dari Intel yang mendukung pembuatan dan eksekusi pengujian terhadap model keadaan.
- Konformiq — sebuah produk desain pengujian otomatis komersial yang menghasilkan kasus uji dan skrip dari model perilaku grafis.
- MaTeLo dan MBTsuite — platform komersial yang ditujukan untuk model penggunaan statistik dan untuk menghasilkan pengujian ke dalam kerangka kerja otomatisasi yang ada.
- Penjelajah Spesifikasi - MicrosoftEkstensi pengujian berbasis model untuk Visual Studio, yang banyak dikutip dalam literatur pengujian protokol.
Pemilihan alat lebih bergantung pada dua pertanyaan daripada daftar fitur: notasi apa yang sebenarnya dapat digunakan tim, dan apakah alat tersebut dapat menghasilkan pengujian ke dalam kerangka kerja otomatisasi yang sudah digunakan. Generator yang menghasilkan rangkaian pengujian yang tidak dapat dijalankan siapa pun justru menambah satu langkah dalam proses, bukan menguranginya.
Pengujian Berbasis Model vs Desain Pengujian Tradisional
Perbedaan dengan desain tes tulisan tangan perlu diuraikan, karena kedua pendekatan tersebut gagal di tempat yang berbeda, bukan berarti salah satunya lebih baik.
| Aspek | Pengujian Berbasis Model | Desain pengujian tradisional |
|---|---|---|
| Sumber kasus uji | Dihasilkan secara otomatis dari model perilaku. | Ditulis secara individual oleh seorang penguji berdasarkan persyaratan. |
| Dampak perubahan persyaratan | Perbarui model, hasilkan ulang pengujian yang terpengaruh. | Temukan dan edit setiap kasus uji yang terpengaruh secara manual. |
| Liputan | Diukur berdasarkan kriteria model seperti semua keadaan atau semua transisi | Diukur berdasarkan persyaratan, dan bergantung pada penilaian penguji. |
| Biaya dimuka | Tingkat tinggi: keterampilan pemodelan, pengaturan alat, dan lapisan adaptor. | Rendah: penguji dapat langsung mulai menulis |
| Paling cocok | Sistem yang memiliki status, berumur panjang, dan spesifikasi yang stabil. | Proyek pendek, film fitur tunggal, dan karya eksploratif. |
| Mode kegagalan utama | Model yang salah atau usang secara diam-diam menghasilkan pengujian yang salah. | Kesenjangan dan duplikasi menumpuk di seluruh rangkaian data yang besar. |
Evolusi di bawah ini menempatkan teknik tersebut dalam konteksnya: eksekusi pengujian manual digantikan oleh eksekusi otomatis, dan pendekatan berbasis model menggeser otomatisasi satu tingkat lebih awal, ke dalam desain pengujian itu sendiri.
Tantangan Pengujian Berbasis Model
Penerapan MBT dalam suatu organisasi membutuhkan investasi uang dan upaya yang cukup besar. Berikut adalah kekurangan MBT dalam rekayasa Perangkat Lunak:
- Para penguji membutuhkan keterampilan pemodelan yang tidak dibutuhkan oleh desain pengujian tradisional.
- Kurva pembelajarannya panjang, dan proyek pertama biasanya menghabiskan biaya lebih banyak daripada penghematannya.
- Model itu sendiri bisa jadi sulit dipahami dan ditinjau, terutama setelah ukurannya bertambah besar.
- Model yang menyimpang dari spesifikasi akan menghasilkan pengujian yang percaya diri namun salah.
- Lapisan adaptor yang mengubah abstracLangkah-langkah yang diterapkan ke dalam tindakan nyata harus ditulis dan dipelihara secara terpisah.
- Ukuran model berkembang dengan cepat, sehingga model keadaan yang tidak dibatasi dapat menghasilkan lebih banyak jalur daripada yang dapat dieksekusi oleh tim mana pun.
Tidak satu pun dari hal-hal tersebut merupakan alasan untuk menghindari teknik ini, tetapi secara bersama-sama hal tersebut menjelaskan mengapa MBT biasanya diperkenalkan pada satu subsistem yang stabil terlebih dahulu daripada di seluruh sistem. siklus hidup pengujian perangkat lunak sekaligus.
Keunggulan Pengujian Berbasis Model
Jika dibandingkan dengan biaya-biaya tersebut, manfaat MBT adalah:
- Pemeliharaan kasus uji dan rangkaian uji menjadi mudah, karena yang diedit adalah modelnya, bukan masing-masing tes.
- Pengurangan biaya selama masa proyek jangka panjang.
- peningkatan cakupan tes, karena generator tersebut mengeksplorasi jalur yang akan dilewati seseorang.
- Rangkaian pengujian yang berbeda dapat dijalankan secara paralel pada sejumlah mesin.
- Deteksi cacat sejak dini, karena ambiguitas muncul saat model sedang dibangun, sebelum kode apa pun dieksekusi.
- Peningkatan jumlah cacat yang ditemukan untuk upaya pengujian yang sama.
- Penghematan waktu pada desain pengujian setelah model dan adaptor tersedia.
- Kepuasan kerja penguji meningkat, karena upaya bergeser dari penulisan skrip yang berulang ke pemodelan dan analisis.
Para penguji tetap membangun model mental saat mereka bekerja, dan MBT hanya memindahkan model mental tersebut ke atas kertas di mana model tersebut dapat ditinjau, diberi versi, dan digunakan kembali. Posisi teknik ini dibandingkan dengan pendekatan lain yang tersedia dijelaskan dalam jenis pengujian perangkat lunak.





