الاختبار والتوسعات
اختبر الحالات الحدّية وأضف تحسينات صغيرة. اجعل الأمثلة بسيطة وسهلة القراءة.
الاختبار والتوسعات درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
لماذا نختبر؟
لماذا نختبر؟ تكشف الاختبارات الصغيرة المفاجآت مبكرًا. سنبدأ بمدخلات سهلة، ثم نضيف الحالات الحدية خطوةً خطوة.
المسار المعتاد
جرّب أولًا جملة قصيرة تحتوي على كلمات واضحة. توقّع أن تتطابق الإجماليات وأن تكون الكلمات الأكثر تكرارًا منطقية.
الحالات الحدية
الحالات الحدية: سلسلة فارغة، ومسافات فقط، وعلامات ترقيم فقط، وأرقام مختلطة بكلمات، ومسافات متكررة. يجب ألا تتسبب أي منها في توقف البرنامج، وأن تنتج أعدادًا منطقية.
فحص التطبيع
استخدم حالات أحرف مختلطة وفواصل للتحقق من التطبيع. بعد تحويل الأحرف إلى أحرف صغيرة وتنظيف النص، يجب أن تُحسب Hello وHELLO على أنهما الكلمة نفسها.
توسعات صغيرة
توسعات بسيطة: تجاهل الكلمات القصيرة جدًا مثل a أو an، واجعل N في قائمة الأكثر تكرارًا متغيرًا، واعرض الكلمات المتساوية في العدد بأي ترتيب. اجعل التغييرات قليلة وواضحة.
الشفرة: اختبارات صغيرة
شغّل البرنامج: يعرض كل مثال العدد الإجمالي وعدد الكلمات الفريدة. يساعد ذلك في التحقق من التعامل مع السلاسل الفارغة والمسافات وعلامات الترقيم واختلاف حالة الأحرف.
public class Main {
public static void main(String[] args) {
// Very small test set for beginners. Each case prints a short result.
String[] samples = new String[] {
"Hello world hello",
"", // empty
" ", // spaces
"Hello, HELLO, hello!", // mixed case and punctuation
"Numbers 1 2 3 and words", // numbers and words
"Only... punctuation!!!" // punctuation only
};
for (int t = 0; t < samples.length; t = t + 1) {
String text = samples[t];
System.out.println("-- Case " + (t + 1) + " --");
// 1) Lowercase
String lower = text.toLowerCase();
// 2) Replace non letters with spaces
String cleaned = lower.replaceAll("[^a-z]+", " ");
// 3) Split on spaces and filter empties
String[] tokens = cleaned.trim().split("\\s+");
java.util.Map<String, Integer> freq = new java.util.HashMap<>();
int total = 0;
for (int i = 0; i < tokens.length; i = i + 1) {
String w = tokens[i];
if (w.length() == 0) continue;
// Optional tiny extension: skip one letter words like "a"
if (w.length() == 1) continue;
total = total + 1;
Integer c = freq.get(w);
if (c == null) freq.put(w, 1);
else freq.put(w, c + 1);
}
// Print a very small summary (no top N here to keep it simple)
System.out.println("Total words: " + total);
System.out.println("Unique words: " + freq.size());
}
}
}
اختبار التطبيع
فحص سريع: ما الإدخال الأفضل للتحقق من التطبيع، أي حالة الأحرف وعلامات الترقيم؟
مراجعة
مراجعة: اختبرنا المسارات المعتادة والحالات الحدية، ثم أضفنا توسعات بسيطة مثل تخطي الكلمات المكوّنة من حرف واحد. اجعل الأمثلة قصيرة وسهلة القراءة.
الأسئلة الشائعة
هل درس «الاختبار والتوسعات» مجاني؟
نعم — نص درس «الاختبار والتوسعات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «الاختبار والتوسعات»؟
اختبر الحالات الحدّية وأضف تحسينات صغيرة. اجعل الأمثلة بسيطة وسهلة القراءة. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «الاختبار والتوسعات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المتطلبات والتصميم
- التنفيذ
- الاختبار والتوسعات