مقدمة
هل شعرت يومًا أن هناك أشباحًا في العالم عندما تقوم بضبط جزء معين من التعليمات البرمجية؟
هل سبق لك أن واجهت مشكلة في تنظيم واجهة برمجة التطبيقات ، فأنت تشعر دائمًا بأنها مشكلة في استدعاء واجهات الطرف الثالث أو الوثائق غير صحيحة؟
هل شعرت يومًا أن مصدر المشكلة كان الطريقة الخاطئة لاستخدامها؟
هل شعرت دائمًا أن الوثائق أو البيئة لا تتطابق عند تثبيت الخدمة؟
تؤمن بالعملية والطريقة ولا يتم تضليلها أبدًا من خلال النتائج .........
ملخص
غالبًا ما يكون الرمز المعياري مشابهًا للتحقيق في حالة ما ، لكن أهمية النتيجة مختلفة. تحقق الشرطة في قضية أن يكون الناس آمنين ، في حين أن رمزنا المعياري هو استقرار النظام. وبهذه الطريقة ، لا ينبغي لنا أن نتهم أي جزء من الكود والبرنامج ، حتى لا يعاقب بشكل غير معقول.
أساليب العملية التالية تأتي من ملخص شخصي. من منظور شخصي ، تم تجميع بعض أساليب الأجيال السابقة من خلال تجربة طويلة الأجل ، وبالطبع فهي مرجعة للغاية ونظرية. كطرق شخصية ، قد تكون أكثر ملاءمة لـ DS مثلنا.
طريقة الاختبار
رمز الوضع الإجرائي
أول شيء يجب الانتباه إليه عندما يكون وضع الترميز هو العملية. يجب توضيح فكرة النتيجة النهائية ، أي عملية ارتكاب الجريمة ، ومتابعة خطوة بخطوة في عملية الجريمة للحصول على نتيجة الجريمة. أثناء تحليل عملية الجريمة ، يجب وضع علامة على كل شك (أي معلومات السجل المذكورة في الكود). بعد عملية التحليل هذه ، يتم إجراء اختبار الصندوق الأسود ، ويتم إضافة الإدخال ، ويتم التحقق من النتائج. أخيرًا ، تحقق من حكمك بناءً على علامات كل خطوة للعثور على السبب.
الحل أعلاه هو الوضع الإجرائي. مزايا هذه الطريقة بديهية. يمكنك تحليل العملية بأكملها مباشرة من خلال الاختبار ، ولكن هذه الطريقة تستغرق وقتًا طويلاً ومن المقبول توضيح منطق الرمز الخاص بك ، ولكن من الصعب فهم رمز منطق الآخرين.
وضع اختبار الوحدة
الغرض الأساسي من اختبار الوحدة هو ضمان التشغيل العادي للوظيفة أو الفئة أو الوحدة الوظيفية ، بما في ذلك اختبار والتحقق من مواقفها غير الطبيعية. كمبرمجين ، فإن طريقة التحقق الأكثر تفضيلًا هي "التراكم" (معنى قيادة الوبر هو توفير بيانات افتراضية مزيفة). هذه الطريقة مريحة للغاية للضبط ، ولكن أحد العيوب هو أنه لا يمكن استخدامها مرة أخرى ، لأنه بعد التحقق من ذلك ، سيعلق العديد من المطورين أو يحذفونه. لذلك ، إذا أكملنا التطوير في بيئة التنمية ، لكننا نأمل أنه عند اختبار التحقق من البيئة ، يجب علينا إعادة كتابة منطق قيادة كومة آخر. ثم ، بهذه الطريقة ، سيكون الأمر أكثر إثارة للقلق عندما نكون على الإنترنت. نظرًا لوجود الكثير من الإزعاج ، يمكنك تجربة الطرق التالية.
إضافة فئة اختبار الوحدة. يحتاج هذا الفئة إلى التحكم في أذوناتها ولا يمكن تنفيذها إلا من خلال تسجيل الدخول إلى الخلفية أو سطر الأوامر. تتمثل وظيفة هذه الفئة في اكتشاف المنطق الرئيسي للنظام وجعل نتائج إخراج الاختبار المقابلة. يجب أن تصدق أنه يمكن اختبار جميع فئات الواجهة من خلال فئات اختبار الوحدة. في كثير من الأحيان يتساءل المبرمجون عما إذا كان ينبغي لنا القيام بذلك؟ في الواقع ، نحن حقا بحاجة إلى القيام بذلك. بعد كل شيء ، تتم الآن العديد من الاختبارات في اختبارات الصندوق الأسود.
هذه الطريقة المعيارية مناسبة أثناء عملية التطوير ويمكنها التأكد من أن رمز الشبكة الحالي يعمل بشكل طبيعي بعد إصداره. آمل أن يقوم الجميع أيضًا بنقل هذه العملية إلى مرحلة التطوير عند التخطيط لوقت التطوير.
طريقة تحديد المواقع السريعة
هل أول عملية معقدة للغاية مثالية للغاية؟ الكود الخاص بي هو 100 سطر فقط ، والنظام غير معقد. إذا كان هذا هو الحال ، فقم بإجراء تحليل تحديد المواقع بسرعة. عدة مرات أواجهها
1. الإدخال طبيعي ، والإخراج غير طبيعي.
2. المدخلات طبيعية ، والمنطق غير طبيعي ، والإخراج غير طبيعي ؛
3. الإدخال غير طبيعي ، والمنطق طبيعي ، والإخراج طبيعي ؛
4. استثناء الإدخال ، استثناء المنطق ، إخراج لا شيء.
أثناء عملية التطوير الشخصية ، غالبًا ما أواجه نوعًا من المشاكل أعلاه. على سبيل المثال ، أثناء عملية تطوير Node.js ، واجهت String.Length وقلت أنه لا توجد طريقة طول للسلسلة. في ذلك الوقت ، شعرت بالحيرة وسألني عن سبب وجود طرق أخرى للطول ، ولماذا لا توجد طريقة من هذا القبيل؟ ربما يعرف العديد من الطلاب أن المشكلة هي أن هذه السلسلة ليست سلسلة على الإطلاق ، ولكن فقط أنك قد قمت بإعداد مثالي كسلسلة بنفسك ، مما يعني أن هناك مشكلة في ما تدخله. ثم أفضل طريقة لتحديد موقع هذه المشكلة هي طباعة الإدخال وطباعة الإخراج.
ربما لا تكون البرامج الأخرى بهذه البساطة ، ولكن الشيء الأساسي هو إصدار أحكام الإدخال والمخرجات على الوظائف التي تواجه استثناءات في الوظيفة الرئيسية ، حتى يتمكنوا من تحديد موقعها بسرعة.
تذكر: لا تأخذها خارج السياق وكن يبرز ذاتيا.
يتم تلخيص الطرق والإجراءات المذكورة أعلاه فقط بناءً على PHP أو Node.js. قد يكون هناك أوجه تشابه أو اختلافات في C & C ++. إذا كنت لا تحب ذلك ، فالرجاء الاعتزاز بها.