TTCN-3
لغة TTCN-3 (تدوين اختبار ومراقبة الاختبار، الإصدار 3) هي لغة اختبار ذات كتابة قوية تُستخدم في اختبار مطابقة أنظمة الاتصالات. وقد طُوّرت TTCN-3 من قِبل المعهد الأوروبي لمعايير الاتصالات (ETSI) ضمن سلسلة ES 201 873، [ 1 ] وتم توحيدها من قِبل الاتحاد الدولي للاتصالات (ITU-T) ضمن سلسلة Z.160. [ 2 ] تتميز TTCN-3 بأنواع بياناتها الخاصة، ويمكن دمجها مع تعريفات أنواع ASN.1 و IDL و XML .
التنظيم المعياري
يُعد معيار ITU-T TTCN-3 جزءًا من سلسلة Z وهو منظم في عدة أجزاء:
- Z.161 - اللغة الأساسية التي تحدد التدوين النصي الأساسي
- Z.162 - تنسيق العرض الجدولي (TFT) - طريقة لعرض الاختبارات في شكل جدولي
- Z.163 - تنسيق العرض الرسومي (GFT) - طريقة لعرض الاختبارات بشكل رسومي بتمثيل مشابه لـ MSC
- Z.164 - الدلالات التشغيلية - يحدد كيفية تنفيذ TTCN-3
- Z.165 - TRI - يحدد واجهة برمجة التطبيقات (API) المتوفرة والمطلوبة مع جهاز الاختبار
- Z.166 - TCI - يحدد واجهة برمجة التطبيقات (API) المتوفرة والمطلوبة مع وحدة تحكم الاختبار
- Z.167 - ASN.1 - يحدد كيفية استخدام أنواع بيانات ASN.1 في مجموعة اختبار TTCN-3
- Z.168 - تحويل IDL إلى TTCN-3
- Z.169 - استخدام مخطط XML مع TTCN-3
تنظيم اللغة
- وحدة
- الحاوية الرئيسية في مجموعة الاختبارات هي وحدة نمطية. وهي عادةً ما تكون ملفًا.
- عنصر
- المكون هو كيان تنفيذي. يتم تنفيذ حالة اختبار أو دالة على المكون.
- ميناء
- تتواصل المكونات مع بعضها البعض أو مع النظام قيد الاختبار من خلال منافذ يتم ربطها ببعضها البعض.
- حالة اختبار
- حالة الاختبار هي سلسلة من عمليات الإرسال والاستقبال. عند إرسال رسالة إلى النظام قيد الاختبار ، يمكن استلام عدة ردود محتملة.
- بديل
- بما أن حالة الاختبار عبارة عن سلسلة من المحفزات متبوعة بمجموعة من الاستجابات المحتملة، فإن الترميز يشمل البدائل. إنها طريقة مختصرة لسرد جميع البدائل الممكنة في سيناريو معين.
- نموذج
- عند إرسال أو استقبال المعلومات، تُعدّ قيم المعاملات بالغة الأهمية. يجب تحديدها عند الإرسال والتحقق منها عند الاستلام. يهدف بناء القالب إلى تحديد قيم المعاملات عند الإرسال أو التحقق منها عند الاستلام. ونظرًا لأن المعاملات قد تكون معقدة، فإن تحديد قيمها والتحقق منها لا يقتصر على سطر واحد. يسمح القالب بإجراء عمليات تحقق معقدة في عبارة واحدة، مما يحافظ على وضوح حالة الاختبار.
- الحكم
- النتيجة هي نتيجة تنفيذ حالة الاختبار. ولها 5 قيم محتملة: لا شيء، ناجح، غير متناسق، فاشل، خطأ.
التطبيقات
تم استخدام TTCN-3 لتحديد مجموعات اختبار المطابقة لبروتوكولات SIP و WiMAX و DSRC القياسية.
تبنى تحالف Open Mobile Alliance في عام 2008 استراتيجية استخدام TTCN-3 لترجمة بعض حالات الاختبار في مواصفات اختبار التمكين إلى تمثيل قابل للتنفيذ. [ 3 ]
شجع مشروع AUTOSAR (2008) استخدام TTCN-3 في صناعة السيارات. [ 4 ]
شجع مشروع 3GPP استخدام TTCN-3 في صناعة الاتصالات المتنقلة. [ 5 ]
بنيان
عند تنفيذ البنية، يتم تنظيمها على النحو التالي:
- TE: TTCN-3 Executable هو الشكل القابل للتنفيذ لمجموعة الاختبارات.
- واجهة وقت التشغيل TTCN-3 (TRI) هي الواجهة بين جهاز الاختبار (TE) وجهاز الاختبار (SUT). وهي مقسمة إلى جزأين:
- SA: محول النظام
- PA: محول المنصة
- TCI: واجهات التحكم TTCN-3 هي الواجهة المستخدمة للتحكم في تنفيذ الاختبار. وهي مقسمة إلى:
- ™: إدارة الاختبارات
- TL: تسجيل الاختبار
- قرص مضغوط: التشفير وفك التشفير
- CH: معالجة المكونات
مثال على التعليمات البرمجية
هذا مثال على TTCN-3 مع ما يعادله من الرسوم البيانية في MSC ( مخطط تسلسل الرسائل ).

وحدة نظام الاختبار {// تعريف نوع فرعي من النوع الصحيح integer myNewType ( 0..50 )// تعريف نوع بنية الطلب (Request) بحقلين : type record Request { myNewType param1 , charstring param2 }// تعريف نوع بنية الإجابة مع حقل واحد من نوع السجل Answer { myNewType param1 }// تعريف نوع منفذ اتصال قائم على الرسائل port cEnv_type message { out Request ; in Answer ; }// تعريف المكون الذي سيتم تشغيل حالة الاختبار عليه type component sSystem { port cEnv_type cEnv ; }// تحدد القوالب قيم المعلمات الصادرة // وتتحقق من قيم المعلمات الواردة template Request Good_Req := { param1 := 42 , param2 := "hello !" }; template Answer All_is_OK := { param1 := 0 };// تعريف حالة الاختبار 1 التي ستعمل على مكون sSystem testcase testcase1 () runs on sSystem { // إرسال رسالة طلب مع (42 ، "hello!") كمعاملات cEnv.send ( Good_Req ); // بديل للإجابتين المحتملتين alt { // هل نتلقى إجابة مع 0 كمعامل [] cEnv.receive ( All_is_OK ) { // نتيجة النجاح! setverdict ( pass ) } // أم نتلقى شيئًا آخر [] cEnv.receive { // نتيجة الفشل ! setverdict ( fail ) } } }// التحكم في تنفيذ حالات الاختبار في سلاسل أجزاء التحكم تلقائيًا { var verdicttype verdict1 ; verdict1 := execute ( testcase1 ()); } }انظر أيضاً
مراجع
- ↑ صفحة ETSI TTCN-3
- ↑ سلسلة Z
- ↑ قابلية التشغيل البيني لـ OMA
- ↑ مجالات تطبيق TTCN-3 ، الموقع الإلكتروني الرسمي لـ ETSI TTCN-3، تم الاطلاع عليه في 17 نوفمبر 2015
- ↑ مركز كفاءة الاتصالات المتنقلة 3GPP RAN5
روابط خارجية
- لغات البرمجة
- اختبار البرمجيات
- ASN.1
