ما هو اختبار SOA؟ البرنامج التعليمي مع المثال
ما هو اختبار SOA؟
SOA (موجهة نحو الخدمة Archiالاختبار هو اختبار لنمط هندسة SOA حيث يتم تصميم مكونات التطبيق للتواصل عبر بروتوكولات الاتصال عادةً عبر شبكة.
ما هي الخدمية؟
SOA هي طريقة لدمج تطبيقات الأعمال والعمليات معًا لتلبية احتياجات العمل.
في هندسة البرمجيات، توفر SOA السرعة والمرونة للعمليات التجارية. يمكن توجيه التغييرات في العملية أو التطبيق إلى مكون معين دون التأثير على النظام بأكمله.
يقوم مطورو البرامج في SOA إما بتطوير أو شراء مجموعات من البرامج تسمى خدمات.
ما هي الخدمة؟
- يمكن أن تكون الخدمات وحدة وظيفية للتطبيق أو عملية تجارية، والتي يمكن إعادة استخدامها أو تكرارها بواسطة أي تطبيق أو عملية أخرى. (على سبيل المثال، في الصورة أعلاه، بوابة الدفع هي خدمة يمكن إعادة استخدامها بواسطة أي موقع للتجارة الإلكترونية. عندما يلزم إجراء عملية دفع، يتصل موقع التجارة الإلكترونية/يطلب خدمة بوابة الدفع. وبعد إجراء الدفع على البوابة، يتم إرسال الرد إلى موقع التجارة الإلكترونية.)
- الخدمات سهلة التجميع وسهلة إعادة تكوين المكونات.
- يمكن مقارنة الخدمات بوحدات البناء. يمكنهم بناء أي تطبيق مطلوب. من السهل إضافتها وإزالتها من التطبيق أو عملية الأعمال.
- يتم تعريف الخدمات بشكل أكبر من خلال وظيفة العمل التي تؤديها وليس من خلال أجزاء من التعليمات البرمجية.
خدمات الويب
خدمات الويب هي مكونات تطبيقية مستقلة متاحة عبر الويب.
يمكن نشرها والعثور عليها واستخدامها على الويب. يمكنهم التواصل عبر الإنترنت.
- يقوم مزود الخدمة بنشر الخدمة على الإنترنت.
- يبحث العميل عن خدمة ويب معينة من سجل خدمة الويب
- يتم إرجاع عنوان URL وWSDL لخدمة الويب المطلوبة. باستخدام WSDL وعنوان URL، يتم الاتصال بين مزود الخدمة والطالب من خلال رسائل SOAP.
- عندما يتصل المستهلك بخدمة ويب، سيتم إنشاء اتصال HTTP للمزود.
يتم إنشاء رسالة SOAP لتوجيه الموفر لاستدعاء منطق خدمة الويب المطلوبة. - الاستجابة المستلمة من الموفر هي رسالة SOAP والتي سيتم تضمينها في استجابة HTTP. استجابة HTTP هذه هي تنسيق البيانات الذي يمكن لتطبيق المستهلك فهمه.
مثال
تعرض الصفحة الرئيسية لموقع الويب ومحرك البحث تقرير الطقس اليومي. بدلاً من ترميز قسم تقرير الطقس بالكامل، يمكن شراء تقرير خدمة الطقس من أحد البائعين ودمجه في الصفحات.
اختبار الخدمية
تتكون SOA من تقنيات مختلفة. تحتوي التطبيقات التي تم إنشاؤها باستخدام SOA على خدمات متنوعة مقترنة بشكل غير محكم.
يجب أن يركز اختبار SOA على ثلاث طبقات من النظام
طبقة الخدمات
تتكون هذه الطبقة من الخدمات التي يعرضها نظام مشتق من وظائف العمل.
على سبيل المثال -
فكر في موقع ويب خاص بالعافية يتكون من
- تعقب الوزن
- جهاز تتبع نسبة السكر في الدم
- ضغط الدم المقتفي
تعرض أجهزة التتبع البيانات المعنية وتاريخ إدخالها. تتكون طبقة الخدمات من الخدمات التي تحصل على البيانات المعنية من قاعدة البيانات –
- خدمة متابعة الوزن
- خدمة متابعة نسبة السكر في الدم
- خدمة قياس ضغط الدم
- خدمة تسجيل الدخول
طبقة العملية
تتكون طبقة العملية من العمليات ومجموعة الخدمات التي تشكل جزءًا من وظيفة واحدة.
قد تكون العمليات جزءًا من واجهة المستخدم (على سبيل المثال - محرك بحث)، وجزءًا من أداة ETL (للحصول على البيانات من قاعدة البيانات).
سيكون التركيز الرئيسي في هذه الطبقة على واجهات المستخدم والعمليات.
تعد واجهة المستخدم الخاصة بجهاز تعقب الوزن وتكاملها مع قاعدة البيانات هي محور التركيز الأساسي.
الوظائف أدناه ستكون في الاعتبار
- إضافة بيانات جديدة
- تحرير البيانات الموجودة
- إنشاء تعقب جديد
- حذف البيانات
طبقة المستهلك
تتكون هذه الطبقة بشكل أساسي من واجهات المستخدم.
بناءً على الطبقة، يتم توزيع اختبار تطبيق SOA على ثلاثة مستويات.
- مستوى الخدمة
- مستوى واجهة
- مستوى النهاية إلى النهاية
- يتم استخدام النهج من أعلى إلى أسفل لتصميم الاختبار.
- يتم استخدام النهج من أسفل إلى أعلى لتنفيذ الاختبار.
استراتيجية لاختبار SOA
نهج تخطيط الاختبار،
- ينبغي لمختبري SOA أن يفهموا الهندسة المعمارية الكاملة للتطبيق.
- يجب تقسيم التطبيق إلى خدمات مستقلة (الخدمة، التي لها هيكل الطلب والاستجابة الخاص بها ولا تعتمد على أي خدمة أخرى لتكوين الاستجابة).
- يجب إعادة تنظيم بنية التطبيق إلى ثلاثة مكونات – البيانات والخدمات والتطبيقات الأمامية.
- يجب تحليل جميع المكونات بعناية، ويجب تحديد سيناريوهات العمل.
- يجب تصنيف سيناريوهات الأعمال على أنها سيناريوهات شائعة وسيناريوهات خاصة بالتطبيقات.
- A مصفوفة التتبع يجب أن تكون مستعدة، ويجب أن ترجع جميع حالات الاختبار إلى سيناريوهات العمل.
نهج تنفيذ الاختبار
- يجب اختبار كل مكون من مكونات الخدمة.
- اختبار التكامل يجب إجراء مكونات الخدمة للتحقق من صحة تدفق البيانات من خلال الخدمات وسلامة البيانات.
- اختبار النظام يجب إجراء النموذج الكامل للتحقق من صحة تدفق البيانات بين تطبيق الواجهة الأمامية وقاعدة البيانات.
- اختبار أداء يجب أن يتم ذلك من أجل الضبط الدقيق والأداء الأمثل.
طرق اختبار الخدمية
1) الاختبار القائم على البيانات المستندة إلى سيناريوهات الأعمال،
- ينبغي تحليل الجوانب التجارية المختلفة المتعلقة بالنظام.
- وينبغي تطوير السيناريوهات على أساس التكامل
- مختلف خدمات الويب من التطبيق
- خدمات وتطبيقات الويب.
- يجب أن يتم إعداد البيانات بناءً على السيناريوهات المذكورة أعلاه.
- يجب أن يتم إعداد البيانات لتغطية السيناريوهات الشاملة أيضًا.
2) بذرة
- سيتم إنشاء واجهات وهمية لاختبار الخدمات.
- ويمكن توفير مدخلات مختلفة من خلال هذه الواجهات، ويمكن التحقق من صحة المخرجات.
- عندما يستخدم أحد التطبيقات واجهة لخدمة خارجية، وهي ليست قيد الاختبار (خدمة جهة خارجية)، يمكن إنشاء كعب روتين أثناء اختبار التكامل.
3) اختبار الانحدار
- اختبار الانحدار يجب أن يتم ذلك عند وجود إصدارات متعددة لضمان استقرار الأنظمة وتوافرها.
- سيتم إنشاء مجموعة اختبار الانحدار الشاملة التي تغطي الخدمات التي تشكل جزءًا مهمًا من التطبيق.
- يمكن إعادة استخدام مجموعة الاختبار هذه في إصدارات متعددة من المشروع.
4) اختبار مستوى الخدمة
يتضمن اختبار مستوى الخدمة اختبار المكون من حيث الوظائف والأمان والأداء والتوافق.
يجب أولاً اختبار كل خدمة بشكل مستقل.
5) اختبار وظيفي
وينبغي إجراء الاختبار الوظيفي على كل خدمة
- تأكد من أن الخدمة تقدم الاستجابة الصحيحة لكل طلب.
- يتم تلقي الأخطاء الصحيحة للطلبات التي تحتوي على بيانات غير صالحة، أو بيانات سيئة، وما إلى ذلك.
- التحقق من كل طلب واستجابة لكل عملية يجب على الخدمة تنفيذها في وقت التشغيل.
- التحقق من صحة رسائل الخطأ عند حدوث خطأ على مستوى الخادم أو العميل أو الشبكة.
- التحقق من أن الإجابات الواردة بالتنسيق الصحيح.
- التحقق من أن البيانات الواردة على الرد مطابقة للبيانات المطلوبة.
6) اختبار الأمان
يعد اختبار الأمان لخدمة الويب جانبًا مهمًا أثناء اختبار مستوى الخدمة لتطبيق SOA؛ وهذا يضمن سلامة التطبيق.
هناك عوامل يجب تغطيتها أثناء الاختبار:
- يجب أن تلتزم خدمة الويب بمعايير الصناعة المحددة بواسطة اختبار WS-Security.
- يجب أن تعمل التدابير الأمنية بشكل لا تشوبه شائبة.
- تشفير البيانات و Digiالتوقيعات الطويلة على الوثائق
- المصادقة والتخويل
- يجب اختبار SQL حقن والبرامج الضارة وXSS وCSRF ونقاط الضعف الأخرى على XML.
- هجمات رفض الخدمة
7) اختبار الأداء
يجب إجراء اختبار أداء الخدمة نظرًا لأن الخدمات قابلة لإعادة الاستخدام وقد تستخدم تطبيقات متعددة نفس الخدمة.
يتم أخذ العوامل التالية في الاعتبار أثناء الاختبار:
- يجب اختبار أداء الخدمة ووظائفها تحت الحمل الثقيل.
- يجب مقارنة أداء الخدمة أثناء العمل بشكل فردي وداخل التطبيق، مقترنًا بذلك.
- يجب إجراء اختبار تحميل الخدمة
- للتحقق من وقت الاستجابة
- للتحقق من الاختناقات
- للتحقق من استخدام وحدة المعالجة المركزية والذاكرة
- للتنبؤ بقابلية التوسع
8) اختبار مستوى التكامل
- يضمن اختبار مستوى الخدمة العمل السليم للخدمات بشكل فردي فقط، ولا يضمن عمل المكونات المقترنة.
- يتم إجراء اختبار التكامل مع التركيز بشكل أساسي على الواجهات.
- تغطي هذه المرحلة جميع سيناريوهات العمل المحتملة.
- يجب إجراء الاختبار غير الوظيفي للتطبيق مرة أخرى في هذه المرحلة. يضمن الأمان والامتثال واختبار الأداء توافر النظام واستقراره في جميع الجوانب.
- يجب اختبار بروتوكولات الاتصال والشبكة للتحقق من اتساق اتصالات البيانات بين الخدمات.
9) نهاية إلى نهاية الاختبار
تضمن هذه المرحلة أن التطبيق يتوافق مع متطلبات العمل وظيفيًا وغير وظيفيًا.
يتم ضمان اختبار العناصر التالية أثناء الاختبار النهائي
- جميع الخدمات تعمل كما هو متوقع بعد التكامل
- معالجة الاستثناء
- واجهة المستخدم الخاصة بالتطبيق
- تدفق البيانات السليم من خلال جميع المكونات
- طريقة العمل
التحديات في اختبار SOA
- عدم وجود واجهات للخدمات
- تمتد عملية الاختبار عبر أنظمة متعددة مما يؤدي إلى إنشاء احتياجات بيانات معقدة
- التطبيق عبارة عن مجموعة من المكونات المختلفة التي تميل إلى التغيير. الحاجة إلى اختبار الانحدار أكثر تواترا.
- بسبب بنية متعددة الطبقات، من الصعب عزل العيوب.
- وبما أن الخدمة سيتم استخدامها في واجهات مختلفة، فمن الصعب التنبؤ بالحمل، مما يجعل تخطيط اختبار الأداء مرهقًا.
- SOA عبارة عن مجموعة من التقنيات غير المتجانسة. يتطلب اختبار تطبيق SOA أشخاصًا يتمتعون بمجموعات مهارات مختلفة، مما يؤدي بدوره إلى زيادة تكاليف التخطيط والتنفيذ.
- نظرًا لأن التطبيق عبارة عن تكامل بين خدمات متعددة، فإن اختبار الأمان له نصيبه الخاص من المشاكل. التحقق من المصادقة والترخيص أمر صعب إلى حد كبير.
أدوات اختبار SOA
هناك العديد من أدوات اختبار SOA المتوفرة في السوق لمساعدة المختبرين في اختبار تطبيقات SOA. وهنا بعض من شعبية أدوات اختبار SOA:
1) واجهة المستخدم للصابون
"SOAP UI" هي أداة اختبار وظيفية مفتوحة المصدر للخدمات و اختبار API.
- تطبيقات سطح المكتب
- يدعم بروتوكولات متعددة – SOAP، REST، HTTP، JMS، AMF، JDBC
- يمكن تطوير خدمات الويب وفحصها واستدعاءها.
- ويمكن أيضا أن تستخدم لاختبار التحميل، اختبار الأتمتة، واختبار الأمان
- يمكن إنشاء بذرة بواسطة MockServices
- يمكن إنشاء طلبات واختبارات خدمة الويب تلقائيًا من خلال عميل خدمة الويب الخاص بها.
- لديك أدوات إعداد التقارير يحمل في ثناياه عوامل
- تم تطويره بواسطة سمارت بير
2) إتكو ليزا
"LISA" عبارة عن مجموعة منتجات توفر حل اختبار وظيفي للأنظمة الموزعة مثل SOA.
- يمكن استخدامه أيضًا للانحدار والتكامل والتحميل واختبار الأداء.
- تم التطوير بواسطة iTKO (تقنيات CA)
- يمكن استخدامها لتصميم وتنفيذ الاختبارات.
3) اختبار خدمة HP
"اختبار الخدمة" هو أداة اختبار وظيفية تدعم كلاً من اختبار واجهة المستخدم والخدمات المشتركة
- يمكن إجراء كل من الاختبار الوظيفي والأداء للخدمات من خلال برنامج نصي واحد.
- متكامل مع HP QC.
- يمكن إدارة الكم الهائل من الخدمات والبيانات.
- يدعم اختبار التشغيل البيني من خلال محاكاة بيئات عملاء JEE وAXIS وDotNet.
- تم تطويره بواسطة شركة HP.
4) اختبار باراسوفت SOA
اختبار SOA عبارة عن مجموعة أدوات اختبار وتحليل تم تطويرها لاختبار تطبيقات API وAPI.
- يدعم خدمات الويب، REST، JSON، MQ، JMS، TIBCO، HTTP، تقنيات XML.
- الاختبارات الوظيفية واختبارات الوحدة والتكامل والانحدار والأمان والتوافق والامتثال والأداء ممكنة.
- يمكن إنشاء بذرة باستخدام Parasoft Virtualize، وهي أكثر ذكاءً من SOAP UI.
- تم تطويره بواسطة باراسوفت
حالات استخدام اختبار SOA
فكر في موقع ويب للتجارة الإلكترونية، والذي يحتوي على الوظائف والوظائف الفرعية التالية:
معالجة الطلب
المرحلة 1
في المرحلة الأولى من اختبار SOA، أي مرحلة اختبار الإستراتيجية، يتم تقسيم التطبيق إلى خدمات ووظائف أعمال.
دعونا نفكر فيما يلي في الخدمات الموجودة في التطبيق.
- إنشاء النظام
- التحقق من حالة العميل
- تغيير حالة الطلب
- تفحص قائمة الطلبات
- تأكد من المخزون
وظائف العمل هي نفس وظائف الموقع.
ملحوظة: ستحتوي وثيقة استراتيجية الاختبار على قائمة الخدمة والوظائف التي يجب اختبارها.
المرحلة 2
مرحلة التخطيط للاختبار. تتم كتابة حالات الاختبار لكل مستوى.
- مستوى النهاية إلى النهاية. تتم كتابة حالات الاختبار لكل حالة استخدام تجاري وتدفق. فيما يلي أمثلة لحالات الاختبار
- قم بإنشاء طلب مع المستخدم النشط.
- قم بإنشاء طلب مع مستخدم غير نشط.
- أنشئ طلبًا بالمنتج المتوفر بكمية الطلب < الكمية المتاحة.
- أنشئ طلبًا بالمنتج المتوفر بكمية الطلب > الكمية المتاحة.
- إنشاء طلب مع عناصر متعددة
- إلغاء الطلب بالكامل.
- إلغاء الطلب جزئيًا.
- مستوى التكامل. تتم كتابة حالات الاختبار لتكامل قاعدة البيانات وواجهة المستخدم. فيما يلي أمثلة لحالات الاختبار.
- قم بإنشاء طلب جديد باستخدام عنصر واحد. تأكد من إنشاء الطلب على قاعدة البيانات.
- قم بإنشاء طلب جديد باستخدام عنصر واحد. التحقق من صحة السعر المحسوب للطلب.
- قم بإنشاء طلب جديد باستخدام عنصر واحد. التأكد من أن كمية المنتج المتوفر أقل بمقدار الطلب.
- تأكد من أن حالة الطلب المعروضة على واجهة المستخدم هي نفسها الموجودة على قاعدة البيانات.
- قم بإلغاء الطلب وتحقق من تعديل حالة الطلب في قاعدة البيانات.
- عند الدفع لأول مرة، تأكد من حفظ تفاصيل الدفع المدخلة في واجهة المستخدم في قاعدة البيانات.
- لإرجاع المدفوعات، تأكد من عرض تفاصيل الدفع الموجودة في قاعدة البيانات على واجهة المستخدم.
- مستوى الخدمة. يتم اختبار كل خدمة لجميع شروط البيانات.
في الأسفل يوجد بعض الأمثلة.
رقم | تفاصيل الطلب | حالة الطلب |
---|---|---|
1 | إنشاء النظام. عدد العناصر = 1 | الكمية عند الطلب < الكمية في قاعدة البيانات |
2 | إنشاء النظام. عدد العناصر > 1 | الكمية عند الطلب < الكمية في قاعدة البيانات. |
3 | إنشاء أمر رقم العناصر = 1 | الكمية عند الطلب> الكمية في قاعدة البيانات |
4 | تفحص قائمة الطلبات | الحالة في قاعدة البيانات = نشطة |
5 | تفحص قائمة الطلبات | الحالة في قاعدة البيانات = تم الشحن |
6 | تفحص قائمة الطلبات | الحالة في قاعدة البيانات = ملغاة |
7 | تفحص قائمة الطلبات | معرف الطلب = غير صالح |
8 | التحقق من توافر المنتج | كمية المنتج>0 |
9 | التحقق من توافر المنتج | كمية المنتج =0 |
10 | التحقق من توافر المنتج | معرف المنتج = غير صالح |
المرحلة 3 - تنفيذ الاختبار
يستخدم تنفيذ الاختبار نهجًا تصاعديًا، أي يتم إجراء اختبار مستوى الخدمة أولاً، ثم مستوى التكامل وأخيرًا نهاية إلى نهاية الاختبار.
1) مستوى الخدمة
دعونا نفكر في ذلك صابوني تعتبر الأداة لاختبار التطبيق.
تشتهر أجهزة تركيز الأكسجين البيطرية من كالسـتين بجودتها العالية وفعاليتها في الميدان. wsdl ويتم تصفح عنوان URL في نافذة اختبار SOAP.
سيتم عرض الطلب لكل خدمة في نافذة الطلب.
ومن خلال تعديل البيانات حسب حالات اختبار مستوى الخدمة، يتم إنشاء طلبات لكل حالة اختبار.
حالة الاختبار | أطلب | الرد المتوقع |
---|---|---|
إنشاء النظام. عدد العناصر = 1الكمية عند الطلب <الكمية على قاعدة البيانات | ×2 2 | o3251 ناجح |
إنشاء الطلب. من العناصر> 1الكمية عند الطلب <الكمية على ديسيبل | y1 1 y2 3 | o3251 ناجح |
إنشاء رقم الطلب من العناصر = 1 الكمية عند الطلب> الكمية على ديسيبل | ×23 200 | باطل غير ناجح |
التحقق من حالة حالة الطلب في قاعدة البيانات = نشط | o9876 | نشيط ناجح |
التحقق من حالة الطلب في قاعدة البيانات = تم الشحن | o9656 | شحنها ناجح |
التحقق من حالة الطلب معرف الطلب = غير صالح | y5686 | باطل غير ناجح |
التحقق من توفر المنتجكمية المنتج>0 | د34 | 34 نعم ناجح |
التحقق من توفر المنتجكمية المنتج =0 | y34 | 0 لا ناجح |
تحقق من توفر المنتج. معرف المنتج = غير صالح | com.sder | غير ناجح |
2) مستوى التكامل
يتم تنفيذ حالات اختبار مستوى التكامل على واجهة المستخدم وقاعدة البيانات.
- قم بإنشاء طلب باستخدام عنصر واحد –
- يقوم المستخدم بفتح الموقع.
- يذهب لتقديم الطلب.
- تحديد منتج وكمية صالحة وحفظ الطلب.
- يجب عرض رسالة تفيد بأن الطلب تم تنفيذه بنجاح.
- يقوم المستخدم بفتح قاعدة البيانات والتحقق مما إذا كانت تفاصيل الطلب هي نفسها تلك المدخلة على الموقع الإلكتروني.
3) نهاية إلى نهاية المستوى
يتم تنفيذ تدفقات الأعمال وحالات الاستخدام على واجهة المستخدم.
- إنشاء طلب بعناصر متعددة –
- يقوم المستخدم بفتح موقع ويب.
- يذهب لتقديم الطلب.
- يستفسر عن منتج صالح والكمية يضيفها إلى سلة التسوق.
- تتم إضافة منتجات صالحة أخرى بكميات صالحة ويتم حفظ الطلب. يتم الدفع من خلال طريقة دفع جديدة ويتم تقديم الطلب.
- يجب عرض رسالة تقول "تم تقديم الطلب بنجاح".
- يجب على المُختبر التحقق من أن التدفق بأكمله تم تنفيذه دون تحريف البيانات.
وفي الختام
من خلال رسم الإستراتيجية الصحيحة للاختبار والموارد والأدوات والامتثال لتقديم خدمة جيدة، يمكن أن يقدم اختبار SOA تطبيقًا تم اختباره بشكل كامل ومثالي.