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

المستخدم النهائي وبناء النظام

software testing

من الشائع في الوسط البرمجي وجود فكرة أن المبرمج لا يستطيع أن يفحص النظام الخاص به، وهذا أمر صحيح، فالمبرمج يعرف مداخل ومخارج النظام، إذا كتبت هنا 3 سيعمل البرنامج، وإذا كتبت 5 لن يعمل، فبالتالي حينما يقوم بتجربة النظام الخاص به، مباشرة يدخل 3 أو 5 ويختبر النظام إما نجاح أو فشل العملية، وتنتهي المشكلة.

من الشائع في الوسط البرمجي وجود فكرة أن المبرمج لا يستطيع أن يفحص النظام الخاص به، وهذا أمر صحيح، فالمبرمج يعرف مداخل ومخارج النظام، إذا كتبت هنا 3 سيعمل البرنامج، وإذا كتبت 5 لن يعمل، فبالتالي حينما يقوم بتجربة النظام الخاص به، مباشرة يدخل 3 أو 5 ويختبر النظام إما نجاح أو فشل العملية، وتنتهي المشكلة.

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

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

developers testing vs tester testing

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

ولكن ماذا عن وجود مستخدم من بداية بناء النظام ؟

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

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

بووووووووووووووم

فكرة بسيطة جدا جدا جدا، ولكنها عبقرية، ما كانت لتأتي على بال المبرمجين ولو بعد ألف سنة، المبرمج يفكر أن الجميع ينسخ ويلصق كلمة المرور، لكن المستخدم النهائي ليس بعلقية المبرمج، ويرى أن العملية صعبة أو مجهدة، ويجب وجود طريقة أسهل.

الخلاصة أن الشركات الحقيقة تستخدم فعلا مستخدمين في كافة مراحل دورة حياة المشروع Project Life Cycle ، وهذا ما يؤدي إلى ظهور برمجيات عظيمة تريح المستخدم.

About the author

خليل سليم

Leave a Comment

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.