الاختبار الشامل (E2E) هو منهجية اختبار برمجية تعمل على التحقق من صحة سير عمل التطبيق بالكامل من البداية إلى النهاية.
يؤكِّد اختبار E2E أن العناصر المتكاملة (مثل الواجهة الأمامية والخلفية وقواعد البيانات والخدمات التابعة لجهات خارجية) تعمل معًا بسلاسة. ويسعى أيضًا إلى دمج سيناريوهات المستخدم في العالم الحقيقي.
تتوفر الآن مجموعة كاملة من أنواع اختبارات البرمجيات المتاحة. يمكنك اختبار مناطق محددة من تطبيق بأكمله، والتركيز على الجانب المحدد الذي يجذب اهتمامك، حتى اختبار الوحدات وهو أصغر مستوى تدريجي لها. ربما قد ترغب في اختبار مدى جودة أداء البرنامج لوظائف محددة مختلفة أو مدى تناسق مكوناته المختلفة مع بعضها. في هذه الحالة، سيكون من الأفضل أن تستكشف الاختبار الوظيفي أو اختبار التكامل.
ولكن لنفترض أن هدفك هو الحصول على الصورة الأكثر اكتمالًا لكيفية عمل التطبيق البرمجي. تريد رؤية التطبيق أثناء العمل - من البداية إلى النهاية - ومعرفة مدى كفاءته في التعامل مع أنظمته الفرعية والتبعيات المرتبطة بها.
بالإضافة إلى هذه الخطوات، لنفترض أنك تريد أيضًا الحصول على فكرة عامة عن مدى جودة عمل واجهة المستخدم (UI) . لذلك، مهما كان نهج اختبار واجهة المستخدم (UI) الذي تختاره يحتاج إلى معالجة أداء التطبيق من منظور المستخدم.
يوفر الاختبار الشامل (E2E) نوعًا من إطار عمل اختبار شامل والذي يوفر رؤية شاملة لسلوك التطبيق ووسيلة لتقييم جودة تجربة المستخدم (UX).
نظرًا لأن الاختبار الشامل (E2E) طموح بما فيه الكفاية ليشمل دورة حياة تطوير التطبيق بأكملها، فليس من المستغرب أن نكتشف أن اختبار E2E يتطلب المزيد من الالتزام والموارد والوقت.
يختلف اختبار E2E بشكل كبير عن استراتيجية اختبار "الصندوق الأسود"، حيث يتم تقليص العملية إلى تقييم "النجاح/الفشل". تعني هذه الاستراتيجية أننا نكتشف فقط ما إذا كان التطبيق يعمل كما هو مذكور عند الاتفاق. لهذا السبب، فإن اختبار E2E ليس الخيار المثالي لكل غرض. عادةً ما تكون عملية اختبار تستغرق وقتًا طويلاً ويفضل استخدامها في الحالات التي يحتاج فيها المختبرون حقًا إلى تقييم كل مرحلة من مراحل أداء التطبيق.
النشرة الإخبارية الخاصة بالمجال
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
سيصلك محتوى الاشتراك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك من هنا. لمزيد من المعلومات، راجع بيان خصوصية IBM.
تعتمد عملية الاختبار الشامل (E2E) على هذه الخطوات:
تبدأ العملية بالمختبرين الذين يكرسون بعض التفكير في كيفية تشغيل التطبيق من قبل مستخدمين حقيقيين. يتمثل جزء من هذه المرحلة في التفكير في أهم تفاعلات المستخدم في التطبيق، وكيفية توجيه سير العمل داخل التطبيق.
يجب أن تعكس سيناريوهات الاختبار المختلفة مجموعة معقولة من سيناريوهات العالم الحقيقي ورحلات المستخدم، ويجب على المختبرين توثيق هذه السيناريوهات ورسم الخطوات المختلفة المتضمنة في كل منها.
يحتاج المختبرون أيضًا إلى نظام إدارة الاختبار حتى يمكن الاحتفاظ بحالات الاختبار بطريقة منظمة ويسهل الوصول إليها. تؤدي مجموعات الاختبار هذه الوظيفة، من خلال تجميع حالات الاختبار وفقًا لرحلات المستخدم أو ميزة محددة أو وحدات وعناصر معينة.
وتتعلق هذه المرحلة ببيئة الاختبار، وهي خطوة أخرى تتطلب بعض التخطيط المسبق. من الناحية المثالية، يجب على المختبرين تطوير بيئة إطلاق تشبه إلى حد كبير بيئة الإنتاج.
يقوم المختبرون بملء بيئة الإطلاق هذه بالعناصر الفردية التي يتم دمجها عادةً في عملية تطوير البرامج، مثل واجهة برمجة التطبيقات (API) وقواعد البيانات والعناصر الضرورية الأخرى. وفي حالة تعذر الوصول إلى بيانات الأداء الحقيقية، قد يختار المختبرون استخدام البيانات التركيبية بدلاً من ذلك.
الجانب التالي في تصميم اختبارات E2E هو اختيار أدوات الاختبار المناسبة، وتحديدًا أطر العمل وأدوات الأتمتة الضرورية. تثبت أدوات الأتمتة أنها ضرورية لتشغيل اختبارات E2E لأنها تبسط عملية الاختبار وتجري الاختبارات بشكل أسرع. عندما يقوم المختبرون بتقييم أداء التطبيق بالكامل، فإن هذا التوفير في الوقت يساعد على الكفاءة.
تعتمد الأدوات التي يستخدمها المختبرون بالضبط على نوع التطبيق. عادةً ما يختار المختبرون الذين يقومون بتجهيز تطبيقات الويب أدوات مثل Cypress أوSelenium. يختار المختبرون الذين يعملون مع تطبيقات الأجهزة المحمولة أدوات مثل Appium.
لقد اقتربنا من المرحلة التي يقوم فيها المختبرون بصياغة نصوص الاختبار التي تحدد سيناريوهات الاستخدام المختلفة من حيث صلتها بجميع العناصر ذات الصلة، مثل الواجهة الأمامية والخلفية وقواعد البيانات وواجهات برمجة التطبيقات.
عند تشغيل اختبارات E2E، يقوم المختبرون بتقييم سلوك التطبيق أثناء تقدم سير العمل، والتحقق للتأكد من الحفاظ على سلامة البيانات طوال تنفيذ الاختبار. إذا اختار المختبرون عدم استخدام البرامج النصية للاختبار، فإنهم بحاجة إلى إجراء اختبار يدوي لسيناريوهات الاختبار بدلاً من ذلك.
لا تكون طرق الاختبار مفيدة إلا بقدر ما تكشف عنه، وخلال هذه المرحلة يكون الوقت قد حان لتقييم بيانات الاختبار التي أنتجها الاختبار بعناية. يقوم المختبرون بمقارنة نتائج الاختبار والمقاييس المرتبطة بها مع النتائج المتوقعة لمعرفة ما يمكن تعلمه من تغطية الاختبار وما هي أوجه القصور أو الأخطاء التي لا تزال موجودة حاليًا داخل الكود.
يبدأ المختبِرون الآن بالعمل على إصلاح أي مشكلات تم اكتشافها من خلال الاختبار. يدرس المختبِرون رسائل الخطأ وسجلات الأداء لمعرفة مصدر الفشل. عندما ينجح المختبِرون في تصحيح مشكلات التطبيق، تتم إعادة تشغيل الاختبارات لمعرفة إذا ما كانت قد تمت معالجة المشكلات وتحسين الأداء من خلال عملية الاختبار.
هذه المرحلة التي يقوم فيها المختبِرون بتشغيل وظائف ضمان الجودة (QA) العادية، بهدف إنشاء جودة بيانات سلسة.
تتضمن الخطوة الأخيرة من اختبار E2E تسخير قوة الأتمتة للتأكد من دمج الاختبارات المؤتمتة بشكل صحيح كنشاط يحدث بانتظام. وهذا يعني إضافة أتمتة الاختبار من أداة مثل إطار العمل مفتوح المصدر Playwright إلى مسار التكامل المستمر والتسليم المستمر (CI / CD) بحيث يتم تشغيل الاختبارات الضرورية بشكل منتظم وروتيني.
يمكن بعد ذلك للمختبرين الذين يستخدمون مسار التكامل المستمر والتسليم المستمر (CI / CD) اكتشاف مشكلات الأداء في وقت مبكر من عملية تطوير البرمجيات، عندما يكونون قادرين على تخفيفها بسرعة وسهولة.
هل تريد تحسين ممارسات الاختبار الشامل؟ ضَع في اعتبارك هذه النصائح.
غالبًا ما تختلف رحلات المستخدم اختلافًا كبيرًا، وعلى الرغم من أهمية تضمين أكبر عدد ممكن منها في الاختبار، إلا أنك ستحتاج على الأرجح إلى تحديد أولوياتك في الاختبار. يجب أن يركز هذا النهج على اختبار أهم رحلات المستخدم أولاً.
ستختلف كيفية تعريفك لكلمة "أهم" إلى حد ما. ومع ذلك، بشكل عام، نحن نتحدث هنا عن تلك الاختبارات التي يتم إجراؤها بتواتر منتظم بسبب أهميتها الثابتة والمستمرة بالنسبة إلى المؤسسة - مثل تسجيل الدخول إلى الموقع، على سبيل المثال.
الجزء الآخر من هذه الخطوة هو تقسيم مهام سير العمل إلى خطوات يمكن التحكم فيها لتسهيل الاختبار.
المحددات هي أنماط تستدعي العناصر التفاعلية داخل نموذج كائن المستند (DOM) لصفحة ويب. تعمل المحددات كعناوين تساعد أُطر عمل الاختبار في تحديد موقع عناصر الشاشة مثل حقول الإدخال والعناصر النصية والأزرار.
وبالمثل، من الأفضل استخدام سمات "data-*" أو معرِّفات مستقرة أخرى. ينبغي تجنُّب المحدِّدات الهشة مثل أسماء الفئات. علاوةً على ذلك، يمكن أن يمر هيكل DOM بتكرارات مختلفة؛ لذلك من الأفضل استخدامه بعناية.
ما الذي يدخل في إجراء اختبار جيد؟ يمكن أن يتخذ النجاح أشكالاً متعددة، ولكن أفضل أمثلة الاختبار عادةً ما تشترك في بعض السمات. بالنسبة للمبتدئين، يجب أن يكون المختبرون قادرين على استدعاء نفس الاختبار كلما كان ذلك مطلوبًا، لذلك من المستحسن التأكد من أن الاختبارات قابلة للتكرار.
وعلى نحو مماثل، يجب أن يكون الاختبار قادرًا على العمل بحرية ودون عوائق بسبب التأثيرات الخارجية، مثل مشكلات توفُّر الطرف الثالث وتوقيت الشبكة. إذ يمكن أن تؤدي هذه المشكلات إلى نتائج غير موثوق بها.
بدون إدارة فعالة لكبح جماح زحف النطاق، من السهل أن تصبح اختبارات E2E كبيرة جدًا. عندما يحدث ذلك، قد تتعطل الاختبارات ويصبح من الصعب تشغيلها. وبالتالي، فإن أداء الاختبار يعاني تبعاً لذلك.
لهذا السبب، حيثما أمكن، من المنطقي إلغاء تحميل بعض مهام المعالجة الثقيلة. هذا يعني في المقام الأول أنشطة التحقق المنطقي، والتي يمكن للمختبرين القيام بها كجزء من اختبار الوحدة واختبار التكامل. تسمح هذه الطريقة لاختبارات E2E بالبقاء مكرسة للتحقق من صحة اتجاهات سلوك المستخدم ومزامنة أنظمة البرامج.
ربما يكون أعظم شيء يمكن أن يفعله المختبر لتشجيع الاختبار الفعال والشامل هو إطلاق العنان لقوة المعالجة الهائلة التي تمثلها الأتمتة. هذه هي الطريقة الرئيسية لضمان إجراء الاختبار بمعدل تكرار مناسب.
كما أنها الوسيلة الرئيسية للحد من الوجود المستمر للأخطاء البشرية في الاختبارات، بالإضافة إلى أتمتة أعمال الاختبار المتكررة. عند العمل مع التطبيقات العابرة للمتصفحات وتطبيقات الأجهزة المحمولة، يختار العديد من المختبرين خدمات الاختبار القائمة على السحابة.
يعد إنشاء بيئات الاختبار والحفاظ عليها جزءًا مهمًا من اختبار النظام. يجب على المختبرين تحسين بيئة الاختبار وجعلها بالأسلوب الرشيق قدر الإمكان لتمكين الإعداد السريع والاختبار الفوري.
من المهم للغاية أيضاً أن توفر بيئات الاختبار عزلاً عميقاً لحماية نتائج الاختبار من التداخل غير المبرر من مصادر خارجية.
يعمل اختبار E2E بشكل أفضل عندما تكون جميع الأطراف التابعة منخرطة بالأمر. هكذا يمكن للمختبرين استخدام نتائج الاختبارات عالية الجودة التي تثبت قيمتها بشكل خاص أثناء مراجعات التعليمات البرمجية. على وجه الخصوص، تحتاج فرق عمليات التطوير وفرق ضمان الجودة إلى الحفاظ على التواصل الوثيق والتعاون للمساعدة في ضمان الجودة المثلى للبرامج.
من المهم أيضا تثقيف فرق ضمان الجودة حتى يكون لديهم فهم واضح لمتطلبات أعمال المؤسسة وعدم المساومة عليها عن غير قصد أثناء المراجعات.
أخيراً، تنبيه جميع الأطراف المعنية بشأن تطورات المشروع.
تعد واجهات برمجة التطبيقات مهمة للغاية لتشغيل التطبيقات لأنها تسمح للمكونات المختلفة المتضمنة في التطبيق بالتواصل مع بعضها البعض.
يركز اختبار واجهة برمجة التطبيقات على وظائف واجهة برمجة التطبيقات ويمكنه التخلص من أي مشاكل منطقية قبل أن يقوم المختبرون بتقييم وظائف واجهة المستخدم (UI).
عند تشغيل اختبارات متعددة، يجب أن تستفيد من قدرة نظامك على إجراء اختبارات متعددة عن طريق تشغيل الاختبارات بالتوازي. تنطبق هذه الطريقة بشكل خاص على تكوينات الاختبار المستندة إلى السحابة، ولكنها تُعَد إرشادات جيدة في جميع المجالات.
عند تشغيل الاختبارات بالتوازي، فإنك تقلل من مقدار الوقت اللازم لتنفيذ الاختبار، بالإضافة إلى تمكين الحصول على التعليقات بشكل أسرع من هذه الاختبارات.
كما يتم تذكيرنا الآن باستمرار، لا يبقى القليل في عالم الكمبيوتر على حاله لفترة طويلة. تتغير الأمور وتتطور المواقف، وكذلك التطبيقات. وبسبب هذا التغيير المستمر، فإن عمل المختبرين لا ينتهي أبداً بشكل كامل.
من الذكاء إعادة النظر في حالات اختبار E2E بشكل دوري ومعرفة ما إذا كان أي شيء قد تغير قد يؤثر سلباً على الأداء.
يعمل الذكاء الاصطناعي (AI) على تنشيط وإحداث ثورة في جميع جوانب الحوسبة تقريبًا. بالنسبة لاختبار E2E، فإن الفوائد الرئيسية للذكاء الاصطناعي تشبه تقريبًا الفوائد التي يقدمها الذكاء الاصطناعي لأشكال أخرى من اختبار البرمجيات. في الأساس، يجعل الذكاء الاصطناعي هذا اختبار E2E يحدث بشكل أسرع، ويدفع العملية لتصبح أكثر كفاءة، ويحافظ على حماية التطبيقات بشكل أفضل من الأخطاء.
وبعيداً عن هذه الجوانب، يساعد الذكاء الاصطناعي في عملية اختبار E2E من خلال إنشاء حالات اختبار بناءً على سلوك التطبيق وتدفقات المستخدم. يتضمن هذا النهج اختبارات "الشفاء الذاتي" التي يمكن أن تصحح نفسها بناءً على تعرف النظام على تغييرات واجهة المستخدم (UI).
يمكن للذكاء الاصطناعي مراقبة الاختبارات في التطبيقات المتطورة وتكييف تلك الاختبارات بناءً على التغييرات الملحوظة التي يراها. وعندما يحين وقت إجراء تلك الاختبارات، يمكن للذكاء الاصطناعي تنفيذ ذلك بسرعات فائقة. علاوةً على ذلك، يمكنه تحديد المناطق التي قد تتطلب اختبارات متابعة إضافية.
بالنسبة إلى المؤسسات التي ترغب في تجنب النفقات الباهظة للبنية التحتية المحلية، هناك اختبارات مبنية على الذكاء الاصطناعي يمكن تشغيلها على السحابة. بالنسبة للشركات العاملة في مجال نشر البرمجيات، يمكن للذكاء الاصطناعي أن يساعدها في إجراء اختبارات البرمجيات اللازمة بشكل أسرع، وبالتالي تمكين إصدار المنتجات بشكل أسرع.
أخيراً، وعلى النقيض من المفاهيم السائدة حول "استحواذ" الذكاء الاصطناعي على أي أنشطة تجارية، فإن الذكاء الاصطناعي يسهل على المستخدمين غير التقنيين المشاركة في عملية الاختبار. إنه يجلب المزيد من الأشخاص إلى العملية من خلال أدوات مدعومة بالذكاء الاصطناعي والتي تتطلب معرفة افتراضية أقل من جانب المختبرين.
خدمة مُدارة بالكامل ومستأجر واحد لتطوير تطبيقات Java وتسليمها.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
إن تطوير تطبيقات السحابة يعني البناء مرة واحدة، والتكرار بسرعة، والنشر في أي مكان.