مجلة عالم التكنولوجيا
مجلة تكنولوجية شاملة

اختبار البرمجيات.. وظائف حساسة

Software Testing

يعتمد نجاح البرامج على قبول جمهورها المستهدف لما يتم طرحه من واجهة مستخدم رسومية سهلة للمستخدمين واختبار الحمل الوظيفي القوي وغيرها من مزايا البرمجيات المطروحة، وعلى سبيل المثال: يختلف جمهور الخدمات المصرفية تمامًا عن جمهور ألعاب الفيديو؛ لذا عندما تقوم منظمة ما بتطوير منتج برمجي يمكنها تقييم و اختبار البرمجيات Software Testing حتى يتم تحديد ما إذا كان منتج البرمجيات سيكون مفيدًا لمشتريها أم لا.

 

ما هي وظيفة مُختَبِر البرمجيات؟ وما متطلباتها؟

اختبار البرمجيات هي طريقة للتحقق مما إذا كان منتج البرمجيات الفعلي يتطابق مع المتطلبات المتوقعة ولضمان أن منتج البرمجيات خالٍ من العيوب. وهو ينطوي على تنفيذ مكونات البرمجيات/النظم باستخدام أدوات يدوية أو آلية لتقييم خاصية أو أكثر من الخصائص ذات الأهمية، والغرض من اختبار البرامجيات هو تحديد الأخطاء أو الثغرات أو المتطلبات المفقودة على عكس المتطلبات الفعلية.

اختبار البرمجيات

ويمكن القول أيضًا إن اختبار البرمجيات هو عملية تحديد صحة البرمجيات من خلال النظر في جميع سماتها من الموثوقية وقابليتها للتوسع والنقل وإعادة الاستخدام، بالإضافة إلى قابليتها للاستخدام المباشر، كما يتم في عملية اختبار البرمجيات تقييم تنفيذ مكونات البرامج للعثور على أخطاء البرامج أو العيوب.

ويوفر اختبار البرمجيات رؤية مستقلة للبرمجيات وهدفها، كما ينطوي على اختبار جميع المكونات في إطار الخدمات المطلوبة للتأكد مما إذا كانت تفي بالمتطلبات المحددة أم لا، وضمان تزويد العميل بمعلومات عن جودة البرنامج المُنتَج، وغالبًا ما تكون لمختبري البرمجيات شهادة في علوم الكمبيوتر أو تكنولوجيا المعلومات، ولكن مع ذلك فإن الباب مفتوح للخريجين للحصول على مجموعة متنوعة من تخصصات الشهادات بما في ذلك الكيمياء والهندسة الكهربائية والرياضيات والفيزياء.

 

والاختبار إلزامي لأن المنتِج سيكون في موقفٍ خطيرٍ إذا فشل البرنامج في أي وقت بسبب نقص الاختبار؛ لذلك بدون اختبار البرنامج لا يمكن نشره للمستخدم النهائي.

ويتم في عملية اختبار البرمجيات المقارنة التي تقارن سلوك وحالة البرامج بالآليات؛ لأن المشكلة تمكن في التعرف عليها من قِبل الآلية التي تعمل بها البرمجيات، وقد تشتمل هذه الآلية على نُسَخٍ سابقة من نفس المنتج أو التطبيق المُراد اختباره أو البرمجيات القابلة للمقارنة، ويشمل الاختبار فحص الكود تنفيذه في بيئات وظروف مختلفة بالإضافة إلى جميع جوانب فحص الكود، وفي الوضع الحالي لتطوير البرمجيات قد يكون فريق الاختبار منفصلًا عن فريق التطوير بحيث يمكن استخدام المعلومات المستمدة من الاختبار لتصحيح عملية تطوير البرمجيات.

اختبار البرمجيات

الاختبار في هندسة البرمجيات

وفقًا لمنظمة معايير معهد مهندسي الكهرباء والإلكترونيات ANSI/IEEE 1059 فإن الاختبار في هندسة البرمجيات هو عملية تقييم منتج برمجي لمعرفة ما إذا كان منتج البرمجيات الحالي يفي بالشروط المطلوبة أم لا، وتتضمن عملية الاختبار تقييم ميزات منتج البرمجيات وفقًا للمتطلبات؛ من حيث أي متطلبات أو أخطاء وأمن وموثوقية وأداء، وتتضمن وظيفة اختبار البرمجيات مهامًا كالاختبار الوظيفي واختبار الأداء غير الوظيفي وعمليات الصيانة.

 

