Apa itu Pengujian SOA? Tutorial dengan Contoh

Apa itu Pengujian SOA?

SOA (Berorientasi Layanan ArchiPengujian arsitektur (tektur) adalah Pengujian gaya arsitektur SOA di mana komponen aplikasi dirancang untuk berkomunikasi melalui protokol komunikasi yang biasanya melalui jaringan.

Apa itu SOA?

SOA adalah metode mengintegrasikan aplikasi dan proses bisnis secara bersamaan sehingga dapat memenuhi kebutuhan bisnis.

Dalam Rekayasa Perangkat Lunak, SOA memberikan ketangkasan dan fleksibilitas pada proses bisnis. Perubahan pada proses atau aplikasi dapat diarahkan pada komponen tertentu tanpa mempengaruhi keseluruhan sistem.

Pengembang perangkat lunak di SOA mengembangkan atau membeli sejumlah program yang disebut JASA.

Apa itu Layanan?

Layanan SOA

  • Layanan dapat berupa unit fungsional aplikasi atau proses bisnis, yang dapat digunakan kembali atau diulangi oleh aplikasi atau proses lainnya. (Misalnya, pada gambar di atas, Gerbang Pembayaran adalah layanan yang dapat digunakan kembali oleh situs e-niaga mana pun. Setiap kali pembayaran perlu dilakukan, situs e-commerce akan memanggil/Meminta layanan Payment Gateway. Setelah pembayaran dilakukan pada gateway, respon dikirimkan ke situs e-commerce)
  • Layanan mudah dirakit dan mudah dikonfigurasi ulang komponen.
  • Layanan dapat dibandingkan dengan blok bangunan. Mereka dapat membangun aplikasi apa pun yang diperlukan. Menambah dan menghapusnya dari aplikasi atau proses bisnis sangatlah mudah.
  • Layanan lebih ditentukan oleh fungsi bisnis yang mereka jalankan dibandingkan sebagai potongan kode.

Layanan Web

Layanan web adalah komponen aplikasi independen, yang tersedia melalui web.

Mereka dapat dipublikasikan, ditemukan dan digunakan di web. Mereka dapat berkomunikasi melalui internet.

Layanan Web SOA

Layanan Web SOA

  1. Penyedia Layanan mempublikasikan layanan ke internet.
  2. Klien mencari layanan web tertentu dari Web Service Registry
  3. URL dan WSDL untuk layanan web yang diperlukan dikembalikan. Dengan menggunakan WSDL dan URL, komunikasi antara penyedia layanan dan pemohon terjadi melalui pesan SOAP.
  4. Ketika konsumen memanggil layanan web, koneksi HTTP akan dibuat ke penyedia.
    Pesan SOAP dibuat untuk menginstruksikan penyedia untuk menjalankan logika layanan web yang diperlukan.
  5. Respon yang diterima dari penyedia adalah pesan SOAP yang akan dimasukkan ke dalam respon HTTP. Respons HTTP ini adalah format data yang dapat dimengerti oleh aplikasi konsumen.

Example

Halaman beranda Situs Web dan Mesin Pencari menampilkan laporan cuaca sehari-hari. Daripada mengkode seluruh bagian laporan cuaca, Layanan laporan cuaca dapat dibeli dari vendor dan diintegrasikan ke dalam halaman.

Contoh Layanan Web SOAg

Pengujian SOA

SOA terdiri dari berbagai teknologi. Aplikasi yang dibangun menggunakan SOA memiliki berbagai layanan yang digabungkan secara longgar.

Pengujian SOA

Pengujian SOA harus fokus pada 3 lapisan sistem

Lapisan Layanan

Lapisan ini terdiri dari layanan, layanan yang diekspos oleh suatu sistem yang berasal dari fungsi bisnis.

Sebagai contoh -

Pertimbangkan Situs Web Kesehatan yang terdiri dari

  1. Pelacak Berat
  2. Pelacak Gula Darah
  3. Pelacak Tekanan Darah

Pelacak menampilkan data dan tanggal masing-masing dimasukkan. Lapisan layanan terdiri dari layanan yang mendapatkan data masing-masing dari Database–

  • Layanan Pelacak Berat Badan
  • Layanan Pelacak Gula Darah
  • Layanan Pelacak Tekanan Darah
  • Layanan Masuk

Lapisan Proses

Lapisan Proses terdiri dari proses, kumpulan layanan yang merupakan bagian dari satu fungsi.

Prosesnya mungkin merupakan bagian dari antarmuka pengguna (misalnya – Mesin pencari), bagian dari alat ETL (untuk mendapatkan data dari database).

Fokus utama dalam lapisan ini adalah antarmuka pengguna dan proses.

Antarmuka pengguna pelacak berat badan dan integrasinya dengan Database adalah fokus utama.

Fungsi di bawah ini akan menjadi pertimbangan

  1. Menambahkan data baru
  2. Mengedit data yang ada
  3. Membuat pelacak baru
  4. Menghapus data

Lapisan Konsumen

Lapisan ini terutama terdiri dari antarmuka pengguna.

Lapisan Konsumen

Berdasarkan lapisannya, pengujian aplikasi SOA dibagi menjadi tiga tingkatan.

  1. Tingkat layanan
  2. Tingkat antarmuka
  3. Tingkat ujung ke ujung
  • Pendekatan Top Down digunakan untuk Perancangan Tes.
  • Pendekatan Bottom Up digunakan untuk Eksekusi Tes.

Strategi Pengujian SOA

Pendekatan Perencanaan Tes,

  • Arsitektur aplikasi yang lengkap harus dipahami oleh Penguji SOA.
  • Aplikasi perlu dipecah menjadi layanan independen (Layanan, yang memiliki struktur permintaan dan responsnya sendiri dan tidak bergantung pada layanan lain untuk membentuk respons).
  • Struktur aplikasi perlu ditata ulang menjadi tiga komponen – Data, Layanan, dan aplikasi front-end.
  • Semua komponen perlu dianalisis secara hati-hati, dan skenario bisnis harus dibuat dengan jelas.
  • Skenario bisnis harus diklasifikasikan menjadi skenario umum dan skenario spesifik aplikasi.
  • A Matriks Ketertelusuran harus dipersiapkan, dan semua kasus uji harus ditelusuri ke skenario bisnis.

Pendekatan Eksekusi Tes

  • Setiap komponen layanan harus diuji.
  • Tes 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 penyempurnaan dan kinerja 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 dari aplikasi
  • Layanan web dan aplikasi.
  • Penyiapan data harus dilakukan berdasarkan skenario di atas.
  • Penyiapan data harus dilakukan sedemikian rupa sehingga dapat mencakup skenario end to end juga.

2) Rintisan

  • Antarmuka tiruan akan dibuat untuk menguji layanan.
  • Berbagai masukan dapat diberikan melalui antarmuka ini, dan keluarannya dapat divalidasi.
  • Ketika aplikasi menggunakan antarmuka ke layanan eksternal, yang tidak sedang diuji (layanan pihak ketiga), stub dapat dibuat selama Pengujian Integrasi.

