يُعَدّ الاختبار الانحداري استراتيجية لاختبار البرمجيات تُستخدم للتحقق من أن تعديلات التعليمات البرمجية لا تضر بالوظائف القائمة ولا تُدخل أخطاء جديدة.
يُجرى الاختبار الانحداري عادةً بعد تطبيق إصلاحات للأخطاء، ويتضمن إعادة تشغيل الاختبارات للتأكّد من أن الميزات تعمل كما هو متوقَّع بعد إضافة تعليمات برمجية جديدة.
من سمات الاختبار الانحداري تميّزه بسهولة التنقّل عبر مختلف مراحل اختبار تطوير البرمجيات. يمكن إجراء الاختبار الانحداري في أي وقت تودّ فيه أو تحتاج إلى الرجوع خطوة للتأكّد من أن الشيفرة الجديدة لا تؤثر سلبًا في الوظائف الكلية وكفاءة مهام سير العمل.
النشرة الإخبارية الخاصة بالمجال
ابقَ على اطلاع دومًا بأهم—اتجاهات المجال وأكثرها إثارة للفضول—بشأن الذكاء الاصطناعي والأتمتة والبيانات وغيرها الكثير مع نشرة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.
أي مؤسسة تتلقّى تعليماتها البرمجية تحديثات متكرّرة تحتاج على الأرجح إلى تطبيق أساليب الاختبار الانحداري. أصبحت تحديثات التعليمات البرمجية شائعة على نطاق واسع لدرجة يصعب معها الحصول على عددٍ إجمالي دقيق وموثوق.
ومع ذلك، وبفضل تقنيات مثل الذكاء الاصطناعي (AI) ومسار التكامل والتسليم المستمر (CI/CD)، يزيد كثير من المؤسسات وتيرة تغييرات التعليمات البرمجية، مع قيام بعض الجهات بتحديثات يومية. وهذا يترتّب عليه الكثير من اختبارات الانحدار.
ومن المجالات التي يحتل فيها الاختبار الانحداري موقعًا محوريًا جهود ضمان الجودة (QA). تتشابه مهام الاختبار الانحداري وفِرَق ضمان الجودة بدرجة كبيرة— فكلاهما يهدف إلى تحسين تجربة المستخدم وتقديم بيانات عالية الجودة وبرمجيات بأعلى قدر ممكن من الأمان.
أمّا الاختلاف فيكمن في مدى شمول الصورة التي ينظر إليها كل منهما. يركّز الاختبار الانحداري على نطاق أدقّ لمراجعة التغييرات الحديثة، بينما يُقيِّم ضمان الجودة النظام بأكمله وآلية عمله.
تعمل تقنيات الاختبار الانحداري كوسيلة حماية ضد تغييرات التعليمات البرمجية التي تفتقر إلى التوافق مع النظام المستضيف لها. ومن المهم وجود مثل هذه التدابير للحفاظ على تشغيل النظام في حالته المُثلى.
في الاختبار الانحداري، عادةً ما يُتَّبع هذا التسلسل من الخطوات (أو ما يشبهه بدرجة كبيرة):
رغم أن الموضوع يبدو بسيطًا، فإن هناك عددًا واسعًا من أساليب الاختبار الانحداري. لكل أسلوب طابعه المميز على الاختبار الانحداري.
الاختبار الانحداري للوحدات، كما يوحي اسمه، يركّز هذا النوع على الوحدات أو المكونات الفردية للنظام والتأكد من عدم إدخال أخطاء إليها.
مثال: قد يضيف المطورون ميزة "نسيت كلمة المرور" إلى موقع ويب. يتحقق اختبار الوحدات من أن آلية تسجيل الدخول الأصلية ما زالت تعمل كما هو مقصود رغم إضافة الميزة الجديدة.
الاختبار الانحداري الجزئي، يُستخدم لمعرفة ما إذا كانت التغييرات الأخيرة قد أثرت فقط في جزء من النظام المحدَّث.
مثال: لنفترض أن موقعًا يدمج بوابة دفع جديدة. قد يقيِّم الاختبار الجزئي جزءًا من هذه الوظيفة دون التحقق من الميزات الأخرى غير ذات الصلة.
وفي أوقات أخرى، قد يلزم إجراء اختبار أكثر شمولا، مثل اتباع تغييرات التعليمات البرمجية الرئيسية. يتضمن الاختبار الانحداري الكامل إعادة اختبار النظام أو التطبيق بأكمله لضمان استمرار الأداء الوظيفي.
مثال: إذا قرر مطورو موقع إضافة معرض للمنتجات، فسيتم إجراء اختبار انحداري كامل يشمل وظيفة المعرض الجديد وجميع حالات الاختبار القائمة، التي يجب إعادة تشغيلها.
الاختبار الانحداري الانتقائي يُدخل بُعدًا تنبؤيًا في الاختبار الانحداري. إذ يتم اختيار حالات من مجموعة الاختبار استنادًا إلى تقدير المختبرين بأن هذه المناطق قد تتأثر بالتغييرات البرمجية الأخيرة.
مثال: قد يكتشف مطورو تطبيق للهاتف المحمول أنهم بحاجة إلى دمج بعض التحديثات في واجهة المستخدم. في مثل هذه الحالة، قد يستخدم المطورون الاختبار الانحداري الانتقائي لضمان الاستقرار المستمر لواجهة المستخدم.
ويُعد هذا بمثابة نهج مختلط للاختبار يقيم كلًّا من الميزات الجديدة والميزات القائمة. أما الاختبار الانحدار التدريجي فيتحقّق من كل ميزة على حدة لاكتشاف الأخطاء التي قد تكون ناتجة عن الوظائف الجديدة.
مثال: عندما تطلق مؤسسة تحديثًا جديدًا لمنتج برمجي قائم، فإن الشركة عادةً ما تُجري اختبارًا انحداريًا تدريجيًا مسبقًا للتأكد من أن وظيفة التحديث الأخير ما زالت تعكس ما أظهرته السلسلة السابقة.
يتمثل الهدف من الاختبار الانحداري التصحيحي في ضمان اتساق البيانات. يُعاد إجراء حالات الاختبار لمعرفة ما إذا كانت تحدث نتائج اختبار مماثلة. ويُجرى هذا النوع من الاختبارات غالبًا عندما لا تُجرى تغييرات على قاعدة التعليمات البرمجية.
مثال: ليست الميزات الجديدة دائمًا ما تتم إضافته إلى البرمجيات. أحيانًا تُجرى تغييرات بغرض تحسين التعليمات البرمجية وجعلها تعمل بكفاءة أكبر. ويُستخدم الاختبار الانحداري التصحيحي في الحالات التي يُعاد فيها إعادة هيكلة التعليمات البرمجية للتأكد من أن هذه العملية لا تُدخل أخطاء في التعليمات البرمجية.
يُعتبر الاختبار الانحداري لإعادة الاختبار الكامل (Retest-all Regression Testing) اختبارًا بعديًّا نهائيًا. ويشمل قيام فرق التطوير بتشغيل جميع حالات الاختبار الانحداري التي تم اجتيازها مسبقًا، فقط للتأكد من أن كل شيء يعمل بانسجام.
مثال: يُستخدم هذا النوع من الاختبار عادةً للتحقق من التغييرات التي قد ترافق التحولات الكبرى في البنية البرمجية. على سبيل المثال، تطبيق مالي يعتمد إطار عمل جديد يمثل تغييرًا جوهريًا في التشغيل.
الأنواع المختلفة من الاختبارات المذكورة قد تستغرق وقتًا طويلًا، وهذا هو السبب في الاستعانة غالبًا بأدوات الاختبار المؤتمت لتسريع العملية. فتنفيذ الاختبارات يصبح أسرع حتى عند التعامل مع أنظمة ضخمة.
مثال: يمكن استخدام الاختبار الانحداري المؤتمت بعد تحديثات الواجهة الخلفية لتحديد ما إذا كانت نقاط النهاية الخاصة بواجهة برمجة التطبيقات ما زالت تولّد البيانات والاستجابات الصحيحة، مما يدل على صحة التشغيل الكلي.
بعض سيناريوهات الاختبار تتطلب فهمًا بشريًا، وهنا يُجرى الاختبار الانحداري اليدوي. ومن المفهوم أن الاختبار اليدوي يتطلّب عادةً وقتًا أطول للتنفيذ بسبب الحساسية الخاصة التي يقوم عليها العمل.
مثال: يجب أن تبدو مواقع الويب مُرضية ومتناسقة عبر مختلف المنصات. وباستخدام الاختبار الانحداري اليدوي، يمكنك التحقق من استجابة الموقع بعد إجراء تغييرات في التخطيط.
ويستفيد هذا النوع من الاختبار من Selenium، وهو إطار عمل مفتوح المصدر لأتمتة الويب. يعزز الاختبار الانحداري باستخدام Selenium استقرار البرمجيات من خلال الكشف المبكر عن التراجعات وضمان أن التغييرات الجديدة لا تُعيق التعليمات البرمجية الموجودة. وهو مفيد بشكل خاص في البيئات التي تشهد تحديثات مستمرة، مثل التكامل المستمر.
مثال: نظام لحجز تذاكر الطيران يضيف وظيفة جديدة تُمكّن من الدفع ببطاقات الخصم المباشر بالإضافة إلى بطاقات الائتمان المسموح بها سابقًا. يستطيع Selenium التحقق من أن تدفق مدفوعات بطاقات الائتمان لا يزال يعمل كما هو متوقّع.
تُقيَّم جودة البرمجيات وفقًا لعدة متغيرات قائمة بمعزل عن دورة حياة تطوير البرمجيات (SDLC). يسعى الاختبار الانحداري غير الوظيفي إلى التحقق من وجود برمجيات عالية الجودة تكون آمنة للاستخدام وتدعم تجربة مستخدم جيدة.
مثال: يضيف مطورو أحد مواقع الويب ميزات جديدة، ثم يرغبون في تحديد كيف تؤثر الوظائف الجديدة في سرعات التشغيل. يتحقق الاختبار الانحداري غير الوظيفي من أوقات التحميل. وإذا زادت تلك الأوقات، فهذا يشير إلى وجود انحدار.
جانب رئيسي آخر من الاختبار الانحداري هو قدرته على العمل جنبًا إلى جنب مع مخططات اختبار أخرى لإنتاج تأثيرات تكاملية. وفيما يلي بعض الأمثلة:
ينطوي الذكاء الاصطناعي على تأثيرات مذهلة واسعة النطاق. وقليل من الصناعات استثمرت فيه بقدر ما فعل قطاع التقنية، ويُعد الاختبار الانحداري أحد العديد من العمليات التقنية التي يتم تسريعها جذريًا بفضل قوة الذكاء الاصطناعي.
وتُعتبر عبارة "تسريع" وصفًا دقيقًا، لأن الطريقة الرئيسية التي يعزز بها الذكاء الاصطناعي الاختبار الانحداري هي من خلال زيادة السرعات التي يتم بها التوصل إلى استنتاجاته المختلفة. ومع ذلك، يعمل الذكاء الاصطناعي أيضًا على زيادة دقة بيانات الاختبار هذه.
فعلى وجه التحديد، يستخدم الذكاء الاصطناعي خوارزمياته لبناء حالات اختبار ذات صلة من خلال تحليل بيانات الاختبارات التاريخية، وسلوك المستخدم، والتغييرات في التعليمات البرمجية. ويساعد ذلك في إعطاء الأولوية للاختبارات وفقًا للتأثيرات المتوقعة. وعندما يُجري الذكاء الاصطناعي تلك الاختبارات، فإنها تُنفَّذ بسرعة أكبر وتنتج نتائج اختبار أسرع.
كما يعمل الذكاء الاصطناعي على تحسين طبيعة اختبارات الانحدار وجودتها من خلال استخدام طرق الكشف عن العيوب واختبارات الشفاء الذاتي. ويساعد ذلك على الحفاظ على كفاءة الاختبارات المؤتمتة حتى أثناء استمرار عمليات التطوير. وفي نهاية المطاف، يُحسِّن الذكاء الاصطناعي اختبارات التراجع عبر تعزيز عملية اتخاذ القرار وأتمتة المهام، مما يساهم في خفض التكاليف وتسريع الوقت اللازم للوصول إلى السوق.
خدمة مُدارة بالكامل ومستأجر واحد لتطوير تطبيقات Java وتسليمها.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
إن تطوير تطبيقات السحابة يعني البناء مرة واحدة، والتكرار بسرعة، والنشر في أي مكان.