برمجة

Unit test… الوحدة الإختبارية

By حسام الكرد

September 08, 2013

 سبق وأن طرحت موضوع حول الإختبارات البرمجية والذي يمثل أهم الإختبارات التي يمكن عملها عند بناء تطبيقات , ومن الأجزاء المهمه هي الوحدات الإختبارية “unit testing” , قبل أن نتطرق إلى فنيات الكود وكيفية تطبيق الوحدة الإختبارية دعونا أولا أن نعرف ما هي الوحدة الإختبارية  , وما هي الفائدة المرجوة من عملها 

unit test (الوحدة الإختبارية) :

هي أصغر وحدة إختبار موجوده في النظام يتم من خلالها إختبار function أو وحدة كاملة من الcode, وهي تتكون من أكواد بسيطة تقوم بإستدعاء ال function أو وحدة ال code وإدخال قيم تجربية في حال كانت مطلوبة والتحقق من أن المخرج لهذه ال functions يوافق المتوقع 

 

أهمية الوحدة الإختبارية:

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

تنظيم الوحدات الإختبارية : 

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

مثال / تطبيق الوحدات الإختبارية بإستخدام ال PHP :

توجد مكتبات عديدة تساعد في عمل الوحدات الإختبارية ومن أكثرها شيوعا simpletest , phpUnit وغيرها الكثير سنقوم بإستخدام phpUnit ملاحظة : يمكن إستعمال Zend Studio والذي يرتبط بمكتبة ال phpUnit  وفيه آليات جاهزه لتشغيل الوحدات الإختباريه 

لنفرض أن لدينا class 

سنقوم بإنشاء وحدة إختبار 

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

لذلك علينا عند كتابة الوحدات الإختبارية الموائمة أن تقوم بتغطية أغلب الإحتمالات دون تعقيد , كما وأن المطور الذي يقوم بالتطوير يقوم بعمل وحدات إختبارية للكود فيكون جزء لا يتجزأ من تطويره وتكون عادة دائمة عند التطوير 

 كانت هذه نبذة مختصرة عن الوحدة الإختبارية دمتم بود إلى تدوينة أخرى