3) Pengujian regresi

  • Pengujian Regresi pada aplikasi harus dilakukan ketika ada beberapa rilis untuk menjamin stabilitas dan ketersediaan sistem.
  • Rangkaian uji regresi 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 komponen untuk fungsionalitas, keamanan, kinerja, dan interoperabilitas.

Setiap Layanan perlu diuji terlebih dahulu secara independen.

5) Pengujian Fungsional

Pengujian Fungsional harus dilakukan pada setiap layanan untuk

  • 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 saat run time.
  • Validasi pesan kesalahan ketika terjadi kesalahan di tingkat server, klien, atau jaringan.
  • Validasi bahwa tanggapan yang diterima berada dalam format yang benar.
  • Validasi 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 menjamin 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 Digitanda tangan pada dokumen tersebut
  • Otentikasi dan Otorisasi
  • SQL Injection, Malware, XSS, CSRF, kerentanan lainnya harus 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:

  • Performa dan fungsionalitas layanan perlu diuji di bawah beban berat.
  • Kinerja layanan perlu dibandingkan saat bekerja secara individu dan dalam aplikasi, yang digabungkan dengan.
  • Pengujian beban layanan harus dilakukan
  • untuk memverifikasi waktu respons
  • untuk memeriksa kemacetan
  • untuk memverifikasi pemanfaatan CPU dan memori
  • untuk memprediksi skalabilitas

