Apa itu Pengujian SOA?
Pengujian SOA (Service Oriented Architecture) adalah Pengujian gaya arsitektur SOA di mana komponen aplikasi dirancang untuk berkomunikasi melalui protokol komunikasi biasanya melalui jaringan.
Dalam tutorial ini, Anda akan belajar-
- Apa SOA?
- Apa itu Layanan?
- Pengujian SOA
- Strategi Pengujian SOA
- Metode pengujian SOA
- Tantangan dalam pengujian SOA
- Alat Pengujian SOA
- Kasus Penggunaan Pengujian SOA
Apa SOA?
SOA adalah metode mengintegrasikan aplikasi bisnis dan proses bersama-sama untuk memenuhi kebutuhan bisnis.
Dalam Rekayasa Perangkat Lunak, SOA memberikan kelincahan dan fleksibilitas untuk proses bisnis. Perubahan proses atau aplikasi dapat diarahkan ke komponen tertentu tanpa mempengaruhi keseluruhan sistem.
Pengembang perangkat lunak di SOA mengembangkan atau membeli program yang disebut LAYANAN.
Apa itu Layanan?
- Layanan dapat menjadi unit fungsional dari aplikasi atau proses bisnis, yang dapat digunakan kembali atau diulangi oleh aplikasi atau proses lain.
(Misalnya, pada gambar di atas, Payment Gateway adalah layanan yang dapat digunakan kembali oleh situs e-commerce mana pun. Kapan pun pembayaran perlu dilakukan, situs e-commerce memanggil / Meminta layanan Gateway Pembayaran. Setelah pembayaran dilakukan pada gateway, tanggapan dikirim ke situs web e-niaga)
- Layanan mudah dirakit dan mudah untuk mengkonfigurasi ulang komponen.
- Layanan dapat dibandingkan dengan blok bangunan. Mereka dapat membuat aplikasi apa pun yang dibutuhkan. Menambahkan dan menghapusnya dari aplikasi atau proses bisnis itu mudah.
- Layanan lebih didefinisikan oleh fungsi bisnis yang mereka lakukan daripada sebagai potongan kode.
Layanan web
Layanan web adalah komponen aplikasi independen, yang tersedia melalui web.
Mereka dapat diterbitkan, ditemukan, dan dapat digunakan di web. Mereka bisa berkomunikasi melalui internet.
- Penyedia Layanan menerbitkan layanan ke internet.
- Klien mencari layanan web tertentu dari Web Service Registry
- URL dan WSDL untuk layanan web yang diperlukan dikembalikan.
>> Menggunakan WSDL dan URL, komunikasi antara penyedia layanan dan pemohon terjadi melalui pesan SOAP. <<
- Saat konsumen memanggil layanan web, koneksi HTTP akan dibuat ke penyedia.
Pesan SOAP dibuat untuk menginstruksikan penyedia untuk menjalankan logika layanan web yang diperlukan.
- Respon yang diterima dari provider adalah pesan SOAP yang akan dimasukkan ke dalam respon HTTP. Respon HTTP ini adalah format data yang dapat dimengerti oleh aplikasi konsumen.
Contoh
Halaman beranda Situs Web dan Mesin Pencari menampilkan laporan cuaca sehari-hari. Alih-alih mengkodekan bagian laporan cuaca di seluruh bagian, Laporan Layanan cuaca dapat dibeli dari vendor dan diintegrasikan ke dalam halaman.
Pengujian SOA
SOA terdiri dari berbagai teknologi. Aplikasi yang dibangun menggunakan SOA memiliki berbagai layanan yang digabungkan secara longgar.
Pengujian SOA harus fokus pada 3 lapisan sistem
Lapisan Layanan
Lapisan ini terdiri dari layanan, layanan yang diekspos oleh sistem yang berasal dari fungsi bisnis.
Sebagai contoh -
Pertimbangkan Website Wellness yang terdiri dari
- Pelacak Berat
- Pelacak Gula Darah
- Pelacak Tekanan Darah
Pelacak menampilkan data dan tanggal masing-masing mereka dimasukkan. Lapisan layanan terdiri dari layanan yang mendapatkan data masing-masing dari Database-
- Layanan Weight Tracker
- Layanan Pelacak Gula Darah
- Layanan Pelacak Tekanan Darah
- Layanan Login
Proses Lapisan
Process Layer terdiri dari proses, kumpulan layanan yang merupakan bagian dari fungsionalitas tunggal.
Proses tersebut mungkin merupakan bagian dari antarmuka pengguna (misalnya, mesin pencari), bagian dari alat ETL (untuk mendapatkan data dari database).
Fokus utama pada lapisan ini adalah pada antarmuka dan proses pengguna.
Antarmuka pengguna pelacak bobot dan integrasinya dengan Database adalah fokus utama.
Fungsi di bawah ini akan menjadi pertimbangan
- Menambahkan data baru
- Mengedit data yang ada
- Membuat pelacak baru
- Menghapus data
Lapisan Konsumen
Lapisan ini terutama terdiri dari antarmuka pengguna.
Berdasarkan lapisan tersebut, pengujian aplikasi SOA didistribusikan ke dalam tiga tingkatan.
- Tingkat layanan
- Tingkat antarmuka
- Tingkat ujung ke ujung
- Pendekatan Top Down digunakan untuk Test Designing.
- Pendekatan Bottom Up digunakan untuk Eksekusi Tes.
Strategi Pengujian SOA
Pendekatan Perencanaan Tes,
- Arsitektur lengkap aplikasi harus dipahami oleh Penguji SOA.
- Aplikasi perlu dipecah menjadi layanan independen (Layanan, yang memiliki permintaan sendiri dan struktur respons dan tidak bergantung pada layanan lain untuk membentuk respons).
- Struktur aplikasi perlu diatur ulang menjadi tiga komponen - Data, Layanan, dan aplikasi front-end.
- Semua komponen perlu dianalisis dengan cermat, dan skenario bisnis harus dicatat.
- Skenario bisnis harus diklasifikasikan sebagai skenario umum dan skenario khusus aplikasi.
- Matriks Ketertelusuran harus disiapkan, dan semua kasus uji harus ditelusuri ke skenario bisnis.
Pendekatan Eksekusi Uji
- Setiap komponen layanan harus diuji.
- Pengujian Integrasi komponen layanan harus dilakukan untuk memvalidasi aliran data melalui layanan dan integritas data.
- Pengujian Sistem model lengkap harus dilakukan untuk memvalidasi aliran data antara aplikasi front-end dan database.
- Pengujian Kinerja harus dilakukan untuk penyetelan yang baik dan kinerja yang optimal.
Metode Pengujian SOA
1) Pengujian berbasis data berdasarkan skenario bisnis,
- Berbagai aspek bisnis yang terkait dengan sistem harus dianalisis.
- Skenario harus dikembangkan berdasarkan integrasi
- Berbagai layanan Web aplikasi
- Layanan dan aplikasi web.
- Penyiapan data harus dilakukan berdasarkan skenario di atas.
- Pengaturan data harus dilakukan untuk mencakup skenario ujung ke ujung juga.
2) Rintisan
- Antarmuka tiruan akan dibuat untuk menguji layanan.
- Berbagai masukan dapat disediakan melalui antarmuka ini, dan keluaran dapat divalidasi.
- Saat aplikasi menggunakan antarmuka ke layanan eksternal, yang tidak sedang diuji (layanan pihak ketiga), sebuah rintisan dapat dibuat selama Pengujian Integrasi.
3) Pengujian regresi
- Pengujian Regresi pada aplikasi harus dilakukan ketika ada beberapa rilis untuk memastikan stabilitas dan ketersediaan sistem.
- Rangkaian pengujian regresi yang komprehensif akan dibuat yang mencakup layanan yang merupakan bagian penting dari aplikasi.
- Rangkaian pengujian ini dapat digunakan kembali dalam beberapa rilis proyek.
4) Pengujian Tingkat Layanan
Pengujian Tingkat Layanan mencakup pengujian fungsionalitas, keamanan, kinerja, dan interoperabilitas komponen.
Setiap Layanan harus terlebih dahulu diuji secara independen.
5) Pengujian Fungsional
Pengujian Fungsional harus dilakukan pada setiap layanan ke
- Pastikan layanan memberikan respons yang tepat untuk setiap permintaan.
- Kesalahan yang benar diterima untuk permintaan dengan data tidak valid, data buruk, dll.
- Periksa setiap permintaan dan respons untuk setiap operasi yang harus dilakukan layanan dalam waktu proses.
- Validasi pesan kesalahan saat terjadi kesalahan di server, klien, atau tingkat jaringan.
- Validasi bahwa tanggapan yang diterima menggunakan format yang benar.
- Memvalidasi bahwa data yang diterima pada respon sesuai dengan data yang diminta.
6) Pengujian Keamanan
Pengujian keamanan layanan web merupakan aspek penting selama pengujian tingkat layanan aplikasi SOA; ini memastikan keamanan aplikasi.
Faktor-faktor berikut perlu dicakup selama pengujian:
- Standar Industri yang ditentukan oleh pengujian Keamanan WS harus dipatuhi oleh Layanan Web.
- Langkah-langkah keamanan harus bekerja dengan sempurna.
- Enkripsi data dan tanda tangan digital pada dokumen
- Otentikasi dan Otorisasi
- SQL Injection, Malware, XSS, CSRF, kerentanan lainnya akan diuji pada XML.
- Penolakan serangan layanan
7) Pengujian Kinerja
Pengujian Kinerja layanan perlu dilakukan karena layanan dapat digunakan kembali dan beberapa aplikasi mungkin menggunakan layanan yang sama.
Faktor-faktor berikut dipertimbangkan selama pengujian:
- 8) Kinerja dan fungsionalitas layanan perlu diuji di bawah beban berat.
- Kinerja layanan perlu dibandingkan saat bekerja secara individu dan dalam aplikasi, itu digabungkan dengan.
- Pengujian beban layanan harus dilakukan
- untuk memverifikasi waktu tanggapan
- untuk memeriksa kemacetan
- untuk memverifikasi penggunaan CPU dan memori
- untuk memprediksi skalabilitas
9) Pengujian tingkat integrasi
- Pengujian tingkat layanan memastikan kerja yang benar hanya untuk layanan secara individual, tidak menjamin kerja komponen yang digabungkan.
- Pengujian Integrasi dilakukan dengan fokus terutama pada antarmuka.
- Fase ini mencakup semua skenario bisnis yang mungkin.
- Pengujian aplikasi non-fungsional harus dilakukan sekali lagi dalam fase ini. Keamanan, kepatuhan, dan Pengujian Kinerja memastikan ketersediaan dan stabilitas sistem di semua aspek.
- Protokol komunikasi dan jaringan harus diuji untuk memvalidasi konsistensi komunikasi data antara layanan.
10) Pengujian ujung ke ujung
Fase ini memastikan bahwa aplikasi mengkonfirmasi kebutuhan bisnis baik secara fungsional maupun non-fungsional.
Item di bawah ini dipastikan untuk diuji selama pengujian ujung ke ujung
- Semua layanan berfungsi seperti yang diharapkan setelah integrasi
- Penanganan pengecualian
- Antarmuka Pengguna aplikasi
- Aliran data yang tepat melalui semua komponen
- Proses bisnis
Tantangan dalam pengujian SOA
- Kurangnya antarmuka untuk Layanan
- Proses pengujian mencakup beberapa sistem sehingga menciptakan kebutuhan data yang kompleks
- Aplikasi merupakan kumpulan dari berbagai komponen yang cenderung berubah. Kebutuhan akan Pengujian Regresi lebih sering.
- Karena arsitektur Multilayer, sulit untuk mengisolasi cacat.
- Karena layanan akan digunakan dalam antarmuka yang berbeda, sulit untuk memprediksi beban, sehingga membuat perencanaan uji kinerja menjadi rumit.
- SOA adalah kumpulan teknologi heterogen. Pengujian aplikasi SOA membutuhkan orang-orang dengan keahlian yang berbeda yang pada gilirannya meningkatkan biaya perencanaan dan pelaksanaan.
- Karena aplikasinya merupakan integrasi dari beberapa layanan, pengujian keamanan memiliki masalah tersendiri. Validasi otentikasi dan otorisasi cukup sulit.
Alat Pengujian SOA
Ada banyak alat pengujian SOA yang tersedia di pasar untuk membantu penguji dalam menguji aplikasi SOA. Berikut adalah beberapa Alat Pengujian SOA yang populer :
1) SOAP UI
"SOAP UI" adalah alat pengujian Fungsional open source untuk Layanan dan Pengujian API.
- Aplikasi desktop
- Mendukung banyak protokol - SOAP, REST, HTTP, JMS, AMF, JDBC
- Layanan web dapat dikembangkan, diperiksa dan digunakan.
- Bisa juga digunakan untuk pengujian beban, Pengujian Otomasi, dan pengujian keamanan
- Rintisan dapat dibuat oleh MockServices
- Permintaan dan pengujian Layanan Web dapat dibuat secara otomatis melalui klien layanan webnya.
- Memiliki alat pelaporan bawaan
- Dikembangkan oleh SmartBear
2) iTKO LISA
"LISA" adalah rangkaian produk yang menyediakan solusi pengujian fungsional untuk sistem terdistribusi seperti SOA.
- Dapat juga digunakan untuk regresi, integrasi, memuat dan Pengujian Kinerja.
- Dikembangkan oleh iTKO (CA Technologies)
- Dapat digunakan untuk merancang dan melaksanakan pengujian.
3) Tes Layanan HP
"Uji Layanan" adalah alat pengujian fungsional, yang mendukung pengujian UI dan layanan bersama
- Uji fungsional dan kinerja layanan dapat dilakukan dengan satu skrip.
- Terintegrasi dengan HP QC.
- Sejumlah besar layanan dan data dapat dikelola.
- Mendukung pengujian interoperabilitas dengan mensimulasikan lingkungan klien JEE, AXIS, dan DotNet.
- Dikembangkan oleh HP.
4) Tes SOA Parasoft
SOA Test adalah rangkaian alat pengujian dan analisis yang dikembangkan untuk pengujian aplikasi API dan API.
- Mendukung Layanan Web, REST, JSON, MQ, JMS, TIBCO, HTTP, teknologi XML.
- Pengujian Fungsional, Unit, Integrasi, Regresi, Keamanan, Interoperabilitas, Kepatuhan, dan Kinerja dimungkinkan.
- Rintisan dapat dibuat menggunakan Parasoft Virtualize, yang lebih pintar dari SOAP UI.
- Dikembangkan oleh ParaSoft
Kasus Penggunaan Pengujian SOA
Pertimbangkan Situs Web e-niaga, yang berisi fungsi dan Subfungsi di bawah ini:
proses pemesanan
TAHAP 1
Pada tahap pertama pengujian SOA yaitu Tahap Strategi Uji, aplikasi dipecah menjadi Layanan dan fungsi bisnis.
Mari kita pertimbangkan di bawah ini adalah Layanan dalam aplikasi.
- Buat Pesanan
- Periksa Status Pelanggan
- Ubah Status Pesanan
- Periksa Status Pesanan
- Periksa Inventaris
Fungsi bisnis sama dengan fungsi Website.
Catatan: Dokumen strategi pengujian akan berisi daftar layanan dan fungsi yang harus diuji.
TAHAP 2
Tahap Perencanaan Tes. Kasus uji ditulis untuk setiap level.
- Tingkat ujung ke ujung. Kasus uji ditulis untuk setiap kasus penggunaan dan aliran bisnis.
Di bawah ini adalah contoh kasus uji
- Buat pesanan dengan pengguna aktif.
- Buat pesanan dengan pengguna yang tidak aktif.
- Buat pesanan dengan produk yang tersedia dengan jumlah pesanan
- Buat pesanan dengan produk yang tersedia dengan jumlah pesanan> jumlah yang tersedia.
- Buat pesanan dengan banyak item
- Batalkan pesanan sepenuhnya.
- Batalkan pesanan sebagian.
- Tingkat integrasi. Kasus uji ditulis untuk integrasi database dan antarmuka pengguna.
Di bawah ini adalah contoh kasus uji.
- Buat pesanan baru dengan satu item. Verifikasi bahwa pesanan dibuat di database.
- Buat pesanan baru dengan satu item. Pastikan harga yang dihitung untuk pesanan sudah benar.
- Buat pesanan baru dengan satu item. Verifikasi bahwa jumlah produk yang tersedia kurang dari jumlah pesanan.
- Verifikasi bahwa status pesanan yang ditampilkan di UI sama dengan yang ada di database.
- Batalkan pesanan dan verifikasi bahwa status pesanan diubah di database.
- Untuk pembayaran pertama kali, verifikasi bahwa detail pembayaran yang dimasukkan di UI disimpan di database.
- Untuk mengembalikan pembayaran, verifikasi bahwa detail pembayaran di database ditampilkan di UI.
- Tingkat layanan. Setiap layanan diuji untuk semua kondisi data.
Di bawah ini adalah beberapa contoh.
Tidak. | Detail pesanan | Kondisi Pesanan |
---|---|---|
1 | Buat Pesanan. Jumlah Item = 1 | Jumlah pesanan |
2 | Buat Pesanan. Jumlah Item> 1 | Kuantitas di Pesanan |
3 | Buat Jumlah Pesanan Item = 1 | Kuantitas di Pesanan> Kuantitas di database |
4 | Periksa status pesanan | Status di database = Aktif |
5 | Periksa status pesanan | Status di database = Dikirim |
6 | Periksa status pesanan | Status pada database = Dibatalkan |
7 | Periksa status pesanan | Id pesanan = Tidak Valid |
8 | Periksa ketersediaan produk | Jumlah produk> 0 |
9 | Periksa ketersediaan produk | Jumlah produk = 0 |
10 | Periksa ketersediaan produk | ID produk = tidak valid |
TAHAP 3 - Eksekusi Uji
Eksekusi Uji menggunakan pendekatan bottom-up yaitu pengujian tingkat layanan dilakukan terlebih dahulu, kemudian tingkat Integrasi dan terakhir pengujian End to End.
1) Tingkat layanan
Mari kita pertimbangkan bahwa alat Soapui dipertimbangkan untuk menguji aplikasi.
WSDL dan URL dijelajahi ke jendela uji SOAP.
Permintaan untuk setiap layanan akan ditampilkan di jendela permintaan.
Dengan mengubah data sesuai kasus pengujian tingkat layanan, permintaan dibuat untuk setiap kasus pengujian.
Kasus cobaan |
Permintaan |
Tanggapan yang diharapkan |
---|---|---|
Buat Pesanan. Jumlah Item = 1 Jumlah pesanan |
|
|
Buat Pesanan. Jumlah Item> 1 Jumlah Pesanan |
|
|
Buat Pesanan Jumlah Item = 1 Jumlah Pesanan> Jumlah di db |
|
|
Periksa status Pesanan Status pada database = Aktif |
|
|
Check Order statusStatus on database = Shipped |
|
|
Periksa Status pesananOrder id = Invalid |
|
|
Periksa ketersediaan produkJumlah produk> 0 |
|
|
Periksa ketersediaan produkJumlah produk = 0 |
|
|
Periksa ketersediaan produkProduk id = tidak valid |
|
|
2) Tingkat Integrasi
Kasus uji tingkat integrasi dijalankan pada antarmuka pengguna dan database.
- Buat pesanan dengan satu item -
- Seorang pengguna membuka situs web.
- Pergi ke tempat pemesanan.
- Memilih produk dan kuantitas yang valid dan menyimpan pesanan.
- Pesan yang mengatakan Order berhasil ditempatkan harus ditampilkan.
- Seorang pengguna membuka database dan memeriksa apakah detail pesanan sama dengan yang dimasukkan di situs web.
3) Tingkat ujung ke ujung
Alur bisnis dan kasus penggunaan dijalankan pada antarmuka Pengguna.
- Buat pesanan dengan banyak item -
- Seorang pengguna membuka situs web.
- Pergi ke tempat pemesanan.
- Bertanya tentang produk yang valid dan kuantitas menambahkannya ke keranjang.
- Produk valid lainnya ditambahkan dengan jumlah yang valid dan pesanan disimpan. Pembayaran dilakukan melalui metode pembayaran baru dan pesanan ditempatkan.
- Pesan yang mengatakan "Pesanan berhasil dilakukan" harus ditampilkan.
- Penguji harus memvalidasi bahwa seluruh aliran dilakukan tanpa memiringkan data.
Kesimpulan:
Dengan membuat sketsa strategi yang tepat untuk pengujian, sumber daya, alat, dan kepatuhan untuk memberikan layanan yang baik, pengujian SOA dapat memberikan aplikasi yang diuji secara lengkap dan sempurna.