Apa itu Ujian SOA?
SOA (Service Oriented Architecture) Testing adalah Pengujian gaya seni bina SOA di mana komponen aplikasi dirancang untuk berkomunikasi melalui protokol komunikasi biasanya melalui rangkaian.
Dalam tutorial ini, anda akan belajar-
- Apa itu SOA?
- Apa itu Perkhidmatan?
- Ujian SOA
- Strategi untuk Ujian SOA
- Kaedah ujian SOA
- Cabaran dalam ujian SOA
- Alat Ujian SOA
- Kes Penggunaan Ujian SOA
Apa itu SOA?
SOA adalah kaedah mengintegrasikan aplikasi dan proses perniagaan bersama-sama untuk memenuhi keperluan perniagaan.
Dalam Kejuruteraan Perisian, SOA memberikan kelincahan dan fleksibiliti terhadap proses perniagaan. Perubahan pada proses atau aplikasi dapat diarahkan ke komponen tertentu tanpa mempengaruhi keseluruhan sistem.
Pembangun perisian di SOA sama ada membangun atau membeli sebahagian program yang disebut SERVICES.
Apa itu Perkhidmatan?
- Perkhidmatan boleh menjadi unit fungsi aplikasi atau proses perniagaan, yang dapat digunakan kembali atau diulang oleh aplikasi atau proses lain.
(Sebagai contoh, pada gambar di atas, Payment Gateway adalah perkhidmatan yang dapat digunakan kembali oleh mana-mana laman web e-commerce. Setiap kali pembayaran perlu dilakukan, laman web e-commerce memanggil / Meminta perkhidmatan Payment Gateway. Setelah pembayaran dilakukan pada gerbang, tindak balas dihantar ke laman web e-dagang)
- Perkhidmatan mudah dipasang dan senang dikonfigurasi semula komponen.
- Perkhidmatan boleh dibandingkan dengan blok bangunan. Mereka boleh membina aplikasi yang diperlukan. Menambah dan membuangnya dari aplikasi atau proses perniagaan adalah mudah.
- Perkhidmatan didefinisikan lebih oleh fungsi perniagaan yang mereka jalankan dan bukan sebagai potongan kod.
Perkhidmatan Web
Perkhidmatan web adalah komponen aplikasi bebas, yang tersedia melalui web.
Mereka boleh diterbitkan, dijumpai dan boleh digunakan di web. Mereka dapat berkomunikasi melalui internet.
- Penyedia Perkhidmatan menerbitkan perkhidmatan ke internet.
- Pelanggan mencari perkhidmatan web tertentu dari Pendaftaran Perkhidmatan Web
- URL dan WSDL untuk perkhidmatan web yang diperlukan dikembalikan.
>> Dengan menggunakan WSDL dan URL, komunikasi antara penyedia perkhidmatan dan pemohon berlaku melalui pesanan SOAP. <<
- Apabila pengguna memanggil perkhidmatan web, sambungan HTTP akan dibuat ke penyedia.
Mesej SOAP dibuat untuk memberi arahan kepada penyedia untuk menggunakan logik perkhidmatan web yang diperlukan.
- Respons yang diterima dari penyedia adalah mesej SOAP yang akan disisipkan ke dalam respons HTTP. Respons HTTP ini adalah format data yang dapat difahami oleh aplikasi pengguna.
Contohnya
Halaman utama laman web dan mesin pencari memaparkan laporan cuaca setiap hari. Daripada mengkod bahagian laporan cuaca, laporan Perkhidmatan cuaca dapat dibeli dari vendor dan disatukan ke dalam halaman.
Ujian SOA
SOA terdiri daripada pelbagai teknologi. Aplikasi yang dibina menggunakan SOA mempunyai pelbagai perkhidmatan yang digabungkan secara longgar.
Ujian SOA harus tertumpu pada 3 lapisan sistem
Lapisan Perkhidmatan
Lapisan ini terdiri daripada perkhidmatan, perkhidmatan yang didedahkan oleh sistem yang berasal dari fungsi perniagaan.
Sebagai contoh -
Pertimbangkan Laman Web Kesihatan yang terdiri daripada
- Penjejak Berat
- Penjejak Gula Darah
- Penjejak Tekanan Darah
Penjejak memaparkan data dan tarikh masing-masing dimasukkan. Lapisan perkhidmatan terdiri daripada perkhidmatan yang mendapatkan data masing-masing dari Pangkalan Data-
- Servis Penjejak Berat
- Perkhidmatan Blood Sugar Tracker
- Perkhidmatan Pengesan Tekanan Darah
- Perkhidmatan Log Masuk
Lapisan Proses
Proses Lapisan terdiri daripada proses, pengumpulan perkhidmatan yang merupakan bagian dari satu fungsi.
Prosesnya mungkin merupakan bahagian antara muka pengguna (untuk mantan mesin pencari), bagian dari alat ETL (untuk mendapatkan data dari pangkalan data).
Fokus utama dalam lapisan ini adalah pada antara muka dan proses pengguna.
Antara muka pengguna pelacak berat dan penyatuannya dengan Pangkalan Data adalah fokus utama.
Fungsi di bawah akan dipertimbangkan
- Menambah data baru
- Mengedit data yang ada
- Membuat pelacak baru
- Memadamkan data
Lapisan Pengguna
Lapisan ini terutamanya terdiri daripada antara muka pengguna.
Berdasarkan lapisan, pengujian aplikasi SOA diedarkan menjadi tiga tahap.
- Tahap servis
- Tahap antara muka
- Tahap Akhir ke Akhir
- Pendekatan Top Down digunakan untuk Merancang Ujian.
- Pendekatan Bottom Up digunakan untuk Ujian Pelaksanaan.
Strategi untuk Ujian SOA
Pendekatan Perancangan Ujian,
- Senibina lengkap aplikasi harus difahami oleh Penguji SOA.
- Aplikasi perlu dipecah menjadi perkhidmatan bebas (Perkhidmatan, yang mempunyai struktur permintaan dan respons mereka sendiri dan tidak bergantung pada perkhidmatan lain untuk membentuk respons).
- Struktur aplikasi perlu disusun semula menjadi tiga komponen - Data, Perkhidmatan, dan aplikasi front-end.
- Semua komponen perlu dianalisis dengan teliti, dan senario perniagaan harus disusun.
- Senario perniagaan harus diklasifikasikan sebagai senario biasa dan senario khusus aplikasi.
- Matriks Kebolehkesanan harus disediakan, dan semua kes ujian harus ditelusuri ke senario perniagaan.
Pendekatan Pelaksanaan Ujian
- Setiap komponen perkhidmatan harus diuji.
- Pengujian integrasi komponen perkhidmatan harus dilakukan untuk mengesahkan aliran data melalui perkhidmatan dan integriti data.
- Pengujian sistem model lengkap harus dilakukan untuk mengesahkan aliran data antara aplikasi front-end dan pangkalan data.
- Uji Prestasi harus dilakukan untuk penalaan halus dan prestasi optimum.
Kaedah Ujian SOA
1) Pengujian berasaskan data berdasarkan senario perniagaan,
- Pelbagai aspek perniagaan yang berkaitan dengan sistem harus dianalisis.
- Senario harus dikembangkan berdasarkan penyatuan
- Pelbagai perkhidmatan Web aplikasi
- Perkhidmatan dan aplikasi web.
- Penyediaan data harus dilakukan berdasarkan senario di atas.
- Penyediaan data harus dilakukan untuk menutup senario akhir ke akhir juga.
2) Rintisan
- Antaramuka dummy akan dibuat untuk menguji perkhidmatan.
- Berbagai input dapat diberikan melalui antaramuka ini, dan output dapat disahkan.
- Apabila aplikasi menggunakan antara muka ke perkhidmatan luaran, yang tidak diuji (perkhidmatan pihak ketiga), rintisan dapat dibuat semasa Pengujian Integrasi.
3) Ujian regresi
- Uji Regresi pada aplikasi harus dilakukan apabila terdapat banyak pelepasan untuk memastikan kestabilan dan ketersediaan sistem.
- Suatu rangkaian ujian regresi yang komprehensif akan dibuat meliputi perkhidmatan yang menjadi bahagian penting dalam aplikasi.
- Rangkaian ujian ini boleh digunakan semula dalam beberapa keluaran projek.
4) Ujian Tahap Perkhidmatan
Ujian Tahap Perkhidmatan merangkumi pengujian komponen untuk fungsi, keselamatan, prestasi dan kebolehoperasian.
Setiap Perkhidmatan perlu diuji terlebih dahulu secara bebas.
5) Ujian Berfungsi
Ujian Fungsional harus dilakukan pada setiap perkhidmatan ke
- Pastikan perkhidmatan memberikan respons yang tepat untuk setiap permintaan.
- Kesalahan yang betul diterima untuk permintaan dengan data Tidak Sah, data buruk, dll.
- Periksa setiap permintaan dan tindak balas untuk setiap operasi yang harus dilakukan oleh perkhidmatan dalam jangka waktu berjalan.
- Sahkan mesej kesalahan apabila berlaku kesalahan di peringkat pelayan, klien atau rangkaian.
- Sahkan bahawa respons yang diterima adalah dalam format yang betul.
- Sahkan bahawa data yang diterima pada respons yang sepadan dengan data yang diminta.
6) Ujian Keselamatan
Ujian keselamatan perkhidmatan web adalah aspek penting semasa ujian tahap aplikasi aplikasi SOA; ini memastikan keselamatan aplikasi.
Faktor-faktor berikut perlu dilindungi semasa ujian:
- Piawaian Industri yang ditentukan oleh ujian WS-Security harus dipatuhi oleh Perkhidmatan Web.
- Langkah-langkah keselamatan harus berfungsi dengan sempurna.
- Penyulitan data dan tandatangan Digital pada dokumen
- Pengesahan dan Kebenaran
- SQL Injection, Malware, XSS, CSRF, kelemahan lain akan diuji pada XML.
- Serangan Penolakan Perkhidmatan
7) Ujian Prestasi
Uji Prestasi perkhidmatan perlu dilakukan kerana perkhidmatan dapat digunakan kembali dan beberapa aplikasi mungkin menggunakan perkhidmatan yang sama.
Faktor-faktor berikut dipertimbangkan semasa ujian:
- 8) Prestasi dan fungsi perkhidmatan perlu diuji di bawah beban yang berat.
- Prestasi perkhidmatan perlu dibandingkan semasa bekerja secara individu dan dalam aplikasi, ia ditambah dengan.
- Uji beban perkhidmatan harus dilakukan
- untuk mengesahkan masa tindak balas
- untuk memeriksa kesesakan
- untuk mengesahkan penggunaan CPU dan memori
- untuk meramal skalabiliti
9) Ujian tahap integrasi
- Pengujian tahap perkhidmatan memastikan pengoperasian yang betul hanya perkhidmatan secara individu, ia tidak menjamin berfungsi komponen yang digabungkan.
- Ujian Integrasi dilakukan dengan memberi tumpuan terutamanya pada antara muka.
- Fasa ini merangkumi semua kemungkinan senario perniagaan.
- Pengujian aplikasi yang tidak berfungsi harus dilakukan sekali lagi dalam fasa ini. Keselamatan, kepatuhan, dan Pengujian Prestasi memastikan ketersediaan dan kestabilan sistem dalam semua aspek.
- Protokol komunikasi dan rangkaian harus diuji untuk mengesahkan konsistensi komunikasi data antara perkhidmatan.
10) Ujian Akhir ke Akhir
Fasa ini memastikan bahawa aplikasi mengesahkan keperluan perniagaan baik secara fungsional dan tidak berfungsi.
Item di bawah ini dipastikan akan diuji semasa ujian akhir hingga akhir
- Semua perkhidmatan berfungsi seperti yang diharapkan selepas integrasi
- Pengendalian pengecualian
- Antara muka pengguna aplikasi
- Aliran data yang betul melalui semua komponen
- Proses perniagaan
Cabaran dalam ujian SOA
- Kekurangan antara muka untuk Perkhidmatan
- Proses pengujian merangkumi pelbagai sistem sehingga mewujudkan keperluan data yang kompleks
- Aplikasi ini adalah koleksi pelbagai komponen yang cenderung berubah. Keperluan untuk Ujian Regresi lebih kerap.
- Oleh kerana seni bina Multilayer, sukar untuk mengasingkan kecacatan.
- Oleh kerana perkhidmatan ini akan digunakan dalam antara muka yang berbeza, sukar untuk meramalkan beban, sehingga membuat perencanaan ujian prestasi membebankan.
- SOA adalah koleksi teknologi heterogen. Pengujian aplikasi SOA memerlukan orang dengan kumpulan kemahiran yang berbeza yang seterusnya meningkatkan kos perancangan dan pelaksanaan.
- Oleh kerana aplikasinya adalah penyatuan pelbagai perkhidmatan, ujian keselamatan mempunyai keperitan tersendiri. Pengesahan pengesahan dan kebenaran adalah sukar.
Alat Ujian SOA
Terdapat banyak alat ujian SOA yang tersedia di pasaran untuk membantu penguji dalam menguji aplikasi SOA. Berikut adalah beberapa Alat Ujian SOA yang popular :
1) UI sabun
"SOAP UI" adalah alat pengujian Fungsi sumber terbuka untuk Perkhidmatan dan Ujian API.
- Aplikasi desktop
- Menyokong pelbagai protokol - SOAP, REST, HTTP, JMS, AMF, JDBC
- Perkhidmatan web boleh dikembangkan, diperiksa dan digunakan.
- Juga dapat digunakan untuk pengujian beban, Pengujian Automasi, dan pengujian keselamatan
- Stub boleh dibuat oleh MockServices
- Permintaan dan ujian Perkhidmatan Web dapat dihasilkan secara automatik melalui pelanggan perkhidmatan webnya.
- Mempunyai alat pelaporan terbina dalam
- Dibangunkan oleh SmartBear
2) iTKO LISA
"LISA" adalah rangkaian produk yang menyediakan penyelesaian ujian berfungsi untuk sistem yang diedarkan seperti SOA.
- Juga dapat digunakan untuk regresi, integrasi, beban dan Pengujian Prestasi.
- Dibangunkan oleh iTKO (CA Technologies)
- Boleh digunakan untuk merancang dan melaksanakan ujian.
3) Ujian Perkhidmatan HP
"Uji Perkhidmatan" adalah alat ujian berfungsi, yang menyokong UI dan ujian perkhidmatan bersama
- Uji fungsi dan prestasi perkhidmatan dapat dilakukan dengan satu skrip.
- Bersepadu dengan HP QC.
- Jumlah perkhidmatan dan data yang banyak dapat diuruskan.
- Menyokong pengujian kebolehoperasian dengan mensimulasikan persekitaran klien JEE, AXIS, dan DotNet.
- Dibangunkan oleh HP.
4) Ujian Parasoft SOA
SOA Test adalah rangkaian alat pengujian dan analisis yang dikembangkan untuk ujian aplikasi API dan API.
- Menyokong perkhidmatan Web, REST, JSON, MQ, JMS, TIBCO, HTTP, XML.
- Fungsi, Unit, Integrasi, Regresi, Keselamatan, Koperatif, Pematuhan dan Pengujian Prestasi adalah mungkin.
- Stub boleh dibuat menggunakan Parasoft Virtualize, yang pintar daripada SOI UI.
- Dibangunkan oleh ParaSoft
Kes Penggunaan Ujian SOA
Pertimbangkan Laman Web e-dagang, yang mengandungi fungsi dan Subfungsi berikut:
Pemprosesan Tempahan
FASA 1
Pada fasa pertama pengujian SOA iaitu Fasa Strategi Uji, aplikasi dipecahkan kepada fungsi Perkhidmatan dan perniagaan.
Mari kita pertimbangkan di bawah adalah Perkhidmatan dalam aplikasi.
- Buat Pesanan
- Periksa Status Pelanggan
- Tukar Status Pesanan
- Semak Status Pesanan
- Semak Inventori
Fungsi perniagaan sama dengan fungsi Laman Web.
Catatan: Dokumen strategi ujian akan mengandungi senarai perkhidmatan dan fungsi yang harus diuji.
FASA 2
Fasa Perancangan Ujian. Kes ujian ditulis untuk setiap peringkat.
- Tahap Akhir ke Akhir. Kes ujian ditulis untuk setiap kes penggunaan dan aliran perniagaan.
Berikut adalah contoh kes ujian
- Buat pesanan dengan pengguna aktif.
- Buat pesanan dengan pengguna yang tidak aktif.
- Buat pesanan dengan produk yang ada dengan kuantiti pesanan
- Buat pesanan dengan produk yang ada dengan kuantiti pesanan> kuantiti yang ada.
- Buat pesanan dengan pelbagai item
- Batalkan pesanan sepenuhnya.
- Batalkan pesanan sebahagian.
- Tahap integrasi. Kes ujian ditulis untuk penyatuan pangkalan data dan antara muka pengguna.
Berikut adalah contoh kes ujian.
- Buat pesanan baru dengan satu item. Sahkan bahawa pesanan dibuat di pangkalan data.
- Buat pesanan baru dengan satu item. Sahkan bahawa harga yang dikira untuk pesanan itu betul.
- Buat pesanan baru dengan satu item. Sahkan bahawa kuantiti produk yang ada kurang dari jumlah pesanan.
- Sahkan bahawa status pesanan yang dipaparkan di UI sama dengan yang ada di pangkalan data.
- Batalkan pesanan dan sahkan bahawa status pesanan diubah pada pangkalan data.
- Untuk pembayaran pertama kali, sahkan bahawa butiran pembayaran yang dimasukkan pada UI disimpan di pangkalan data.
- Untuk mengembalikan pembayaran, sahkan bahawa butiran pembayaran di pangkalan data ditunjukkan di UI.
- Tahap servis. Setiap perkhidmatan diuji untuk semua keadaan data.
Berikut adalah beberapa contoh.
Tidak. | maklumat pesanan | Keadaan Pesanan |
---|---|---|
1 | Buat Pesanan. Bilangan Item = 1 | Kuantiti pesanan |
2 | Buat Pesanan. Bilangan Item> 1 | Kuantiti pada Pesanan |
3 | Buat Pesanan No. Item = 1 | Kuantiti pada Pesanan> Kuantiti pada pangkalan data |
4 | Semak status Pesanan | Status di pangkalan data = Aktif |
5 | Semak status Pesanan | Status di pangkalan data = Dihantar |
6 | Semak status Pesanan | Status di pangkalan data = Dibatalkan |
7 | Semak status Pesanan | Id pesanan = Tidak sah |
8 | Periksa ketersediaan produk | Kuantiti produk> 0 |
9 | Periksa ketersediaan produk | Kuantiti produk = 0 |
10 | Periksa ketersediaan produk | Id produk = tidak sah |
FASA 3 - Pelaksanaan Ujian
Ujian Pelaksanaan menggunakan pendekatan bottom-up iaitu ujian tahap perkhidmatan dilakukan terlebih dahulu, kemudian tahap Integrasi dan akhirnya ujian End to End.
1) Tahap perkhidmatan
Mari kita pertimbangkan bahawa alat Soapui dipertimbangkan untuk menguji aplikasi.
WSDL dan URL dilayari ke tetingkap ujian SOAP.
Permintaan untuk setiap perkhidmatan akan dipaparkan di jendela permintaan.
Dengan mengubah data sesuai dengan kes uji tingkat layanan, permintaan dibuat untuk setiap kasus uji.
Kes Ujian |
Permintaan |
Jawapan yang diharapkan |
---|---|---|
Buat Pesanan. Bilangan Item = 1 Kuantiti pesanan |
|
|
Buat Pesanan. Tidak. Item> 1 Kuantiti pada Pesanan |
|
|
Buat PesananNo. Item = 1 Kuantiti pada Pesanan> Kuantiti pada db |
|
|
Periksa status PesananStatus pada pangkalan data = Aktif |
|
|
Periksa status PesananStatus pada pangkalan data = Dihantar |
|
|
Periksa status PesananOrder id = Tidak sah |
|
|
Periksa ketersediaan produk Kuantiti produk> 0 |
|
|
Periksa ketersediaan produk Kuantiti produk = 0 |
|
|
Periksa ketersediaan produk Id produk = tidak sah |
|
|
2) Tahap Integrasi
Kes ujian tahap integrasi dijalankan di antara muka Pengguna dan pangkalan data.
- Buat pesanan dengan satu item -
- Seorang pengguna membuka laman web.
- Pergi untuk membuat pesanan.
- Memilih produk dan kuantiti yang sah dan menyimpan pesanan.
- Mesej yang mengatakan Pesanan berjaya dibuat harus dipaparkan.
- Seorang pengguna membuka pangkalan data dan memeriksa apakah butiran pesanannya sama dengan yang dimasukkan di laman web.
3) Tahap Akhir ke Akhir
Aliran perniagaan dan kes penggunaan dijalankan di antara muka Pengguna.
- Buat pesanan dengan pelbagai item -
- Seorang pengguna membuka laman web.
- Pergi untuk membuat pesanan.
- Bertanya mengenai produk dan kuantiti yang sah menambahkannya ke troli.
- Produk lain yang sah ditambah dengan jumlah yang sah dan pesanan disimpan. Pembayaran dilakukan melalui kaedah pembayaran baru dan pesanan dibuat.
- Mesej yang mengatakan "Pesanan berjaya dibuat" mesti dipaparkan.
- Penguji harus mengesahkan bahawa keseluruhan aliran dilakukan tanpa memusingkan data.
Kesimpulan:
Dengan membuat strategi yang tepat untuk pengujian, sumber daya, alat, dan kepatuhan untuk memberikan layanan yang baik, pengujian SOA dapat memberikan aplikasi yang diuji sepenuhnya dan sempurna.