مجموعة التوافق التقني

في لغة جافا، تُعدّ مجموعة أدوات توافق التقنية ( TCK أو JCK ) مجموعة من الاختبارات التي تتحقق، ولو ظاهريًا، من توافق تطبيق مُفترض لطلب مواصفات جافا (JSR). [ 1 ] [ 2 ] وهي أحد العناصر الثلاثة المطلوبة لاعتماد طلب مواصفات جافا (JSR) في عملية مجتمع جافا، وهي:

  • مواصفات JSR
  • تطبيق JSR المرجعي
  • مجموعة أدوات التوافق التكنولوجي (TCK)

المحتويات والهيكلية

عادةً ما يتم الحصول على مجموعات اختبار الاختبار (TCKs) من مسؤول المواصفات في مواصفة جافا القياسية (JSR). تتكون هذه المجموعات عادةً (ولكن ليس دائمًا) من تطبيق مضيف رسومي يتواصل عبر بروتوكول TCP/IP مع الجهاز أو آلة جافا الافتراضية قيد الاختبار. يتم الحصول على الاختبارات عادةً من الجهاز عبر بروتوكول HTTP، وتُرسل النتائج إلى تطبيق المضيف بنفس الطريقة. يُمكّن هذا الفصل من استخدام مجموعات اختبار الاختبار لاختبار الآلات الافتراضية على أجهزة مثل هواتف CLDC المحمولة التي لا تملك القدرة على تشغيل تطبيق المضيف الكامل لمجموعة اختبار الاختبار.

من المفترض أن الاختبارات الواردة في معيار JSR مستمدة من البيانات الواردة في مواصفات JSR. أي واجهة برمجة تطبيقات (API) ستخضع لمجموعة من الاختبارات لضمان عملها بالطريقة المقصودة، بما في ذلك في حالات الخطأ.

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

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

مجموعة أدوات اختبار الاختبار لمنصة جافا

تُسمى مجموعة أدوات التوافق التقني لمنصة جافا معينة " مجموعة أدوات توافق جافا" (JCK) . وهي عبارة عن مجموعة اختبارات شاملة تستخدمها شركة أوراكل والمرخص لهم لضمان توافق تطبيقات المنصة.

تم إصدار شفرة المصدر لـ JCK لـ Java 6.0 . [ 3 ] [ 4 ] لم تسمح الرخصة المصاحبة في البداية للمستخدمين بتجميع أو تشغيل الاختبارات، [ 5 ] ولكن حق الاطلاع على الشفرة لا يرتبط بمخاوف تتعلق بتلوينها، كما يُسمح بالتعليقات العامة على شفرة المصدر. [ 3 ] مع ذلك، منذ إصدار OpenJDK ، تسمح رخصة محددة بتشغيل JCK في سياق OpenJDK، أي لأي تطبيق GPL مشتق بشكل كبير من OpenJDK. [ 6 ] [ 7 ]

تم نشر اتفاقية ترخيص OpenJDK Community TCK الإصدار 2.0 لمواصفات Java SE 7 منذ ديسمبر 2011. [ 8 ]

إطار عمل TCK

تُعد أداة JavaTest اليوم إطار عمل اختبار الوحدات الأكثر شيوعًا للتحقق من توافق التنفيذ. وهي إطار عمل اختبار عام مصمم لتشغيل اختبارات TCK. ومع ذلك، تستخدم بعض المواصفات أيضًا JUnit أو TestNG . [ 9 ]

الترخيص والجدل

بعد إصدار شركة صن لـ OpenJDK ، أصدرت صن ترخيصًا خاصًا يسمح بتشغيل TCK في سياق OpenJDK لأي تطبيق GPL مشتق بشكل كبير من OpenJDK. [ 10 ]

يحرم هذا الشرط مشروع Apache Harmony من حق استخدام مجموعة اختبار التوافق (TCK) المتوافق مع ترخيص Apache . في 9 نوفمبر 2010، هددت مؤسسة برمجيات Apache بالانسحاب من عملية مجتمع Java إذا لم تُمنح ترخيص TCK لمشروع Harmony دون قيود إضافية. [ 11 ]

في 9 ديسمبر 2010، استقالت مؤسسة برمجيات أباتشي من مقعدها في اللجنة التنفيذية لـ Java SE/EE. [ 12 ]

انظر أيضاً

