اختبار واجهة برمجة التطبيقات
اختبار واجهات برمجة التطبيقات (APIs) هو نوع من اختبار البرمجيات يتضمن اختبار واجهات برمجة التطبيقات (APIs) بشكل مباشر وكجزء من اختبار التكامل لتحديد ما إذا كانت تلبي توقعات الأداء والموثوقية والكفاءة والأمان . [ 1 ] نظرًا لأن واجهات برمجة التطبيقات تفتقر إلى واجهة مستخدم رسومية (GUI) ، يتم إجراء اختبارها على مستوى الرسائل . [ 2 ] يُعتبر اختبار واجهات برمجة التطبيقات الآن بالغ الأهمية لأتمتة الاختبار، لأنها تُشكل الواجهة الأساسية لمنطق التطبيق ، ولأن اختبارات واجهة المستخدم الرسومية يصعب صيانتها مع دورات الإصدار القصيرة والتغييرات المتكررة الشائعة في تطوير البرمجيات الرشيقة (Agile) ومنهجية DevOps . [ 3 ] [ 4 ]
نظرة عامة على اختبار واجهة برمجة التطبيقات
يتضمن اختبار واجهات برمجة التطبيقات (APIs) اختبارها مباشرةً (بشكل منفصل) وكجزء من المعاملات الشاملة التي تُجرى أثناء اختبار التكامل. [ 1 ] بالإضافة إلى واجهات برمجة تطبيقات RESTful ، تشمل هذه المعاملات أنواعًا متعددة من نقاط النهاية مثل خدمات الويب ، وناقلات خدمات المؤسسة (ESBs) ، وقواعد البيانات ، والحواسيب المركزية ، وواجهات المستخدم الرسومية، وأنظمة تخطيط موارد المؤسسات (ERPs) . يُجرى اختبار واجهات برمجة التطبيقات على تلك التي يُنتجها فريق التطوير، وكذلك تلك التي يستخدمها الفريق داخل تطبيقه (بما في ذلك واجهات برمجة تطبيقات الجهات الخارجية). [ 5 ]
يُستخدم اختبار واجهات برمجة التطبيقات (APIs) لتحديد ما إذا كانت هذه الواجهات تُعيد الاستجابة الصحيحة (بالتنسيق المتوقع) لمجموعة واسعة من الطلبات الممكنة، وتتفاعل بشكل مناسب مع الحالات الاستثنائية مثل الأعطال والمدخلات غير المتوقعة/الشديدة، وتُقدّم الاستجابات في وقت مقبول ، وتستجيب بشكل آمن للهجمات الأمنية المحتملة . [ 1 ] [ 4 ] ويُستخدم محاكاة الخدمات بالتزامن مع اختبار واجهات برمجة التطبيقات لعزل الخدمات قيد الاختبار، بالإضافة إلى توسيع نطاق الوصول إلى بيئة الاختبار من خلال محاكاة واجهات برمجة التطبيقات/الخدمات غير المتاحة للاختبار.
يشمل اختبار واجهات برمجة التطبيقات (APIs) عادةً اختبار واجهات برمجة تطبيقات REST أو خدمات الويب SOAP باستخدام حمولات رسائل JSON أو XML المرسلة عبر HTTP و HTTPS و JMS و MQ . [ 2 ] [ 6 ] وقد يشمل أيضًا تنسيقات رسائل مثل SWIFT و FIX و EDI وتنسيقات مماثلة ذات طول ثابت، بالإضافة إلى CSV و ISO 8583 و Protocol Buffers المرسلة عبر بروتوكولات نقل مثل TCP/IP و ISO 8583 و MQTT و FIX و RMI و SMTP و TIBCO Rendezvous . [ 7 ] [ 8 ]
اختبار واجهة برمجة التطبيقات (API)، واختبار واجهة المستخدم الرسومية (GUI)، وأتمتة الاختبار
يُعتبر اختبار واجهات برمجة التطبيقات (API) أكثر ملاءمةً لأتمتة الاختبارات والاختبار المستمر (خاصةً الأتمتة المستخدمة في تطوير البرمجيات الرشيقة ومنهجية DevOps ) من اختبار واجهات المستخدم الرسومية (GUI). [ 3 ] [ 4 ] ومن الأسباب المذكورة ما يلي:
- تعقيد النظام: لا تستطيع اختبارات واجهة المستخدم الرسومية التحقق بشكل كافٍ من المسارات الوظيفية وواجهات برمجة التطبيقات/الخدمات الخلفية المرتبطة بالبنى متعددة الطبقات. تُعتبر واجهات برمجة التطبيقات الواجهة الأكثر استقرارًا للنظام قيد الاختبار.
- دورات إصدار قصيرة مع حلقات تغذية راجعة سريعة: تجد فرق Agile وDevOps التي تعمل بتكرارات قصيرة وحلقات تغذية راجعة سريعة أن اختبارات واجهة المستخدم الرسومية تتطلب إعادة صياغة كبيرة لمواكبة التغييرات المتكررة. أما الاختبارات على مستوى واجهة برمجة التطبيقات (API) فهي أقل عرضة للأعطال وأسهل في الصيانة.
لهذه الأسباب، يُنصح الفرق بزيادة مستوى اختبار واجهات برمجة التطبيقات (API) مع تقليل اعتمادها على اختبار واجهة المستخدم الرسومية (GUI). يُوصى باختبار واجهات برمجة التطبيقات في الغالبية العظمى من جهود أتمتة الاختبار، وفي أكبر قدر ممكن من اختبارات الحافة. أما اختبار واجهة المستخدم الرسومية، فيُخصص للتحقق من صحة حالات الاستخدام النموذجية على مستوى النظام، واختبار تطبيقات الجوال، واختبار سهولة الاستخدام. [ 3 ] [ 4 ] [ 9 ]
أنواع اختبار واجهات برمجة التطبيقات
توجد عدة أنواع من الاختبارات التي يمكن إجراؤها على واجهات برمجة التطبيقات (APIs). تشمل بعض هذه الاختبارات اختبار التحقق الأولي، والاختبار الوظيفي، واختبار الأمان، واختبار الاختراق، واختبار التحقق من الصحة.
- يُحسّن استخدام الذكاء الاصطناعي في اختبار واجهات برمجة التطبيقات (API) من كفاءة ودقة عملية الاختبار. فهو قادر على توليد حالات الاختبار تلقائيًا، وتحديد المشكلات المحتملة، وتحليل نتائج الاختبار من خلال التعلم الآلي لتحديد الأنماط والشذوذات. [ 10 ]
- اختبار الدخان - هذا اختبار أولي يتحقق مما إذا كانت الوظائف الأكثر أهمية لواجهة برمجة التطبيقات تعمل بشكل صحيح ويحدد أي مشكلات رئيسية قبل إجراء المزيد من الاختبارات.
- الاختبار الوظيفي - يتحقق هذا النوع من الاختبار من صحة نظام البرمجيات وفقًا لمتطلباته الوظيفية من خلال إدخال البيانات والتحقق من المخرجات. وهو يعتمد بشكل أساسي على اختبار الصندوق الأسود ولا يهتم بشفرة المصدر.
- اختبار الصندوق الأسود - هو نوع من الاختبارات يتفاعل فيه المختبِر مع واجهة برمجة التطبيقات (API) دون معرفة تفاصيل عملها الداخلية. يُدخل المختبِر البيانات ويراقب المخرجات التي تُنتجها واجهة برمجة التطبيقات لتحديد كيفية استجابتها لإجراءات المستخدم المتوقعة وغير المتوقعة.
- اختبار الوحدات - يختبر هذا النوع أصغر أجزاء التطبيق، والتي تُسمى الوحدات، للتأكد من عملها بشكل صحيح. في اختبار واجهات برمجة التطبيقات (API)، يشمل ذلك اختبار نقاط النهاية الفردية بطلب واحد.
- اختبار التوافق التشغيلي - يتحقق هذا الاختبار من قدرة واجهة برمجة التطبيقات (API) على التفاعل مع مكونات وأنظمة برمجية أخرى دون مشاكل في التوافق. وينطبق هذا على واجهات برمجة تطبيقات SOAP.
- اختبار الموثوقية - يختبر هذا الاختبار واجهات برمجة التطبيقات (APIs) لتحديد ما إذا كانت تلبي التوقعات من حيث الوظائف والموثوقية والأداء والأمان. ويهدف إلى ضمان أداء واجهة برمجة التطبيقات باستمرار كما هو متوقع.
- اختبار التحقق - يؤكد هذا الاختبار مدى توافق البرنامج مع متطلبات العمل، وما إذا كانت اختبارات واجهة برمجة التطبيقات (API) تتطابق مع النتائج المتوقعة. وهو يرتبط ارتباطًا وثيقًا باختبار قبول المستخدم.
- اكتشاف أخطاء وقت التشغيل - يقوم هذا النظام بتقييم التشغيل الفعلي لواجهة برمجة التطبيقات (API) ويركز على المراقبة، وأخطاء التنفيذ، وتسريبات الموارد، واكتشاف الأخطاء. ويتم إصلاح الأخطاء المكتشفة لمنع حدوث أعطال أثناء التشغيل.
- اختبار التشويش - يُرسل هذا الاختبار مدخلات عشوائية أو غير صالحة أو غير متوقعة إلى واجهة برمجة التطبيقات (API) لاكتشاف الأخطاء والعيوب غير المعروفة. يقوم برنامج اختبار التشويش بتوليد مدخلات اختبار وتسلسلات طلبات إلى واجهة برمجة التطبيقات، ويسجل الاستجابة لمعرفة ما إذا تم الكشف عن أي أخطاء أو ثغرات أمنية.
- اختبار التحميل - يحاكي هذا النوع من الاختبارات أحمال العمل الواقعية لمعرفة أداء النظام أو التطبيق. والهدف هو تحديد نقاط الضعف وتحديد الحد الأقصى لعدد المستخدمين أو المعاملات التي يمكن للنظام معالجتها.
- اختبار الأداء - يقيم هذا النوع من الاختبارات كيفية أداء واجهة برمجة التطبيقات (API) في ظل ظروف معينة لتقييم قدرة واجهة برمجة التطبيقات على التعامل مع الأحمال العالية والحفاظ على مستويات الأداء العالية.
- اختبار الأمان - يتحقق هذا الاختبار من وجود ثغرات أمنية في واجهات برمجة التطبيقات (APIs) لاكتشافها وإصلاحها. ويتضمن محاكاة أساليب المخترقين لاكتشاف الأخطاء ومنعهم من الوصول إلى واجهة برمجة التطبيقات أو بياناتها أو تعطيلها.
- اختبار الاختراق - يُستخدم القرصنة الأخلاقية لتقييم أمان تصميم واجهة برمجة التطبيقات (API). يقوم مختبر اختراق خارجي باكتشاف الثغرات الأمنية في تكاملات واجهة برمجة التطبيقات نتيجةً لمنطق أعمال غير صحيح أو مشكلات برمجية، وذلك لتحديد الثغرات الأمنية التي قد يستغلها المهاجمون.
- اختبار واجهة المستخدم على الويب - يتحقق من صحة عمل العناصر المرئية لواجهة مستخدم تطبيق الويب وسهولة استخدامها. ويختلف هذا الاختبار عن اختبار واجهة برمجة التطبيقات (API)، الذي يختبر التواصل بين مكونات البرنامج.
انظر أيضاً
مراجع
- 1 2 3 اختبار واجهات برمجة التطبيقات يحمي التطبيقات والسمعة ، بقلم إيمي رايشرت، SearchSoftwareQuality مارس 2015
- 1 2 كل شيء عن اختبار واجهات برمجة التطبيقات: مقابلة مع جوناثان كوبر ، بقلم كاميرون فيليب إدموندز، ستيكيميندز، 19 أغسطس 2014
- ١ ٢ ٣ صدر تقييم فورستر ويف لأتمتة اختبار الوظائف (FTA)، وهو يتناول تجاوز اختبار واجهة المستخدم الرسومية. مؤرشف بتاريخ ٢٨ مايو ٢٠١٥ في أرشيف الإنترنت ، بقلم دييغو لو جيوديس، فورستر ، ٢٣ أبريل ٢٠١٥
- 1 2 3 4 إنتاج برمجيات أفضل باستخدام استراتيجية اختبار متعددة الطبقات ، بقلم شون كينيفيك، غارتنر، 7 يناير 2014
- ↑ تقع مسؤولية واجهات برمجة التطبيقات الخارجية على عاتق مطوري المؤسسات. مؤرشف بتاريخ 31 يوليو 2019 في Wayback Machine ، بقلم إيمي رايشرت، SearchSoftwareQuality، يوليو 2014
- ↑ إطار إرشادي لتصميم واجهة برمجة تطبيقات ويب رائعةبقلم إريك كنيب وغاري أوليف، غارتنر، 20 أغسطس 2014
- ↑ مكافحة البرامج النصية الهشة وعيوب البرمجيات ، بقلم أدريان بريدج ووتر، مجلة دكتور دوبز، 26 أكتوبر 2011
- ↑ كيف نتعلم مصطلحات اختبار التطبيقات المركبة؟، بقلم أدريان بريدج ووتر، مجلة دكتور دوبز، 14 فبراير 2012
- ↑ كوهن ، مايك (2009). النجاح مع منهجية أجايل: تطوير البرمجيات باستخدام سكروم . أديسون-ويسلي بروفيشنال. ص 312. ISBN 978-0321579362.
- ↑ ج. غاو، س. تاو، د. جي، س. لو (2019). ما هو اختبار برمجيات الذكاء الاصطناعي؟ ولماذا ؟ IEEE. ص 27-2709 . doi : 10.1109/SOSE.2019.00015 .
{{cite book}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط )
- اختبار البرمجيات