أهمية وظيفة اختبار البرمجيات

  1. فعالية التكلفة Cost-Effective: حيث تعتبر فعالية المنتج إحدى المزايا المهمة لاختبار البرمجيات، ويساعد اختبار أي مشروع لتكنولوجيا المعلومات خلال الوقت المحدد في توفير الأموال على المدى الطويل في حالة اكتشاف الأخطاء في المراحل المبكرة من اختبار البرامج؛ حيث يكون إصلاحها أقل تكلفة.
  2. الأمان Security: إنه الفائدة الأكثر قيمة وحساسية لاختبار البرامج؛ إذ يبحث المستخدمون عن منتجات على درجة عالية من موثوقة وتساعد في إزالة المخاطر والمشاكل في وقت مبكر، خصوصًا المحاطر التي تتعلق بتأمين الحسابات الشخصية للعملاء.
  3. جودة المنتج Product quality: وهو المطلب الأساسي لأي منتج برمجي ويضمن الاختبار تسليم منتج عالي الجودة للعملاء.
  4. رضاء العملاء Customer Satisfaction: الهدف الرئيسي لكل أصحاب المنتجات هو إرضاء عملائهم ويجب على المنتجين توفير أفضل تجربة مستخدم عبر ما ينتجونه من برمجيات.

 

استراتيجية اختبار البرامج

ترتكز استراتيجية اختبار البرمجيات على عدة أُسس وهي:

  1. اختبار الوحدة Unit Testing: يَتَّبِع المبرمِج هذا النهج الأساسي في اختبار البرنامج؛ عبر اختبار وحدة البرنامج وذلك يساعد المطورين في معرفة ما إذا كانت الوحدة الفردية للكود تعمل بشكل صحيح أم لا.
  2. اختبار التكامل Integration testing: يركز على بناء وتصميم البرنامج. يجب أن تُفحص الوحدات المتكاملة تعمل دون أخطاء أم لا.
  3. اختبار النظام System testing: في هذه الطريقة يتم تجميع البرنامج ككل ثم يتم اختباره بصورة كاملة، وتتحقق هذه الخطوة من الوظيفة والأمن وإمكانية النقل من بين أمور أخرى.

 

مما سبق وضح جليًا أهمية عملية اختبار البرمجيات وهناك أمثلة عملية على ذلك؛ ففي أبريل 2015 تحطمت محطة بلومبرج في لندن بسبب خلل في البرامج؛ ما أثر في أكثر من 300 ألف مُتداوِل في الأسواق المالية وأجبرت الحكومة على تأجيل سداد ديون بقيمة 3 مليارات جنيه، كما استرجعت شركة سيارات نيسان أكثر من مليون سيارة من السوق بسبب فشل البرامج في أجهزة الكشف الحسية للوسادة الهوائية؛ حيث تم الإبلاغ عن حادثين بسبب عطل ذلك البرنامج.

واضطرت ستاربكس Starbucks إلى إغلاق حوالي 60 في المائة من المتاجر في الولايات المتحدة وكندا بسبب فشل البرامج في نظام نقاط البيع الخاص بها في مرحلة ما، وقام المتجر بتقديم القهوة مجانًا لأنهم لم يتمكنوا من معالجة العطل في حينه. وفي أمازون قال بعض تجار التجزئة المتعاملين مع الشركة إن سعر منتجاتهم قد انخفض إلى بنس واحد بسبب خلل في البرامج، وتعرض على إثرها التجار إلى خسائر فادحة.

 

أما أشهر الأخطاء التقنية فكانت الثغرة في ويندوز 10، وهي الثغرة التب مكَّنت المستخدمين من الهروب من sandboxes الأمنية من خلال خلل في نظام win32k.

الرابط المختصر :
close

مرحبا 👋

سعداء بالتواصل معكم
قم بالتسجيل ليصلك كل جديد

نحن لا نرسل البريد العشوائي! اقرأ سياسة الخصوصية الخاصة بنا لمزيد من المعلومات.

اترك رد

لن يتم نشر عنوان بريدك الإلكتروني.