مراجع

  1. "الوصول إلى JCK" . صن مايكروسيستمز . يونيو 2007. تم الاطلاع عليه بتاريخ 27-11-2025 .{{cite web}}: CS1 maint: url-status ( link )
  2. "استخدم اختبار TCK للتأكد من أن توزيعة Java الخاصة بك تتوافق مع مواصفات Java SE" . أنظمة Azul . يونيو 2007. تم الاسترجاع في 27 نوفمبر 2025 .{{cite web}}: CS1 maint: url-status ( link )
  3. ١ ٢ هاميلتون، غراهام (١٣ ديسمبر ٢٠٠٤). " إصدار مصادر اختبار توافق J2SE" . مؤرشف من الأصل في ١٦ ديسمبر ٢٠٠٤. تم الاطلاع عليه في ٨ مارس ٢٠٠٨. لقد حرصنا على أن يلبي الترخيص الاحتياجات المعقولة للمطورين الراغبين في تقييم مصادر JCK: فهو متاح مجانًا، من خلال ترخيص بنقرة واحدة؛ ولا يوجد أي "تأثير سلبي". بمجرد حذف نسختك من JCK، لن تكون مقيدًا في استخدامك لها مستقبلًا. ولتوضيح ذلك تمامًا، أدرجنا قسمًا يمنح صراحةً ما يسميه المحامون "الحقوق المتبقية"، والتي تعني ببساطة أنه لا مانع من استخدام ما تحتفظ به من معلومات مستقبلًا؛ كما يمكنك نشر ملاحظاتك وتعليقاتك علنًا.
  4. مشروع JCK مؤرشف في 8 يوليو 2007، على موقع Wayback Machine
  5. "اتفاقية ترخيص المصدر "للقراءة فقط"، الإصدار 1.0، مجموعة أدوات توافق جافا (TM) 6a . شركة صن مايكروسيستمز . يونيو 2007. تاريخ الاسترجاع: 8 مارس 2008 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  6. دارسي، جوزيف (2008-03-06). "مطابقة إصدارات JDK وJCK" . تم الاطلاع عليه بتاريخ 2008-03-08 . إذا كنت مهتمًا بتشغيل JCK في سياق مشاريع OpenJDK، فإن الترخيص متاح.{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  7. "اتفاقية ترخيص OpenJDK COMMUNITY TCK الإصدار 1.1" (ملف PDF) . شركة صن مايكروسيستمز . تاريخ الاسترجاع: 8 مارس 2008. مع مراعاة أن يكون تطبيق المرخص له مشتقًا بشكل أساسي من كود OpenJDK، وإذا تم توزيع هذا التطبيق أو سيتم توزيعه على طرف ثالث، فيجب أن يتم توزيعه بموجب ترخيص GPL، فإن شركة صن تمنح بموجب هذا للمرخص له، في حدود حقوق الملكية الفكرية لشركة صن في TCK، ترخيصًا عالميًا وشخصيًا وغير حصري وغير قابل للتحويل ومحدودًا لاستخدام TCK داخليًا ولغرض تطوير واختبار تطبيق المرخص له فقط.
  8. "اتفاقية ترخيص OpenJDK Community TCK الإصدار 2.0" (ملف PDF) . openjdk.java.net .
  9. "استعراض شفرة المصدر: jsr-352-git-repository" . مؤرشف من الأصل بتاريخ 2013-03-05 . تم الاطلاع عليه بتاريخ 2014-02-12 .
  10. "اتفاقية ترخيص OpenJDK COMMUNITY TCK الإصدار 1.1" (ملف PDF) . شركة صن مايكروسيستمز . تاريخ الاسترجاع: 8 مارس 2008. مع مراعاة أن يكون تطبيق المرخص له مشتقًا بشكل أساسي من كود OpenJDK، وإذا تم توزيع هذا التطبيق أو سيتم توزيعه على طرف ثالث، فيجب أن يتم توزيعه بموجب ترخيص GPL، فإن شركة صن تمنح بموجب هذا للمرخص له، في حدود حقوق الملكية الفكرية لشركة صن في TCK، ترخيصًا عالميًا وشخصيًا وغير حصري وغير قابل للتحويل ومحدودًا لاستخدام TCK داخليًا ولغرض تطوير واختبار تطبيق المرخص له فقط.
  11. بيان من مجلس إدارة مؤسسة برمجيات أباتشي بشأن مشاركتنا في عملية مجتمع جافا ،مدونة مؤسسة برمجيات أباتشي ، 9 نوفمبر 2010
  12. استقالة مؤسسة برمجيات أباتشي من اللجنة التنفيذية لبرنامج JCP ،مدونة مؤسسة برمجيات أباتشي ، 9 ديسمبر 2010