نشر بتاريخ : 11 الثلاثاء , أكتوبر, 2022

دور اختبار البرامج اليدوي (Manual Software Testing) في تطوير البرمجيات

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


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

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

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

 

جوهر الاختبار على مشروع البرمجيات

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

 

دور ومزايا الاختبار اليدوي

 

يعد الاختبار اليدوي أرخص للعديد من مشاريع البرامج

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

 

البشر أفضل بما لا يضاهى في فهم البشر من الآلات 

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

 

يسهل الاختبار اليدوي اختبار التغييرات الصغيرة

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

 

يساعد الاختبار اليدوي في تقييم كيفية إدراك المستخدم للمنتج

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

 

لا تستطيع الأدوات الآلية تقييم المكونات الجمالية لتطبيق البرنامج 

لا يمكن قياس عوامل التجميل ، مثل اللون أو الخط أو الحجم أو التباين أو طول الزر ، بنجاح بواسطة خوارزمية. يمكن للإنسان فقط تحديد ما إذا كان اللون الأحمر - القرمزي ، أو القرمزي ، أو الياقوتي ، أو التدرج اللوني المحدد من اللون العنابي - هو اللون الذي يطابق معايير العميل.

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

 

يمكن لنوع اختبار البرنامج الآلي اختبار ما يمكن توقعه فقط 

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

 

يمكن أن يصبح فحص الفشل الذي يتم إجراؤه بواسطة الأدوات الآلية غير مستقر 

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

 

لا يسمح اختبار الأتمتة بالاختبار العشوائي

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

 

لا يتطلب الاختبار اليدوي معرفة البرمجة 

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

  • نطاق
  • إدارة النظام
  • شبكة الاتصال
  • تفاصيل قاعدة البيانات.

ويمكنهم رؤية الصورة الكبيرة عند إعطاء الأولوية للمخاطر من أجل منع العواقب الكارثية. 

تحتوي تطبيقات تتبع النشاط على العديد من المكونات للاختبار الآلي

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

  • طابعات
  • يراقب البرامج
  • واجهات برمجة التطبيقات
  • الخدمات السحابية ، إلخ.

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

 

لا يمكن اختبار بعض التطبيقات والميزات بشكل صحيح على الكمبيوتر 

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

 

استنتاج

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