كيفية التخطيط لاختبار WhiteBox
سؤال
أنا جديد نسبيًا في عالم اختبار Whitebox وأحتاج إلى مساعدة في تصميم خطة اختبار لواحد من المشاريع التي أعمل عليها حاليًا. في الوقت الحالي ، أنا فقط أتجول في البحث عن أجزاء من التعليمات البرمجية القابلة للاختبار ثم أكتب بعض اختبارات الوحدة لذلك. أشعر بطريقة ما أن هذا ليس بالطريقة التي ينبغي القيام بها. من فضلك ، هل يمكن أن تعطيني نصيحة حول أفضل أفضل ما في إعداد نفسي لاختبار هذا المشروع؟ أي أدوات أو قوالب خطة اختبار يمكنني استخدامها؟ اللغة المستخدمة هي C ++ إذا كانت ستحدث فرقًا.
المحلول
أحد أهداف اختبار الصندوق الأبيض هو تغطية 100 ٪ (أو أقرب ما يمكن) من عبارات الكود. أقترح العثور على أداة تغطية رمز C ++ بحيث يمكنك معرفة الرمز الذي تنفذه الاختبارات الخاصة بك والرمز الذي فاتتك. ثم تصميم اختبارات بحيث يتم اختبار أكبر قدر ممكن من التعليمات البرمجية.
اقتراح آخر هو النظر إلى الظروف الحدودية في إذا كانت الإحصاءات ، للحلقات ، بينما الحلقات وما إلى ذلك واختبارها لأي مناطق "رمادية" وإيجابيات زائفة وسلبيات خاطئة.
يمكنك أيضًا تصميم اختبارات للنظر في دورة حياة المتغيرات المهمة. اختبار تعريفهم واستخدامهم وتدميرهم للتأكد من استخدامها بشكل صحيح :)
هناك ثلاث أفكار لتبدأ. حظا طيبا وفقك الله
نصائح أخرى
في الوقت الحالي ، أنا فقط أتجول في البحث عن أجزاء من التعليمات البرمجية القابلة للاختبار ثم أكتب بعض اختبارات الوحدة لذلك. أشعر بطريقة ما أن هذا ليس بالطريقة التي ينبغي القيام بها.
يقول الناس أن أحد الفوائد الرئيسية لـ "اختبار التنمية مدفوعة"هل يتغلبك على تصميم مكوناتك مع مراعاة قابلية الاختبار: فهو يجعل مكوناتك أكثر قابلية للاختبار.
نهجي الشخصي (غير TDD) هو كما يلي:
- فهم الوظيفة المطلوبة وتنفيذها: كلاهما "A priori" (أي من خلال قراءة/معرفة المواصفات الوظيفية للبرنامج) ، وقراءة الكود المصدري لعكس الوظيفة
- قم بتنفيذ اختبارات الصندوق الأسود لجميع الوظائف المطلوبة/المطلوبة (انظر على سبيل المثال "هل يجب على اختبار واحد للتنفيذ الداخلي ، أو اختبار السلوك العام فقط؟').
لذلك فإن الاختبار الخاص بي ليس "صندوقًا أبيض" تمامًا ، إلا أنني أعكس هندسة الوظيفة التي يتم اختبارها. ثم أختبر هذه الوظيفة المنكوبة العكسية ، وتجنب وجود أي رمز عديمة الفائدة (وبالتالي غير اختبار). يمكنني (ولكن لا) استخدام أداة تغطية التعليمات البرمجية لمعرفة مقدار الرمز المصدر الذي تمارسه اختبارات الصندوق الأسود.
جرب "العمل بفعالية مع الكود القديم": http://www.amazon.com/working-effectively-legacy-michael-feathers/dp/0131177052
إنه ذو صلة منذ "إرث" يعني الكود الذي لا يوجد لديه اختبارات. إنه أيضًا كتاب جيد إلى حد ما.
الأدوات ذات الصلة هي: http://code.google.com/p/googletest/ و http://code.google.com/p/gmock/قد يكون هناك اختبارات وحدة أخرى وأطر عمل وهمية ، لكن لدي معرفة بها وأوصى بها بشدة.