الفرق بين الوحدة والتكامل والاختبار الوظيفي

مقارنة تفصيلية للوحدة والتكامل والاختبار الوظيفي:

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

لكن أي واحد أو حتى كليهما لا يمكن أن يحل محل الاختبار الوظيفي في أي وقت.

اختبار الوحدة مقابل اختبار التكامل مقابل الاختبار الوظيفي

اختبار الوحدة يعني اختبار الوحدات الفردية لتطبيق ما بشكل منفصل (دون أي تفاعل مع التبعيات) تأكد من أن الكود يقوم بالأشياء بشكل صحيح.

اختبار التكامل يعني التحقق مما إذا كانت الوحدات المختلفة تعمل بشكل جيد عند دمجها معًا كمجموعة.

الاختبار الوظيفي تعني اختبار شريحة من الوظائف في النظام (قد تتفاعل مع التبعيات) للتأكد من أن الكود يقوم بالأشياء الصحيحة.

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

ينظر اختبار الوحدة في فحص مكون واحد من النظام بينما ينظر اختبار الوظائف في فحص عمل التطبيق مقابل الغرض المقصود الوظيفة الموصوفة في مواصفات متطلبات النظام. من ناحية أخرى ، يعتبر اختبار التكامل الفحصوحدات متكاملة في النظام.

والأهم من ذلك ، لتحسين عائد الاستثمار (ROI) ، يجب أن تحتوي قاعدة الكود الخاص بك على أكبر عدد ممكن من اختبارات الوحدة ، واختبارات تكامل أقل وأقل عدد من الاختبارات الوظيفية.

يتضح هذا بشكل أفضل في هرم الاختبار التالي:

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

مثال:

دعونا نفهم هذه الأنواع الثلاثة من الاختبارات بمثال مبسط.

على سبيل المثال . بالنسبة إلى هاتف محمول وظيفي ، الأجزاء الرئيسية المطلوبة هي "البطارية" و "بطاقة sim".

مثال اختبار الوحدة - يتم فحص البطارية لمعرفة عمرها وسعتها ومعلمات أخرى. تم التحقق من بطاقة SIM لتنشيطها.

مثال اختبار التكامل - تم دمج البطارية وبطاقة sim ، أي تم تجميعها من أجل بدء تشغيل الهاتف المحمول.

وظيفية مثال اختبار - يتم التحقق من وظائف الهاتف المحمول من حيث ميزاته واستخدام البطارية بالإضافة إلى مرافق بطاقة sim.

لقد رأينا مثالاً في شروط الشخص العادي.

الآن ، دعنا نأخذ الآن مثالًا تقنيًا لصفحة تسجيل الدخول:

يتطلب كل تطبيق ويب تقريبًا المستخدمين / العملاء لتسجيل الدخول. لذلك ، يجب على كل تطبيقلديك صفحة "تسجيل دخول" تحتوي على هذه العناصر:

  • الحساب / اسم المستخدم
  • كلمة المرور
  • زر تسجيل الدخول / تسجيل الدخول

بالنسبة لاختبار الوحدة ، قد تكون الحالات التالية هي حالات الاختبار:

  • طول الحقل - حقول اسم المستخدم وكلمة المرور.
  • يجب أن تكون قيم حقل الإدخال صالحة.
  • يتم تمكين زر تسجيل الدخول فقط بعد إدخال القيم الصالحة (التنسيق والطول) في كلا الحقلين.

بالنسبة لاختبار التكامل ، قد تكون الحالات التالية هي حالات الاختبار: 2>

  • يرى المستخدم رسالة الترحيب بعد إدخال القيم الصالحة والضغط على زر تسجيل الدخول.
  • يجب أن ينتقل المستخدم إلى صفحة الترحيب أو الصفحة الرئيسية بعد الإدخال الصحيح والنقر زر تسجيل الدخول.