8) Pengujian tingkat integrasi

  • Pengujian tingkat layanan memastikan hanya layanan individual yang berfungsi dengan baik, tetapi tidak menjamin berfungsinya komponen yang digabungkan.
  • Pengujian Integrasi dilakukan dengan fokus utama pada antarmuka.
  • Fase ini mencakup semua skenario bisnis yang mungkin terjadi.
  • Pengujian Non-Fungsional aplikasi harus dilakukan sekali lagi pada tahap 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 antar layanan.

9) Pengujian ujung ke ujung

Fase ini memastikan bahwa aplikasi sesuai dengan kebutuhan bisnis baik secara fungsional maupun non-fungsional.

Item di bawah ini dipastikan akan 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 berbagai komponen yang cenderung berubah. Kebutuhan akan Pengujian Regresi lebih sering terjadi.
  • Karena arsitektur Multilayer, sulit untuk mengisolasi cacat.
  • Karena layanan akan digunakan dalam antarmuka yang berbeda, maka sulit untuk memprediksi beban, sehingga membuat perencanaan pengujian kinerja menjadi rumit.
  • SOA merupakan kumpulan teknologi yang heterogen. Pengujian aplikasi SOA memerlukan orang-orang dengan keahlian yang berbeda yang pada gilirannya meningkatkan biaya perencanaan dan pelaksanaan.
  • Karena aplikasi ini merupakan integrasi beberapa layanan, pengujian keamanan memiliki permasalahan 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 beberapa yang populer Alat Pengujian SOA:

1) SABUN 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 dipanggil.
  • Dapat juga digunakan untuk pengujian beban, Pengujian Otomatisasi, dan pengujian keamanan
  • Rintisan bertopik dapat dibuat oleh MockServices
  • Permintaan dan pengujian Layanan Web dapat dihasilkan secara otomatis melalui klien layanan webnya.
  • Memiliki alat pelaporan bawaan
  • Dikembangkan oleh SmartBear

2) ituTKO LISA

“LISA” adalah rangkaian produk yang menyediakan solusi pengujian fungsional untuk sistem terdistribusi seperti SOA.

  • Dapat juga digunakan untuk regresi, integrasi, pemuatan, dan Pengujian Kinerja.
  • Dikembangkan oleh iTKO (CA Technologies)
  • Dapat digunakan untuk merancang dan melaksanakan tes.

3) Tes Servis 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 simulasi 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.
  • Stub dapat dibuat menggunakan Parasoft Virtualize, yang lebih cerdas dibandingkan SOAP UI.
  • Dikembangkan oleh ParaSoft

Kasus Penggunaan Pengujian SOA

Pertimbangkan Situs Web e-commerce, yang berisi fungsi dan Sub-fungsi di bawah ini:

Proses Pemesanan

Proses Pemesanan

FASE 1

Pada tahap pertama pengujian SOA yaitu Tahap Uji Strategi, aplikasi dipecah menjadi Layanan dan fungsi bisnis.

Mari kita simak di bawah ini Layanan yang ada dalam aplikasi.

  • Buat Pesanan
  • Periksa Status Pelanggan
  • Ubah Status Pesanan
  • Periksa Status Pemesanan
  • Periksa Inventaris

Fungsi bisnis sama dengan fungsi Website.

Catatan: Dokumen strategi pengujian akan berisi daftar layanan dan fungsi yang harus diuji.

FASE 2

