بسم الله الرحمن الرحيم هل سمعت عن الTesting ؟؟؟؟ بالطبع فالTesting هو المرحلة قبل الأخيرة في دورة حياة تطوير البرنامج Software Development Life Cycle SDLC و هي المرحلة التي تلي مرحلة الDevelopment مباشرة ما أهميتها؟؟؟ أهميتها بديهية و هي تجنب أخطاء قد تحدث أثناء استخدام البرامج و التي قد تؤدي لخسائر ضخمة مثل أنظمة البنوك و ربما خسائر في الأرواح لو كان هذا البرنامج حيوى جداً مثل أنظمة الطائرات الملاحية و غيرها و أهمية أخرى هي ضمان مستوى معين من جودة البرامج و توجد مقاييس عالمية مثل الCMMI و غيرها هل المبرمج مطالب بتعلم الTesting ؟؟ الTesting في اطلاقه فرع كامل و كبير من فروع الSoftware و يقع تحت الQuality Assurance أو ضمان الجودة و يوجد له متخصصين مثل الTest Engineers و الQA Specialists و غيرهم هل يعني هذا أنه لا فائدة من تعلمه بالنسبة للمبرمج؟؟؟ بالطبع معرفة المبادئ الأساسية في الTesting شئ أساسي و هذا لأنك في النهاية ستعمل جنباً بجنب مع Tesers و أحياناً في بعض الMethodologies مثل Scrum أو Extreme Programming قد تجلس أنت كDeveloper مع Tester على جهاز واحد لضمان اكتشاف الأخطاء أثناء كتابتها... ماهو الجزء الذي يُهم المبرمج؟؟؟ الجزء الذي يُهم المبرمج و الذي يكون هو مُطالب بأداءه هو الUnit Testing و هو جزء صغير من الكود يقوم المبرمج بكتابته لعمل Testing لجزء اخر أكبر من الكود و لنفهم ذلك تابع هذا المثال... بفرض أنك تقوم بكتابة Class تقوم بعمليات حسابية جمع و طرح مثلاً
public class MathOps { public static int Add(int x, int y) { return x + y; } public static int Sub(int x, int y) { return x - y; } }
[TestFixture] public class TestClass { [SetUp]public void Init() { } [Test]public void TestAdd() { int result = MathOps.Add(10, 20); Assert.AreEqual(result, 30); } [Test]public void TestSub() { int result = MathOps.Sub(20, 10); Assert.AreEqual(result, 10); } }
using NUnit.Framework;