أتمتة الاختبار
أتمتة الاختبار هي استخدام برمجيات (منفصلة عن البرمجيات قيد الاختبار) للتحكم في تنفيذ الاختبارات ومقارنة النتائج الفعلية بالنتائج المتوقعة. [ 1 ] تدعم أتمتة الاختبار اختبار النظام قيد الاختبار (SUT) دون تدخل يدوي، مما يُسرّع عملية الاختبار ويزيد من وتيرة إجرائه. تُعدّ أتمتة الاختبار عنصرًا أساسيًا في الاختبار المستمر ، وغالبًا ما تُستخدم في التكامل المستمر والتسليم المستمر (CI/CD). [ 2 ]
بالمقارنة بالاختبار اليدوي
توفر الأتمتة العديد من المزايا مقارنة بالاختبار اليدوي.
اختبار واجهة برمجة التطبيقات
في اختبار واجهات برمجة التطبيقات (API) ، تُشغّل الاختبارات النظام قيد الاختبار (SUT) عبر واجهة برمجة التطبيقات الخاصة به . وبالمقارنة مع الاختبار اليدوي، يُمكن لاختبار واجهات برمجة التطبيقات الآلي تنفيذ عدد كبير نسبيًا من الحالات في وقت قصير نسبيًا.
اختبار واجهة المستخدم الرسومية
في اختبار واجهة المستخدم الرسومية ، تُشغّل الاختبارات النظام قيد الاختبار عبر واجهة المستخدم الرسومية الخاصة به ، وذلك من خلال توليد أحداث مثل ضغطات المفاتيح ونقرات الماوس. قد يكون تطوير اختبار واجهة المستخدم الرسومية الآلي أمرًا صعبًا، ولكنه يُمكن أن يُنفّذ بسرعة أكبر بكثير من قدرة الإنسان على إجراء الاختبار نفسه. تشمل التخصصات ما يلي:
- اختبار التسجيل والتشغيل – توفر بعض أدوات اختبار واجهة المستخدم الرسومية ميزةً تسمح بتسجيل إجراءات المستخدم بشكل تفاعلي وإعادة تشغيلها لاحقًا كاختبار، ومقارنة النتائج الفعلية بالنتائج المتوقعة. من مزايا هذا الأسلوب أنه لا يتطلب كتابة الكثير من التعليمات البرمجية أو لا يتطلبها على الإطلاق. مع ذلك، يرى البعض أن هذه الاختبارات تعاني من مشاكل في الموثوقية وسهولة الصيانة والدقة. على سبيل المثال، قد يتطلب تغيير تسمية زر أو نقله إلى جزء آخر من واجهة المستخدم إعادة تسجيل الاختبارات، وغالبًا ما تكون هذه الاختبارات غير فعالة وتسجل أنشطة غير مهمة بشكل خاطئ.
- لاختبار موقع ويب، تكون واجهة المستخدم الرسومية هي المتصفح، ويتم التفاعل عبر أحداث DOM و HTML . ويُستخدم عادةً متصفح بدون واجهة رسومية أو حلول تعتمد على Selenium WebDriver لهذا الغرض. [ 3 ]
اختبار الانحدار
عند تطبيق الاختبارات الآلية، يصبح اختبار الانحدار عملية سريعة وسهلة نسبياً. فبدلاً من بذل جهد ووقت بشري كبيرين، قد لا يتطلب تشغيل اختبار الانحدار سوى ضغطة زر، بل ويمكن أتمتة بدء التشغيل نفسه.
التقنيات الآلية
فيما يلي بعض تقنيات الاختبار البارزة المصنفة ضمن أتمتة الاختبار.
الاختبار المستمر
الاختبار المستمر هو عملية تنفيذ اختبارات آلية كجزء من مسار تسليم البرمجيات لتقييم المخاطر التجارية المترتبة على إصدار النظام قيد الاختبار. [ 4 ] [ 5 ] ويمتد نطاق الاختبار من التحقق من صحة المتطلبات التصاعدية أو قصص المستخدم إلى تقييم متطلبات النظام المرتبطة بالأهداف التجارية الشاملة. [ 6 ]
الاختبار القائم على النموذج
في اختبار النماذج، يتم تصميم النظام قيد الاختبار ( SUT) ويمكن توليد حالات الاختبار منه لدعم تطوير الاختبارات بدون كتابة أي كود . تدعم بعض الأدوات ترميز حالات الاختبار بلغة إنجليزية بسيطة يمكن استخدامها على أنظمة تشغيل ومتصفحات وأجهزة ذكية متعددة . [ 7 ]
التطوير القائم على الاختبار
يتضمن تطوير البرمجيات الموجه بالاختبار (TDD) بطبيعته توليد كود اختبار آلي. يُكتب كود اختبار الوحدة بالتزامن مع كتابة كود النظام قيد الاختبار (SUT). وعند اكتمال الكود، تكتمل الاختبارات أيضاً. [ 8 ]
آخر
تشمل تقنيات أتمتة الاختبار الأخرى ما يلي:
الاعتبارات
أظهرت مراجعة لـ 52 مصدراً من مصادر عملية و26 مصدراً أكاديمياً أن خمسة عوامل رئيسية يجب مراعاتها عند اتخاذ قرار بشأن أتمتة الاختبار هي: النظام قيد الاختبار، ونطاق الاختبار، ومجموعة أدوات الاختبار، والجوانب البشرية والتنظيمية، والعوامل الشاملة. وكانت أكثر العوامل التي تم تحديدها شيوعاً هي: الحاجة إلى اختبار الانحدار، والعوامل الاقتصادية، ونضج النظام قيد الاختبار. [ 9 ] [ 10 ]
في حين أن إمكانية إعادة استخدام الاختبارات الآلية تحظى بتقدير شركات تطوير البرمجيات، إلا أن هذه الخاصية يمكن اعتبارها أيضًا عيبًا لأنها تؤدي إلى تأثير الثبات ، حيث يتوقف تنفيذ نفس الاختبارات بشكل متكرر عن اكتشاف الأخطاء.
يمكن لأدوات الاختبار أن تساعد في أتمتة مهام مثل تثبيت المنتج، وإنشاء بيانات الاختبار، والتفاعل مع واجهة المستخدم الرسومية، واكتشاف المشكلات (ضع في اعتبارك تحليل أو استطلاع العوامل المجهزة بأدوات اختبار )، وتسجيل العيوب، وما إلى ذلك، دون الحاجة بالضرورة إلى أتمتة الاختبارات بشكل كامل.
تشمل الاعتبارات عند تطوير الاختبارات الآلية ما يلي:
- استقلالية المنصة ونظام التشغيل
- الاختبار القائم على البيانات
- إعداد التقارير ( قاعدة البيانات ، تقارير كريستال )
- سهولة تصحيح الأخطاء
- قطع الأشجار
- التحكم في الإصدار
- التوسعة والتخصيص (على سبيل المثال، واجهات برمجة التطبيقات للتكامل مع أدوات أخرى)
- التكامل مع أدوات المطورين (على سبيل المثال، استخدام Ant أو Maven لتطوير تطبيقات Java )
- تشغيل اختبارات تلقائية للتكامل مع عمليات البناء وعمليات التشغيل الدفعي
- إشعارات البريد الإلكتروني (مثل رسائل الارتداد )
- تنفيذ الاختبارات الموزعة
الأدوار
لدعم الاختبار الآلي المبرمج، يجب أن يمتلك مهندس الاختبار أو مسؤول ضمان جودة البرمجيات القدرة على كتابة البرامج. بعض تقنيات الاختبار، مثل الاختبار القائم على الجداول والاختبار بدون كتابة أكواد، يمكن أن تقلل أو تلغي الحاجة إلى مهارات البرمجة.
نطاق
يوفر إطار عمل أتمتة الاختبار بيئة برمجة تدمج منطق الاختبار وبياناته وموارد أخرى. ويُشكل هذا الإطار أساس أتمتة الاختبار، مما يُبسط عملية الأتمتة. كما يُمكن أن يُقلل استخدام إطار العمل من تكلفة تطوير الاختبار وصيانته . في حال حدوث أي تغيير في حالة اختبار ، يكفي تحديث ملف حالة الاختبار فقط، بينما يبقى نص التشغيل ونص بدء التشغيل كما هما.
يتولى الإطار مسؤولية تحديد الصيغة التي يتم من خلالها التعبير عن التوقعات، وتوفير آلية للربط بنظام الاختبار أو تشغيله، وتنفيذ الاختبارات، والإبلاغ عن النتائج. [ 11 ]
تتوفر أنواع مختلفة من الأطر:
- خطي – كود إجرائي، ربما يتم إنشاؤه بواسطة أدوات مثل تلك التي تستخدم التسجيل والتشغيل
- مُهيكلة – تستخدم هياكل تحكم – عادةً ما تكون شروط/عبارات مثل "if-else" و"switch" و"for" و"while".
- يعتمد على البيانات - يتم تخزين البيانات خارج نطاق الاختبارات في قاعدة بيانات أو جدول بيانات أو آلية أخرى
- مدفوع بالكلمات المفتاحية
- هجين - يتم استخدام أنواع متعددة
- إطار عمل الأتمتة الرشيقة
- اختبار الوحدات – بعض الأطر مصممة أساسًا لاختبار الوحدات مثل xUnit و JUnit و NUnit
واجهة أتمتة الاختبار
واجهة أتمتة الاختبار هي منصة توفر بيئة عمل لدمج أدوات وأطر اختبار متعددة لاختبار الأنظمة/التكامل . قد تُسهّل واجهة أتمتة الاختبار عملية ربط الاختبارات بمعايير العمل دون الحاجة إلى كتابة أكواد برمجية. كما قد تُحسّن كفاءة ومرونة صيانة الاختبارات. [ 12 ]