Fase Perencanaan Tes. Kasus uji ditulis untuk setiap level.

  1. Tingkat ujung ke ujung. Kasus uji ditulis untuk setiap kasus penggunaan dan alur 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 < jumlah yang tersedia.
    • Buat pesanan dengan produk yang tersedia dengan jumlah pesanan > jumlah yang tersedia.
    • Buat pesanan dengan banyak item
    • Batalkan pesanan sepenuhnya.
    • Batalkan pesanan sebagian.
  2. 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. Pastikan jumlah produk yang tersedia lebih sedikit dari jumlah pesanan.
    • Verifikasi bahwa status pesanan yang ditampilkan di UI sama dengan yang ada di database.
    • Batalkan pesanan dan verifikasi bahwa status pesanan telah diubah di database.
    • Untuk pembayaran pertama kali, verifikasi bahwa rincian pembayaran yang dimasukkan pada UI disimpan dalam database.
    • Untuk mengembalikan pembayaran, verifikasi bahwa rincian pembayaran pada database ditampilkan di UI.
  3. Tingkat layanan. Setiap layanan diuji untuk semua kondisi data.

Berikut adalah beberapa contohnya.

Nomor Detail pesanan Kondisi Pesanan
1 Buat Pesanan. Jumlah Barang = 1 Jumlah pesanan < Jumlah di database
2 Buat Pesanan. Jumlah Barang > 1 Kuantitas Pesanan < Kuantitas di database.
3 Buat Nomor Pesanan Barang = 1 Kuantitas pada Pesanan > Kuantitas pada database
4 Periksa status Pesanan Status pada database = Aktif
5 Periksa status Pesanan Status di database = Dikirim
6 Periksa status Pesanan Status di database = Dibatalkan
7 Periksa status Pesanan ID pesanan = Tidak valid
8 Cek ketersediaan produk Jumlah produk >0
9 Cek ketersediaan produk Jumlah produk =0
10 Cek ketersediaan produk ID produk = tidak valid

FASE 3 – Eksekusi Tes

Eksekusi Pengujian menggunakan pendekatan bottom-up yaitu pengujian tingkat layanan dilakukan terlebih dahulu, kemudian tingkat Integrasi, dan terakhir Pengujian ujung ke ujung.

1) Tingkat layanan

Mari kita pertimbangkan itu sabun mandi alat dipertimbangkan untuk menguji aplikasi.

The wsdl dan URL dijelajahi ke dalam jendela pengujian SOAP.

Permintaan untuk setiap layanan akan ditampilkan di jendela permintaan.

Dengan memodifikasi data sesuai kasus uji tingkat layanan, permintaan dibuat untuk setiap kasus uji.

Uji Kasus Meminta Respons yang diharapkan
Buat Pesanan. Jumlah Barang = 1Jumlah pesanan < Jumlah pada db x2 2 o3251 Berhasil
Buat Pesanan.No. Item > 1Jumlah Pesanan <Jumlah pada db kamu1 1 kamu2 3 o3251 Berhasil
Buat Nomor Pesanan. Item = 1Jumlah pada Pesanan > Jumlah pada db x23 200 batal Gagal
Periksa status PesananStatus pada database = Aktif o9876 Aktif Berhasil
Periksa status PesananStatus pada database = Dikirim o9656 Dikirim Berhasil
Periksa status PesananId Pesanan = Tidak Valid y5686 batal Gagal
Periksa ketersediaan produkJumlah produk >0 d34 34 Ya Berhasil
Periksa ketersediaan produkJumlah produk =0 y34 0 TIDAK Berhasil
Periksa ketersediaan produkID produk = tidak valid sder Gagal
2) Tingkat Integrasi

Kasus uji tingkat integrasi dijalankan pada antarmuka pengguna dan database.

  • Buat pesanan dengan satu item –
  • Seorang pengguna membuka situs web.
  • Pergi untuk memesan.
  • Memilih produk dan kuantitas yang valid dan menyimpan pesanan.
  • Pesan yang mengatakan Pesanan berhasil dilakukan akan ditampilkan.
  • Pengguna membuka basis data dan memeriksa apakah rincian 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 untuk memesan.
  • Menanyakan 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 dilakukan.
  • Pesan yang mengatakan “Pesanan berhasil dilakukan” akan ditampilkan.
  • Seorang penguji harus memvalidasi bahwa keseluruhan alur dilakukan tanpa penyimpangan data.

Kesimpulan

Dengan membuat sketsa strategi pengujian yang tepat, sumber daya, alat, dan kepatuhan untuk memberikan layanan yang baik, pengujian SOA dapat menghasilkan aplikasi yang diuji secara lengkap dan sempurna.