09-10-12, 06:02 PM
كاتب الموضوع : نجيب المجيدي
لو سئلتك: كم مرة تحتاج للتوقف عن البرمجة و محاولة تقمص شخصية المستخدم لتجريب احتمالات الإدخال التي قد يدخلها لإجراء معين في برنامجك , ومن ثم تتتبع المخرجات وملاحظة كيف يتصرف هذا الإجراء مع المدخلات المختلفة وهل يعيد القيم المتوقعة أم لا , و سأجيب نيابة عنك: بالتأكيد في كل مرة تقوم فيها بتطوير صنف جديد أو دالة معينة ستحتاج إلى اختبارها قبل الركون إليها تماماً وهذا هو موضوعنا اليوم حيث أن مايكروسوفت توفر لك عدة خيارات لاختبار برامجك و وتطبيقاتك سواءً تلك المصممة للوب أو لسطح المكتب وذلك ضمن بيئة التطوير الجديدة Visual Studio Team System 2008 واليوم سنذهب في جولة للتعرف على كيفية الاستفادة من هذه الإمكانات في تطبيقاتنا ...للتعرف على قوالب الاختبار التي نستطيع استخدامها , افتح Visual Studio Team System 2008 وقم بإنشاء مشروع جديد ثم من شريط القوائم اختر القائمة Test واختر "new test" ستظهر لك نافذة إضافة اختبار جديد وفيها عدة أنواع قياسية أهمها:
DatabaseUnitTest لاختبار كائنات قواعد البيانات من إجراءات و دوال وغيرها
GenericTest برنامج موجود مسبقاً يتم تحويره ليعمل تحت بيئة اختبارية في إطار بيئة عمل .NET
لمزيد من التفاصيل حول كيفية إنشاء GenericTest راجع مكتبات MSDN على الرابط التالي:
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/dv_vsetlt01/html/5d1706bf-e08d-442a-8f0f-50ce2f661ca7.htm
WebTest لاختبار تطبيقات الوب
UnitTest لاختبار دالة أو إجراء معين, وكذلك UnitTestWizard لنفس الغرض ولكن باستخدام المعالج , وبالتأكيد تستطيع تعديله فيما بعد يدوياً ( سنأتي لذلك لاحقاً ).
OrderedTest لتنفيذ عدة اختبارات معاً بالترتيب الذي تقوم بتحديده.
عند اختيارك لأحد الأنواع السابقة يتم إنشاء مشروع جديد يحتوي على وحدة الاختبار
سنفرض وجود الدالة التالية لإعادة الرقم الأكبر , نحن نريد اختبار صحة مخرجات هذه الدالة و الزمن المنقضي لتنفيذها
كود :
Public Function Max(ByVal fNumber As Int32, ByVal sNumber As Int32) As Int32
Dim maxNumber As Integer
If fNumber > sNumber Then
maxNumber = fNumber
Else
maxNumber = sNumber
End If
Return maxNumber
End Function
1- من قائمة test اختر New Test , ثم UnitTestWizard
ستظهر نتفذة تطالبك بكتابة اسم المشروع الجديد الذي سينشأ للاختبار, اختر إنشاء بعد كتابة الاسم المناسب.
2- في النافذة التالية Create Unit Test قم باختيار الدالة التي تريد اختبارها كما تشاهد في الصورة.
3- سيتم إنشاء وحدة اختبار قم بتعديلها لتصبح كالتالي:
كود :
'''<summary>
'''A test for Max
'''</summary>
<TestMethod()> _
Public Sub MaxTest()
Dim target As Form1 = New Form1 ' TODO: Initialize to an appropriate value
Dim fNumber As Integer = 10 ' TODO: Initialize to an appropriate value
Dim sNumber As Integer = 20 ' TODO: Initialize to an appropriate value
Dim expected As Integer = 20 ' TODO: Initialize to an appropriate value
Dim actual As Integer
actual = target.Max(fNumber, sNumber)
Assert.AreEqual(expected, actual)
End Sub
بقي الإشارة إلى أنك تستطيع تغيرر AreEqual للطريقة المناسبة مثل isNull أو isTrue أو AreNotEqual بحسب الحاجة , والآن لتشغيل الاختبار قم بالضغط على Ctrl + R + T أو من نافذة Test View اختر الاختبار المطلوب بالزر الأيمن ثم تشغيل , ستظهر النتيجة في نافذة Test Results كما في الصورة