تتكون واجهة أتمتة الاختبار من الجوانب التالية:
- محرك الواجهة
- يتكون من محلل ومُشغِّل اختبار. يُستخدم المحلل لتحليل ملفات الكائنات الواردة من مستودع الكائنات وتحويلها إلى لغة برمجة نصية خاصة بالاختبار. أما مُشغِّل الاختبار فيُنفِّذ نصوص الاختبار باستخدام بيئة اختبار . [ 12 ]
- مستودع الكائنات
- مجموعة بيانات كائنات واجهة المستخدم/التطبيق التي تم تسجيلها بواسطة أداة الاختبار أثناء استكشاف النظام قيد الاختبار. [ 12 ]
انظر أيضاً
- مقارنة أدوات اختبار واجهة المستخدم الرسومية
- قائمة أدوات اختبار المواقع الإلكترونية
- اختبار البرمجيات الآلي ( Fuzzing )
مراجع
- ↑ كولاوا، آدم؛ هويزينغا، دوروتا (2007). الوقاية الآلية من العيوب: أفضل الممارسات في إدارة البرمجيات . مطبعة وايلي-IEEE لجمعية الحاسبات. ص 74. ISBN 978-0-470-04212-0.
- ↑ أوكونور، روري ف.؛ أكايا، مارية أوميه؛ كيمانيجي، كرم؛ يلماز، مراد؛ بوث، ألكسندر؛ ميسنارز، ريتشارد (15 أكتوبر 2015). تحسين عمليات الأنظمة والبرمجيات والخدمات: المؤتمر الأوروبي الثاني والعشرون، يوروسبي 2015، أنقرة، تركيا، 30 سبتمبر - 2 أكتوبر 2015. وقائع المؤتمر . سبرينغر. ISBN 978-3-319-24647-5.
- ↑ اختبار التطبيقات بدون واجهة رسومية باستخدام PhantomJS؛ http://phantomjs.org/headless-testing.html
- ↑ جزء من خط الأنابيب: لماذا يُعد الاختبار المستمر ضروريًا ، بقلم آدم أورباخ، رؤى تيك ويل، أغسطس 2015
- ↑ العلاقة بين المخاطرة والاختبار المستمر: مقابلة مع واين أريولا ، بقلم كاميرون فيليب إدموندز، ستيكي مايندز، ديسمبر 2015
- ↑ ديف أوبس: هل تقوم بإرسال الأخطاء إلى العملاء بشكل أسرع ؟، بقلم واين أريولا وسينثيا دنلوب، PNSQC، أكتوبر 2015
- ↑ وقائع المؤتمر الدولي الخامس لاختبار البرمجيات والتحقق من صحتها (ICST). مركز هاجنبرغ لكفاءة البرمجيات. "تصميم الاختبار: الدروس المستفادة والتطبيقات العملية" . doi : 10.1109/IEEESTD.2008.4578383 . ISBN 978-0-7381-5746-7.
- ↑ فودي، باس؛ كوسكيلا، لاس (2007). "تعلم تطوير البرمجيات الموجه بالاختبار من خلال عد الأسطر". مجلة IEEE للبرمجيات . 24 (3): 74-79 . doi : 10.1109/ms.2007.80 . S2CID 30671391 .
- ↑ غاروسي، وحيد؛ مانتيلا، ميكا ف. (2016-08-01). "متى وماذا يجب أتمتته في اختبار البرمجيات؟ مراجعة أدبية متعددة المصادر". تكنولوجيا المعلومات والبرمجيات . 76 : 92-117 . doi : 10.1016/j.infsof.2016.04.015 .
- ↑ برايان ماريك. "متى يجب أتمتة الاختبار؟" . StickyMinds.com . تم الاطلاع عليه بتاريخ 20 أغسطس 2009 .
- ↑ "لقاء سيلينيوم 20/4/2010: إليزابيث هندريكسون تتحدث عن إطار عمل الروبوت (الجزء الأول من جزئين)" . يوتيوب . 28 أبريل 2010. تاريخ الاطلاع: 26 سبتمبر 2010 .
- 1 2 3 "Conquest: Interface for Test Automation Design" (ملف PDF) . مؤرشف من النسخة الأصلية (PDF) بتاريخ 26-04-2012 . تم الاطلاع عليه بتاريخ 11-12-2011 .
مراجع عامة
- إلفرايد داستن وآخرون (1999). اختبار البرمجيات الآلي . أديسون ويسلي. ISBN 978-0-201-43287-9.
- إلفرايد داستن وآخرون (2009). تطبيق اختبار البرمجيات الآلي . أديسون ويسلي. ISBN 978-0-321-58051-1.
- مارك فيوستر ودوروثي غراهام (1999). أتمتة اختبار البرمجيات . مطبعة ACM/أديسون-ويسلي. ISBN 978-0-201-33140-0.
- رومان سافينكوف: كيف تصبح مختبر برمجيات. رومان سافينكوف للاستشارات، 2008، رقم ISBN 978-0-615-23372-7
- هونغ تشو وآخرون (2008). AST '08: وقائع ورشة العمل الدولية الثالثة حول أتمتة اختبار البرمجيات . مطبعة ACM. doi : 10.1145/1370042 . ISBN 978-1-60558-030-2.
- موسلي، دانيال جيه؛ بوزي، بروس (2002). أتمتة اختبار البرمجيات بالقدر الكافي . برنتيس هول بروفيشنال. ISBN 978-0130084682.
- هايز، ليندا جي، "دليل الاختبار الآلي"، معهد اختبار البرمجيات، الطبعة الثانية، مارس 2004
- كانر، سيم، " هياكل أتمتة الاختبار " مؤرشفة في 26 يناير 2021 على موقع Wayback Machine ، أغسطس 2000
- اختبار البرمجيات
- برامج التشغيل الآلي