الآن ، بعد الانتهاء من اختبار الوحدة والتكامل ، دعونا نرى حالات الاختبار الإضافية التي يتم أخذها في الاعتبار للاختبار الوظيفي:

  1. يتم التحقق من السلوك المتوقع ، أي هل يمكن للمستخدم تسجيل الدخول عن طريق النقر فوق زر تسجيل الدخول بعد إدخال قيم اسم مستخدم وكلمة مرور صالحين.
  2. هل هناك رسالة ترحيب ستظهر بعد تسجيل دخول ناجح؟
  3. هل هناك رسالة خطأ يجب أن تظهر عند تسجيل دخول غير صالح؟
  4. هل توجد ملفات تعريف ارتباط موقع مخزنة لحقول تسجيل الدخول؟
  5. هل يمكن لمستخدم غير نشط تسجيل الدخول؟
  6. هل هناك رابط "نسيت كلمة المرور" للمستخدمين الذين نسوا كلمات المرور الخاصة بهم؟

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

وبالتالي ، هناك الكثير من السيناريوهات التي لم يتم اختبارها بعد حتى بعد اختبار الوحدة والتكامل.

حان الوقت الآن لفحص الوحدة والتكامل والاختبار الوظيفي واحدًا تلو الآخر.

ما هو اختبار الوحدة؟

كما يوحي الاسم ، يتضمن هذا المستوى اختبار "وحدة".

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

فيما يلي بعض النقاط المهمة حول اختبار الوحدة وفوائدها:

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

JUnit (إطار عمل Java) ، PHPUnit (إطار عمل PHP) ، NUnit (إطار .Net) وما إلى ذلك هي أدوات اختبار وحدة شائعة يتم استخدامها للغات مختلفة.

ما هو اختبار التكامل ؟

اختبار التكامل هو اختبار تكامل جزء مختلف من النظام معًا. يتم أولاً دمج جزأين أو وحدتين مختلفتين من النظام ثم يتم إجراء اختبار التكامل.

الهدف من اختبار التكامل هو التحقق من وظائف وموثوقية وأداء النظام عند التكامل.

يتم إجراء اختبار التكامل على الوحدات النمطية التي تم اختبارها أولاً ثم يحدد اختبار التكامل ما إذا كانت مجموعة الوحدات تعطي المخرجات المرغوبة أم لا.

يمكن لاختبار التكامل إما يتم إجراؤه بواسطة مختبرين مستقلين أو بواسطة مطورين أيضًا.

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

أ) نهج التكامل الكبير

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

يُرجى عدم الخلط بين نهج اختبار التكامل واختبار النظام ، يتم اختبار تكامل الوحدات أو الوحدات فقط وليس النظام بأكمله كما هو الحال في اختبار النظام.

الميزة الرئيسية لنهج الانفجار الكبير هي أن كل شيء متكامل يتم اختباره في وقت واحد.

واحد رئيسي العيب هو أنه يصبح من الصعب تحديد حالات الفشل.

مثال: في الشكل أدناه ، تم دمج الوحدة 1 إلى الوحدة 6 واختبارها باستخدام نهج الانفجار الكبير.

b) Top-Down Approach

يتم اختبار تكامل الوحدات / الوحدات من المستويات الأعلى إلى الأسفل خطوة بخطوة.

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

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

الشاغل الوحيد مع هذا النهج هو أنه يتم اختبار الوظيفة الرئيسية في النهاية.

c) Bottom- Up Approach

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

يتمثل العيب الرئيسي في هذا النهج في أنه لا يمكن تحديد مشكلات المستوى الأعلى إلا في النهاية عندما يكون لدى جميع الوحدات تم دمجها.

اختبار الوحدة مقابل اختبار التكامل

بعد إجراء مناقشة كافية حول اختبار الوحدة واختبار التكامل ، دعنا ننتقل بسرعة إلى الاختلافات بين الاثنين في الجدول التالي:

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

الاختبار الوظيفي

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

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

الخاتمة

جميع أنواع الاختبارات الثلاثة هذه مترابطة.

لتحقيق التغطية الكاملة ، مطلوب لإجراء اختبارات وحدة لمسارات / سطور التعليمات البرمجية والاختبارات الوظيفية والتكامل للتأكد من أن "الوحدات"العمل معًا بشكل متماسك.

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

القراءة الموصى بها

    التمرير إلى الأعلى